@singapore-editor/lsp-plugin 0.1.1

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.
Files changed (185) hide show
  1. package/README.md +103 -0
  2. package/dist/bufferSync.d.ts +12 -0
  3. package/dist/bufferSync.d.ts.map +1 -0
  4. package/dist/bufferSync.js +35 -0
  5. package/dist/bufferSync.js.map +1 -0
  6. package/dist/codeActions.d.ts +83 -0
  7. package/dist/codeActions.d.ts.map +1 -0
  8. package/dist/codeActions.js +294 -0
  9. package/dist/codeActions.js.map +1 -0
  10. package/dist/colorAlpha.d.ts +4 -0
  11. package/dist/colorAlpha.d.ts.map +1 -0
  12. package/dist/colorAlpha.js +28 -0
  13. package/dist/colorAlpha.js.map +1 -0
  14. package/dist/completion.d.ts +124 -0
  15. package/dist/completion.d.ts.map +1 -0
  16. package/dist/completion.js +609 -0
  17. package/dist/completion.js.map +1 -0
  18. package/dist/completionCommit.d.ts +19 -0
  19. package/dist/completionCommit.d.ts.map +1 -0
  20. package/dist/completionCommit.js +57 -0
  21. package/dist/completionCommit.js.map +1 -0
  22. package/dist/completionController.d.ts +89 -0
  23. package/dist/completionController.d.ts.map +1 -0
  24. package/dist/completionController.js +376 -0
  25. package/dist/completionController.js.map +1 -0
  26. package/dist/completionProviders.d.ts +50 -0
  27. package/dist/completionProviders.d.ts.map +1 -0
  28. package/dist/completionProviders.js +64 -0
  29. package/dist/completionProviders.js.map +1 -0
  30. package/dist/connectionContext.d.ts +7 -0
  31. package/dist/connectionContext.d.ts.map +1 -0
  32. package/dist/definitionLinkController.d.ts +54 -0
  33. package/dist/definitionLinkController.d.ts.map +1 -0
  34. package/dist/definitionLinkController.js +221 -0
  35. package/dist/definitionLinkController.js.map +1 -0
  36. package/dist/definitionNavigation.d.ts +76 -0
  37. package/dist/definitionNavigation.d.ts.map +1 -0
  38. package/dist/definitionNavigation.js +143 -0
  39. package/dist/definitionNavigation.js.map +1 -0
  40. package/dist/diagnosticNotes.d.ts +7 -0
  41. package/dist/diagnosticNotes.d.ts.map +1 -0
  42. package/dist/diagnosticNotes.js +37 -0
  43. package/dist/diagnosticNotes.js.map +1 -0
  44. package/dist/diagnosticProjection.d.ts +31 -0
  45. package/dist/diagnosticProjection.d.ts.map +1 -0
  46. package/dist/diagnosticProjection.js +79 -0
  47. package/dist/diagnosticProjection.js.map +1 -0
  48. package/dist/diagnostics.d.ts +16 -0
  49. package/dist/diagnostics.d.ts.map +1 -0
  50. package/dist/diagnostics.js +94 -0
  51. package/dist/diagnostics.js.map +1 -0
  52. package/dist/diagnosticsPresenter.d.ts +64 -0
  53. package/dist/diagnosticsPresenter.d.ts.map +1 -0
  54. package/dist/diagnosticsPresenter.js +305 -0
  55. package/dist/diagnosticsPresenter.js.map +1 -0
  56. package/dist/document.d.ts +69 -0
  57. package/dist/document.d.ts.map +1 -0
  58. package/dist/document.js +190 -0
  59. package/dist/document.js.map +1 -0
  60. package/dist/documentHighlightController.d.ts +34 -0
  61. package/dist/documentHighlightController.d.ts.map +1 -0
  62. package/dist/documentHighlightController.js +101 -0
  63. package/dist/documentHighlightController.js.map +1 -0
  64. package/dist/documentSnapshot.d.ts +9 -0
  65. package/dist/documentSnapshot.d.ts.map +1 -0
  66. package/dist/documentSnapshot.js +31 -0
  67. package/dist/documentSnapshot.js.map +1 -0
  68. package/dist/documentSync.d.ts +53 -0
  69. package/dist/documentSync.d.ts.map +1 -0
  70. package/dist/documentSync.js +334 -0
  71. package/dist/documentSync.js.map +1 -0
  72. package/dist/documentSyncController.d.ts +26 -0
  73. package/dist/documentSyncController.d.ts.map +1 -0
  74. package/dist/documentSyncController.js +24 -0
  75. package/dist/documentSyncController.js.map +1 -0
  76. package/dist/formatOnType.d.ts +43 -0
  77. package/dist/formatOnType.d.ts.map +1 -0
  78. package/dist/formatOnType.js +198 -0
  79. package/dist/formatOnType.js.map +1 -0
  80. package/dist/formatting.d.ts +18 -0
  81. package/dist/formatting.d.ts.map +1 -0
  82. package/dist/formatting.js +52 -0
  83. package/dist/formatting.js.map +1 -0
  84. package/dist/fuzzyMatch.d.ts +22 -0
  85. package/dist/fuzzyMatch.d.ts.map +1 -0
  86. package/dist/fuzzyMatch.js +216 -0
  87. package/dist/fuzzyMatch.js.map +1 -0
  88. package/dist/hoverParticipant.d.ts +24 -0
  89. package/dist/hoverParticipant.d.ts.map +1 -0
  90. package/dist/hoverParticipant.js +156 -0
  91. package/dist/hoverParticipant.js.map +1 -0
  92. package/dist/index.d.ts +18 -0
  93. package/dist/index.d.ts.map +1 -0
  94. package/dist/index.js +17 -0
  95. package/dist/keyCommands.d.ts +19 -0
  96. package/dist/keyCommands.d.ts.map +1 -0
  97. package/dist/keyCommands.js +21 -0
  98. package/dist/keyCommands.js.map +1 -0
  99. package/dist/lane.d.ts +28 -0
  100. package/dist/lane.d.ts.map +1 -0
  101. package/dist/lane.js +138 -0
  102. package/dist/lane.js.map +1 -0
  103. package/dist/lspConnection.d.ts +94 -0
  104. package/dist/lspConnection.d.ts.map +1 -0
  105. package/dist/lspConnection.js +195 -0
  106. package/dist/lspConnection.js.map +1 -0
  107. package/dist/lspConnectionPool.d.ts +34 -0
  108. package/dist/lspConnectionPool.d.ts.map +1 -0
  109. package/dist/lspConnectionPool.js +255 -0
  110. package/dist/lspConnectionPool.js.map +1 -0
  111. package/dist/minimalEdits.d.ts +21 -0
  112. package/dist/minimalEdits.d.ts.map +1 -0
  113. package/dist/minimalEdits.js +181 -0
  114. package/dist/minimalEdits.js.map +1 -0
  115. package/dist/paths.d.ts +6 -0
  116. package/dist/paths.d.ts.map +1 -0
  117. package/dist/paths.js +38 -0
  118. package/dist/paths.js.map +1 -0
  119. package/dist/plugin.d.ts +100 -0
  120. package/dist/plugin.d.ts.map +1 -0
  121. package/dist/plugin.js +837 -0
  122. package/dist/plugin.js.map +1 -0
  123. package/dist/plugin.styles.d.ts +31 -0
  124. package/dist/plugin.styles.d.ts.map +1 -0
  125. package/dist/plugin.styles.js +102 -0
  126. package/dist/plugin.styles.js.map +1 -0
  127. package/dist/pluginTypes.d.ts +41 -0
  128. package/dist/pluginTypes.d.ts.map +1 -0
  129. package/dist/pluginTypes.js +0 -0
  130. package/dist/pullDiagnostics.d.ts +30 -0
  131. package/dist/pullDiagnostics.d.ts.map +1 -0
  132. package/dist/pullDiagnostics.js +94 -0
  133. package/dist/pullDiagnostics.js.map +1 -0
  134. package/dist/renameWidget.d.ts +30 -0
  135. package/dist/renameWidget.d.ts.map +1 -0
  136. package/dist/renameWidget.js +117 -0
  137. package/dist/renameWidget.js.map +1 -0
  138. package/dist/semanticTokenDecoder.d.ts +81 -0
  139. package/dist/semanticTokenDecoder.d.ts.map +1 -0
  140. package/dist/semanticTokenDecoder.js +132 -0
  141. package/dist/semanticTokenDecoder.js.map +1 -0
  142. package/dist/semanticTokens.d.ts +47 -0
  143. package/dist/semanticTokens.d.ts.map +1 -0
  144. package/dist/semanticTokens.js +68 -0
  145. package/dist/semanticTokens.js.map +1 -0
  146. package/dist/serverSet.d.ts +69 -0
  147. package/dist/serverSet.d.ts.map +1 -0
  148. package/dist/serverSet.js +331 -0
  149. package/dist/serverSet.js.map +1 -0
  150. package/dist/signatureHelp.d.ts +40 -0
  151. package/dist/signatureHelp.d.ts.map +1 -0
  152. package/dist/signatureHelp.js +108 -0
  153. package/dist/signatureHelp.js.map +1 -0
  154. package/dist/signatureHelpController.d.ts +52 -0
  155. package/dist/signatureHelpController.d.ts.map +1 -0
  156. package/dist/signatureHelpController.js +160 -0
  157. package/dist/signatureHelpController.js.map +1 -0
  158. package/dist/sourceText.d.ts +22 -0
  159. package/dist/sourceText.d.ts.map +1 -0
  160. package/dist/sourceText.js +70 -0
  161. package/dist/sourceText.js.map +1 -0
  162. package/dist/types.d.ts +238 -0
  163. package/dist/types.d.ts.map +1 -0
  164. package/dist/types.js +17 -0
  165. package/dist/types.js.map +1 -0
  166. package/dist/viewDocumentSnapshot.d.ts +5 -0
  167. package/dist/viewDocumentSnapshot.d.ts.map +1 -0
  168. package/dist/viewDocumentSnapshot.js +12 -0
  169. package/dist/viewDocumentSnapshot.js.map +1 -0
  170. package/dist/websocket.d.ts +6 -0
  171. package/dist/websocket.d.ts.map +1 -0
  172. package/dist/websocket.js +4 -0
  173. package/dist/workspaceEdit.d.ts +66 -0
  174. package/dist/workspaceEdit.d.ts.map +1 -0
  175. package/dist/workspaceEdit.js +276 -0
  176. package/dist/workspaceEdit.js.map +1 -0
  177. package/dist/workspaceEditProvenance.d.ts +5 -0
  178. package/dist/workspaceEditProvenance.d.ts.map +1 -0
  179. package/dist/workspaceEditProvenance.js +16 -0
  180. package/dist/workspaceEditProvenance.js.map +1 -0
  181. package/dist/workspaceTextEdits.d.ts +60 -0
  182. package/dist/workspaceTextEdits.d.ts.map +1 -0
  183. package/dist/workspaceTextEdits.js +395 -0
  184. package/dist/workspaceTextEdits.js.map +1 -0
  185. package/package.json +118 -0
@@ -0,0 +1,124 @@
1
+ import type { SelectionAffinity, TextEdit } from '@singapore-editor/core/document';
2
+ import type { EditorContributionChange, EditorEditContributionContext, EditorSelectionRange } from '@singapore-editor/core/extensions';
3
+ import { type LspTextDocumentSnapshot } from '@singapore-editor/lsp';
4
+ import type * as lsp from 'vscode-languageserver-protocol';
5
+ export declare const LANGUAGE_SERVER_COMPLETION_EDIT_FEATURE_ID = "editor.lsp-plugin.completion-edit";
6
+ export declare const COMPLETION_REQUEST_DEBOUNCE_MS = 80;
7
+ export type LanguageServerCompletionEditFeature = {
8
+ applyCompletion(application: LanguageServerCompletionApplication): boolean;
9
+ };
10
+ export declare const LANGUAGE_SERVER_COMPLETION_EDIT_FEATURE: import("@singapore-editor/core").EditorCapabilityToken<LanguageServerCompletionEditFeature>;
11
+ export type LanguageServerSnippetMirror = {
12
+ readonly start: number;
13
+ readonly end: number;
14
+ /** Renders this copy from the stop's text; without one the copy holds that text verbatim. */
15
+ readonly transform?: (value: string) => string;
16
+ };
17
+ export type LanguageServerSnippetStop = {
18
+ readonly start: number;
19
+ readonly end: number;
20
+ readonly mirrors?: readonly LanguageServerSnippetMirror[];
21
+ };
22
+ export type LanguageServerCompletionApplication = {
23
+ readonly edits: readonly TextEdit[];
24
+ readonly selection: EditorSelectionRange;
25
+ /**
26
+ * Tab stops to cycle with Tab, each with the copies of it the snippet writes elsewhere, when the
27
+ * accepted item was a snippet the host has something to track.
28
+ */
29
+ readonly snippetStops?: readonly LanguageServerSnippetStop[];
30
+ };
31
+ /** `3` is the kind reserved for asking a server again about a list it marked incomplete. */
32
+ export type LanguageServerCompletionTrigger = {
33
+ readonly triggerKind: 1 | 2 | 3;
34
+ readonly triggerCharacter?: string;
35
+ };
36
+ export type CompletionWidgetShowOptions = {
37
+ readonly anchor: DOMRect;
38
+ readonly items: readonly lsp.CompletionItem[];
39
+ readonly selectedIndex?: number;
40
+ };
41
+ export type CompletionWidgetController = {
42
+ show(options: CompletionWidgetShowOptions): void;
43
+ /** Moves a list already on screen to a new anchor, without rebuilding its rows. */
44
+ reanchor(anchor: DOMRect): void;
45
+ hide(): void;
46
+ isVisible(): boolean;
47
+ containsTarget(target: EventTarget | null): boolean;
48
+ moveSelection(delta: number): void;
49
+ selectedItem(): lsp.CompletionItem | null;
50
+ dispose(): void;
51
+ };
52
+ export type CompletionWidgetOptions = {
53
+ readonly document: Document;
54
+ readonly themeSource: HTMLElement;
55
+ readonly classNamespace?: string;
56
+ onSelect(index: number): void;
57
+ };
58
+ export declare function createCompletionWidgetController(options: CompletionWidgetOptions): CompletionWidgetController;
59
+ /**
60
+ * A server's answer, with the one flag on it that outlives the request.
61
+ *
62
+ * `isIncomplete` is the server saying it truncated its answer for the word it was asked about — the
63
+ * large member sets and auto-import lists are always sent this way — so a list that stays on screen
64
+ * while the user keeps typing has to be asked again rather than narrowed.
65
+ */
66
+ export type CompletionListResult = {
67
+ readonly items: readonly lsp.CompletionItem[];
68
+ readonly isIncomplete: boolean;
69
+ };
70
+ export declare function completionListResult(result: lsp.CompletionList | readonly lsp.CompletionItem[] | null): CompletionListResult;
71
+ export declare function completionTriggerFromChange(change: EditorContributionChange | null): LanguageServerCompletionTrigger | null;
72
+ /** The text a request went out with, which is the frame every range on an item is read in. */
73
+ export type CompletionApplicationDocument = {
74
+ readonly document: LspTextDocumentSnapshot;
75
+ readonly offset: number;
76
+ };
77
+ /**
78
+ * The document an accepted item is applied against.
79
+ *
80
+ * `document` and `offset` are what the request went out with, and the item's ranges are positions
81
+ * in that text. `caretOffset` and `caretAffinity` are where the caret has reached since — rarely the
82
+ * same position, because the widget stays up while the user keeps typing.
83
+ */
84
+ export type CompletionApplicationRequest = CompletionApplicationDocument & {
85
+ readonly caretOffset: number;
86
+ readonly caretAffinity: SelectionAffinity;
87
+ };
88
+ export declare function completionApplication(request: CompletionApplicationRequest, item: lsp.CompletionItem): LanguageServerCompletionApplication | null;
89
+ /**
90
+ * Whether an item could be applied at all against the text it was answered for.
91
+ *
92
+ * The ranges an item carries are positions in that text, and one that spans lines or that the caret
93
+ * was never inside describes a document this client did not ask about. Nothing downstream can rescue
94
+ * such an item, so a row for it would be one the reader can press Enter on and get nothing for.
95
+ */
96
+ export declare function completionItemApplies(request: CompletionApplicationDocument, item: lsp.CompletionItem): boolean;
97
+ export declare function completionAnchorRange(length: number, offset: number): {
98
+ readonly start: number;
99
+ readonly end: number;
100
+ };
101
+ export declare function createCompletionEditFeature(context: EditorEditContributionContext, timingName: string): LanguageServerCompletionEditFeature;
102
+ /**
103
+ * Whether an accepted item still needs a `completionItem/resolve` round-trip.
104
+ *
105
+ * Servers routinely send a list whose items carry only a label, deferring documentation and — the
106
+ * one that matters — the import edit until resolve. Applying such an item directly is what silently
107
+ * drops auto-imports.
108
+ */
109
+ export declare function completionNeedsResolve(item: lsp.CompletionItem, serverCapabilities: lsp.ServerCapabilities | null | undefined): boolean;
110
+ /**
111
+ * Word being typed at `offset`, which is what the list should be filtered against. The server's
112
+ * answer is for the moment the request was sent; the user has usually typed more since.
113
+ */
114
+ export declare function completionPrefix(text: string, offset: number): string;
115
+ /**
116
+ * Filters and orders a completion list against what has been typed.
117
+ *
118
+ * An item earns its place by where the typed characters landed in it, so a word start, a camel-case
119
+ * hump and the far side of a separator all outrank the same letters found in the middle of a word.
120
+ * Ties fall back to the server's own `sortText`, which is how a server expresses relevance it knows
121
+ * and the client does not.
122
+ */
123
+ export declare function rankCompletionItems(items: readonly lsp.CompletionItem[], prefix: string): readonly lsp.CompletionItem[];
124
+ //# sourceMappingURL=completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}