Skip to content

Commit b849b64

Browse files
committed
Add ILSPCodeOverridesManager, move implementations to transclusions/
1 parent ded7c46 commit b849b64

File tree

30 files changed

+411
-306
lines changed

30 files changed

+411
-306
lines changed

packages/jupyterlab-lsp/src/adapters/adapter.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,10 @@ export abstract class WidgetAdapter<T extends IDocumentWidget> {
128128
return this.extension.foreign_code_extractors;
129129
}
130130

131+
protected get code_overrides() {
132+
return this.extension.code_overrides;
133+
}
134+
131135
on_connection_closed(
132136
manager: DocumentConnectionManager,
133137
{ virtual_document }: IDocumentConnectionData

packages/jupyterlab-lsp/src/adapters/notebook/notebook.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { WidgetAdapter } from '../adapter';
22
import { Notebook, NotebookPanel } from '@jupyterlab/notebook';
33
import { until_ready } from '../../utils';
4-
import { language_specific_overrides } from '../../magics/defaults';
54
import { Cell } from '@jupyterlab/cells';
65
import * as nbformat from '@jupyterlab/nbformat';
76
import ILanguageInfoMetadata = nbformat.ILanguageInfoMetadata;
@@ -160,7 +159,7 @@ export class NotebookAdapter extends WidgetAdapter<NotebookPanel> {
160159
return new VirtualDocument({
161160
language: this.language,
162161
path: this.document_path,
163-
overrides_registry: language_specific_overrides,
162+
overrides_registry: this.code_overrides,
164163
foreign_code_extractors: this.foreign_code_extractors,
165164
file_extension: this.language_file_extension,
166165
// notebooks are continuous, each cell is dependent on the previous one

packages/jupyterlab-lsp/src/editor_integration/feature.spec.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import {
99
} from './testutils';
1010
import * as lsProtocol from 'vscode-languageserver-protocol';
1111
import * as nbformat from '@jupyterlab/nbformat';
12-
import { language_specific_overrides } from '../magics/defaults';
13-
import { foreign_code_extractors } from '../extractors/ipython';
12+
import { overrides } from '../transclusions/ipython/overrides';
13+
import { foreign_code_extractors } from '../transclusions/ipython/extractors';
1414
import { NotebookModel } from '@jupyterlab/notebook';
1515
import { PageConfig } from '@jupyterlab/coreutils';
1616
import { CodeMirrorIntegration } from './codemirror';
@@ -183,7 +183,12 @@ describe('Feature', () => {
183183

184184
beforeEach(() => {
185185
environment = new NotebookFeatureTestEnvironment({
186-
overrides_registry: language_specific_overrides,
186+
overrides_registry: {
187+
python: {
188+
cell: overrides.filter(override => override.scope == 'cell'),
189+
line: overrides.filter(override => override.scope == 'line')
190+
}
191+
},
187192
foreign_code_extractors: foreign_code_extractors
188193
});
189194

packages/jupyterlab-lsp/src/editor_integration/testutils.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import { FeatureManager, ILSPExtension } from '../index';
4545
import { JupyterFrontEnd } from '@jupyterlab/application';
4646
import { IFeatureSettings } from '../feature';
4747
import { IForeignCodeExtractorsRegistry } from '../extractors/types';
48+
import { ICodeOverridesRegistry } from '../overrides/tokens';
4849

4950
export interface ITestEnvironment {
5051
document_options: VirtualDocument.IOptions;
@@ -90,6 +91,7 @@ export class MockExtension implements ILSPExtension {
9091
feature_manager: ILSPFeatureManager;
9192
editor_type_manager: ILSPVirtualEditorManager;
9293
foreign_code_extractors: IForeignCodeExtractorsRegistry;
94+
code_overrides: ICodeOverridesRegistry;
9395

9496
constructor() {
9597
this.app = null;
@@ -105,6 +107,7 @@ export class MockExtension implements ILSPExtension {
105107
supports: CodeMirrorEditor
106108
});
107109
this.foreign_code_extractors = {};
110+
this.code_overrides = {};
108111
}
109112
}
110113

packages/jupyterlab-lsp/src/extractors/defaults.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

packages/jupyterlab-lsp/src/extractors/regexp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { IExtractedCode, IForeignCodeExtractor } from './types';
22
import { position_at_offset } from '../positioning';
3-
import { replacer } from '../magics/overrides';
3+
import { replacer } from '../overrides/tokens';
44
import { CodeEditor } from '@jupyterlab/codeeditor';
55

66
export class RegExpForeignCodeExtractor implements IForeignCodeExtractor {

packages/jupyterlab-lsp/src/features/diagnostics/diagnostics.spec.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ import {
1515
} from '../../editor_integration/testutils';
1616
import { CodeMirrorEditor } from '@jupyterlab/codemirror';
1717
import { is_equal } from '../../positioning';
18-
import { language_specific_overrides } from '../../magics/defaults';
19-
import { foreign_code_extractors } from '../../extractors/ipython';
18+
import { foreign_code_extractors } from '../../transclusions/ipython/extractors';
2019
import * as lsProtocol from 'vscode-languageserver-protocol';
2120
import { CodeDiagnostics as LSPDiagnosticsSettings } from '../../_diagnostics';
2221

@@ -144,7 +143,7 @@ describe('Diagnostics', () => {
144143

145144
beforeEach(() => {
146145
env = new NotebookFeatureTestEnvironment({
147-
overrides_registry: language_specific_overrides,
146+
overrides_registry: {},
148147
foreign_code_extractors
149148
});
150149
feature = env.init_integration({

packages/jupyterlab-lsp/src/index.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ import { DIAGNOSTICS_PLUGIN } from './features/diagnostics';
3838
import { COMPLETION_PLUGIN } from './features/completion';
3939
import { CODE_EXTRACTORS_MANAGER } from './extractors/manager';
4040
import { IForeignCodeExtractorsRegistry } from './extractors/types';
41-
import { DEFAULT_CODE_EXTRACTORS } from './extractors/defaults';
41+
import {
42+
ILSPCodeOverridesManager,
43+
ICodeOverridesRegistry
44+
} from './overrides/tokens';
45+
import { DEFAULT_TRANSCLUSIONS } from './transclusions/defaults';
4246

4347
export const codeCheckIcon = new LabIcon({
4448
name: 'lsp:codeCheck',
@@ -103,6 +107,7 @@ export interface ILSPExtension {
103107
feature_manager: ILSPFeatureManager;
104108
editor_type_manager: ILSPVirtualEditorManager;
105109
foreign_code_extractors: IForeignCodeExtractorsRegistry;
110+
code_overrides: ICodeOverridesRegistry;
106111
}
107112

108113
export class LSPExtension implements ILSPExtension {
@@ -119,7 +124,8 @@ export class LSPExtension implements ILSPExtension {
119124
status_bar: IStatusBar,
120125
adapterManager: ILSPAdapterManager,
121126
public editor_type_manager: ILSPVirtualEditorManager,
122-
private code_extractors_manager: ILSPCodeExtractorsManager
127+
private code_extractors_manager: ILSPCodeExtractorsManager,
128+
private code_overrides_manager: ILSPCodeOverridesManager
123129
) {
124130
this.language_server_manager = new LanguageServerManager({});
125131
this.connection_manager = new DocumentConnectionManager({
@@ -175,6 +181,10 @@ export class LSPExtension implements ILSPExtension {
175181
return this.code_extractors_manager.registry;
176182
}
177183

184+
get code_overrides() {
185+
return this.code_overrides_manager.registry;
186+
}
187+
178188
private updateOptions(settings: ISettingRegistry.ISettings) {
179189
const options = settings.composite;
180190

@@ -197,7 +207,8 @@ const plugin: JupyterFrontEndPlugin<ILSPFeatureManager> = {
197207
IStatusBar,
198208
ILSPAdapterManager,
199209
ILSPVirtualEditorManager,
200-
ILSPCodeExtractorsManager
210+
ILSPCodeExtractorsManager,
211+
ILSPCodeOverridesManager
201212
],
202213
activate: (app, ...args) => {
203214
let extension = new LSPExtension(
@@ -210,7 +221,8 @@ const plugin: JupyterFrontEndPlugin<ILSPFeatureManager> = {
210221
IStatusBar,
211222
ILSPAdapterManager,
212223
ILSPVirtualEditorManager,
213-
ILSPCodeExtractorsManager
224+
ILSPCodeExtractorsManager,
225+
ILSPCodeOverridesManager
214226
])
215227
);
216228
return extension.feature_manager;
@@ -237,7 +249,7 @@ const plugins: JupyterFrontEndPlugin<any>[] = [
237249
VIRTUAL_EDITOR_MANAGER,
238250
CODEMIRROR_VIRTUAL_EDITOR,
239251
plugin,
240-
...DEFAULT_CODE_EXTRACTORS,
252+
...DEFAULT_TRANSCLUSIONS,
241253
...default_features
242254
];
243255

packages/jupyterlab-lsp/src/magics/defaults.ts

Lines changed: 0 additions & 126 deletions
This file was deleted.

packages/jupyterlab-lsp/src/magics/overrides.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)