stan-language-server 0.1.0 → 0.2.0-beta.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 (52) hide show
  1. package/dist/__tests__/compiler.test.d.ts +1 -0
  2. package/dist/__tests__/handlers/compilation.test.d.ts +1 -0
  3. package/dist/__tests__/handlers/diagnostics.test.d.ts +1 -0
  4. package/dist/__tests__/handlers/formatting.test.d.ts +1 -0
  5. package/dist/__tests__/handlers/includes.test.d.ts +1 -0
  6. package/dist/__tests__/includes.test.d.ts +1 -0
  7. package/dist/__tests__/language/completion/providers/constraints.test.d.ts +1 -0
  8. package/dist/__tests__/language/completion/providers/datatypes.test.d.ts +1 -0
  9. package/dist/__tests__/language/completion/providers/distributions.test.d.ts +1 -0
  10. package/dist/__tests__/language/completion/providers/functions.test.d.ts +1 -0
  11. package/dist/__tests__/language/completion/providers/keywords.test.d.ts +1 -0
  12. package/dist/__tests__/language/completion/util.test.d.ts +1 -0
  13. package/dist/__tests__/language/diagnostics/linter.test.d.ts +1 -0
  14. package/dist/__tests__/language/formatting/integration.test.d.ts +1 -0
  15. package/dist/handlers/compilation/compilation.d.ts +4 -0
  16. package/dist/handlers/compilation/includes.d.ts +4 -0
  17. package/dist/handlers/completion.d.ts +3 -0
  18. package/dist/handlers/diagnostics.d.ts +3 -0
  19. package/dist/handlers/formatting.d.ts +4 -0
  20. package/dist/handlers/hover.d.ts +7 -0
  21. package/dist/handlers/index.d.ts +4 -0
  22. package/dist/language/completion/providers/constraints.d.ts +3 -0
  23. package/dist/language/completion/providers/datatypes.d.ts +3 -0
  24. package/dist/language/completion/providers/distributions.d.ts +2 -0
  25. package/dist/language/completion/providers/functions.d.ts +2 -0
  26. package/dist/language/completion/providers/keywords.d.ts +2 -0
  27. package/dist/language/completion/util.d.ts +4 -0
  28. package/dist/language/diagnostics/index.d.ts +2 -0
  29. package/dist/language/diagnostics/linter.d.ts +5 -0
  30. package/dist/language/diagnostics/provider.d.ts +3 -0
  31. package/dist/language/formatting/index.d.ts +1 -0
  32. package/dist/language/formatting/provider.d.ts +2 -0
  33. package/dist/language/hover/distributions.d.ts +1 -0
  34. package/dist/language/hover/functions.d.ts +1 -0
  35. package/dist/language/hover/index.d.ts +1 -0
  36. package/dist/language/hover/provider.d.ts +1 -0
  37. package/dist/language/hover/util.d.ts +4 -0
  38. package/dist/server/cli.d.ts +1 -0
  39. package/dist/{server.js → server/cli.js} +11 -11
  40. package/dist/server/index.d.ts +3 -0
  41. package/dist/server/index.js +89750 -0
  42. package/dist/stanc/compiler.d.ts +9 -0
  43. package/dist/stanc/includes.d.ts +10 -0
  44. package/dist/stanc/provider.d.ts +2 -0
  45. package/dist/stanc/stanc.d.ts +2 -0
  46. package/dist/types/common.d.ts +17 -0
  47. package/dist/types/completion.d.ts +15 -0
  48. package/dist/types/diagnostics.d.ts +18 -0
  49. package/dist/types/formatting.d.ts +26 -0
  50. package/dist/types/index.d.ts +4 -0
  51. package/dist/types/index.js +11 -0
  52. package/package.json +17 -7
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { TextDocument } from "vscode-languageserver-textdocument";
2
+ import type { TextDocuments, WorkspaceFolder, RemoteConsole } from "vscode-languageserver";
3
+ import type { StancReturn } from "../../types/common";
4
+ export declare function handleCompilation(document: TextDocument, documentManager: TextDocuments<TextDocument>, workspaceFolders: WorkspaceFolder[], logger: RemoteConsole): Promise<StancReturn>;
@@ -0,0 +1,4 @@
1
+ import { TextDocuments, WorkspaceFolder, type RemoteConsole } from "vscode-languageserver";
2
+ import type { TextDocument } from "vscode-languageserver-textdocument";
3
+ import { type Filename, type FileContent } from "../../stanc/includes";
4
+ export declare function handleIncludes(document: TextDocument, documentManager: TextDocuments<TextDocument>, workspaceFolders: WorkspaceFolder[], logger: RemoteConsole): Promise<Record<Filename, FileContent>>;
@@ -0,0 +1,3 @@
1
+ import { type CompletionParams, TextDocuments, CompletionItem } from "vscode-languageserver";
2
+ import { TextDocument } from "vscode-languageserver-textdocument";
3
+ export declare function handleCompletion(params: CompletionParams, documents: TextDocuments<TextDocument>): CompletionItem[];
@@ -0,0 +1,3 @@
1
+ import { Diagnostic, TextDocuments, WorkspaceFolder, type DocumentDiagnosticParams, type RemoteConsole } from "vscode-languageserver";
2
+ import { TextDocument } from "vscode-languageserver-textdocument";
3
+ export declare function handleDiagnostics(params: DocumentDiagnosticParams, documents: TextDocuments<TextDocument>, workspaceFolders: WorkspaceFolder[], logger: RemoteConsole): Promise<Diagnostic[]>;
@@ -0,0 +1,4 @@
1
+ import type { DocumentFormattingParams, RemoteConsole, TextDocuments, TextEdit, WorkspaceFolder } from "vscode-languageserver";
2
+ import type { TextDocument } from "vscode-languageserver-textdocument";
3
+ export declare function handleFormatting(params: DocumentFormattingParams, documents: TextDocuments<TextDocument>, workspaceFolders: WorkspaceFolder[], logger: RemoteConsole): Promise<TextEdit[]>;
4
+ export declare function getFormattingErrors(params: DocumentFormattingParams, documents: TextDocuments<TextDocument>, workspaceFolders: WorkspaceFolder[], logger: RemoteConsole): Promise<string[]>;
@@ -0,0 +1,7 @@
1
+ import type { HoverParams, Hover, MarkupContent } from "vscode-languageserver";
2
+ import type { TextDocument } from "vscode-languageserver-textdocument";
3
+ type MarkupLookupMap = Map<string, MarkupContent>;
4
+ type GetMarkupLookupMapFn = () => MarkupLookupMap;
5
+ export declare const handleHover: (getMarkupLookupFn: GetMarkupLookupMapFn) => (document: TextDocument, params: HoverParams) => Promise<Hover | null>;
6
+ declare const _default: (document: TextDocument, params: HoverParams) => Promise<Hover | null>;
7
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export { handleCompletion } from "./completion";
2
+ export { handleDiagnostics } from "./diagnostics";
3
+ export { default as handleHover } from "./hover";
4
+ export { handleFormatting, getFormattingErrors } from "./formatting";
@@ -0,0 +1,3 @@
1
+ import type { Constraint, Position } from "../../../types/completion";
2
+ export declare const CONSTRAINTS: string[];
3
+ export declare const provideConstraintCompletions: (text: string, position: Position) => Constraint[];
@@ -0,0 +1,3 @@
1
+ import type { Datatype, Position } from "../../../types/completion";
2
+ export declare const DATATYPES: string[];
3
+ export declare const provideDatatypeCompletions: (text: string, position: Position) => Datatype[];
@@ -0,0 +1,2 @@
1
+ import type { Distribution, Position } from "../../../types/completion";
2
+ export declare const provideDistributionCompletions: (text: string, position: Position, distributions: string[]) => Distribution[];
@@ -0,0 +1,2 @@
1
+ import type { StanFunction, Position } from "../../../types/completion";
2
+ export declare const provideFunctionCompletions: (text: string, position: Position, functionSignatures: string[]) => StanFunction[];
@@ -0,0 +1,2 @@
1
+ import type { Keyword, Position } from "../../../types/completion";
2
+ export declare const provideKeywordCompletions: (text: string, position: Position) => Keyword[];
@@ -0,0 +1,4 @@
1
+ import TrieSearch, { type TrieSearchOptions } from "trie-search";
2
+ import type { Searchable, Position } from "../../types/completion";
3
+ export declare const getSearchableItems: <T extends Searchable>(xs: T[], options?: TrieSearchOptions<T>) => TrieSearch<T>;
4
+ export declare const getTextUpToCursor: (text: string, position: Position) => string;
@@ -0,0 +1,2 @@
1
+ export { provideDiagnostics } from "./provider";
2
+ export { rangeFromMessage, getWarningMessage, getErrorMessage } from "./linter";
@@ -0,0 +1,5 @@
1
+ import type { Range } from "../../types/diagnostics";
2
+ declare function rangeFromMessage(message: string): Range | undefined;
3
+ declare function getWarningMessage(message: string): string;
4
+ declare function getErrorMessage(message: string): string;
5
+ export { rangeFromMessage, getWarningMessage, getErrorMessage };
@@ -0,0 +1,3 @@
1
+ import { type StanDiagnostic } from "../../types/diagnostics";
2
+ import type { StancReturn } from "../../types/common";
3
+ export declare function provideDiagnostics(compilerResult: StancReturn): StanDiagnostic[];
@@ -0,0 +1 @@
1
+ export { provideFormatting } from "./provider";
@@ -0,0 +1,2 @@
1
+ import type { FormattingContext, FormattingResult } from "../../types/formatting";
2
+ export declare function provideFormatting(context: FormattingContext): FormattingResult;
@@ -0,0 +1 @@
1
+ export declare const tryDistributionHover: (text: string, beginningOfWord: number, endOfWord: number) => string | null;
@@ -0,0 +1 @@
1
+ export declare const tryFunctionHover: (text: string, beginningOfWord: number, endOfWord: number) => string | null;
@@ -0,0 +1 @@
1
+ export { provideHover } from "./provider";
@@ -0,0 +1 @@
1
+ export declare function provideHover(text: string, beginningOfWord: number, endOfWord: number): string | null;
@@ -0,0 +1,4 @@
1
+ export declare const isWordChar: (char: string) => boolean;
2
+ export declare const isWhitespace: (char: string) => char is " " | "\n" | "\t" | "\r";
3
+ export declare const previousWordBoundary: (text: string, pos: number) => number;
4
+ export declare const wordUntilNextParenthesis: (text: string, pos: number) => number;
@@ -0,0 +1 @@
1
+ export {};
@@ -88633,7 +88633,7 @@ You may be missing a "," between expressions, an operator, or a terminating "}",
88633
88633
  })(globalThis);
88634
88634
  });
88635
88635
 
88636
- // src/server.ts
88636
+ // src/server/cli.ts
88637
88637
  var import_node2 = __toESM(require_main4(), 1);
88638
88638
 
88639
88639
  // node_modules/vscode-languageserver-textdocument/lib/esm/main.js
@@ -88860,7 +88860,7 @@ function getWellformedEdit(textEdit) {
88860
88860
  return textEdit;
88861
88861
  }
88862
88862
 
88863
- // src/lib.ts
88863
+ // src/server/index.ts
88864
88864
  var import_node = __toESM(require_main4(), 1);
88865
88865
 
88866
88866
  // src/handlers/completion.ts
@@ -89353,11 +89353,11 @@ var readIncludedFileFromFileSystem = async (filename, currentDir) => {
89353
89353
  import { fileURLToPath as fileURLToPath3 } from "url";
89354
89354
  var stancjs2 = require_stanc();
89355
89355
  var stanc2 = stancjs2.stanc;
89356
- async function handleCompilation(document, documentManager, workspaceFolders) {
89356
+ async function handleCompilation(document, documentManager, workspaceFolders, logger) {
89357
89357
  const lineLength = 78;
89358
89358
  const filename = fileURLToPath3(document.uri);
89359
89359
  const code = document.getText();
89360
- const includes = await handleIncludes(document, documentManager, workspaceFolders);
89360
+ const includes = await handleIncludes(document, documentManager, workspaceFolders, logger);
89361
89361
  const stanc_args = [
89362
89362
  "auto-format",
89363
89363
  `filename-in-msg=${filename}`,
@@ -89406,12 +89406,12 @@ function domainSeverityToLspSeverity(domainSeverity) {
89406
89406
  return import_vscode_languageserver2.DiagnosticSeverity.Error;
89407
89407
  }
89408
89408
  }
89409
- async function handleDiagnostics(params, documents, workspaceFolders) {
89409
+ async function handleDiagnostics(params, documents, workspaceFolders, logger) {
89410
89410
  const document = documents.get(params.textDocument.uri);
89411
89411
  if (!document) {
89412
89412
  return [];
89413
89413
  }
89414
- const compilerResult = await handleCompilation(document, documents, workspaceFolders);
89414
+ const compilerResult = await handleCompilation(document, documents, workspaceFolders, logger);
89415
89415
  const stanDiagnostics = provideDiagnostics(compilerResult);
89416
89416
  return stanDiagnostics.map(stanDiagnosticToLspDiagnostic);
89417
89417
  }
@@ -89680,7 +89680,7 @@ async function getFormattingErrors(params, documents, workspaceFolders, logger)
89680
89680
  const result = provideFormatting(context);
89681
89681
  return result.errors || [];
89682
89682
  }
89683
- // src/lib.ts
89683
+ // src/server/index.ts
89684
89684
  var startLanguageServer = (connection) => {
89685
89685
  connection.onInitialize((_params) => {
89686
89686
  connection.console.info("Initializing Stan language server...");
@@ -89719,7 +89719,7 @@ var startLanguageServer = (connection) => {
89719
89719
  const folders = await connection.workspace.getWorkspaceFolders() || [];
89720
89720
  return {
89721
89721
  kind: "full",
89722
- items: await handleDiagnostics(params, documents, folders)
89722
+ items: await handleDiagnostics(params, documents, folders, connection.console)
89723
89723
  };
89724
89724
  });
89725
89725
  connection.onDocumentFormatting(async (params) => {
@@ -89747,8 +89747,8 @@ var startLanguageServer = (connection) => {
89747
89747
  documents.listen(connection);
89748
89748
  connection.listen();
89749
89749
  };
89750
- var lib_default = startLanguageServer;
89750
+ var server_default = startLanguageServer;
89751
89751
 
89752
- // src/server.ts
89752
+ // src/server/cli.ts
89753
89753
  var connection = import_node2.createConnection(process.stdin, process.stdout);
89754
- lib_default(connection);
89754
+ server_default(connection);
@@ -0,0 +1,3 @@
1
+ import { type Connection } from "vscode-languageserver/node";
2
+ declare const startLanguageServer: (connection: Connection) => void;
3
+ export default startLanguageServer;