Skip to content

Commit

Permalink
Tested and Enabled incremental document syncing.
Browse files Browse the repository at this point in the history
Fixes #133

Removed the incremental setting, it is default and you can't change it

Signed-off-by: Nikolas <[email protected]>
  • Loading branch information
NikolasKomonen committed Apr 24, 2019
1 parent 3168b2c commit 785554e
Show file tree
Hide file tree
Showing 13 changed files with 277 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
import org.eclipse.lsp4xml.settings.ServerSettings;
import org.eclipse.lsp4xml.settings.SharedSettings;
import org.eclipse.lsp4xml.settings.XMLGeneralClientSettings;
import org.eclipse.lsp4xml.settings.XMLExperimentalCapabilities;
import org.eclipse.lsp4xml.settings.XMLIncrementalSupportSettings;
import org.eclipse.lsp4xml.settings.XMLFormattingOptions;
import org.eclipse.lsp4xml.settings.capabilities.ServerCapabilitiesInitializer;
import org.eclipse.lsp4xml.settings.capabilities.XMLCapabilityManager;
Expand Down Expand Up @@ -121,7 +121,7 @@ public void initialized(InitializedParams params) {
*
* @param initializationOptionsSettings the XML settings
*/
public void updateSettings(Object initializationOptionsSettings) {
public synchronized void updateSettings(Object initializationOptionsSettings) {
if (initializationOptionsSettings == null) {
return;
}
Expand Down Expand Up @@ -150,15 +150,6 @@ public void updateSettings(Object initializationOptionsSettings) {
String workDir = serverSettings.getNormalizedWorkDir();
FilesUtils.setCachePathSetting(workDir);
}

// Experimental capabilities
XMLExperimentalCapabilities experimental = xmlClientSettings.getExperimental();
if (experimental != null) {
boolean incrementalSupport = experimental.getIncrementalSupport() != null
&& experimental.getIncrementalSupport().getEnabled() != null
&& experimental.getIncrementalSupport().getEnabled().booleanValue();
xmlTextDocumentService.setIncrementalSupport(incrementalSupport);
}
}
ContentModelSettings cmSettings = ContentModelSettings.getContentModelXMLSettings(initializationOptionsSettings);
if(cmSettings != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ private XMLLanguageService getXMLLanguageService() {
}

public void updateCompletionSettings(CompletionSettings newCompletion) {
sharedSettings.completionSettings.setAutoCloseTags(newCompletion.isAutoCloseTags());
sharedSettings.setCompletionSettings(newCompletion);
}

public boolean isIncrementalSupport() {
Expand All @@ -438,10 +438,6 @@ public XMLFormattingOptions getSharedFormattingSettings() {
return sharedSettings.formattingSettings;
}

public void setIncrementalSupport(boolean incrementalSupport) {
this.documents.setIncremental(incrementalSupport);
}

public XMLValidationSettings getValidationSettings() {

return sharedSettings.validationSettings;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ private ListLineTracker getLineTracker() {
* @param changes the text document changes.
*/
public void update(List<TextDocumentContentChangeEvent> changes) {
if (changes.size() < 1) {
if (changes.isEmpty()) {
// no changes, ignore it.
return;
}
Expand All @@ -157,7 +157,7 @@ public void update(List<TextDocumentContentChangeEvent> changes) {
setText(buffer.toString());
}
} catch (BadLocationException e) {
// Should never occurs.
// Should never occur.
}
} else {
// like vscode does, get the last changes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,13 @@
*/
public class TextDocuments implements ITextDocumentFactory {

private boolean incremental;
private final boolean incremental;

private final Map<String, TextDocument> documents;

public TextDocuments() {
documents = new HashMap<>();
}

/**
* Set the incremental support.
*
* @param incremental
*/
public void setIncremental(boolean incremental) {
this.incremental = incremental;
incremental = true; // Quick fix to set incremental
documents.values().forEach(document -> document.setIncremental(incremental));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

package org.eclipse.lsp4xml.dom;

import java.util.ArrayList;

/**
* DTDNotationDecl
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
* XML experimental capabilities.
*
*/
public class XMLExperimentalCapabilities {
public class XMLExperimentalSettings {

private XMLIncrementalSupportCapabilities incrementalSupport;
private XMLIncrementalSupportSettings incrementalSupport;

public void setIncrementalSupport(XMLIncrementalSupportCapabilities incrementalSupport) {
public void setIncrementalSupport(XMLIncrementalSupportSettings incrementalSupport) {
this.incrementalSupport = incrementalSupport;
}

public XMLIncrementalSupportCapabilities getIncrementalSupport() {
public XMLIncrementalSupportSettings getIncrementalSupport() {
return incrementalSupport;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ public class XMLGeneralClientSettings {
private LogsSettings logs;

private XMLFormattingOptions format;

private XMLExperimentalCapabilities experimental;

private CompletionSettings completion;

Expand All @@ -59,10 +57,6 @@ public void setFormat(XMLFormattingOptions format) {
public XMLFormattingOptions getFormat() {
return format;
}

public XMLExperimentalCapabilities getExperimental() {
return experimental;
}

/**
* Set completion settings
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,14 @@
* XML experimental incremental support capabilities.
*
*/
public class XMLIncrementalSupportCapabilities {
public class XMLIncrementalSupportSettings {

private Boolean enabled;

public Boolean getEnabled() {
if(enabled == null) {
enabled = true; // default on
}
return enabled;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,6 @@ private ServerCapabilitiesConstants() {
public static final String WORKSPACE_WATCHED_FILES_ID = UUID.randomUUID().toString();

public static final CompletionOptions DEFAULT_COMPLETION_OPTIONS = new CompletionOptions(false, Arrays.asList(".", ":", "<", "\"", "=", "/", "?", "\'"));
public static final TextDocumentSyncKind DEFAULT_SYNC_OPTION = TextDocumentSyncKind.Full;
public static final TextDocumentSyncKind DEFAULT_SYNC_OPTION = TextDocumentSyncKind.Incremental;
public static final DocumentLinkOptions DEFAULT_LINK_OPTIONS = new DocumentLinkOptions(true);
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,13 @@ public static ServerCapabilities getNonDynamicServerCapabilities(ClientCapabilit
boolean isIncremental) {
ServerCapabilities serverCapabilities = new ServerCapabilities();

serverCapabilities.setTextDocumentSync(DEFAULT_SYNC_OPTION);

serverCapabilities
.setTextDocumentSync(isIncremental ? TextDocumentSyncKind.Incremental : TextDocumentSyncKind.Full);
serverCapabilities.setTextDocumentSync(isIncremental ? TextDocumentSyncKind.Incremental : TextDocumentSyncKind.Full);

serverCapabilities.setDocumentSymbolProvider(!clientCapabilities.isDocumentSymbolDynamicRegistered());
serverCapabilities.setDocumentHighlightProvider(!clientCapabilities.isDocumentHighlightDynamicRegistered());
serverCapabilities.setCodeActionProvider(!clientCapabilities.isCodeActionDynamicRegistered());
serverCapabilities
.setDocumentFormattingProvider(!clientCapabilities.isFormattingDynamicRegistrationSupported());
serverCapabilities.setDocumentRangeFormattingProvider(
!clientCapabilities.isRangeFormattingDynamicRegistrationSupported());
serverCapabilities.setDocumentFormattingProvider(!clientCapabilities.isFormattingDynamicRegistrationSupported());
serverCapabilities.setDocumentRangeFormattingProvider(!clientCapabilities.isRangeFormattingDynamicRegistrationSupported());
serverCapabilities.setHoverProvider(!clientCapabilities.isHoverDynamicRegistered());
serverCapabilities.setRenameProvider(!clientCapabilities.isRenameDynamicRegistrationSupported());
serverCapabilities.setFoldingRangeProvider(!clientCapabilities.isRangeFoldingDynamicRegistrationSupported());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import static org.eclipse.lsp4xml.settings.capabilities.ServerCapabilitiesConstants.FOLDING_RANGE_ID;
import static org.eclipse.lsp4xml.settings.capabilities.ServerCapabilitiesConstants.FORMATTING_ID;
import static org.eclipse.lsp4xml.settings.capabilities.ServerCapabilitiesConstants.FORMATTING_RANGE_ID;
import static org.eclipse.lsp4xml.settings.capabilities.ServerCapabilitiesConstants.SYNC_ID;
import static org.eclipse.lsp4xml.settings.capabilities.ServerCapabilitiesConstants.DEFAULT_SYNC_OPTION;
import static org.eclipse.lsp4xml.settings.capabilities.ServerCapabilitiesConstants.HOVER_ID;
import static org.eclipse.lsp4xml.settings.capabilities.ServerCapabilitiesConstants.LINK_ID;
import static org.eclipse.lsp4xml.settings.capabilities.ServerCapabilitiesConstants.RENAME_ID;
Expand All @@ -40,11 +42,13 @@
import org.eclipse.lsp4j.ClientCapabilities;
import org.eclipse.lsp4j.Registration;
import org.eclipse.lsp4j.RegistrationParams;
import org.eclipse.lsp4j.TextDocumentSyncKind;
import org.eclipse.lsp4j.Unregistration;
import org.eclipse.lsp4j.UnregistrationParams;
import org.eclipse.lsp4j.services.LanguageClient;
import org.eclipse.lsp4xml.XMLTextDocumentService;
import org.eclipse.lsp4xml.settings.XMLFormattingOptions;
import org.eclipse.lsp4xml.settings.XMLIncrementalSupportSettings;

/**
* Manager for capability related tasks
Expand Down Expand Up @@ -147,8 +151,10 @@ public void initializeCapabilities() {
}

/**
* Registers all capabilities that this server can support client side
* preferences to turn on/off
* Registers(indicates the servers ability to support the service) all capabilities that have the ability to be turned
* on/off on the client side through preferences.
*
* In the case the preference is set to off/false this server will tell the cliet it does not support this capability.
*
* If a capability is not dynamic, it's handled by
* {@link ServerCapabilitiesInitializer}
Expand Down
Loading

0 comments on commit 785554e

Please sign in to comment.