@mirascript/monaco 0.1.0
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/dist/basic/index.d.ts +6 -0
- package/dist/basic/index.d.ts.map +1 -0
- package/dist/basic/index.js +10 -0
- package/dist/basic/index.js.map +6 -0
- package/dist/basic/language-configuration.d.ts +5 -0
- package/dist/basic/language-configuration.d.ts.map +1 -0
- package/dist/basic/tokens-provider.d.ts +4 -0
- package/dist/basic/tokens-provider.d.ts.map +1 -0
- package/dist/chunk-CEFEXBF7.js +65 -0
- package/dist/chunk-CEFEXBF7.js.map +6 -0
- package/dist/chunk-PTNWRTNM.js +474 -0
- package/dist/chunk-PTNWRTNM.js.map +6 -0
- package/dist/constants.d.ts +20 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/contribute.d.ts +3 -0
- package/dist/contribute.d.ts.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +6 -0
- package/dist/lsp/compile-result.d.ts +150 -0
- package/dist/lsp/compile-result.d.ts.map +1 -0
- package/dist/lsp/diagnostics.d.ts +5 -0
- package/dist/lsp/diagnostics.d.ts.map +1 -0
- package/dist/lsp/index.d.ts +21 -0
- package/dist/lsp/index.d.ts.map +1 -0
- package/dist/lsp/index.js +2285 -0
- package/dist/lsp/index.js.map +6 -0
- package/dist/lsp/providers/base.d.ts +21 -0
- package/dist/lsp/providers/base.d.ts.map +1 -0
- package/dist/lsp/providers/code-action-provider.d.ts +12 -0
- package/dist/lsp/providers/code-action-provider.d.ts.map +1 -0
- package/dist/lsp/providers/color-provider.d.ts +10 -0
- package/dist/lsp/providers/color-provider.d.ts.map +1 -0
- package/dist/lsp/providers/completion-item-provider.d.ts +21 -0
- package/dist/lsp/providers/completion-item-provider.d.ts.map +1 -0
- package/dist/lsp/providers/definition-reference-provider.d.ts +16 -0
- package/dist/lsp/providers/definition-reference-provider.d.ts.map +1 -0
- package/dist/lsp/providers/document-highlight-provider.d.ts +12 -0
- package/dist/lsp/providers/document-highlight-provider.d.ts.map +1 -0
- package/dist/lsp/providers/document-symbol-provider.d.ts +10 -0
- package/dist/lsp/providers/document-symbol-provider.d.ts.map +1 -0
- package/dist/lsp/providers/formatter-provider.d.ts +18 -0
- package/dist/lsp/providers/formatter-provider.d.ts.map +1 -0
- package/dist/lsp/providers/hover-provider.d.ts +12 -0
- package/dist/lsp/providers/hover-provider.d.ts.map +1 -0
- package/dist/lsp/providers/inlay-hints-provider.d.ts +10 -0
- package/dist/lsp/providers/inlay-hints-provider.d.ts.map +1 -0
- package/dist/lsp/providers/range-provider.d.ts +10 -0
- package/dist/lsp/providers/range-provider.d.ts.map +1 -0
- package/dist/lsp/providers/rename-provider.d.ts +12 -0
- package/dist/lsp/providers/rename-provider.d.ts.map +1 -0
- package/dist/lsp/providers/semantic-tokens-provider.d.ts +12 -0
- package/dist/lsp/providers/semantic-tokens-provider.d.ts.map +1 -0
- package/dist/lsp/providers/signature-help-provider.d.ts +12 -0
- package/dist/lsp/providers/signature-help-provider.d.ts.map +1 -0
- package/dist/lsp/utils.d.ts +37 -0
- package/dist/lsp/utils.d.ts.map +1 -0
- package/dist/lsp/worker-helper.d.ts +5 -0
- package/dist/lsp/worker-helper.d.ts.map +1 -0
- package/dist/lsp/worker.d.ts +22 -0
- package/dist/lsp/worker.d.ts.map +1 -0
- package/dist/lsp/worker.js +62 -0
- package/dist/lsp/worker.js.map +6 -0
- package/dist/monaco-api.d.ts +16 -0
- package/dist/monaco-api.d.ts.map +1 -0
- package/package.json +39 -0
- package/src/basic/index.ts +11 -0
- package/src/basic/language-configuration.ts +90 -0
- package/src/basic/tokens-provider.ts +358 -0
- package/src/constants.ts +56 -0
- package/src/contribute.ts +18 -0
- package/src/index.ts +71 -0
- package/src/lsp/compile-result.ts +518 -0
- package/src/lsp/diagnostics.ts +83 -0
- package/src/lsp/index.ts +84 -0
- package/src/lsp/providers/base.ts +40 -0
- package/src/lsp/providers/code-action-provider.ts +28 -0
- package/src/lsp/providers/color-provider.ts +129 -0
- package/src/lsp/providers/completion-item-provider.ts +497 -0
- package/src/lsp/providers/definition-reference-provider.ts +107 -0
- package/src/lsp/providers/document-highlight-provider.ts +71 -0
- package/src/lsp/providers/document-symbol-provider.ts +65 -0
- package/src/lsp/providers/formatter-provider.ts +81 -0
- package/src/lsp/providers/hover-provider.ts +150 -0
- package/src/lsp/providers/inlay-hints-provider.ts +121 -0
- package/src/lsp/providers/range-provider.ts +37 -0
- package/src/lsp/providers/rename-provider.ts +144 -0
- package/src/lsp/providers/semantic-tokens-provider.ts +166 -0
- package/src/lsp/providers/signature-help-provider.ts +119 -0
- package/src/lsp/utils.ts +322 -0
- package/src/lsp/worker-helper.ts +119 -0
- package/src/lsp/worker.ts +83 -0
- package/src/monaco-api.js +66 -0
- package/src/monaco-api.ts +18 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { VmContext } from '@mirascript/mirascript';
|
|
2
|
+
import { type editor, languages, registerMonacoApi, type IDisposable, type MonacoApi } from './monaco-api.js';
|
|
3
|
+
import { registerContribution } from './contribute.js';
|
|
4
|
+
/** 提供全局变量信息 */
|
|
5
|
+
export type VmContextProvider = (model: editor.ITextModel) => languages.ProviderResult<VmContext>;
|
|
6
|
+
/** 加载器 */
|
|
7
|
+
export declare class MiraScriptMonacoLoader implements IDisposable {
|
|
8
|
+
readonly contextProvider?: VmContextProvider | undefined;
|
|
9
|
+
constructor(contextProvider?: VmContextProvider | undefined);
|
|
10
|
+
private _basicFeaturesLoaded;
|
|
11
|
+
private _lspFeaturesLoaded;
|
|
12
|
+
/** 加载基础功能 */
|
|
13
|
+
loadBasicFeatures(): Promise<void>;
|
|
14
|
+
/** 加载 LSP 功能 */
|
|
15
|
+
loadLSPFeatures(): Promise<void>;
|
|
16
|
+
private readonly disposables;
|
|
17
|
+
private disposed;
|
|
18
|
+
/** @inheritdoc */
|
|
19
|
+
dispose(): void;
|
|
20
|
+
}
|
|
21
|
+
export { registerMonacoApi, registerContribution };
|
|
22
|
+
/**
|
|
23
|
+
* 注册 MiraScript Monaco 编辑器扩展。
|
|
24
|
+
*/
|
|
25
|
+
export declare function registerMiraScript(monacoApi: MonacoApi, globalProvider?: VmContextProvider): MiraScriptMonacoLoader;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,eAAe;AACf,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAElG,UAAU;AACV,qBAAa,sBAAuB,YAAW,WAAW;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,iBAAiB;gBAAnC,eAAe,CAAC,EAAE,iBAAiB,YAAA;IAYxD,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,kBAAkB,CAAS;IACnC,aAAa;IACP,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxC,gBAAgB;IACV,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IActC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAS;IACzB,kBAAkB;IAClB,OAAO,IAAI,IAAI;CASlB;AACD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;AACnD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,iBAAiB,GAAG,sBAAsB,CAGnH"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import {
|
|
2
|
+
languages,
|
|
3
|
+
registerMonacoApi
|
|
4
|
+
} from "./chunk-CEFEXBF7.js";
|
|
5
|
+
|
|
6
|
+
// src/contribute.ts
|
|
7
|
+
function registerContribution() {
|
|
8
|
+
languages.register({
|
|
9
|
+
id: "mirascript",
|
|
10
|
+
extensions: [".mira"],
|
|
11
|
+
aliases: ["MiraScript", "mirascript", "mira"],
|
|
12
|
+
mimetypes: ["text/x-mirascript"]
|
|
13
|
+
});
|
|
14
|
+
languages.register({
|
|
15
|
+
id: "mirascript-template",
|
|
16
|
+
extensions: [".miratpl"],
|
|
17
|
+
aliases: ["MiraScriptTemplate", "mirascript-template", "miratpl"],
|
|
18
|
+
mimetypes: ["text/x-mirascript-template"]
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// src/index.ts
|
|
23
|
+
var MiraScriptMonacoLoader = class {
|
|
24
|
+
constructor(contextProvider) {
|
|
25
|
+
this.contextProvider = contextProvider;
|
|
26
|
+
this._basicFeaturesLoaded = false;
|
|
27
|
+
this._lspFeaturesLoaded = false;
|
|
28
|
+
this.disposables = [];
|
|
29
|
+
this.disposed = false;
|
|
30
|
+
registerContribution();
|
|
31
|
+
const _loadBasicFeatures = () => void this.loadBasicFeatures();
|
|
32
|
+
const _loadFullFeatures = () => void this.loadLSPFeatures();
|
|
33
|
+
languages.onLanguageEncountered("mirascript", _loadBasicFeatures);
|
|
34
|
+
languages.onLanguage("mirascript", _loadFullFeatures);
|
|
35
|
+
languages.onLanguageEncountered("mirascript-template", _loadBasicFeatures);
|
|
36
|
+
languages.onLanguage("mirascript-template", _loadFullFeatures);
|
|
37
|
+
}
|
|
38
|
+
/** 加载基础功能 */
|
|
39
|
+
async loadBasicFeatures() {
|
|
40
|
+
try {
|
|
41
|
+
const { registerBasic } = await import("./basic/index.js");
|
|
42
|
+
if (this._basicFeaturesLoaded || this.disposed) return;
|
|
43
|
+
this._basicFeaturesLoaded = true;
|
|
44
|
+
this.disposables.push(...await registerBasic());
|
|
45
|
+
} catch (error) {
|
|
46
|
+
console.error("Failed to load MiraScript basic features:", error);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** 加载 LSP 功能 */
|
|
50
|
+
async loadLSPFeatures() {
|
|
51
|
+
try {
|
|
52
|
+
const basic = this.loadBasicFeatures();
|
|
53
|
+
const { registerLSP } = await import("./lsp/index.js");
|
|
54
|
+
await basic;
|
|
55
|
+
if (this._lspFeaturesLoaded || this.disposed) return;
|
|
56
|
+
this._lspFeaturesLoaded = true;
|
|
57
|
+
this.disposables.push(...await registerLSP(this.contextProvider));
|
|
58
|
+
} catch (error) {
|
|
59
|
+
console.error("Failed to load MiraScript LSP features:", error);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/** @inheritdoc */
|
|
63
|
+
dispose() {
|
|
64
|
+
if (this.disposed) {
|
|
65
|
+
throw new Error("MiraScriptMonacoLoader has already been disposed.");
|
|
66
|
+
}
|
|
67
|
+
this.disposed = true;
|
|
68
|
+
for (const d of this.disposables.splice(0)) {
|
|
69
|
+
d.dispose();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
function registerMiraScript(monacoApi, globalProvider) {
|
|
74
|
+
registerMonacoApi(monacoApi);
|
|
75
|
+
return new MiraScriptMonacoLoader(globalProvider);
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
MiraScriptMonacoLoader,
|
|
79
|
+
registerContribution,
|
|
80
|
+
registerMiraScript,
|
|
81
|
+
registerMonacoApi
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/contribute.ts", "../src/index.ts"],
|
|
4
|
+
"mappings": ";;;;;;AAGO,SAAS,uBAA6B;AACzC,YAAU,SAAS;AAAA,IACf,IAAI;AAAA,IACJ,YAAY,CAAC,OAAO;AAAA,IACpB,SAAS,CAAC,cAAc,cAAc,MAAM;AAAA,IAC5C,WAAW,CAAC,mBAAmB;AAAA,EACnC,CAAC;AAED,YAAU,SAAS;AAAA,IACf,IAAI;AAAA,IACJ,YAAY,CAAC,UAAU;AAAA,IACvB,SAAS,CAAC,sBAAsB,uBAAuB,SAAS;AAAA,IAChE,WAAW,CAAC,4BAA4B;AAAA,EAC5C,CAAC;AACL;;;ACTO,IAAM,yBAAN,MAAoD;AAAA,EACvD,YAAqB,iBAAqC;AAArC;AAYrB,SAAQ,uBAAuB;AAC/B,SAAQ,qBAAqB;AA4B7B,SAAiB,cAA6B,CAAC;AAC/C,SAAQ,WAAW;AAzCf,yBAAqB;AAErB,UAAM,qBAAqB,MAAM,KAAK,KAAK,kBAAkB;AAC7D,UAAM,oBAAoB,MAAM,KAAK,KAAK,gBAAgB;AAE1D,cAAU,sBAAsB,cAAc,kBAAkB;AAChE,cAAU,WAAW,cAAc,iBAAiB;AAEpD,cAAU,sBAAsB,uBAAuB,kBAAkB;AACzE,cAAU,WAAW,uBAAuB,iBAAiB;AAAA,EACjE;AAAA;AAAA,EAIA,MAAM,oBAAmC;AACrC,QAAI;AACA,YAAM,EAAE,cAAc,IAAI,MAAM,OAAO,kBAAkB;AACzD,UAAI,KAAK,wBAAwB,KAAK,SAAU;AAChD,WAAK,uBAAuB;AAC5B,WAAK,YAAY,KAAK,GAAI,MAAM,cAAc,CAAE;AAAA,IACpD,SAAS,OAAO;AAEZ,cAAQ,MAAM,6CAA6C,KAAK;AAAA,IACpE;AAAA,EACJ;AAAA;AAAA,EAEA,MAAM,kBAAiC;AACnC,QAAI;AACA,YAAM,QAAQ,KAAK,kBAAkB;AACrC,YAAM,EAAE,YAAY,IAAI,MAAM,OAAO,gBAAgB;AACrD,YAAM;AACN,UAAI,KAAK,sBAAsB,KAAK,SAAU;AAC9C,WAAK,qBAAqB;AAC1B,WAAK,YAAY,KAAK,GAAI,MAAM,YAAY,KAAK,eAAe,CAAE;AAAA,IACtE,SAAS,OAAO;AAEZ,cAAQ,MAAM,2CAA2C,KAAK;AAAA,IAClE;AAAA,EACJ;AAAA;AAAA,EAKA,UAAgB;AACZ,QAAI,KAAK,UAAU;AACf,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACvE;AACA,SAAK,WAAW;AAChB,eAAW,KAAK,KAAK,YAAY,OAAO,CAAC,GAAG;AACxC,QAAE,QAAQ;AAAA,IACd;AAAA,EACJ;AACJ;AAKO,SAAS,mBAAmB,WAAsB,gBAA4D;AACjH,oBAAkB,SAAS;AAC3B,SAAO,IAAI,uBAAuB,cAAc;AACpD;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { type editor, type IRange, type IPosition } from '../monaco-api.js';
|
|
2
|
+
import type { CacheKey, MonacoResult } from './worker.js';
|
|
3
|
+
import { DiagnosticCode, type SourceDiagnostic, type SourceReference } from '@mirascript/mirascript/subtle';
|
|
4
|
+
export type { SourceDiagnostic, SourceReference };
|
|
5
|
+
/** 源代码定义信息 */
|
|
6
|
+
interface SourceDefinitionBase<R extends DiagnosticCode = DiagnosticCode> {
|
|
7
|
+
/** 符号引用 */
|
|
8
|
+
readonly references: ReadonlyArray<SourceDiagnostic<R> | SourceReference<R>>;
|
|
9
|
+
}
|
|
10
|
+
/** 局部函数类型 */
|
|
11
|
+
export type LocalFunctionType = (typeof LocalFunctionType)[number];
|
|
12
|
+
export declare const LocalFunctionType: readonly [DiagnosticCode.LocalFunction];
|
|
13
|
+
/** 局部变量类型 */
|
|
14
|
+
export type LocalVariableType = (typeof LocalVariableType)[number];
|
|
15
|
+
export declare const LocalVariableType: readonly [DiagnosticCode.LocalMutable, DiagnosticCode.LocalImmutable, DiagnosticCode.LocalConst];
|
|
16
|
+
/** 显式参数类型 */
|
|
17
|
+
export type ParameterExplicitType = (typeof ParameterExplicitType)[number];
|
|
18
|
+
export declare const ParameterExplicitType: readonly [DiagnosticCode.ParameterMutable, DiagnosticCode.ParameterImmutable, DiagnosticCode.ParameterMutableRest, DiagnosticCode.ParameterImmutableRest];
|
|
19
|
+
/** 子模式参数类型 */
|
|
20
|
+
export type ParameterSubPatternType = (typeof ParameterSubPatternType)[number];
|
|
21
|
+
export declare const ParameterSubPatternType: readonly [DiagnosticCode.ParameterSubPatternImmutable, DiagnosticCode.ParameterSubPatternMutable];
|
|
22
|
+
/** 模式参数类型 */
|
|
23
|
+
export type ParameterPatternType = (typeof ParameterPatternType)[number];
|
|
24
|
+
export declare const ParameterPatternType: readonly [DiagnosticCode.ParameterPattern, DiagnosticCode.ParameterRestPattern];
|
|
25
|
+
/** 隐式参数类型 */
|
|
26
|
+
export type ParameterItType = (typeof ParameterItType)[number];
|
|
27
|
+
export declare const ParameterItType: readonly [DiagnosticCode.ParameterIt];
|
|
28
|
+
/** 参数定义类型 */
|
|
29
|
+
export type ParameterDefinitionType = (typeof ParameterDefinitionType)[number];
|
|
30
|
+
export declare const ParameterDefinitionType: readonly [DiagnosticCode.ParameterMutable, DiagnosticCode.ParameterImmutable, DiagnosticCode.ParameterMutableRest, DiagnosticCode.ParameterImmutableRest, DiagnosticCode.ParameterSubPatternImmutable, DiagnosticCode.ParameterSubPatternMutable, DiagnosticCode.ParameterIt];
|
|
31
|
+
/** 参数占位符类型 */
|
|
32
|
+
export type ParameterPlaceholderType = (typeof ParameterPlaceholderType)[number];
|
|
33
|
+
export declare const ParameterPlaceholderType: readonly [DiagnosticCode.ParameterMutable, DiagnosticCode.ParameterImmutable, DiagnosticCode.ParameterMutableRest, DiagnosticCode.ParameterImmutableRest, DiagnosticCode.ParameterPattern, DiagnosticCode.ParameterRestPattern, DiagnosticCode.ParameterIt];
|
|
34
|
+
/** 局部定义类型 */
|
|
35
|
+
export type LocalDefinitionType = (typeof LocalDefinitionType)[number];
|
|
36
|
+
export declare const LocalDefinitionType: readonly [DiagnosticCode.LocalMutable, DiagnosticCode.LocalImmutable, DiagnosticCode.LocalConst, DiagnosticCode.LocalFunction, DiagnosticCode.ParameterMutable, DiagnosticCode.ParameterImmutable, DiagnosticCode.ParameterMutableRest, DiagnosticCode.ParameterImmutableRest, DiagnosticCode.ParameterSubPatternImmutable, DiagnosticCode.ParameterSubPatternMutable, DiagnosticCode.ParameterIt];
|
|
37
|
+
/** 源代码定义信息 */
|
|
38
|
+
export interface LocalDefinition<T extends LocalDefinitionType = LocalDefinitionType> extends SourceDefinitionBase<DiagnosticCode.ReadLocal | DiagnosticCode.WriteLocal | DiagnosticCode.ReadWriteLocal | DiagnosticCode.RedeclareLocal> {
|
|
39
|
+
/** 符号定义 */
|
|
40
|
+
readonly definition: SourceDiagnostic<T>;
|
|
41
|
+
/** 定义的函数,仅对 LocalFunction 有效 */
|
|
42
|
+
readonly fn?: {
|
|
43
|
+
/** 函数作用域 */
|
|
44
|
+
scope: SourceScope;
|
|
45
|
+
/** 函数的参数 */
|
|
46
|
+
args: ReadonlyArray<LocalDefinition<ParameterDefinitionType>>;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** 源代码定义信息 */
|
|
50
|
+
export interface GlobalDefinition extends SourceDefinitionBase<DiagnosticCode.GlobalVariable> {
|
|
51
|
+
/** 符号名称 */
|
|
52
|
+
readonly name: string;
|
|
53
|
+
}
|
|
54
|
+
/** 源代码定义信息 */
|
|
55
|
+
export type SourceDefinition = LocalDefinition | GlobalDefinition;
|
|
56
|
+
/** 作用域信息 */
|
|
57
|
+
export interface SourceScope {
|
|
58
|
+
/** 作用域范围 */
|
|
59
|
+
readonly range: IRange;
|
|
60
|
+
/** 包含的局部变量 */
|
|
61
|
+
readonly locals: readonly LocalDefinition[];
|
|
62
|
+
/** 包含的参数占位符 */
|
|
63
|
+
readonly params: ReadonlyArray<SourceDiagnostic<ParameterPlaceholderType>>;
|
|
64
|
+
/** 包含的作用域 */
|
|
65
|
+
readonly children: readonly SourceScope[];
|
|
66
|
+
/** 父作用域 */
|
|
67
|
+
readonly parent?: SourceScope;
|
|
68
|
+
}
|
|
69
|
+
/** 变量访问 */
|
|
70
|
+
export type VariableAccessAt = {
|
|
71
|
+
/** 访问发生的位置 */
|
|
72
|
+
range: IRange;
|
|
73
|
+
} & ({
|
|
74
|
+
/** 访问的变量定义 */
|
|
75
|
+
def: LocalDefinition;
|
|
76
|
+
/** 访问的是哪一个引用,`undefined` 表示访问了定义 */
|
|
77
|
+
ref?: number;
|
|
78
|
+
} | {
|
|
79
|
+
/** 访问的变量定义 */
|
|
80
|
+
def: GlobalDefinition;
|
|
81
|
+
/** 访问的是哪一个引用 */
|
|
82
|
+
ref: number;
|
|
83
|
+
});
|
|
84
|
+
/** 字段访问 */
|
|
85
|
+
export type FieldsAccessAt = {
|
|
86
|
+
/** 访问的变量 */
|
|
87
|
+
def: VariableAccessAt;
|
|
88
|
+
/** 访问的字段 */
|
|
89
|
+
fields: string[];
|
|
90
|
+
};
|
|
91
|
+
/** 编译结果 */
|
|
92
|
+
export declare class CompileResult {
|
|
93
|
+
/** CacheKey */
|
|
94
|
+
readonly cacheKey: CacheKey;
|
|
95
|
+
/** 代码版本 */
|
|
96
|
+
readonly version: number;
|
|
97
|
+
readonly source: string;
|
|
98
|
+
readonly result: MonacoResult;
|
|
99
|
+
constructor(
|
|
100
|
+
/** CacheKey */
|
|
101
|
+
cacheKey: CacheKey,
|
|
102
|
+
/** 代码版本 */
|
|
103
|
+
version: number, source: string, result: MonacoResult);
|
|
104
|
+
/** 源代码诊断信息 */
|
|
105
|
+
private readonly diagnostics;
|
|
106
|
+
/** 代码信息 */
|
|
107
|
+
readonly chunk?: Uint8Array;
|
|
108
|
+
private diagnosticsReady;
|
|
109
|
+
private _errors;
|
|
110
|
+
private _warnings;
|
|
111
|
+
private _infos;
|
|
112
|
+
private _hints;
|
|
113
|
+
private _references;
|
|
114
|
+
private _tags;
|
|
115
|
+
private _tagsReferences;
|
|
116
|
+
/** 源代码诊断信息 */
|
|
117
|
+
get errors(): readonly SourceDiagnostic[];
|
|
118
|
+
/** 源代码诊断信息 */
|
|
119
|
+
get warnings(): readonly SourceDiagnostic[];
|
|
120
|
+
/** 源代码诊断信息 */
|
|
121
|
+
get infos(): readonly SourceDiagnostic[];
|
|
122
|
+
/** 源代码诊断信息 */
|
|
123
|
+
get hints(): readonly SourceDiagnostic[];
|
|
124
|
+
/** 源代码诊断信息 */
|
|
125
|
+
get references(): readonly SourceReference[];
|
|
126
|
+
/** 源代码诊断信息 */
|
|
127
|
+
get tags(): readonly SourceDiagnostic[];
|
|
128
|
+
/** 源代码诊断信息 */
|
|
129
|
+
get tagsReferences(): readonly SourceReference[];
|
|
130
|
+
/** 分析诊断信息 */
|
|
131
|
+
private readDiagnostics;
|
|
132
|
+
private _groupedTags?;
|
|
133
|
+
/** 获取源代码定义 */
|
|
134
|
+
groupedTags(model: editor.ITextModel): NonNullable<typeof this._groupedTags>;
|
|
135
|
+
/** 获取指定位置的变量访问信息 */
|
|
136
|
+
variableAccessAt(model: editor.ITextModel, position: IPosition): VariableAccessAt | undefined;
|
|
137
|
+
private _scopes?;
|
|
138
|
+
private _scopeMap?;
|
|
139
|
+
/** 获取作用域信息 */
|
|
140
|
+
scopes(model: editor.ITextModel): readonly SourceScope[];
|
|
141
|
+
/** 获取定义所在作用域 */
|
|
142
|
+
scopeOf(model: editor.ITextModel, def: LocalDefinition): SourceScope | undefined;
|
|
143
|
+
/** 获取位置所在作用域 */
|
|
144
|
+
scopeAt(model: editor.ITextModel, position: IPosition): SourceScope;
|
|
145
|
+
/** 获取指定位置的字段访问信息 */
|
|
146
|
+
fieldAccessAt(model: editor.ITextModel, position: IPosition): FieldsAccessAt | undefined;
|
|
147
|
+
/** 获取指定位置的字段访问信息 */
|
|
148
|
+
accessAt(model: editor.ITextModel, position: IPosition): FieldsAccessAt | undefined;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=compile-result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-result.d.ts","sourceRoot":"","sources":["../../src/lsp/compile-result.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/lsp/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAkC,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAkE3E,WAAW;AACX,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAahF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type IDisposable } from '../monaco-api.js';
|
|
2
|
+
import '../basic/index.js';
|
|
3
|
+
import type { VmContextProvider } from '../index.js';
|
|
4
|
+
import { setContextProvider } from './providers/base.js';
|
|
5
|
+
import { CodeActionProvider } from './providers/code-action-provider.js';
|
|
6
|
+
import { ColorProvider } from './providers/color-provider.js';
|
|
7
|
+
import { CompletionItemProvider } from './providers/completion-item-provider.js';
|
|
8
|
+
import { DefinitionReferenceProvider } from './providers/definition-reference-provider.js';
|
|
9
|
+
import { DocumentHighlightProvider } from './providers/document-highlight-provider.js';
|
|
10
|
+
import { DocumentSymbolProvider } from './providers/document-symbol-provider.js';
|
|
11
|
+
import { FormatterProvider } from './providers/formatter-provider.js';
|
|
12
|
+
import { HoverProvider } from './providers/hover-provider.js';
|
|
13
|
+
import { InlayHintsProvider } from './providers/inlay-hints-provider.js';
|
|
14
|
+
import { RangeProvider } from './providers/range-provider.js';
|
|
15
|
+
import { RenameProvider } from './providers/rename-provider.js';
|
|
16
|
+
import { DocumentSemanticTokensProvider } from './providers/semantic-tokens-provider.js';
|
|
17
|
+
import { SignatureHelpProvider } from './providers/signature-help-provider.js';
|
|
18
|
+
export { CodeActionProvider, ColorProvider, CompletionItemProvider, DefinitionReferenceProvider, DocumentHighlightProvider, DocumentSemanticTokensProvider, DocumentSymbolProvider, FormatterProvider, HoverProvider, InlayHintsProvider, RangeProvider, RenameProvider, SignatureHelpProvider, setContextProvider, };
|
|
19
|
+
/** 注册 LSP 相关的编辑器功能 */
|
|
20
|
+
export declare function registerLSP(contextProvider: VmContextProvider | undefined): Promise<IDisposable[]>;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lsp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAG/E,OAAO,EACH,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,kBAAkB,GACrB,CAAC;AAEF,sBAAsB;AACtB,wBAAsB,WAAW,CAAC,eAAe,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA4CxG"}
|