remove pylance create,start,stop. Pylance will now do that itself.#25370
remove pylance create,start,stop. Pylance will now do that itself.#25370bschnurr wants to merge 13 commits intomicrosoft:mainfrom
Conversation
| new LanguageClient(PYTHON_LANGUAGE, 'Python Language Server', args[0], args[1]), | ||
| start: (client: BaseLanguageClient): Promise<void> => client.start(), | ||
| stop: (client: BaseLanguageClient): Promise<void> => client.stop(), | ||
| getTelemetryReporter: () => reporter, |
There was a problem hiding this comment.
keeping getTelemetryReporter() removing others
| const api = pylanceExtension.exports; | ||
| if (api.client && api.client.isEnabled()) { | ||
| pylanceApi = api; | ||
| await api.client.start(); |
There was a problem hiding this comment.
just removing this call to start. not sure why the diff is messed up. My other idea was to leave this logic in. but change pylance's api.client.isEnabled() to return false and then just return in that case.
|
|
||
| export namespace OutputChannelNames { | ||
| export const languageServer = l10n.t('Python Language Server'); | ||
| export const JediLanguageServer = l10n.t('Jedi'); |
There was a problem hiding this comment.
renamed Jedi's output window to 'Jedi'
| this.serverManager.dispose(); | ||
| this.serverProxy.dispose(); | ||
| this.analysisOptions.dispose(); | ||
| this.outputChannel.dispose(); |
There was a problem hiding this comment.
now dispose Jedi's output channel here instead of the global one
| }, | ||
| start: (client: BaseLanguageClient): Promise<void> => client.start(), | ||
| stop: (client: BaseLanguageClient): Promise<void> => client.stop(), | ||
| getTelemetryReporter: () => getTelemetryReporter(), |
There was a problem hiding this comment.
diff is messed up, removing createClient, start, stop
| createClient(...args: any[]): BaseLanguageClient; | ||
| start(client: BaseLanguageClient): Promise<void>; | ||
| stop(client: BaseLanguageClient): Promise<void>; | ||
| getTelemetryReporter(): TelemetryReporter; |
There was a problem hiding this comment.
removing
createClient(...args: any[]): BaseLanguageClient;
start(client: BaseLanguageClient): Promise<void>;
stop(client: BaseLanguageClient): Promise<void>;
…vscode-python into remove-pylance-client2
| this.analysisOptions = new JediLanguageServerAnalysisOptions( | ||
| environmentService, | ||
| outputChannel, | ||
| this.outputChannel, |
There was a problem hiding this comment.
extension manager now owns the output channel
| }, | ||
| }, | ||
| pylance: { | ||
| createClient: (...args: any[]): BaseLanguageClient => { |
There was a problem hiding this comment.
remove pylance apis except getTelemetryReporter
|
@bschnurr what is the status on this PR? |
|
This was a first attempt to see if i was on the right track. |
i'll update and see if it still builds.. one outstanding question i had was is it ok to only support the latest pylance going forward? |
|
@karthiknadig would be able to answer that question better |
|
@bschnurr Yes, support only the latest is fine. But to do this I recommend updating the VS Code engine versions in both Python and Pylance extensions. This way when users get the latest Python extension, it will match the VS Code engine for both python and pylance, making them both latest. Version checking in the code is OK. But it can still trigger a lot of different types of hard to find problems. |
Note: this means older of versions of pylance wont work.
@karthiknadig should I add some kind of version check? Do we still want to support older versions of pylance that are expecting the pythhon extension to start them?
i was thinking I could use
and set it to false for the latest pylance that starts itself.