Skip to content

Commit 9867c38

Browse files
authored
Merge pull request #21 from admvx/bug-fixes
Update dependencies and fix superclass members completion bug
2 parents 1fac041 + 721cda8 commit 9867c38

File tree

13 files changed

+57
-35
lines changed

13 files changed

+57
-35
lines changed

.eslintignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules/**
2+
client/node_modules/**
3+
client/out/**
4+
server/node_modules/**
5+
server/out/**

.eslintrc.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"parser": "@typescript-eslint/parser",
3+
"parserOptions": {
4+
"ecmaVersion": 2019,
5+
"sourceType": "module"
6+
},
7+
"env": {
8+
"node": true
9+
},
10+
"rules": {
11+
"semi": "error",
12+
"no-extra-semi": "warn",
13+
"curly": "warn",
14+
"quotes": [ "error", "single", { "allowTemplateLiterals": true } ],
15+
"eqeqeq": "error",
16+
"indent": [ "warn", "tab", { "SwitchCase": 1 } ]
17+
}
18+
}

.vscode/launch.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"preLaunchTask": {
1313
"type": "npm",
1414
"script": "watch"
15-
}
15+
},
16+
"sourceMaps": true
1617
},
1718
{
1819
"type": "node",
@@ -21,6 +22,7 @@
2122
"port": 6009,
2223
"restart": true,
2324
"outFiles": ["${workspaceRoot}/server/out/**/*.js"]
25+
"sourceMaps": true
2426
}
2527
],
2628
"compounds": [

client/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
"license": "MIT",
66
"version": "1.0.0",
77
"engines": {
8-
"vscode": "^1.41.0"
8+
"vscode": "^1.45.0"
99
},
1010
"dependencies": {
11-
"vscode-languageclient": "5.3.0-next.9"
11+
"vscode-languageclient": "^6.1.3"
1212
},
1313
"devDependencies": {
14-
"@types/vscode": "^1.41.0"
14+
"@types/vscode": "^1.45.0"
1515
}
1616
}

client/tsconfig.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"compilerOptions": {
33
"module": "commonjs",
4-
"target": "es6",
4+
"target": "es2019",
55
"outDir": "out",
66
"rootDir": "src",
7-
"lib": ["es6"],
7+
"lib": ["ES2019"],
88
"sourceMap": true,
99
"skipLibCheck": true
1010
},

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@
5353
"clear-deps": "rm -f package-lock.json && rm -rf node_modules && rm -f client/package-lock.json && rm -rf client/node_modules && rm -f server/package-lock.json && rm -rf server/node_modules"
5454
},
5555
"devDependencies": {
56-
"@types/node": "^13.0.0",
56+
"@types/node": "^13.13.5",
5757
"merge-options": "^2.0.0",
58-
"ts-loader": "^6.2.1",
59-
"tslint": "^5.20.1",
60-
"typescript": "^3.7.4",
61-
"webpack": "^4.41.4",
62-
"webpack-cli": "^3.3.10"
58+
"ts-loader": "^7.0.3",
59+
"eslint": "^7.0.0",
60+
"typescript": "^3.8.3",
61+
"webpack": "^4.43.0",
62+
"webpack-cli": "^3.3.11"
6363
}
6464
}

server/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@
1111
"parse-intrinsics": "ts-node ./src/scripts/parse-intrinsics.ts > ./src/intrinsic-pickles.ts"
1212
},
1313
"devDependencies": {
14-
"@types/fs-extra": "^8.0.1",
15-
"fs-extra": "8.1.0",
14+
"@types/fs-extra": "^8.1.0",
15+
"fs-extra": "^9.0.0",
1616
"monaco-textmate": "^3.0.1",
1717
"onigasm": "^2.2.4",
18-
"vscode-languageserver": "5.3.0-next.10",
18+
"vscode-languageserver": "^6.1.1",
19+
"vscode-languageserver-textdocument": "^1.0.1",
1920
"vscode-uri": "^2.1.1"
2021
}
2122
}

server/src/action-context.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export class ActionContext {
6363
}
6464
try {
6565
isThisOrSuper = symbolName === 'this' || symbolName === 'super';
66-
member = await nextClass.getMemberByName(symbolName, nextVisibility, i === 0 ? lineIndex : null);
66+
[member, nextClass] = await nextClass.getMemberByName(symbolName, nextVisibility, i === 0 ? lineIndex : null);
6767
if (member.isConstructor) throw new Error('Do not want constructor');
6868
nextVisibility = isThisOrSuper ? VisibilityFilter.ALL_INSTANCE : VisibilityFilter.PUBLIC_INSTANCE;
6969
returnType = member.returnType;
@@ -73,7 +73,8 @@ export class ActionContext {
7373
} catch {
7474
if (i === 0) {
7575
try {
76-
returnType = (await this._globalClass.getMemberByName(symbolName, VisibilityFilter.EVERYTHING)).returnType;
76+
[member, nextClass] = await this._globalClass.getMemberByName(symbolName, VisibilityFilter.EVERYTHING);
77+
returnType = member.returnType;
7778
nextVisibility = VisibilityFilter.PUBLIC_INSTANCE;
7879
} catch {
7980
returnType = symbolName;
@@ -351,7 +352,7 @@ export class ActionContext {
351352
symbolCalled = symbolChain[i].called;
352353
isThisOrSuper = symbolName === 'this' || symbolName === 'super';
353354
try {
354-
member = await nextClass.getMemberByName(symbolName, nextVisibility, i === 0 ? lineIndex : null);
355+
[member, nextClass] = await nextClass.getMemberByName(symbolName, nextVisibility, i === 0 ? lineIndex : null);
355356
if (member.isConstructor) throw new Error('Do not want constructor');
356357
nextVisibility = isThisOrSuper ? VisibilityFilter.ALL_INSTANCE : VisibilityFilter.PUBLIC_INSTANCE;
357358
returnType = member.returnType;
@@ -364,7 +365,7 @@ export class ActionContext {
364365
} catch {
365366
if (i === 0) {
366367
try {
367-
member = await this._globalClass.getMemberByName(symbolName, VisibilityFilter.EVERYTHING);
368+
[member, nextClass] = await this._globalClass.getMemberByName(symbolName, VisibilityFilter.EVERYTHING);
368369
nextVisibility = VisibilityFilter.PUBLIC_INSTANCE;
369370
returnType = member.returnType;
370371
if (i === l - 1) {

server/src/action-elements.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,13 @@ export class ActionClass {
8282
}));
8383
}
8484

85-
public getMemberByName(memberName: string, filter: VisibilityFilter = VisibilityFilter.PUBLIC_INSTANCE, lineNumber: number = null): PromiseLike<ActionParameter> {
85+
public getMemberByName(memberName: string, filter: VisibilityFilter = VisibilityFilter.PUBLIC_INSTANCE, lineNumber: number = null): PromiseLike<[ActionParameter, ActionClass]> {
8686
if (lineNumber !== null) {
8787
let method = this.getMethodAt(lineNumber);
8888
if (method) {
8989
for (let i = 0, l = method.scopedMembers.length; i < l; i++) {
9090
ActionConfig.LOG_LEVEL !== LogLevel.NONE && logIt({ level: LogLevel.WARNING, message: `Comparing ${method.scopedMembers[i].name} to ${memberName}` });
91-
if (memberName === method.scopedMembers[i].name) return Promise.resolve(method.scopedMembers[i]);
91+
if (memberName === method.scopedMembers[i].name) return Promise.resolve([method.scopedMembers[i], this]);
9292
}
9393
}
9494
}
@@ -110,7 +110,7 @@ export class ActionClass {
110110
break;
111111
}
112112
if (lookup[memberName]) {
113-
return Promise.resolve(lookup[memberName]);
113+
return Promise.resolve([lookup[memberName], this]);
114114
} else if (this.superClass) {
115115
return ActionContext.getClassByFullType(this.importMap[this.superClass] || this.superClass, this.baseUri, false)
116116
.then(parsedSuperClass => parsedSuperClass && parsedSuperClass.getMemberByName(memberName, filter));

server/src/server.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { createConnection, TextDocuments, ProposedFeatures } from 'vscode-languageserver';
1+
import { createConnection, ProposedFeatures, TextDocuments, TextDocumentSyncKind } from 'vscode-languageserver';
2+
import { TextDocument } from 'vscode-languageserver-textdocument';
23
import { ActionContext } from './action-context';
34
import { ActionParser } from './action-parser';
45
import { setConsole, logIt, LogLevel, ActionConfig } from './config';
@@ -7,7 +8,7 @@ import { pickles } from './intrinsic-pickles';
78
ActionContext.loadPickles(pickles);
89

910
let connection = createConnection(ProposedFeatures.all); //Create the LSP connection
10-
let documents = new TextDocuments(); //Create a simple text document manager (only supports full document sync)
11+
let documents: TextDocuments<TextDocument> = new TextDocuments(TextDocument); //Create a simple text document manager
1112
setConsole(connection.console); //Forward logs into the client's console
1213
documents.listen(connection); //Make the text document manager listen on the connection for open, change and close text document events
1314

@@ -17,7 +18,7 @@ connection.onInitialize((params) => {
1718
ActionConfig.LOG_LEVEL !== LogLevel.NONE && logIt({ level: LogLevel.INFO, message: `[Server(${process.pid}) ${workspaceFolder}] Started and initialize received.` });
1819
return {
1920
capabilities: {
20-
textDocumentSync: documents.syncKind,
21+
textDocumentSync: TextDocumentSyncKind.Incremental,
2122
completionProvider: { resolveProvider: false, triggerCharacters: ['.'] },
2223
signatureHelpProvider: { triggerCharacters: ['(', ','] },
2324
hoverProvider: true,

0 commit comments

Comments
 (0)