Skip to content

Commit

Permalink
Handle Failure Situation (#21)
Browse files Browse the repository at this point in the history
This is an attempt to fixes forcedotcom/salesforcedx-vscode-slds#61.

Add checks to include only lightning components related files while creating the bundle

Add checks to shortcut operation if the request is cancelled.
  • Loading branch information
billyma authored Oct 26, 2020
1 parent f0646e4 commit 0bb7484
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

package com.salesforce.slds.lsp.diagnostics;

import com.google.common.collect.ImmutableList;
import com.salesforce.slds.lsp.models.DiagnosticResult;
import com.salesforce.slds.lsp.registries.DiagnosticResultRegistry;
import com.salesforce.slds.lsp.registries.TextDocumentRegistry;
Expand Down Expand Up @@ -87,7 +88,7 @@ public Bundle getBundle(TextDocumentItem entry) throws IOException {

File originalFile = new File(URI.create(entry.getUri()));

for (File f : originalFile.getParentFile().listFiles()) {
for (File f : originalFile.getParentFile().listFiles(Diagnoser::isLightningComponentFiles)) {
if (f.isFile() && f.equals(originalFile) == false) {
TextDocumentItem item = documentRegistry.get(f.toURI().toString());
if (item != null) {
Expand All @@ -101,4 +102,16 @@ public Bundle getBundle(TextDocumentItem entry) throws IOException {
return bundle;
}

private static boolean isLightningComponentFiles(File file) {
String fileName = file.getName();
int position = fileName.lastIndexOf('.');
if (position != -1) {
String fileExtension = fileName.substring(position);
return SUPPORTED_FILE_EXTENSIONS.contains(fileExtension.toLowerCase());
}

return false;
}

private static List<String> SUPPORTED_FILE_EXTENSIONS = ImmutableList.of(".html", ".js", ".css", ".cmp", ".app");
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.salesforce.slds.lsp.services;

import com.google.common.collect.Lists;
import com.salesforce.slds.lsp.codeactions.CodeActionConverter;
import com.salesforce.slds.lsp.diagnostics.Diagnoser;
import com.salesforce.slds.lsp.registries.TextDocumentRegistry;
import com.salesforce.slds.lsp.services.interfaces.StateService;
import com.salesforce.slds.shared.models.context.ContextKey;
import org.eclipse.lsp4j.*;
import org.eclipse.lsp4j.jsonrpc.CompletableFutures;
import org.eclipse.lsp4j.jsonrpc.messages.Either;
import org.eclipse.lsp4j.services.LanguageClient;
import org.eclipse.lsp4j.services.TextDocumentService;
Expand Down Expand Up @@ -41,9 +43,10 @@ public CompletableFuture<Either<List<CompletionItem>, CompletionList>> completio

@Override
public CompletableFuture<List<Either<Command, CodeAction>>> codeAction(CodeActionParams params) {
return stateService.isEnabled(ContextKey.GLOBAL) ?
CompletableFuture.completedFuture(codeActionConverter.convert(params)) :
CompletableFuture.completedFuture(new ArrayList<>());
return CompletableFutures.computeAsync(token ->
token.isCanceled() == false && stateService.isEnabled(ContextKey.GLOBAL) ?
codeActionConverter.convert(params) : Lists.newArrayList()
);
}

@Override
Expand Down

0 comments on commit 0bb7484

Please sign in to comment.