Skip to content

Commit bd91d9a

Browse files
committed
feat: python cell lsp
1 parent 2ddf564 commit bd91d9a

File tree

12 files changed

+459
-238
lines changed

12 files changed

+459
-238
lines changed

packages/secretnote/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@
2727
"dependencies": {
2828
"@antv/s2": "^1.52.0",
2929
"@codemirror/lang-python": "^6.1.2",
30-
"@difizen/libro-jupyter": "^0.1.14",
31-
"@difizen/mana-app": "^0.1.9",
32-
"@difizen/mana-common": "^0.1.9",
33-
"@difizen/mana-l10n": "^0.1.9",
34-
"@difizen/mana-react": "^0.1.9",
30+
"@difizen/libro-jupyter": "^0.2.0",
31+
"@difizen/mana-app": "^0.1.10",
32+
"@difizen/mana-common": "^0.1.10",
33+
"@difizen/mana-l10n": "^0.1.10",
34+
"@difizen/mana-react": "^0.1.10",
3535
"@kanaries/web-data-loader": "^0.1.7",
3636
"@lumino/polling": "^1.11.4",
3737
"@rjsf/antd": "^5.7.3",

packages/secretnote/src/modules/editor/cell/view.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,11 @@ export class SecretNoteCodeCellView extends JupyterCodeCellView {
7575
@inject(ViewOption) options: CellViewOptions,
7676
@inject(CellService) cellService: CellService,
7777
@inject(ViewManager) viewManager: ViewManager,
78+
@inject(CodeEditorManager) codeEditorManager: CodeEditorManager,
7879
@inject(SecretNoteServerManager) serverManager: SecretNoteServerManager,
7980
@inject(SecretNoteKernelManager) kernelManager: SecretNoteKernelManager,
80-
@inject(ILSPDocumentConnectionManager) lsp: ILSPDocumentConnectionManager,
81-
@inject(CodeEditorManager) codeEditorManager: CodeEditorManager,
8281
) {
83-
super(options, cellService, viewManager, lsp, codeEditorManager);
82+
super(options, cellService, viewManager, codeEditorManager);
8483
this.serverManager = serverManager;
8584
this.kernelManager = kernelManager;
8685
this.parties = this.getInitializedParties();

packages/secretnote/src/modules/editor/contents/contents-contrib.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export class SecretNoteContentContribution implements ContentContribution {
1818
if (currentFileContents) {
1919
currentFileContents.content.nbformat_minor = 5;
2020
secretNoteModel.currentFileContents = currentFileContents;
21+
secretNoteModel.filePath = currentFileContents.path;
2122

2223
if (!secretNoteModel.quickEditMode && !secretNoteModel.readOnly) {
2324
secretNoteModel.startKernelConnection();

packages/secretnote/src/modules/editor/model.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ export class SecretNoteModel extends LibroModel {
3636
kernelConnections: IKernelConnection[] = [];
3737

3838
@prop()
39-
lspEnabled = false;
39+
filePath = '';
40+
41+
@prop()
42+
lspEnabled = true;
4043

4144
get isKernelIdle() {
4245
return this.kernelConnections.every((item) => {
@@ -63,7 +66,7 @@ export class SecretNoteModel extends LibroModel {
6366
this.commandRegistry = commandRegistry;
6467
this.serverManager.onServerAdded(this.onServerAdded.bind(this));
6568
this.serverManager.onServerDeleted(this.onServerDeleted.bind(this));
66-
this.onContentChanged(this.autoSave.bind(this));
69+
this.onSourceChanged(this.autoSave.bind(this));
6770
}
6871

6972
async startKernelConnection() {

packages/secretnote/src/modules/notebook/editor-view.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ export const EditorComponent = () => {
4040
setLibroView(v);
4141
return;
4242
})
43-
.catch(() => {
44-
//
43+
.catch((e) => {
44+
console.error('getOrCreateView fail', e);
4545
});
4646
}
4747
}, [currentNotebookFile, instance]);

packages/secretnote/src/modules/scql-editor/model.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class SecretNoteModel extends LibroModel {
3434
this.contentsManager = contentsManager;
3535
this.modalService = modalService;
3636
this.commandRegistry = commandRegistry;
37-
this.onContentChanged(this.autoSave.bind(this));
37+
this.onSourceChanged(this.autoSave.bind(this));
3838
}
3939

4040
async saveNotebookContent(): Promise<void> {

pnpm-lock.yaml

Lines changed: 404 additions & 219 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyprojects/secretnote/.jupyter/config_dev.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,29 @@
1919

2020
c.ServerApp.root_dir = "../../.secretnote"
2121

22+
c.LanguageServerManager.autodetect = False
23+
2224
c.LanguageServerManager.language_servers = {
23-
"pyright-extended": {
25+
"ruff-lsp": {
26+
# if installed as a binary
27+
"argv": [
28+
"ruff-lsp",
29+
],
30+
"languages": ["python"],
31+
"version": 2,
32+
"mime_types": ["text/x-python"],
33+
"display_name": "ruff-lsp",
34+
},
35+
"libro-analyzer": {
2436
# if installed as a binary
2537
"argv": [
2638
"node",
27-
"node_modules/@replit/pyright-extended/langserver.index.js",
39+
"node_modules/@difizen/libro-analyzer/index.js",
2840
"--stdio",
2941
],
3042
"languages": ["python"],
3143
"version": 2,
3244
"mime_types": ["text/x-python"],
33-
"display_name": "pyright-extended",
45+
"display_name": "libro-analyzer",
3446
},
3547
}

pyprojects/secretnote/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"build": "nx build:py"
1818
},
1919
"devDependencies": {
20+
"@difizen/libro-analyzer": "^0.1.0",
2021
"@secretflow/secretnote": "workspace:^",
2122
"@secretflow/secretnote-ui": "workspace:^"
2223
}

pyprojects/secretnote/pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ dependencies = [
2828
"stack_data>=0.6.3",
2929
"tqdm>=4.66.1",
3030
"dataset>=1.6.2",
31+
"ruff-lsp==0.0.50",
32+
"python-lsp-server==1.8.2",
3133
]
3234
description = "Notebook suite for SecretFlow"
3335
dynamic = ["version"]

0 commit comments

Comments
 (0)