Skip to content

Commit 8f2859a

Browse files
committed
lsp: Option to toggle language service
1 parent f2c060c commit 8f2859a

File tree

7 files changed

+28
-0
lines changed

7 files changed

+28
-0
lines changed

CodeApp/Localization/de.lproj/Localizable.strings

+3
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,9 @@
494494
"settings.runestone.editor" = "Runestone Editor";
495495
"settings.runestone.editor.notes" = "Runestone ist ein Editor mit nativer Textauswahlunterstützung. Einige Funktionen sind in diesem Modus nicht verfügbar.";
496496
"settings.terminal.font" = "Schriftart";
497+
"settings.language_service" = "Sprachdienst";
498+
"settings.language_service.enable" = "Sprachdienst aktivieren";
499+
"settings.language_service.notes" = "Der Sprachdienst bietet Autovervollständigung, statische Codeanalyse und andere Sprachfunktionen. Diese Funktion ist derzeit für Python und Java verfügbar.";
497500

498501
"panels.no_panel_selected" = "Kein Panel ausgewählt";
499502
"sidebar.no_section_selected" = "Kein Abschnitt ausgewählt";

CodeApp/Localization/en.lproj/Localizable.strings

+3
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,9 @@ are licensed under [BSD-3-Clause License](https://en.wikipedia.org/wiki/BSD_lice
387387
"settings.runestone.editor" = "Runestone Editor";
388388
"settings.runestone.editor.notes" = "Runestone is an editor with native text selection support. Some features are unavailable in this mode.";
389389
"settings.terminal.font" = "Font";
390+
"settings.language_service" = "Language Service";
391+
"settings.language_service.enable" = "Enable Language Service";
392+
"settings.language_service.notes" = "Language service provides autocomplete, static code analysis and other language features. This feature is currently available for Python and Java.";
390393

391394
"panels.no_panel_selected" = "No panel selected";
392395
"sidebar.no_section_selected" = "No section selected.";

CodeApp/Localization/ja.lproj/Localizable.strings

+3
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,9 @@
495495
"settings.runestone.editor" = "Runestoneエディタ";
496496
"settings.runestone.editor.notes" = "Runestone はネイティブのテキスト選択をサポートするエディターです。このモードでは一部の機能は使用できません。";
497497
"settings.terminal.font" = "フォント";
498+
"settings.language_service" = "言語サービス";
499+
"settings.language_service.enable" = "言語サービスを有効にする";
500+
"settings.language_service.notes" = "言語サービスは、オートコンプリート、静的コード分析、その他の言語機能を提供します。この機能は現在、Python と Java で利用できます。";
498501

499502
"panels.no_panel_selected" = "パネルが選択されていません";
500503
"sidebar.no_section_selected" = "セクションが選択されていません";

CodeApp/Localization/ko.lproj/Localizable.strings

+3
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,9 @@
494494
"settings.runestone.editor" = "Runestone 편집기";
495495
"settings.runestone.editor.notes" = "Runestone은 기본 텍스트 선택을 지원하는 편집기입니다. 이 모드에서는 일부 기능을 사용할 수 없습니다.";
496496
"settings.terminal.font" = "글꼴";
497+
"settings.language_service" = "언어 서비스";
498+
"settings.language_service.enable" = "언어 서비스 활성화";
499+
"settings.language_service.notes" = "언어 서비스는 자동완성, 정적 코드 분석 및 기타 언어 기능을 제공합니다. 이 기능은 현재 Python 및 Java에서 사용할 수 있습니다.";
497500

498501
"panels.no_panel_selected" = "패널이 선택되지 않았습니다.";
499502
"sidebar.no_section_selected" = "섹션이 선택되지 않았습니다.";

CodeApp/Localization/zh-Hans.lproj/Localizable.strings

+3
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,9 @@
485485
"settings.runestone.editor" = "Runestone编辑器";
486486
"settings.runestone.editor.notes" = "Runestone是一款具有本地文本选择支持的编辑器。在此模式下,某些功能无法使用。";
487487
"settings.terminal.font" = "字体";
488+
"settings.language_service" = "语言服务";
489+
"settings.language_service.enable" = "启用语言服务";
490+
"settings.language_service.notes" = "语言服务提供自动完成、静态代码分析等语言功能。此功能目前适用于 Python 和 Java。";
488491

489492
"panels.no_panel_selected" = "没有选中的面板";
490493
"sidebar.no_section_selected" = "没有选中的版面";

CodeApp/Managers/MainApp.swift

+5
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ class MainApp: ObservableObject {
213213
@AppStorage("editorDarkTheme") var selectedTheme: String = "Dark+"
214214
@AppStorage("stateRestorationEnabled") var stateRestorationEnabled = true
215215
@AppStorage("runeStoneEditorEnabled") var runeStoneEditorEnabled: Bool = false
216+
@AppStorage("languageServiceEnabled") var languageServiceEnabled: Bool = true
216217

217218
init() {
218219

@@ -324,6 +325,10 @@ class MainApp: ObservableObject {
324325
guard let currentDirectoryURL = workSpaceStorage.currentDirectory._url else {
325326
return
326327
}
328+
guard !runeStoneEditorEnabled && currentDirectoryURL.isFileURL && languageServiceEnabled else {
329+
monacoInstance.disconnectLanguageService()
330+
return
331+
}
327332
if let languageServiceConfiguration = LanguageService.configurationFor(
328333
url: activeTextEditor.url)
329334
{

CodeApp/Views/SettingsView.swift

+8
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ struct SettingsView: View {
2626
@AppStorage("terminalOptions") var terminalOptions: CodableWrapper<TerminalOptions> = .init(
2727
value: TerminalOptions())
2828
@AppStorage("runeStoneEditorEnabled") var runeStoneEditorEnabled: Bool = false
29+
@AppStorage("languageServiceEnabled") var languageServiceEnabled: Bool = true
2930

3031
@State var showAllFonts = false
3132
@State var showsEraseAlert: Bool = false
@@ -118,6 +119,13 @@ struct SettingsView: View {
118119
"settings.explorer.confirm_before_delete", isOn: $confirmBeforeDelete)
119120
}
120121

122+
Section(
123+
content: {
124+
Toggle(
125+
"settings.language_service.enable", isOn: $languageServiceEnabled)
126+
}, header: { Text("settings.language_service") },
127+
footer: { Text("settings.language_service.notes") })
128+
121129
Section(header: Text(NSLocalizedString("Editor", comment: ""))) {
122130

123131
Toggle("settings.editor.vim.enabled", isOn: $editorOptions.value.vimEnabled)

0 commit comments

Comments
 (0)