@venn-lang/lsp 0.1.0 → 0.1.2
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/bin/venn-lsp.mjs +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{server-BET60xwK.mjs → server-CS9hyKZX.mjs} +28 -6
- package/dist/server-CS9hyKZX.mjs.map +1 -0
- package/package.json +7 -7
- package/src/completion/context.ts +32 -5
- package/dist/server-BET60xwK.mjs.map +0 -1
package/dist/bin/venn-lsp.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { t as startVennServer } from "../server-
|
|
2
|
+
import { t as startVennServer } from "../server-CS9hyKZX.mjs";
|
|
3
3
|
import { ProposedFeatures, createConnection } from "vscode-languageserver/node";
|
|
4
4
|
//#region src/bin/venn-lsp.ts
|
|
5
5
|
const TRANSPORT_FLAGS = [
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/catalog/catalog.types.ts","../src/catalog/build-catalog.ts","../src/types/type-service.ts","../src/workspace/import-resolver.ts","../src/services/lsp.types.ts","../src/completion/completion.ts","../src/completion/completion.types.ts","../src/completion/context.ts","../src/completion/module-paths.ts","../src/deco/deco.types.ts","../src/deco/builtin-decos.ts","../src/deco/decos-in-scope.ts","../src/definition/definition.ts","../src/docs/doc.types.ts","../src/docs/parse-doc.ts","../src/docs/read-doc.ts","../src/docs/render-doc.ts","../src/document/exported-names.ts","../src/document/find-binding.ts","../src/document/imported-names.ts","../src/document/resolve-fragment.ts","../src/formatting/formatter.ts","../src/hover/hover.ts","../src/references/document-highlight.ts","../src/references/symbol.types.ts","../src/references/find-occurrences.ts","../src/references/occurrences.ts","../src/references/references.ts","../src/references/symbol-at.ts","../src/rename/rename.ts","../src/semantic/semantic-tokens.ts","../src/server/start-server.ts","../src/services/venn-lsp-module.ts","../src/signature/signature-help.ts","../src/symbols/document-symbols.ts","../src/validation/check-validator.ts"],"mappings":";;;;;;;;UAIiB;EACf;EACA;EACA;EACA,MAAM;;;UAIS;EACf;EACA;EACA;EACA,QAAQ;;;UAIO;EACf;EACA;EACA,SAAS;;;;;;UAOM;EACf;EACA;EACA,aAAa;EACb,UAAU,6BAA6B;EACvC,OAAO,mBAAmB,eAAe;;EAEzC,QAAQ,6BAA6B;EACrC,qBAAqB;EACrB,QAAQ,eAAe;EACvB,mBAAmB;;EAEnB,YAAY;;;;;;;;;;iBCzBE,aAAa,kBAAkB,qBAAqB;;;;UCKnD;EACf,mBAAmB;EACnB,OAAO,YAAY,SAAS;;;;;;EAM5B,OAAO,YAAY,mBAAmB;;;;;;;;;;UAWvB;;EAEf,GAAG,UAAU,kBAAkB;;EAE/B,KAAK,UAAU,kBAAkB;;EAEjC,OAAO;;;;;;;;UChCQ;EACf,QAAQ,cAAc,MAAM,MAAM;;EAElC,QAAQ,MAAM,MAAM,eAAe;;EAEnC,eAAe,MAAM,MAAM;;EAE3B,IAAI,MAAM,MAAM,eAAe;;EAE/B,QAAQ,MAAM,MAAM;;;;;;;;;;EAUpB,aAAa,MAAM,KAAK,8BAA8B,YAAY,eAAe;;;;;;iBAiBnE,wBAAwB;;;;UC7CvB;EACf,SAAS;EACT,SAAS;EACT,OAAO;;;KAIG,eAAe,kBAAkB;;;;;;;;;cCkDhC,kCAAkC;mBAC5B;mBACA;mBACA;mBACA;EAEjB,YAAY,UAAU;EAOtB,cACE,UAAU,iBACV,QAAQ,mBACP,QAAQ;;;;;;UAkBH;;;;;UAwBA;UAUA;UAKM;;;;;;;;;UA8BN;;UAWA;;;;;;;UAoBA;;UAcA;;;;;UAcA;;;;;;;UAeA;;;;;;;;UAaA;;UAmBA;;UAgBA;;;;;;;;UAmBA;;;;;;UAyBA;;UAkBA;UAiBM;UAKN;UAMM;;;;;;;;;;KCpXJ;EACN;EAAiB;;EACjB;EAAoB;EAAc;;EAClC;EAAoB;EAAc;;EAElC;EAAgB;EAAc;;EAE9B;EAAgB;;EAChB;EAAoB;;EACpB;EAAkB;;EAClB;EAAiB;;EAEjB;EAAmB;EAAc;;EAMjC;EAAkB;EAAc;;EAEhC;EAAkB;;EAClB;EAAmB;;;UAGR;;EAEf;;EAEA;;EAEA;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/catalog/catalog.types.ts","../src/catalog/build-catalog.ts","../src/types/type-service.ts","../src/workspace/import-resolver.ts","../src/services/lsp.types.ts","../src/completion/completion.ts","../src/completion/completion.types.ts","../src/completion/context.ts","../src/completion/module-paths.ts","../src/deco/deco.types.ts","../src/deco/builtin-decos.ts","../src/deco/decos-in-scope.ts","../src/definition/definition.ts","../src/docs/doc.types.ts","../src/docs/parse-doc.ts","../src/docs/read-doc.ts","../src/docs/render-doc.ts","../src/document/exported-names.ts","../src/document/find-binding.ts","../src/document/imported-names.ts","../src/document/resolve-fragment.ts","../src/formatting/formatter.ts","../src/hover/hover.ts","../src/references/document-highlight.ts","../src/references/symbol.types.ts","../src/references/find-occurrences.ts","../src/references/occurrences.ts","../src/references/references.ts","../src/references/symbol-at.ts","../src/rename/rename.ts","../src/semantic/semantic-tokens.ts","../src/server/start-server.ts","../src/services/venn-lsp-module.ts","../src/signature/signature-help.ts","../src/symbols/document-symbols.ts","../src/validation/check-validator.ts"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as builtinDecos, C as findFragment, D as renderDoc, E as decosInScope, O as readDoc, S as findBinding, T as decoNamed, _ as modulePaths, a as VennDocumentSymbolProvider, b as resolveFragment, c as VennReferencesProvider, d as symbolAt, f as occurrencesIn, g as VennCompletionProvider, h as VennDefinitionProvider, i as registerVennChecks, j as buildCatalog, k as parseDoc, l as findOccurrences, m as VennFormatter, n as createVennLspServices, o as VennSemanticTokenProvider, p as VennHoverProvider, r as createImportResolver, s as VennRenameProvider, t as startVennServer, u as VennDocumentHighlightProvider, v as contextAt, w as exportedNames, x as importedNames, y as VennSignatureHelpProvider } from "./server-
|
|
1
|
+
import { A as builtinDecos, C as findFragment, D as renderDoc, E as decosInScope, O as readDoc, S as findBinding, T as decoNamed, _ as modulePaths, a as VennDocumentSymbolProvider, b as resolveFragment, c as VennReferencesProvider, d as symbolAt, f as occurrencesIn, g as VennCompletionProvider, h as VennDefinitionProvider, i as registerVennChecks, j as buildCatalog, k as parseDoc, l as findOccurrences, m as VennFormatter, n as createVennLspServices, o as VennSemanticTokenProvider, p as VennHoverProvider, r as createImportResolver, s as VennRenameProvider, t as startVennServer, u as VennDocumentHighlightProvider, v as contextAt, w as exportedNames, x as importedNames, y as VennSignatureHelpProvider } from "./server-CS9hyKZX.mjs";
|
|
2
2
|
export { VennCompletionProvider, VennDefinitionProvider, VennDocumentHighlightProvider, VennDocumentSymbolProvider, VennFormatter, VennHoverProvider, VennReferencesProvider, VennRenameProvider, VennSemanticTokenProvider, VennSignatureHelpProvider, buildCatalog, builtinDecos, contextAt, createImportResolver, createVennLspServices, decoNamed, decosInScope, exportedNames, findBinding, findFragment, findOccurrences, importedNames, modulePaths, occurrencesIn, parseDoc, readDoc, registerVennChecks, renderDoc, resolveFragment, startVennServer, symbolAt };
|
|
@@ -1767,7 +1767,6 @@ const ACTION = /(?<![\w.])([A-Za-z_]\w*(?:\.\w+)*)\.(\w*)$/;
|
|
|
1767
1767
|
const ANNOTATION = /@(\w*)$/;
|
|
1768
1768
|
const FRAGMENT$1 = /\brun\s+(\w*)$/;
|
|
1769
1769
|
const MATCHER = /\bexpect\b\s+\S+\s+(\w*)$/;
|
|
1770
|
-
const WORD = /(\w*)$/;
|
|
1771
1770
|
/**
|
|
1772
1771
|
* Where a type goes: after the `:` of a field, a parameter or a binding, after
|
|
1773
1772
|
* the `->` of a declared return, or after the `|` of a union.
|
|
@@ -1783,7 +1782,7 @@ const TYPE_POSITION = /(?:^|[^:])(?::|->|\|)\s*([A-Za-z_][\w.]*)?$/;
|
|
|
1783
1782
|
* `http.on api ▮`, `print ▮`. The leading anchor keeps this to the head of a
|
|
1784
1783
|
* statement, so `1 + ▮` and the tail of an expression are not swept in.
|
|
1785
1784
|
*/
|
|
1786
|
-
const ARGUMENT = /^\s*([A-Za-z_]\w*(?:\.\w+)*)\s
|
|
1785
|
+
const ARGUMENT = /^\s*([A-Za-z_]\w*(?:\.\w+)*)\s/;
|
|
1787
1786
|
const FROM_PATH = /\bfrom\s+"([^"]+)"/;
|
|
1788
1787
|
/**
|
|
1789
1788
|
* A dot whose receiver no path can name: `1234.567.round`, `f(x).len`,
|
|
@@ -1834,7 +1833,7 @@ function contextAt(text) {
|
|
|
1834
1833
|
};
|
|
1835
1834
|
return optionContext(text) ?? typeContext(text) ?? argumentContext(prefix) ?? {
|
|
1836
1835
|
kind: "statement",
|
|
1837
|
-
from: back(prefix,
|
|
1836
|
+
from: back(prefix, trailingWord(prefix))
|
|
1838
1837
|
};
|
|
1839
1838
|
}
|
|
1840
1839
|
/**
|
|
@@ -1853,12 +1852,13 @@ function typeContext(text) {
|
|
|
1853
1852
|
}
|
|
1854
1853
|
/** `http.on ▮`: the head of the line is a verb, and an argument is due. */
|
|
1855
1854
|
function argumentContext(prefix) {
|
|
1855
|
+
if (prefix.includes("{") || prefix.includes("}")) return void 0;
|
|
1856
1856
|
const found = ARGUMENT.exec(prefix);
|
|
1857
1857
|
if (!found?.[1]) return void 0;
|
|
1858
1858
|
return {
|
|
1859
1859
|
kind: "argument",
|
|
1860
1860
|
target: found[1],
|
|
1861
|
-
from: back(prefix,
|
|
1861
|
+
from: back(prefix, trailingWord(prefix))
|
|
1862
1862
|
};
|
|
1863
1863
|
}
|
|
1864
1864
|
/**
|
|
@@ -1875,7 +1875,7 @@ function optionContext(text) {
|
|
|
1875
1875
|
return {
|
|
1876
1876
|
kind: "optionKey",
|
|
1877
1877
|
target,
|
|
1878
|
-
from: back(text.prefix,
|
|
1878
|
+
from: back(text.prefix, trailingWord(text.prefix))
|
|
1879
1879
|
};
|
|
1880
1880
|
}
|
|
1881
1881
|
/** The `{` still open at the cursor, scanning backwards. */
|
|
@@ -1916,6 +1916,28 @@ function pathOf(line) {
|
|
|
1916
1916
|
function back(prefix, partial) {
|
|
1917
1917
|
return prefix.length - (partial?.length ?? 0);
|
|
1918
1918
|
}
|
|
1919
|
+
/**
|
|
1920
|
+
* The word being typed at the end of `text`, empty when the last character is
|
|
1921
|
+
* not part of one.
|
|
1922
|
+
*
|
|
1923
|
+
* Scanned backwards rather than matched with `/(\w*)$/`. That pattern has
|
|
1924
|
+
* nothing to anchor to, so the engine tries it at every position, which is
|
|
1925
|
+
* quadratic in the length of the line: 27ms at ten thousand characters and
|
|
1926
|
+
* 454ms at forty thousand, while a completion is meant to be instant. A line is
|
|
1927
|
+
* as long as whoever wrote the file made it.
|
|
1928
|
+
*/
|
|
1929
|
+
function trailingWord(text) {
|
|
1930
|
+
let at = text.length;
|
|
1931
|
+
while (at > 0 && isWordCharacter(text.charCodeAt(at - 1))) at -= 1;
|
|
1932
|
+
return text.slice(at);
|
|
1933
|
+
}
|
|
1934
|
+
/** `\w`: a digit, a letter or an underscore. */
|
|
1935
|
+
function isWordCharacter(code) {
|
|
1936
|
+
if (code >= 48 && code <= 57) return true;
|
|
1937
|
+
if (code >= 65 && code <= 90) return true;
|
|
1938
|
+
if (code >= 97 && code <= 122) return true;
|
|
1939
|
+
return code === 95;
|
|
1940
|
+
}
|
|
1919
1941
|
//#endregion
|
|
1920
1942
|
//#region src/completion/read-from.ts
|
|
1921
1943
|
/**
|
|
@@ -5373,4 +5395,4 @@ function startVennServer(connection) {
|
|
|
5373
5395
|
//#endregion
|
|
5374
5396
|
export { builtinDecos as A, findFragment as C, renderDoc as D, decosInScope as E, readDoc as O, findBinding as S, decoNamed as T, modulePaths as _, VennDocumentSymbolProvider as a, resolveFragment as b, VennReferencesProvider as c, symbolAt as d, occurrencesIn as f, VennCompletionProvider as g, VennDefinitionProvider as h, registerVennChecks as i, buildCatalog as j, parseDoc as k, findOccurrences as l, VennFormatter as m, createVennLspServices as n, VennSemanticTokenProvider as o, VennHoverProvider as p, createImportResolver as r, VennRenameProvider as s, startVennServer as t, VennDocumentHighlightProvider as u, contextAt as v, exportedNames as w, importedNames$1 as x, VennSignatureHelpProvider as y };
|
|
5375
5397
|
|
|
5376
|
-
//# sourceMappingURL=server-
|
|
5398
|
+
//# sourceMappingURL=server-CS9hyKZX.mjs.map
|