@joinezco/codeblock 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/dist/assets/clike-C8IJ2oj_.js +1 -0
- package/dist/assets/cmake-BQqOBYOt.js +1 -0
- package/dist/assets/dockerfile-C_y-rIpk.js +1 -0
- package/dist/assets/fs.worker-BwEqZcql.ts +109 -0
- package/dist/assets/go-CTD25R5P.js +1 -0
- package/dist/assets/haskell-BWDZoCOh.js +1 -0
- package/dist/assets/index-9HdhmM_Y.js +1 -0
- package/dist/assets/index-C-QhPFHP.js +3 -0
- package/dist/assets/index-C3BnE2cG.js +222 -0
- package/dist/assets/index-CGx5MZO7.js +6 -0
- package/dist/assets/index-CIuq3uTk.js +1 -0
- package/dist/assets/index-CXFONXS8.js +1 -0
- package/dist/assets/index-D5Z27j1C.js +1 -0
- package/dist/assets/index-DWOBdRjn.js +1 -0
- package/dist/assets/index-Dvu-FFzd.js +1 -0
- package/dist/assets/index-Dx_VuNNd.js +1 -0
- package/dist/assets/index-I0dlv-r3.js +1 -0
- package/dist/assets/index-MGle_v2x.js +1 -0
- package/dist/assets/index-N-GE7HTU.js +1 -0
- package/dist/assets/index-aEsF5o-7.js +2 -0
- package/dist/assets/index-as7ELo0J.js +1 -0
- package/dist/assets/index-gUUzXNuP.js +1 -0
- package/dist/assets/index-pGm0qkrJ.js +13 -0
- package/dist/assets/javascript.worker-C1zGArKk.js +527 -0
- package/dist/assets/lua-BgMRiT3U.js +1 -0
- package/dist/assets/perl-CdXCOZ3F.js +1 -0
- package/dist/assets/process-Dw9K5EnD.js +1357 -0
- package/dist/assets/properties-C78fOPTZ.js +1 -0
- package/dist/assets/ruby-B2Rjki9n.js +1 -0
- package/dist/assets/shell-CjFT_Tl9.js +1 -0
- package/dist/assets/swift-BzpIVaGY.js +1 -0
- package/dist/assets/toml-BXUEaScT.js +1 -0
- package/dist/assets/vb-CmGdzxic.js +1 -0
- package/dist/e2e/example.spec.d.ts +5 -0
- package/dist/e2e/example.spec.js +44 -0
- package/dist/editor.d.ts +53 -0
- package/dist/editor.js +248 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.html +16 -0
- package/dist/index.js +6 -0
- package/dist/lsps/index.d.ts +96 -0
- package/dist/lsps/index.js +198 -0
- package/dist/lsps/typescript.d.ts +55 -0
- package/dist/lsps/typescript.js +48 -0
- package/dist/panels/toolbar.d.ts +20 -0
- package/dist/panels/toolbar.js +453 -0
- package/dist/panels/toolbar.test.d.ts +1 -0
- package/dist/panels/toolbar.test.js +146 -0
- package/dist/resources/config.json +13 -0
- package/dist/rpc/serde.d.ts +11 -0
- package/dist/rpc/serde.js +49 -0
- package/dist/rpc/transport.d.ts +11 -0
- package/dist/rpc/transport.js +38 -0
- package/dist/snapshot.bin +0 -0
- package/dist/styles.css +7 -0
- package/dist/themes/index.d.ts +1 -0
- package/dist/themes/index.js +169 -0
- package/dist/themes/util.d.ts +24 -0
- package/dist/themes/util.js +63 -0
- package/dist/themes/vscode.d.ts +6 -0
- package/dist/themes/vscode.js +187 -0
- package/dist/types.d.ts +64 -0
- package/dist/types.js +1 -0
- package/dist/utils/fs.d.ts +29 -0
- package/dist/utils/fs.js +310 -0
- package/dist/utils/indent.d.ts +1 -0
- package/dist/utils/indent.js +38 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/lsp.d.ts +26 -0
- package/dist/utils/lsp.js +74 -0
- package/dist/utils/search.d.ts +30 -0
- package/dist/utils/search.js +68 -0
- package/dist/utils/snapshot.d.ts +60 -0
- package/dist/utils/snapshot.js +299 -0
- package/dist/workers/fs.worker.d.ts +11 -0
- package/dist/workers/fs.worker.js +93 -0
- package/dist/workers/javascript.worker.d.ts +1 -0
- package/dist/workers/javascript.worker.js +20 -0
- package/package.json +95 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { StreamLanguage } from '@codemirror/language';
|
|
2
|
+
const languageSupportCache = {};
|
|
3
|
+
const languageSupportMap = {
|
|
4
|
+
javascript: async () => {
|
|
5
|
+
const { javascript } = await import('@codemirror/lang-javascript');
|
|
6
|
+
return javascript({ jsx: true, typescript: true });
|
|
7
|
+
},
|
|
8
|
+
python: async () => {
|
|
9
|
+
const { python } = await import('@codemirror/lang-python');
|
|
10
|
+
return python();
|
|
11
|
+
},
|
|
12
|
+
rust: async () => {
|
|
13
|
+
const { rust } = await import('@codemirror/lang-rust');
|
|
14
|
+
return rust();
|
|
15
|
+
},
|
|
16
|
+
html: async () => {
|
|
17
|
+
const { html } = await import('@codemirror/lang-html');
|
|
18
|
+
return html();
|
|
19
|
+
},
|
|
20
|
+
css: async () => {
|
|
21
|
+
const { css } = await import('@codemirror/lang-css');
|
|
22
|
+
return css();
|
|
23
|
+
},
|
|
24
|
+
scss: async () => {
|
|
25
|
+
const { sass } = await import('@codemirror/lang-sass');
|
|
26
|
+
return sass({ indented: false });
|
|
27
|
+
},
|
|
28
|
+
less: async () => {
|
|
29
|
+
const { less } = await import('@codemirror/lang-less');
|
|
30
|
+
return less();
|
|
31
|
+
},
|
|
32
|
+
json: async () => {
|
|
33
|
+
const { json } = await import('@codemirror/lang-json');
|
|
34
|
+
return json();
|
|
35
|
+
},
|
|
36
|
+
xml: async () => {
|
|
37
|
+
const { xml } = await import('@codemirror/lang-xml');
|
|
38
|
+
return xml();
|
|
39
|
+
},
|
|
40
|
+
markdown: async () => {
|
|
41
|
+
const { markdown } = await import('@codemirror/lang-markdown');
|
|
42
|
+
return markdown();
|
|
43
|
+
},
|
|
44
|
+
sql: async () => {
|
|
45
|
+
const { sql } = await import('@codemirror/lang-sql');
|
|
46
|
+
return sql();
|
|
47
|
+
},
|
|
48
|
+
php: async () => {
|
|
49
|
+
const { php } = await import('@codemirror/lang-php');
|
|
50
|
+
return php();
|
|
51
|
+
},
|
|
52
|
+
java: async () => {
|
|
53
|
+
const { java } = await import('@codemirror/lang-java');
|
|
54
|
+
return java();
|
|
55
|
+
},
|
|
56
|
+
cpp: async () => {
|
|
57
|
+
const { cpp } = await import('@codemirror/lang-cpp');
|
|
58
|
+
return cpp();
|
|
59
|
+
},
|
|
60
|
+
c: async () => {
|
|
61
|
+
const { cpp } = await import('@codemirror/lang-cpp');
|
|
62
|
+
return cpp();
|
|
63
|
+
},
|
|
64
|
+
yaml: async () => {
|
|
65
|
+
const { yaml } = await import('@codemirror/lang-yaml');
|
|
66
|
+
return yaml();
|
|
67
|
+
},
|
|
68
|
+
// Legacy modes
|
|
69
|
+
ruby: async () => {
|
|
70
|
+
const { ruby } = await import('@codemirror/legacy-modes/mode/ruby');
|
|
71
|
+
return StreamLanguage.define(ruby);
|
|
72
|
+
},
|
|
73
|
+
csharp: async () => {
|
|
74
|
+
const { csharp } = await import('@codemirror/legacy-modes/mode/clike');
|
|
75
|
+
return StreamLanguage.define(csharp);
|
|
76
|
+
},
|
|
77
|
+
go: async () => {
|
|
78
|
+
const { go } = await import('@codemirror/legacy-modes/mode/go');
|
|
79
|
+
return StreamLanguage.define(go);
|
|
80
|
+
},
|
|
81
|
+
swift: async () => {
|
|
82
|
+
const { swift } = await import('@codemirror/legacy-modes/mode/swift');
|
|
83
|
+
return StreamLanguage.define(swift);
|
|
84
|
+
},
|
|
85
|
+
kotlin: async () => {
|
|
86
|
+
const { kotlin } = await import('@codemirror/legacy-modes/mode/clike');
|
|
87
|
+
return StreamLanguage.define(kotlin);
|
|
88
|
+
},
|
|
89
|
+
scala: async () => {
|
|
90
|
+
const { scala } = await import('@codemirror/legacy-modes/mode/clike');
|
|
91
|
+
return StreamLanguage.define(scala);
|
|
92
|
+
},
|
|
93
|
+
vb: async () => {
|
|
94
|
+
const { vb } = await import('@codemirror/legacy-modes/mode/vb');
|
|
95
|
+
return StreamLanguage.define(vb);
|
|
96
|
+
},
|
|
97
|
+
haskell: async () => {
|
|
98
|
+
const { haskell } = await import('@codemirror/legacy-modes/mode/haskell');
|
|
99
|
+
return StreamLanguage.define(haskell);
|
|
100
|
+
},
|
|
101
|
+
lua: async () => {
|
|
102
|
+
const { lua } = await import('@codemirror/legacy-modes/mode/lua');
|
|
103
|
+
return StreamLanguage.define(lua);
|
|
104
|
+
},
|
|
105
|
+
perl: async () => {
|
|
106
|
+
const { perl } = await import('@codemirror/legacy-modes/mode/perl');
|
|
107
|
+
return StreamLanguage.define(perl);
|
|
108
|
+
},
|
|
109
|
+
bash: async () => {
|
|
110
|
+
const { shell } = await import('@codemirror/legacy-modes/mode/shell');
|
|
111
|
+
return StreamLanguage.define(shell);
|
|
112
|
+
},
|
|
113
|
+
toml: async () => {
|
|
114
|
+
const { toml } = await import('@codemirror/legacy-modes/mode/toml');
|
|
115
|
+
return StreamLanguage.define(toml);
|
|
116
|
+
},
|
|
117
|
+
ini: async () => {
|
|
118
|
+
const { properties } = await import('@codemirror/legacy-modes/mode/properties');
|
|
119
|
+
return StreamLanguage.define(properties);
|
|
120
|
+
},
|
|
121
|
+
dockerfile: async () => {
|
|
122
|
+
const { dockerFile } = await import('@codemirror/legacy-modes/mode/dockerfile');
|
|
123
|
+
return StreamLanguage.define(dockerFile);
|
|
124
|
+
},
|
|
125
|
+
makefile: async () => {
|
|
126
|
+
const { cmake } = await import('@codemirror/legacy-modes/mode/cmake');
|
|
127
|
+
return StreamLanguage.define(cmake);
|
|
128
|
+
},
|
|
129
|
+
gitignore: async () => {
|
|
130
|
+
const { properties } = await import('@codemirror/legacy-modes/mode/properties');
|
|
131
|
+
return StreamLanguage.define(properties);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
export const getLanguageSupport = async (language) => {
|
|
135
|
+
if (languageSupportCache[language]) {
|
|
136
|
+
return languageSupportCache[language];
|
|
137
|
+
}
|
|
138
|
+
const loader = languageSupportMap[language];
|
|
139
|
+
const support = await loader();
|
|
140
|
+
languageSupportCache[language] = support;
|
|
141
|
+
return support;
|
|
142
|
+
};
|
|
143
|
+
export const extOrLanguageToLanguageId = {
|
|
144
|
+
javascript: 'javascript',
|
|
145
|
+
js: 'javascript',
|
|
146
|
+
typescript: 'javascript',
|
|
147
|
+
ts: 'javascript',
|
|
148
|
+
jsx: 'javascript',
|
|
149
|
+
tsx: 'javascript',
|
|
150
|
+
python: 'python',
|
|
151
|
+
py: 'python',
|
|
152
|
+
ruby: 'ruby',
|
|
153
|
+
rb: 'ruby',
|
|
154
|
+
php: 'php',
|
|
155
|
+
java: 'java',
|
|
156
|
+
cpp: 'cpp',
|
|
157
|
+
c: 'c',
|
|
158
|
+
csharp: 'csharp',
|
|
159
|
+
cs: 'csharp',
|
|
160
|
+
go: 'go',
|
|
161
|
+
swift: 'swift',
|
|
162
|
+
kotlin: 'kotlin',
|
|
163
|
+
kt: 'kotlin',
|
|
164
|
+
rust: 'rust',
|
|
165
|
+
rs: 'rust',
|
|
166
|
+
scala: 'scala',
|
|
167
|
+
vb: 'vb',
|
|
168
|
+
haskell: 'haskell',
|
|
169
|
+
hs: 'haskell',
|
|
170
|
+
lua: 'lua',
|
|
171
|
+
perl: 'perl',
|
|
172
|
+
pl: 'perl',
|
|
173
|
+
bash: 'bash',
|
|
174
|
+
shell: 'bash',
|
|
175
|
+
sh: 'bash',
|
|
176
|
+
zsh: 'bash',
|
|
177
|
+
mysql: 'sql',
|
|
178
|
+
sql: 'sql',
|
|
179
|
+
html: 'html',
|
|
180
|
+
css: 'css',
|
|
181
|
+
scss: 'scss',
|
|
182
|
+
less: 'less',
|
|
183
|
+
json: 'json',
|
|
184
|
+
yaml: 'yaml',
|
|
185
|
+
yml: 'yaml',
|
|
186
|
+
xml: 'xml',
|
|
187
|
+
markdown: 'markdown',
|
|
188
|
+
md: 'markdown',
|
|
189
|
+
toml: 'toml',
|
|
190
|
+
ini: 'ini',
|
|
191
|
+
conf: 'ini',
|
|
192
|
+
log: 'ini',
|
|
193
|
+
env: 'ini',
|
|
194
|
+
dockerfile: 'dockerfile',
|
|
195
|
+
makefile: 'makefile',
|
|
196
|
+
dockerignore: 'gitignore',
|
|
197
|
+
gitignore: 'gitignore',
|
|
198
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { VfsInterface } from '../types';
|
|
2
|
+
import { Connection } from '@volar/language-server/browser';
|
|
3
|
+
export type CreateTypescriptEnvironmentArgs = {
|
|
4
|
+
connection: Connection;
|
|
5
|
+
fs: VfsInterface;
|
|
6
|
+
};
|
|
7
|
+
export declare const createLanguageServer: ({ connection, fs }: CreateTypescriptEnvironmentArgs) => Promise<{
|
|
8
|
+
initializeParams: import("vscode-languageserver-protocol").InitializeParams;
|
|
9
|
+
project: import("@volar/language-server").LanguageServerProject;
|
|
10
|
+
languageServicePlugins: import("@volar/language-service").LanguageServicePlugin<any>[];
|
|
11
|
+
initialize(params: import("vscode-languageserver-protocol").InitializeParams, project: import("@volar/language-server").LanguageServerProject, languageServicePlugins: import("@volar/language-service").LanguageServicePlugin[]): import("vscode-languageserver-protocol").InitializeResult<import("@volar/language-server").ExperimentalFeatures>;
|
|
12
|
+
initialized(): void;
|
|
13
|
+
shutdown(): void;
|
|
14
|
+
configurations: {
|
|
15
|
+
get: <T>(section: string, scopeUri?: string) => Promise<T | undefined>;
|
|
16
|
+
onDidChange: (cb: import("vscode-languageserver-protocol").NotificationHandler<import("vscode-languageserver-protocol").DidChangeConfigurationParams>) => {
|
|
17
|
+
dispose(): void;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
editorFeatures: void;
|
|
21
|
+
documents: {
|
|
22
|
+
all: () => import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument[];
|
|
23
|
+
onDidChangeContent: import("vscode-languageserver-protocol").Event<import("vscode-languageserver").TextDocumentChangeEvent<import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument>>;
|
|
24
|
+
onDidOpen: import("vscode-languageserver-protocol").Event<import("vscode-languageserver").TextDocumentChangeEvent<import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument>>;
|
|
25
|
+
onDidClose: import("vscode-languageserver-protocol").Event<import("vscode-languageserver").TextDocumentChangeEvent<import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument>>;
|
|
26
|
+
onDidSave: import("vscode-languageserver-protocol").Event<import("vscode-languageserver").TextDocumentChangeEvent<import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument>>;
|
|
27
|
+
get(uri: import("vscode-uri").URI): import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument | undefined;
|
|
28
|
+
};
|
|
29
|
+
workspaceFolders: {
|
|
30
|
+
readonly all: import("vscode-uri").URI[];
|
|
31
|
+
has(uri: import("vscode-uri").URI): boolean;
|
|
32
|
+
onDidChange: (cb: import("vscode-languageserver-protocol").NotificationHandler<import("vscode-languageserver-protocol").WorkspaceFoldersChangeEvent>) => {
|
|
33
|
+
dispose(): void;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
fileWatcher: {
|
|
37
|
+
watchFiles: (patterns: string[]) => Promise<import("vscode-languageserver-protocol").Disposable>;
|
|
38
|
+
onDidChangeWatchedFiles: (cb: import("vscode-languageserver-protocol").NotificationHandler<import("vscode-languageserver-protocol").DidChangeWatchedFilesParams>) => {
|
|
39
|
+
dispose: () => void;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
languageFeatures: {
|
|
43
|
+
requestRefresh: (clearDiagnostics: boolean) => Promise<void>;
|
|
44
|
+
};
|
|
45
|
+
fileSystem: {
|
|
46
|
+
readFile(uri: import("vscode-uri").URI): string | Thenable<string | undefined>;
|
|
47
|
+
stat(uri: import("vscode-uri").URI): import("@volar/language-service").FileStat | Thenable<import("@volar/language-service").FileStat | undefined>;
|
|
48
|
+
readDirectory(uri: import("vscode-uri").URI): import("@volar/language-service").ProviderResult<[string, import("@volar/language-service").FileType][]>;
|
|
49
|
+
install(scheme: string, provider: import("@volar/language-service").FileSystem): void;
|
|
50
|
+
};
|
|
51
|
+
env: import("@volar/language-server").LanguageServerEnvironment;
|
|
52
|
+
connection: Connection;
|
|
53
|
+
onInitialize(callback: (serverCapabilities: import("vscode-languageserver-protocol").ServerCapabilities<import("@volar/language-server").ExperimentalFeatures>) => void): void;
|
|
54
|
+
onInitialized(callback: () => void): void;
|
|
55
|
+
}>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { create as createTypeScriptServicePlugins } from 'volar-service-typescript';
|
|
2
|
+
import { createServerBase, createTypeScriptProject } from '@volar/language-server/browser';
|
|
3
|
+
import ts from 'typescript';
|
|
4
|
+
import { VolarFs } from '../utils/fs';
|
|
5
|
+
function getLanguageServicePlugins(_ts) {
|
|
6
|
+
const plugins = [
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
...createTypeScriptServicePlugins(_ts),
|
|
9
|
+
// ...more?
|
|
10
|
+
];
|
|
11
|
+
return plugins;
|
|
12
|
+
}
|
|
13
|
+
export const createLanguageServer = async ({ connection, fs }) => {
|
|
14
|
+
const server = createServerBase(connection, {
|
|
15
|
+
timer: {
|
|
16
|
+
setImmediate: (callback, ...args) => {
|
|
17
|
+
setTimeout(callback, 0, ...args);
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
server.fileSystem.install('file', new VolarFs(fs));
|
|
22
|
+
server.onInitialize((params) => {
|
|
23
|
+
console.debug('ts server on init', params);
|
|
24
|
+
});
|
|
25
|
+
connection.onShutdown(() => {
|
|
26
|
+
console.debug('ts server shutdown');
|
|
27
|
+
});
|
|
28
|
+
connection.onInitialize(async (params) => {
|
|
29
|
+
const languageServicePlugins = getLanguageServicePlugins(ts);
|
|
30
|
+
return server.initialize(params, createTypeScriptProject(
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
ts, undefined, async () => ({
|
|
33
|
+
// rootUri: params.rootUri,
|
|
34
|
+
languagePlugins: []
|
|
35
|
+
})), languageServicePlugins);
|
|
36
|
+
});
|
|
37
|
+
connection.onInitialized(() => {
|
|
38
|
+
server.initialized();
|
|
39
|
+
const extensions = [
|
|
40
|
+
'.tsx',
|
|
41
|
+
'.jsx',
|
|
42
|
+
'.js',
|
|
43
|
+
'.ts'
|
|
44
|
+
];
|
|
45
|
+
server.fileWatcher.watchFiles([`**/*.{${extensions.join(',')}}`]);
|
|
46
|
+
});
|
|
47
|
+
return server;
|
|
48
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { EditorView, Panel } from "@codemirror/view";
|
|
2
|
+
import { StateField } from "@codemirror/state";
|
|
3
|
+
import { HighlightedSearch } from "../utils/search";
|
|
4
|
+
export interface CommandResult {
|
|
5
|
+
id: string;
|
|
6
|
+
type: 'create-file' | 'rename-file';
|
|
7
|
+
icon: string;
|
|
8
|
+
query: string;
|
|
9
|
+
requiresInput?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export type SearchResult = HighlightedSearch | CommandResult;
|
|
12
|
+
export interface NamingMode {
|
|
13
|
+
active: boolean;
|
|
14
|
+
type: 'create-file' | 'rename-file';
|
|
15
|
+
originalQuery: string;
|
|
16
|
+
languageExtension?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const setSearchResults: import("@codemirror/state").StateEffectType<SearchResult[]>;
|
|
19
|
+
export declare const searchResultsField: StateField<SearchResult[]>;
|
|
20
|
+
export declare const toolbarPanel: (view: EditorView) => Panel;
|