Skip to content

Commit c9f523b

Browse files
committed
optimisations to jedi (pass source if changes)
1 parent d4a238f commit c9f523b

6 files changed

Lines changed: 21 additions & 17 deletions

File tree

pythonFiles/completion.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,12 +303,12 @@ def _process_request(self, request):
303303
if lookup == 'names':
304304
return self._write_response(self._serialize_definitions(
305305
jedi.api.names(
306-
source=request['source'],
306+
source=request.get('source', None),
307307
path=request.get('path', '')),
308308
request['id']))
309309

310310
script = jedi.api.Script(
311-
source=request['source'], line=request['line'] + 1,
311+
source=request.get('source', None), line=request['line'] + 1,
312312
column=request['column'], path=request.get('path', ''))
313313

314314
if lookup == 'definitions':

src/client/providers/definitionProvider.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,18 @@ export class PythonDefinitionProvider implements vscode.DefinitionProvider {
3030
return resolve();
3131
}
3232

33-
var source = document.getText();
3433
var range = document.getWordRangeAtPosition(position);
3534
var columnIndex = range.isEmpty ? position.character : range.end.character;
3635
var cmd: proxy.ICommand<proxy.IDefinitionResult> = {
3736
telemetryEvent: telemetryContracts.IDE.Definition,
3837
command: proxy.CommandType.Definitions,
3938
fileName: filename,
4039
columnIndex: columnIndex,
41-
lineIndex: position.line,
42-
source: source
40+
lineIndex: position.line
4341
};
44-
42+
if (document.isDirty){
43+
cmd.source = document.getText();
44+
}
4545
this.jediProxyHandler.sendCommand(cmd, resolve, token);
4646
});
4747
}

src/client/providers/hoverProvider.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export class PythonHoverProvider implements vscode.HoverProvider {
3030
return resolve();
3131
}
3232

33-
var source = document.getText();
3433
var range = document.getWordRangeAtPosition(position);
3534
if (range == undefined || range.isEmpty) {
3635
return resolve();
@@ -41,10 +40,11 @@ export class PythonHoverProvider implements vscode.HoverProvider {
4140
command: proxy.CommandType.Completions,
4241
fileName: filename,
4342
columnIndex: columnIndex,
44-
lineIndex: position.line,
45-
source: source
43+
lineIndex: position.line
4644
};
47-
45+
if (document.isDirty){
46+
cmd.source = document.getText();
47+
}
4848
this.jediProxyHandler.sendCommand(cmd, resolve, token);
4949
});
5050
}

src/client/providers/jediProxy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ function getConfig() {
484484
export interface ICommand<T extends ICommandResult> {
485485
telemetryEvent: string;
486486
command: CommandType;
487-
source: string;
487+
source?: string;
488488
fileName: string;
489489
lineIndex: number;
490490
columnIndex: number;

src/client/providers/referenceProvider.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,19 @@ export class PythonReferenceProvider implements vscode.ReferenceProvider {
3535
return resolve();
3636
}
3737

38-
var source = document.getText();
3938
var range = document.getWordRangeAtPosition(position);
4039
var columnIndex = range.isEmpty ? position.character : range.end.character;
4140
var cmd: proxy.ICommand<proxy.IReferenceResult> = {
4241
telemetryEvent: telemetryContracts.IDE.Reference,
4342
command: proxy.CommandType.Usages,
4443
fileName: filename,
4544
columnIndex: columnIndex,
46-
lineIndex: position.line,
47-
source: source
45+
lineIndex: position.line
4846
};
4947

48+
if (document.isDirty){
49+
cmd.source = document.getText();
50+
}
5051
var definition: proxy.IAutoCompleteItem = null;
5152

5253
this.jediProxyHandler.sendCommand(cmd, resolve, token);

src/client/providers/symbolProvider.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,18 @@ export class PythonSymbolProvider implements vscode.DocumentSymbolProvider {
2626
return new Promise<vscode.SymbolInformation[]>((resolve, reject) => {
2727
var filename = document.fileName;
2828

29-
var source = document.getText();
3029
var cmd: proxy.ICommand<proxy.ISymbolResult> = {
3130
telemetryEvent: telemetryContracts.IDE.Symbol,
3231
command: proxy.CommandType.Symbols,
3332
fileName: filename,
3433
columnIndex: 0,
35-
lineIndex: 0,
36-
source: source
34+
lineIndex: 0
3735
};
36+
37+
if (document.isDirty){
38+
cmd.source = document.getText();
39+
}
40+
3841
this.jediProxyHandler.sendCommand(cmd, resolve, token);
3942
});
4043
}

0 commit comments

Comments
 (0)