parent
50af6524b7
commit
31df15d159
|
|
@ -30,6 +30,7 @@ import org.eclipse.che.ide.api.extension.Extension;
|
|||
import org.eclipse.che.ide.api.keybinding.KeyBindingAgent;
|
||||
import org.eclipse.che.ide.api.keybinding.KeyBuilder;
|
||||
import org.eclipse.che.ide.dto.DtoFactory;
|
||||
import org.eclipse.che.ide.resource.Path;
|
||||
import org.eclipse.che.ide.util.browser.UserAgent;
|
||||
import org.eclipse.che.ide.util.input.KeyCodeMap;
|
||||
import org.eclipse.che.plugin.languageserver.ide.editor.LanguageServerEditorConfiguration;
|
||||
|
|
@ -86,13 +87,18 @@ public class LanguageServerExtension {
|
|||
@Inject
|
||||
protected void registerFileEventHandler(final EventBus eventBus,
|
||||
final TextDocumentServiceClient serviceClient,
|
||||
final DtoFactory dtoFactory) {
|
||||
final DtoFactory dtoFactory,
|
||||
final LanguageServerFileTypeRegister fileTypeRegister) {
|
||||
eventBus.addHandler(FileEvent.TYPE, new FileEvent.FileEventHandler() {
|
||||
|
||||
@Override
|
||||
public void onFileOperation(final FileEvent event) {
|
||||
Path location = event.getFile().getLocation();
|
||||
if (location.getFileExtension() == null || !fileTypeRegister.hasLSForExtension(location.getFileExtension())) {
|
||||
return;
|
||||
}
|
||||
final TextDocumentIdentifierDTO documentId = dtoFactory.createDto(TextDocumentIdentifierDTO.class);
|
||||
documentId.setUri(event.getFile().getPath());
|
||||
documentId.setUri(location.toString());
|
||||
switch (event.getOperationType()) {
|
||||
case OPEN:
|
||||
onOpen(event, dtoFactory, serviceClient);
|
||||
|
|
|
|||
|
|
@ -32,7 +32,9 @@ import org.eclipse.che.plugin.languageserver.ide.editor.LanguageServerEditorProv
|
|||
import org.eclipse.che.plugin.languageserver.ide.hover.HoverProvider;
|
||||
import org.eclipse.che.plugin.languageserver.ide.service.LanguageServerRegistryServiceClient;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.google.common.collect.Lists.newArrayList;
|
||||
|
||||
|
|
@ -49,8 +51,10 @@ public class LanguageServerFileTypeRegister implements WsAgentComponent {
|
|||
private final EditorRegistry editorRegistry;
|
||||
private final OrionContentTypeRegistrant contentTypeRegistrant;
|
||||
private final OrionHoverRegistrant orionHoverRegistrant;
|
||||
private final LanguageServerEditorProvider editorProvider;
|
||||
private final HoverProvider hoverProvider;
|
||||
private final LanguageServerEditorProvider editorProvider;
|
||||
private final HoverProvider hoverProvider;
|
||||
|
||||
private final Set<String> lsExtensions = new HashSet<>();
|
||||
|
||||
@Inject
|
||||
public LanguageServerFileTypeRegister(LanguageServerRegistryServiceClient serverLanguageRegistry,
|
||||
|
|
@ -85,6 +89,7 @@ public class LanguageServerFileTypeRegister implements WsAgentComponent {
|
|||
final FileType fileType = new FileType(resources.file(), ext);
|
||||
fileTypeRegistry.registerFileType(fileType);
|
||||
editorRegistry.registerDefaultEditor(fileType, editorProvider);
|
||||
lsExtensions.add(ext);
|
||||
}
|
||||
List<String> mimeTypes = lang.getMimeTypes();
|
||||
if (mimeTypes.isEmpty()) {
|
||||
|
|
@ -119,4 +124,8 @@ public class LanguageServerFileTypeRegister implements WsAgentComponent {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
public boolean hasLSForExtension(String ext) {
|
||||
return lsExtensions.contains(ext);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
<inherits name="io.typefox.lsapi.LsApi"/>
|
||||
<inherits name="org.eclipse.che.ide.editor.orion.OrionEditor"/>
|
||||
<inherits name="org.eclipse.che.api.promises.Promises"/>
|
||||
<inherits name="org.eclipse.che.api.languageserver.LanguageServer"/>
|
||||
|
||||
<source path="ide"/>
|
||||
</module>
|
||||
|
|
|
|||
Loading…
Reference in New Issue