Uh oh!
There was an error while loading. Please reload this page.
remove pylance create,start,stop. Pylance will now do that itself. - #25370
remove pylance create,start,stop. Pylance will now do that itself.#25370Bill Schnurr (bschnurr) wants to merge 13 commits into
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
Eleanor Boyd (eleanorjboyd)
commented
Nov 11, 2025
Bill Schnurr (@bschnurr) what is the status on this PR? |
Bill Schnurr (bschnurr)
commented
Nov 12, 2025
This was a first attempt to see if i was on the right track. |
Bill Schnurr (bschnurr)
commented
Nov 13, 2025
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? |
Eleanor Boyd (eleanorjboyd)
commented
Nov 14, 2025
Karthik Nadig (@karthiknadig) would be able to answer that question better |
Karthik Nadig (karthiknadig)
commented
Jan 8, 2026
Bill Schnurr (@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. |
Eleanor Boyd (eleanorjboyd)
commented
Jul 24, 2026
hi Bill Schnurr (@bschnurr) wanted to follow up. Did you update the engine version request? What is the status of this PR? Thanks |
Bill Schnurr (bschnurr)
commented
Jul 28, 2026
sorry. totally forgot about this PR. some major Pylance had some major startup rewrites. need to test this again |
Note: this means older of versions of pylance wont work.
Karthik Nadig (@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.