Various LSP or LSP tangental changes
This commit is contained in:
@@ -13,59 +13,73 @@
|
|||||||
"alt-socket": "ws://127.0.0.1:9999/?name=java-language-server",
|
"alt-socket": "ws://127.0.0.1:9999/?name=java-language-server",
|
||||||
"initialization-options": {
|
"initialization-options": {
|
||||||
"bundles": [
|
"bundles": [
|
||||||
"intellicode-core.jar"
|
|
||||||
],
|
],
|
||||||
"workspaceFolders": [
|
"workspaceFolders": [
|
||||||
"file://{workspace.folder}"
|
"file://{workspace.folder}"
|
||||||
],
|
],
|
||||||
"extendedClientCapabilities": {
|
"extendedClientCapabilities": {
|
||||||
"classFileContentsSupport": true,
|
"classFileContentsSupport": true,
|
||||||
"executeClientCommandSupport": true
|
"executeClientCommandSupport": false
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"java": {
|
"java": {
|
||||||
"home": "/usr/lib/jvm/java-17-openjdk",
|
|
||||||
"autobuild": {
|
"autobuild": {
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
"completion": {
|
"jdt": {
|
||||||
"enabled": true,
|
"ls": {
|
||||||
"importOrder": [
|
"javac": {
|
||||||
"java",
|
"enabled": true
|
||||||
"javax",
|
},
|
||||||
"org",
|
"java": {
|
||||||
"com"
|
"home": "{user.home}/Portable_Apps/sdks/javasdk/jdk-22.0.2"
|
||||||
]
|
},
|
||||||
|
"lombokSupport": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"protobufSupport":{
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"androidSupport": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"configuration": {
|
"configuration": {
|
||||||
"updateBuildConfiguration": "automatic",
|
"updateBuildConfiguration": "automatic",
|
||||||
"maven": {
|
"maven": {
|
||||||
"userSettings": "{user.home}/.config/jdtls/settings.xml",
|
"userSettings": "{user.home}/.config/lsps/jdtls/settings.xml",
|
||||||
"globalSettings": "{user.home}/.config/jdtls/settings.xml"
|
"globalSettings": "{user.home}/.config/lsps/jdtls/settings.xml"
|
||||||
},
|
},
|
||||||
"runtimes": [
|
"runtimes": [
|
||||||
{
|
{
|
||||||
"name": "JavaJDK-17",
|
"name": "JavaSE-17",
|
||||||
"path": "/usr/lib/jvm/java-17-openjdk",
|
"path": "/usr/lib/jvm/java-17-openjdk",
|
||||||
"javadoc": "https://docs.oracle.com/en/java/javase/17/docs/api/",
|
"javadoc": "https://docs.oracle.com/en/java/javase/17/docs/api/",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "JavaSE-22",
|
||||||
|
"path": "{user.home}/Portable_Apps/sdks/javasdk/jdk-22.0.2",
|
||||||
|
"javadoc": "https://docs.oracle.com/en/java/javase/22/docs/api/",
|
||||||
"default": true
|
"default": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"classPath": [
|
"classPath": [
|
||||||
"{user.home}/.config/jdtls/m2/repository/**/*-sources.jar",
|
"{user.home}/.config/lsps/jdtls/m2/repository/**/*-sources.jar",
|
||||||
"lib/**/*-sources.jar"
|
"lib/**/*-sources.jar"
|
||||||
],
|
],
|
||||||
"docPath": [
|
"docPath": [
|
||||||
"{user.home}/.config/jdtls/m2/repository/**/*-javadoc.jar",
|
"{user.home}/.config/lsps/jdtls/m2/repository/**/*-javadoc.jar",
|
||||||
"lib/**/*-javadoc.jar"
|
"lib/**/*-javadoc.jar"
|
||||||
],
|
],
|
||||||
"project": {
|
"project": {
|
||||||
"encoding": "ignore",
|
"encoding": "ignore",
|
||||||
"outputPath": "bin",
|
"outputPath": "bin",
|
||||||
"referencedLibraries": [
|
"referencedLibraries": [
|
||||||
"lib/**/*.jar",
|
"{user.home}/.config/lsps/jdtls/m2/repository/**/*.jar",
|
||||||
"{user.home}/.config/jdtls/m2/repository/**/*.jar"
|
"lib/**/*.jar"
|
||||||
],
|
],
|
||||||
"importOnFirstTimeStartup": "automatic",
|
"importOnFirstTimeStartup": "automatic",
|
||||||
"importHint": true,
|
"importHint": true,
|
||||||
@@ -75,7 +89,7 @@
|
|||||||
],
|
],
|
||||||
"sourcePaths": [
|
"sourcePaths": [
|
||||||
"src",
|
"src",
|
||||||
"{user.home}/.config/jdtls/m2/repository/**/*.jar"
|
"{user.home}/.config/lsps/jdtls/m2/repository/**/*.jar"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"sources": {
|
"sources": {
|
||||||
@@ -105,9 +119,9 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
"version": "",
|
"version": "",
|
||||||
"home": "abs(static/gradle-7.3.3)",
|
"home": "{user.home}/Portable_Apps/sdks/gradle/gradle-9.0.0",
|
||||||
"java": {
|
"java": {
|
||||||
"home": "abs(static/launch_jres/17.0.6-linux-x86_64)"
|
"home": "{user.home}/Portable_Apps/sdks/javasdk/jdk-22.0.2"
|
||||||
},
|
},
|
||||||
"offline": {
|
"offline": {
|
||||||
"enabled": false
|
"enabled": false
|
||||||
@@ -133,13 +147,54 @@
|
|||||||
"downloadSources": true,
|
"downloadSources": true,
|
||||||
"updateSnapshots": true
|
"updateSnapshots": true
|
||||||
},
|
},
|
||||||
"silentNotification": false,
|
"silentNotification": true,
|
||||||
|
"contentProvider": {
|
||||||
|
"preferred": "fernflower"
|
||||||
|
},
|
||||||
"signatureHelp": {
|
"signatureHelp": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"description": {
|
"description": {
|
||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"completion": {
|
||||||
|
"enabled": true,
|
||||||
|
"matchCase": "firstletter",
|
||||||
|
"maxResults": 25,
|
||||||
|
"guessMethodArguments": true,
|
||||||
|
"lazyResolveTextEdit": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"postfix": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"favoriteStaticMembers": [
|
||||||
|
"org.junit.Assert.*",
|
||||||
|
"org.junit.Assume.*",
|
||||||
|
"org.junit.jupiter.api.Assertions.*",
|
||||||
|
"org.junit.jupiter.api.Assumptions.*",
|
||||||
|
"org.junit.jupiter.api.DynamicContainer.*",
|
||||||
|
"org.junit.jupiter.api.DynamicTest.*"
|
||||||
|
],
|
||||||
|
"importOrder": [
|
||||||
|
"#",
|
||||||
|
"java",
|
||||||
|
"javax",
|
||||||
|
"org",
|
||||||
|
"com"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"references": {
|
||||||
|
"includeAccessors": true,
|
||||||
|
"includeDecompiledSources": true
|
||||||
|
},
|
||||||
|
"codeGeneration": {
|
||||||
|
"toString": {
|
||||||
|
"template": "${object.className}{${member.name()}=${member.value}, ${otherMembers}}"
|
||||||
|
},
|
||||||
|
"insertionLocation": "afterCursor",
|
||||||
|
"useBlocks": true
|
||||||
|
},
|
||||||
"implementationsCodeLens": {
|
"implementationsCodeLens": {
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
@@ -165,51 +220,36 @@
|
|||||||
"socket": "ws://127.0.0.1:9999/python",
|
"socket": "ws://127.0.0.1:9999/python",
|
||||||
"socket-two": "ws://127.0.0.1:9999/?name=pylsp",
|
"socket-two": "ws://127.0.0.1:9999/?name=pylsp",
|
||||||
"initialization-options": {
|
"initialization-options": {
|
||||||
"pyls": {
|
|
||||||
"plugins": {
|
|
||||||
"pycodestyle": {
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
"pydocstyle": {
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
"pyflakes": {
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
"pylint": {
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
"mccabe": {
|
|
||||||
"enabled": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pylsp": {
|
"pylsp": {
|
||||||
"plugins": {
|
"rope": {
|
||||||
"pycodestyle": {
|
"ropeFolder": "{user.home}/.config/lsps/ropeproject"
|
||||||
"enabled": false
|
|
||||||
},
|
},
|
||||||
"pydocstyle": {
|
"plugins": {
|
||||||
|
"ruff": {
|
||||||
|
"enabled": true,
|
||||||
|
"extendSelect": ["I"],
|
||||||
|
"lineLength": 80
|
||||||
|
},
|
||||||
|
"pycodestyle": {
|
||||||
"enabled": false
|
"enabled": false
|
||||||
},
|
},
|
||||||
"pyflakes": {
|
"pyflakes": {
|
||||||
"enabled": false
|
"enabled": false
|
||||||
},
|
},
|
||||||
"pylint": {
|
"pylint": {
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
"mccabe": {
|
"mccabe": {
|
||||||
"enabled": false
|
"enabled": false
|
||||||
},
|
},
|
||||||
"ruff": true,
|
|
||||||
"pylsp_rope": {
|
"pylsp_rope": {
|
||||||
"rename": true
|
"rename": false
|
||||||
},
|
},
|
||||||
"rope_rename": {
|
"rope_rename": {
|
||||||
"enabled": true
|
"enabled": false
|
||||||
},
|
},
|
||||||
"rope_autoimport": {
|
"rope_autoimport": {
|
||||||
"enabled": true
|
"enabled": false
|
||||||
},
|
},
|
||||||
"rope_completion": {
|
"rope_completion": {
|
||||||
"enabled": false,
|
"enabled": false,
|
||||||
@@ -259,7 +299,13 @@
|
|||||||
],
|
],
|
||||||
"environmentPath": "{user.home}/Portable_Apps/py-venvs/gtk-apps-venv/venv/bin/python",
|
"environmentPath": "{user.home}/Portable_Apps/py-venvs/gtk-apps-venv/venv/bin/python",
|
||||||
"symbols": {
|
"symbols": {
|
||||||
"ignoreFolders": [".nox", ".tox", ".venv", "__pycache__", "venv"],
|
"ignoreFolders": [
|
||||||
|
".nox",
|
||||||
|
".tox",
|
||||||
|
".venv",
|
||||||
|
"__pycache__",
|
||||||
|
"venv"
|
||||||
|
],
|
||||||
"maxSymbols": 20
|
"maxSymbols": 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,15 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { ReplaySubject, Observable } from 'rxjs';
|
import { ReplaySubject, Observable } from 'rxjs';
|
||||||
|
|
||||||
|
import { CompletionProvider } from "ace-builds/src-min-noconflict/ace";
|
||||||
|
import { CommandBarTooltip } from "ace-builds/src-min-noconflict/ext-command_bar";
|
||||||
|
import { InlineAutocomplete } from "ace-builds/src-min-noconflict/ext-inline_autocomplete";
|
||||||
|
|
||||||
import { AceLanguageClient, LanguageClientConfig } from 'ace-linters/build/ace-language-client';
|
import { AceLanguageClient, LanguageClientConfig } from 'ace-linters/build/ace-language-client';
|
||||||
import { LanguageProvider } from "ace-linters";
|
import { LanguageProvider } from "ace-linters";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import { ServiceMessage } from '../../../types/service-message.type';
|
import { ServiceMessage } from '../../../types/service-message.type';
|
||||||
|
|
||||||
|
|
||||||
@@ -61,13 +67,13 @@ export class LspManagerService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private getInitializationOptions(mode: string, configData: {}): {} {
|
private getInitializationOptions(mode: string, configData: {}): {} {
|
||||||
let _initializationOptions = {};
|
let initializationOptions = {};
|
||||||
|
|
||||||
if ( Object.keys(configData).length !== 0 && configData[mode] ) {
|
if ( Object.keys(configData).length !== 0 && configData[mode] ) {
|
||||||
_initializationOptions = configData[mode]["initialization-options"];
|
initializationOptions = configData[mode]["initialization-options"];
|
||||||
}
|
}
|
||||||
|
|
||||||
return _initializationOptions;
|
return initializationOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public createLanguageProviderWithClientServer(mode: string): LanguageProvider {
|
public createLanguageProviderWithClientServer(mode: string): LanguageProvider {
|
||||||
@@ -75,15 +81,15 @@ export class LspManagerService {
|
|||||||
let servers: LanguageClientConfig[] = [];
|
let servers: LanguageClientConfig[] = [];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let configData = this.parseAndReturnLSPConfigData();
|
let lspConfigData = this.parseAndReturnLSPConfigData();
|
||||||
let _initializationOptions = this.getInitializationOptions(mode, configData);
|
let initializationOptions = this.getInitializationOptions(mode, lspConfigData);
|
||||||
servers = [
|
servers = [
|
||||||
{
|
{
|
||||||
module: () => import("ace-linters/build/language-client"),
|
module: () => import("ace-linters/build/language-client"),
|
||||||
modes: mode,
|
modes: mode,
|
||||||
type: "socket",
|
type: "socket",
|
||||||
socket: new WebSocket( configData[mode]["socket"] ),
|
socket: new WebSocket( lspConfigData[mode]["socket"] ),
|
||||||
initializationOptions: _initializationOptions
|
initializationOptions: initializationOptions
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
} catch(error) {
|
} catch(error) {
|
||||||
@@ -97,14 +103,51 @@ export class LspManagerService {
|
|||||||
this.languageProviders[mode] = AceLanguageClient.for(
|
this.languageProviders[mode] = AceLanguageClient.for(
|
||||||
servers,
|
servers,
|
||||||
{
|
{
|
||||||
|
workspacePath: this.workspaceFolder,
|
||||||
|
functionality: {
|
||||||
|
hover: true,
|
||||||
|
completion: {
|
||||||
|
overwriteCompleters: true,
|
||||||
|
lspCompleterOptions: {
|
||||||
|
triggerCharacters: {
|
||||||
|
add: [
|
||||||
|
" ",
|
||||||
|
".",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// inlineCompletion: {
|
||||||
|
// overwriteCompleters: true
|
||||||
|
// },
|
||||||
|
completionResolve: true,
|
||||||
|
format: true,
|
||||||
|
documentHighlights: true,
|
||||||
|
signatureHelp: true,
|
||||||
|
semanticTokens: true,
|
||||||
|
codeActions: true
|
||||||
|
},
|
||||||
|
// aceComponents: {
|
||||||
|
// InlineAutocomplete,
|
||||||
|
// CommandBarTooltip,
|
||||||
|
// CompletionProvider
|
||||||
|
// },
|
||||||
manualSessionControl: true
|
manualSessionControl: true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
this.languageProviders[mode].changeWorkspaceFolder(this.workspaceFolder);
|
|
||||||
return this.languageProviders[mode];
|
return this.languageProviders[mode];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public closeLanguageProviderWithClientServer(mode: string): LanguageProvider {
|
||||||
|
if ( !this.languageProviders[mode] ) return;
|
||||||
|
|
||||||
|
let connection = this.languageProviders[mode];
|
||||||
|
delete this.languageProviders[mode];
|
||||||
|
connection.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
private getLanguageProviderWithWebWorker(): LanguageProvider {
|
private getLanguageProviderWithWebWorker(): LanguageProvider {
|
||||||
let worker = new Worker(new URL('./webworker.js', import.meta.url));
|
let worker = new Worker(new URL('./webworker.js', import.meta.url));
|
||||||
return LanguageProvider.create(worker);
|
return LanguageProvider.create(worker);
|
||||||
|
@@ -37,6 +37,7 @@
|
|||||||
<div class="row mt-2 md-2">
|
<div class="row mt-2 md-2">
|
||||||
<div class="col col-sm" [hidden]="!lspManagerService.workspaceFolder">
|
<div class="col col-sm" [hidden]="!lspManagerService.workspaceFolder">
|
||||||
<button class="btn btn-sm btn-dark" (click)="createLanguageClient()">Create Language Client</button>
|
<button class="btn btn-sm btn-dark" (click)="createLanguageClient()">Create Language Client</button>
|
||||||
|
<button class="btn btn-sm btn-dark" (click)="closeLanguageClient()">Close Language Client</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
@@ -99,6 +99,11 @@ export class LspManagerComponent {
|
|||||||
this.lspManagerService.createLanguageProviderWithClientServer(mode);
|
this.lspManagerService.createLanguageProviderWithClientServer(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public closeLanguageClient() {
|
||||||
|
let mode = this.lspManagerService.getMode(this.editor.session);
|
||||||
|
this.lspManagerService.closeLanguageProviderWithClientServer(mode);
|
||||||
|
}
|
||||||
|
|
||||||
public registerEditorToLanguageClient() {
|
public registerEditorToLanguageClient() {
|
||||||
this.lspManagerService.registerEditorToLSPClient(this.editor);
|
this.lspManagerService.registerEditorToLSPClient(this.editor);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user