Skip to content

Commit 276013c

Browse files
committed
Add preference option for non-buffered file handling in Xtext editors.
see #1500
1 parent 2380ada commit 276013c

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/LanguageServerPreferencePage.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.eclipse.jface.action.Action;
2121
import org.eclipse.jface.dialogs.IDialogConstants;
2222
import org.eclipse.jface.layout.GridDataFactory;
23+
import org.eclipse.jface.preference.IPreferenceStore;
2324
import org.eclipse.jface.preference.PreferencePage;
2425
import org.eclipse.jface.viewers.ArrayContentProvider;
2526
import org.eclipse.jface.viewers.CheckboxTableViewer;
@@ -33,6 +34,7 @@
3334
import org.eclipse.jface.viewers.ViewerComparator;
3435
import org.eclipse.lsp4e.ContentTypeToLSPLaunchConfigEntry;
3536
import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition;
37+
import org.eclipse.lsp4e.LanguageServerPlugin;
3638
import org.eclipse.lsp4e.LanguageServersRegistry;
3739
import org.eclipse.lsp4e.enablement.EnablementTester;
3840
import org.eclipse.swt.SWT;
@@ -56,6 +58,7 @@ public class LanguageServerPreferencePage extends PreferencePage implements IWor
5658
private final LanguageServersRegistry registry = LanguageServersRegistry.getInstance();
5759
private List<ContentTypeToLSPLaunchConfigEntry> workingCopy = lateNonNull();
5860
private Button removeButton = lateNonNull();
61+
private Button resourceFallbackCheckbox = lateNonNull();
5962
private CheckboxTableViewer checkboxViewer = lateNonNull();
6063
private TableViewer viewer = lateNonNull();
6164
private final SelectionAdapter contentTypeLinkListener;
@@ -174,6 +177,15 @@ public void widgetSelected(SelectionEvent e) {
174177
viewer.addSelectionChangedListener(event -> updateButtons());
175178
viewer.setInput(workingCopy);
176179
updateButtons();
180+
181+
// non-buffered file handling for Xtext like editors.
182+
resourceFallbackCheckbox = new Button(res, SWT.CHECK);
183+
GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).span(2, 1).applyTo(resourceFallbackCheckbox);
184+
resourceFallbackCheckbox.setText(Messages.non_buffered_file_support);
185+
IPreferenceStore store = LanguageServerPlugin.getDefault().getPreferenceStore();
186+
boolean enabled = store.getBoolean("org.eclipse.lsp4e.resourceFallback.enabled"); //$NON-NLS-1$
187+
resourceFallbackCheckbox.setSelection(enabled);
188+
177189
return res;
178190
}
179191

@@ -296,6 +308,9 @@ public boolean performOk() {
296308
this.registry.setAssociations(this.workingCopy);
297309
final var enableDisableLSJob = new EnableDisableLSJob(changedDefinitions, getEditors());
298310
enableDisableLSJob.schedule();
311+
312+
IPreferenceStore store = LanguageServerPlugin.getDefault().getPreferenceStore();
313+
store.setValue("org.eclipse.lsp4e.resourceFallback.enabled", resourceFallbackCheckbox.getSelection()); //$NON-NLS-1$
299314
return super.performOk();
300315
}
301316

org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/Messages.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public final class Messages extends NLS {
106106
public static String TH_diplay_hint;
107107
public static String TH_cannot_find_file;
108108
public static String occurrences;
109+
public static String non_buffered_file_support;
109110

110111
static {
111112
NLS.initializeMessages("org.eclipse.lsp4e.ui.messages", Messages.class); //$NON-NLS-1$

org.eclipse.lsp4e/src/org/eclipse/lsp4e/ui/messages.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ PreferencesPage_restartWarning_restart=Restart Now
4444
PreferencesPage_enableOnTypeFormatting=Enable on type formatting
4545
NewContentTypeLSPLaunchDialog_associateContentType=Associate content-type...
4646
NewContentTypeLSPLaunchDialog_withLSPLaunch=...with Language Server Launch Configuration
47+
non_buffered_file_support=Enable non-buffered file handling (support for Xtext like editors)
4748

4849
codeActions_description=Code Actions from language server.
4950
codeActions_label=Code Actions

0 commit comments

Comments
 (0)