@stacksjs/dtsx 0.9.9 → 0.9.11
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.md +21 -0
- package/README.md +243 -15
- package/dist/bin/cli.js +10 -22
- package/dist/branded-types.d.ts +150 -0
- package/dist/bundler.d.ts +55 -0
- package/dist/cache.d.ts +43 -0
- package/dist/checker.d.ts +107 -0
- package/dist/chunk-1bav913n.js +6 -0
- package/dist/chunk-2wbhe1k8.js +2 -0
- package/dist/chunk-3d18fhrg.js +3 -0
- package/dist/chunk-3g2v2ns2.js +2 -0
- package/dist/chunk-3j7r0fxz.js +2 -0
- package/dist/chunk-4qpg9xnt.js +3 -0
- package/dist/chunk-57agx6g8.js +3 -0
- package/dist/chunk-5vqtjws2.js +2 -0
- package/dist/chunk-6mwq397e.js +2 -0
- package/dist/chunk-6qv7p9sg.js +170 -0
- package/dist/chunk-6s7n1gt0.js +2 -0
- package/dist/chunk-74j5mydx.js +3 -0
- package/dist/chunk-7cpp6v8f.js +2 -0
- package/dist/chunk-9a6yn7sv.js +75 -0
- package/dist/chunk-axb2kjeq.js +2 -0
- package/dist/chunk-begk3j01.js +33 -0
- package/dist/chunk-cmenkst5.js +3 -0
- package/dist/chunk-d0p3jzwb.js +34 -0
- package/dist/chunk-f18nyrrb.js +32 -0
- package/dist/chunk-fb4c98h2.js +2 -0
- package/dist/chunk-ggmn4a8c.js +4 -0
- package/dist/chunk-hrmnrn4p.js +3 -0
- package/dist/chunk-j0y71ank.js +2 -0
- package/dist/chunk-j6aqdbc4.js +2 -0
- package/dist/chunk-jm5ywn4e.js +13 -0
- package/dist/chunk-knkfbqze.js +2 -0
- package/dist/chunk-n28rjf9h.js +3 -0
- package/dist/chunk-p1d09y82.js +449 -0
- package/dist/chunk-r1m3q3dj.js +2 -0
- package/dist/chunk-r1ywapeb.js +6 -0
- package/dist/chunk-rnt0wkrk.js +23 -0
- package/dist/chunk-rw6j20e2.js +3 -0
- package/dist/chunk-v96rjx7x.js +134 -0
- package/dist/chunk-w9abhtgg.js +22 -0
- package/dist/chunk-wfevdmvd.js +19 -0
- package/dist/chunk-ws2dmfvj.js +2 -0
- package/dist/chunk-xnq1xw73.js +15 -0
- package/dist/chunk-xyctgc6x.js +102 -0
- package/dist/chunk-y3q50bn2.js +2 -0
- package/dist/chunk-ywd4k4hn.js +3 -0
- package/dist/circular.d.ts +82 -0
- package/dist/compat.d.ts +108 -0
- package/dist/config.d.ts +33 -3
- package/dist/diff.d.ts +82 -0
- package/dist/docs.d.ts +97 -0
- package/dist/errors.d.ts +113 -0
- package/dist/extractor/builders.d.ts +38 -0
- package/dist/extractor/cache.d.ts +47 -0
- package/dist/extractor/declarations.d.ts +50 -0
- package/dist/extractor/directives.d.ts +9 -0
- package/dist/extractor/extract.d.ts +10 -0
- package/dist/extractor/hash.d.ts +1 -0
- package/dist/extractor/helpers.d.ts +39 -0
- package/dist/extractor/index.d.ts +70 -0
- package/dist/extractor/scanner.d.ts +6 -0
- package/dist/extractor.d.ts +3 -4
- package/dist/formats.d.ts +50 -0
- package/dist/formatter.d.ts +61 -0
- package/dist/generator.d.ts +12 -3
- package/dist/import-sorter.d.ts +99 -0
- package/dist/incremental.d.ts +84 -0
- package/dist/index.d.ts +54 -1
- package/dist/logger.d.ts +57 -0
- package/dist/lsp.d.ts +317 -0
- package/dist/memory.d.ts +110 -0
- package/dist/merger.d.ts +38 -0
- package/dist/optimizer.d.ts +52 -0
- package/dist/output-normalizer.d.ts +123 -0
- package/dist/parallel-processor.d.ts +63 -0
- package/dist/parser.d.ts +24 -15
- package/dist/plugins/bun.d.ts +58 -0
- package/dist/plugins/esbuild.d.ts +63 -0
- package/dist/plugins/index.d.ts +14 -0
- package/dist/plugins/tsup.d.ts +53 -0
- package/dist/plugins/vite.d.ts +49 -0
- package/dist/plugins/webpack.d.ts +66 -0
- package/dist/plugins.d.ts +83 -0
- package/dist/process-source.d.ts +11 -0
- package/dist/processor/cache.d.ts +16 -0
- package/dist/processor/comments.d.ts +7 -0
- package/dist/processor/declarations.d.ts +37 -0
- package/dist/processor/imports.d.ts +65 -0
- package/dist/processor/index.d.ts +34 -0
- package/dist/processor/type-inference.d.ts +106 -0
- package/dist/processor.d.ts +3 -43
- package/dist/profiling.d.ts +101 -0
- package/dist/security.d.ts +100 -0
- package/dist/sourcemap.d.ts +125 -0
- package/dist/src/index.js +55 -2
- package/dist/src/plugins/bun.js +2 -0
- package/dist/src/plugins/esbuild.js +2 -0
- package/dist/src/plugins/index.js +2 -0
- package/dist/src/plugins/tsup.js +2 -0
- package/dist/src/plugins/vite.js +2 -0
- package/dist/src/plugins/webpack.js +2 -0
- package/dist/tracking.d.ts +89 -0
- package/dist/transformers.d.ts +173 -0
- package/dist/tree-shaker.d.ts +69 -0
- package/dist/type-mappings.d.ts +124 -0
- package/dist/types.d.ts +137 -7
- package/dist/utils.d.ts +53 -1
- package/dist/watcher.d.ts +64 -0
- package/dist/worker.d.ts +84 -0
- package/dist/workspace.d.ts +62 -0
- package/package.json +49 -11
- package/dist/chunk-qsyn1k3w.js +0 -504
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse an import statement
|
|
3
|
+
*/
|
|
4
|
+
export declare function parseImport(statement: string): ParsedImport | null;
|
|
5
|
+
/**
|
|
6
|
+
* Detect the group for an import source
|
|
7
|
+
*/
|
|
8
|
+
export declare function detectGroup(source: string, isTypeOnly?: boolean): ImportGroup;
|
|
9
|
+
/**
|
|
10
|
+
* Sort imports according to configuration
|
|
11
|
+
*/
|
|
12
|
+
export declare function sortImports(imports: string[], config?: ImportSortConfig): string[];
|
|
13
|
+
/**
|
|
14
|
+
* Sort imports in a file content
|
|
15
|
+
*/
|
|
16
|
+
export declare function sortImportsInContent(content: string, config?: ImportSortConfig): string;
|
|
17
|
+
/**
|
|
18
|
+
* Create a configured import sorter
|
|
19
|
+
*/
|
|
20
|
+
export declare function createImportSorter(config?: ImportSortConfig): {
|
|
21
|
+
sort: (imports: string[]) => string[]
|
|
22
|
+
sortContent: (content: string) => string
|
|
23
|
+
parse: typeof parseImport
|
|
24
|
+
detectGroup: typeof detectGroup
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Default import group order
|
|
28
|
+
*/
|
|
29
|
+
export declare const DEFAULT_GROUP_ORDER: ImportGroup[];
|
|
30
|
+
/**
|
|
31
|
+
* Preset configurations
|
|
32
|
+
*/
|
|
33
|
+
export declare const presets: {
|
|
34
|
+
/**
|
|
35
|
+
* Default preset - groups by type, alphabetizes
|
|
36
|
+
*/
|
|
37
|
+
default: unknown;
|
|
38
|
+
/**
|
|
39
|
+
* Node.js style - node: first, then external, then relative
|
|
40
|
+
*/
|
|
41
|
+
node: unknown;
|
|
42
|
+
/**
|
|
43
|
+
* Bun style - bun first
|
|
44
|
+
*/
|
|
45
|
+
bun: unknown;
|
|
46
|
+
/**
|
|
47
|
+
* Type imports separated
|
|
48
|
+
*/
|
|
49
|
+
typeSeparated: unknown;
|
|
50
|
+
/**
|
|
51
|
+
* No grouping, just alphabetize
|
|
52
|
+
*/
|
|
53
|
+
alphabetical: unknown;
|
|
54
|
+
/**
|
|
55
|
+
* Keep original order
|
|
56
|
+
*/
|
|
57
|
+
none: unknown
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Import sorting module for organizing imports in declaration files
|
|
61
|
+
*/
|
|
62
|
+
/**
|
|
63
|
+
* Import sorting configuration
|
|
64
|
+
*/
|
|
65
|
+
export declare interface ImportSortConfig {
|
|
66
|
+
order?: string[]
|
|
67
|
+
groupByType?: boolean
|
|
68
|
+
groups?: ImportGroup[]
|
|
69
|
+
alphabetize?: boolean
|
|
70
|
+
caseInsensitive?: boolean
|
|
71
|
+
typeImportsLast?: boolean
|
|
72
|
+
separateTypeImports?: boolean
|
|
73
|
+
customGroups?: Record<string, string[]>
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Parsed import information
|
|
77
|
+
*/
|
|
78
|
+
export declare interface ParsedImport {
|
|
79
|
+
statement: string
|
|
80
|
+
source: string
|
|
81
|
+
isTypeOnly: boolean
|
|
82
|
+
group: ImportGroup
|
|
83
|
+
specifiers: string[]
|
|
84
|
+
defaultImport?: string
|
|
85
|
+
namespaceImport?: string
|
|
86
|
+
lineNumber?: number
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Import group types
|
|
90
|
+
*/
|
|
91
|
+
export type ImportGroup = | 'builtin'
|
|
92
|
+
| 'external'
|
|
93
|
+
| 'internal'
|
|
94
|
+
| 'parent'
|
|
95
|
+
| 'sibling'
|
|
96
|
+
| 'index'
|
|
97
|
+
| 'type'
|
|
98
|
+
| 'unknown'
|
|
99
|
+
| string // Custom group name;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { Declaration, DtsGenerationConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Create an incremental build wrapper
|
|
4
|
+
*/
|
|
5
|
+
export declare function createIncrementalBuilder(cache: IncrementalCache, configHash: string): void;
|
|
6
|
+
/**
|
|
7
|
+
* Prune old cache entries
|
|
8
|
+
*/
|
|
9
|
+
export declare function pruneCache(cache: IncrementalCache, _maxAge?: number, // 7 days default: unknown): Promise<number>;
|
|
10
|
+
/**
|
|
11
|
+
* Format incremental build result
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatIncrementalResult(result: IncrementalBuildResult): string;
|
|
14
|
+
/**
|
|
15
|
+
* Extract dependencies from source content
|
|
16
|
+
*/
|
|
17
|
+
export declare function extractDependencies(content: string, basePath: string): string[];
|
|
18
|
+
/**
|
|
19
|
+
* Incremental build configuration
|
|
20
|
+
*/
|
|
21
|
+
export declare interface IncrementalConfig {
|
|
22
|
+
enabled?: boolean
|
|
23
|
+
cacheDir?: string
|
|
24
|
+
format?: 'json' | 'binary'
|
|
25
|
+
maxAge?: number
|
|
26
|
+
force?: boolean
|
|
27
|
+
validateCache?: boolean
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Cached file entry for incremental builds
|
|
31
|
+
*/
|
|
32
|
+
export declare interface IncrementalCacheEntry {
|
|
33
|
+
filePath: string
|
|
34
|
+
hash: string
|
|
35
|
+
mtime: number
|
|
36
|
+
declarations: Declaration[]
|
|
37
|
+
dtsContent: string
|
|
38
|
+
dependencies: string[]
|
|
39
|
+
cachedAt: number
|
|
40
|
+
configHash: string
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Cache manifest for incremental builds
|
|
44
|
+
*/
|
|
45
|
+
export declare interface IncrementalCacheManifest {
|
|
46
|
+
version: string
|
|
47
|
+
entries: Record<string, IncrementalCacheEntry>
|
|
48
|
+
createdAt: number
|
|
49
|
+
updatedAt: number
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Incremental build result
|
|
53
|
+
*/
|
|
54
|
+
export declare interface IncrementalBuildResult {
|
|
55
|
+
rebuilt: string[]
|
|
56
|
+
cached: string[]
|
|
57
|
+
skipped: string[]
|
|
58
|
+
stats: CacheStats
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Cache statistics
|
|
62
|
+
*/
|
|
63
|
+
export declare interface CacheStats {
|
|
64
|
+
totalEntries: number
|
|
65
|
+
hits: number
|
|
66
|
+
misses: number
|
|
67
|
+
hitRatio: number
|
|
68
|
+
sizeBytes: number
|
|
69
|
+
timeSavedMs: number
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Incremental build cache manager
|
|
73
|
+
*/
|
|
74
|
+
export declare class IncrementalCache {
|
|
75
|
+
constructor(config?: IncrementalConfig);
|
|
76
|
+
init(): Promise<void>;
|
|
77
|
+
save(): Promise<void>;
|
|
78
|
+
get(filePath: string, configHash: string): Promise<IncrementalCacheEntry | null>;
|
|
79
|
+
set(filePath: string, content: string, declarations: Declaration[], dtsContent: string, dependencies: string[], configHash: string): Promise<void>;
|
|
80
|
+
invalidate(filePath: string): void;
|
|
81
|
+
clear(): Promise<void>;
|
|
82
|
+
getStats(): CacheStats;
|
|
83
|
+
static hashConfig(config: DtsGenerationConfig): string;
|
|
84
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @stacksjs/dtsx - A modern, fast .d.ts generation tool
|
|
3
|
+
*
|
|
4
|
+
* This module exports the full API. For minimal bundle size when only
|
|
5
|
+
* using the core generator, import directly from './generator'.
|
|
6
|
+
*
|
|
7
|
+
* Core exports (most commonly used):
|
|
8
|
+
* - generate, watch, processFile, processSource from './generator'
|
|
9
|
+
* - extractDeclarations, extractDeclarationsAsync from './extractor'
|
|
10
|
+
* - processDeclarations from './processor'
|
|
11
|
+
* - DtsGenerationConfig, Declaration types from './types'
|
|
12
|
+
*
|
|
13
|
+
* Optional/Advanced exports are available but may increase bundle size:
|
|
14
|
+
* - LSP support: './lsp'
|
|
15
|
+
* - Type checking: './checker'
|
|
16
|
+
* - Circular dependency detection: './circular'
|
|
17
|
+
* - Custom transformers: './transformers'
|
|
18
|
+
* - Worker pool: './worker'
|
|
19
|
+
*/
|
|
20
|
+
// Common utilities
|
|
21
|
+
export * from './branded-types';
|
|
22
|
+
export * from './bundler';
|
|
23
|
+
export * from './cache';
|
|
24
|
+
export * from './checker';
|
|
25
|
+
// Advanced features - larger bundle impact
|
|
26
|
+
export * from './circular';
|
|
27
|
+
export * from './compat';
|
|
1
28
|
export * from './config';
|
|
29
|
+
export * from './diff';
|
|
30
|
+
export * from './docs';
|
|
31
|
+
export * from './errors';
|
|
2
32
|
export * from './extractor';
|
|
33
|
+
export * from './formats';
|
|
34
|
+
export * from './formatter';
|
|
35
|
+
// Core API - essential for dts generation
|
|
3
36
|
export * from './generator';
|
|
37
|
+
export * from './import-sorter';
|
|
38
|
+
export * from './incremental';
|
|
39
|
+
export * from './logger';
|
|
40
|
+
export * from './lsp';
|
|
41
|
+
export * from './memory';
|
|
42
|
+
export * from './merger';
|
|
43
|
+
export * from './optimizer';
|
|
44
|
+
export * from './output-normalizer';
|
|
45
|
+
export * from './parallel-processor';
|
|
4
46
|
export * from './parser';
|
|
47
|
+
export * from './plugins';
|
|
5
48
|
export * from './processor';
|
|
49
|
+
export * from './profiling';
|
|
50
|
+
export * from './security';
|
|
51
|
+
export * from './sourcemap';
|
|
52
|
+
export * from './tracking';
|
|
53
|
+
export * from './transformers';
|
|
54
|
+
export * from './tree-shaker';
|
|
55
|
+
export * from './type-mappings';
|
|
6
56
|
export * from './types';
|
|
7
|
-
export * from './utils';
|
|
57
|
+
export * from './utils';
|
|
58
|
+
export * from './watcher';
|
|
59
|
+
export * from './worker';
|
|
60
|
+
export * from './workspace';
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a logger instance
|
|
3
|
+
*/
|
|
4
|
+
export declare function createLogger(options?: LoggerOptions): Logger;
|
|
5
|
+
/**
|
|
6
|
+
* Create a scoped logger for a specific module
|
|
7
|
+
* @example
|
|
8
|
+
* const log = scopedLogger('extractor')
|
|
9
|
+
* log.debug('Parsing file...') // [dtsx:extractor] Parsing file...
|
|
10
|
+
*/
|
|
11
|
+
export declare function scopedLogger(scope: string): Logger;
|
|
12
|
+
/**
|
|
13
|
+
* Set the global log level
|
|
14
|
+
*/
|
|
15
|
+
export declare function setLogLevel(level: LogLevel): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get the current log level
|
|
18
|
+
*/
|
|
19
|
+
export declare function getLogLevel(): LogLevel;
|
|
20
|
+
/**
|
|
21
|
+
* Set the log prefix
|
|
22
|
+
*/
|
|
23
|
+
export declare function setLogPrefix(prefix: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Enable or disable timestamps
|
|
26
|
+
*/
|
|
27
|
+
export declare function setTimestamps(enabled: boolean): void;
|
|
28
|
+
/**
|
|
29
|
+
* Default logger instance
|
|
30
|
+
*/
|
|
31
|
+
export declare const logger: Logger;
|
|
32
|
+
/**
|
|
33
|
+
* No-op logger for silent mode or testing
|
|
34
|
+
*/
|
|
35
|
+
export declare const nullLogger: Logger;
|
|
36
|
+
export declare interface LoggerOptions {
|
|
37
|
+
level?: LogLevel
|
|
38
|
+
prefix?: string
|
|
39
|
+
timestamps?: boolean
|
|
40
|
+
output?: (level: LogLevel, ...args: unknown[]) => void
|
|
41
|
+
}
|
|
42
|
+
export declare interface Logger {
|
|
43
|
+
debug: (...args: unknown[]) => void
|
|
44
|
+
info: (...args: unknown[]) => void
|
|
45
|
+
warn: (...args: unknown[]) => void
|
|
46
|
+
error: (...args: unknown[]) => void
|
|
47
|
+
setLevel: (level: LogLevel) => void
|
|
48
|
+
getLevel: () => LogLevel
|
|
49
|
+
child: (scope: string) => Logger
|
|
50
|
+
time: (label: string) => () => void
|
|
51
|
+
progress: (message: string) => void
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Logger abstraction for dtsx
|
|
55
|
+
* Provides configurable logging with verbosity levels and scoped loggers
|
|
56
|
+
*/
|
|
57
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
package/dist/lsp.d.ts
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Start LSP server on stdio
|
|
3
|
+
*/
|
|
4
|
+
export declare function startLSPServer(): void;
|
|
5
|
+
/**
|
|
6
|
+
* Create a simple file watcher that emits diagnostics
|
|
7
|
+
*/
|
|
8
|
+
export declare function createFileWatcher(server: DtsxLanguageServer, onDiagnostics: (uri: string, diagnostics: Diagnostic[]) => void): (filePath: string) => void;
|
|
9
|
+
/**
|
|
10
|
+
* LSP message types
|
|
11
|
+
*/
|
|
12
|
+
export declare interface LSPMessage {
|
|
13
|
+
jsonrpc: '2.0'
|
|
14
|
+
id?: number | string
|
|
15
|
+
method?: string
|
|
16
|
+
params?: unknown
|
|
17
|
+
result?: unknown
|
|
18
|
+
error?: LSPError
|
|
19
|
+
}
|
|
20
|
+
export declare interface LSPError {
|
|
21
|
+
code: number
|
|
22
|
+
message: string
|
|
23
|
+
data?: unknown
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* LSP initialization params
|
|
27
|
+
*/
|
|
28
|
+
export declare interface InitializeParams {
|
|
29
|
+
processId: number | null
|
|
30
|
+
rootUri: string | null
|
|
31
|
+
capabilities: ClientCapabilities
|
|
32
|
+
}
|
|
33
|
+
export declare interface ClientCapabilities {
|
|
34
|
+
textDocument?: {
|
|
35
|
+
synchronization?: {
|
|
36
|
+
dynamicRegistration?: boolean
|
|
37
|
+
willSave?: boolean
|
|
38
|
+
didSave?: boolean
|
|
39
|
+
}
|
|
40
|
+
hover?: {
|
|
41
|
+
dynamicRegistration?: boolean
|
|
42
|
+
contentFormat?: string[]
|
|
43
|
+
}
|
|
44
|
+
completion?: {
|
|
45
|
+
dynamicRegistration?: boolean
|
|
46
|
+
completionItem?: {
|
|
47
|
+
snippetSupport?: boolean
|
|
48
|
+
documentationFormat?: string[]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
definition?: {
|
|
52
|
+
dynamicRegistration?: boolean
|
|
53
|
+
}
|
|
54
|
+
diagnostic?: {
|
|
55
|
+
dynamicRegistration?: boolean
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
workspace?: {
|
|
59
|
+
workspaceFolders?: boolean
|
|
60
|
+
configuration?: boolean
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export declare interface ServerCapabilities {
|
|
64
|
+
textDocumentSync?: number
|
|
65
|
+
hoverProvider?: boolean
|
|
66
|
+
completionProvider?: {
|
|
67
|
+
triggerCharacters?: string[]
|
|
68
|
+
resolveProvider?: boolean
|
|
69
|
+
}
|
|
70
|
+
definitionProvider?: boolean
|
|
71
|
+
referencesProvider?: boolean
|
|
72
|
+
renameProvider?: boolean | { prepareProvider?: boolean }
|
|
73
|
+
documentSymbolProvider?: boolean
|
|
74
|
+
workspaceSymbolProvider?: boolean
|
|
75
|
+
codeActionProvider?: boolean | { codeActionKinds?: string[] }
|
|
76
|
+
signatureHelpProvider?: {
|
|
77
|
+
triggerCharacters?: string[]
|
|
78
|
+
retriggerCharacters?: string[]
|
|
79
|
+
}
|
|
80
|
+
documentHighlightProvider?: boolean
|
|
81
|
+
documentFormattingProvider?: boolean
|
|
82
|
+
diagnosticProvider?: {
|
|
83
|
+
interFileDependencies: boolean
|
|
84
|
+
workspaceDiagnostics: boolean
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Text document item
|
|
89
|
+
*/
|
|
90
|
+
export declare interface TextDocumentItem {
|
|
91
|
+
uri: string
|
|
92
|
+
languageId: string
|
|
93
|
+
version: number
|
|
94
|
+
text: string
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Position in a text document
|
|
98
|
+
*/
|
|
99
|
+
export declare interface Position {
|
|
100
|
+
line: number
|
|
101
|
+
character: number
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Range in a text document
|
|
105
|
+
*/
|
|
106
|
+
export declare interface Range {
|
|
107
|
+
start: Position
|
|
108
|
+
end: Position
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Diagnostic message
|
|
112
|
+
*/
|
|
113
|
+
export declare interface Diagnostic {
|
|
114
|
+
range: Range
|
|
115
|
+
severity?: LspDiagnosticSeverity
|
|
116
|
+
code?: string | number
|
|
117
|
+
source?: string
|
|
118
|
+
message: string
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Hover response
|
|
122
|
+
*/
|
|
123
|
+
export declare interface Hover {
|
|
124
|
+
contents: string | { kind: string, value: string }
|
|
125
|
+
range?: Range
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Location for go-to-definition
|
|
129
|
+
*/
|
|
130
|
+
export declare interface Location {
|
|
131
|
+
uri: string
|
|
132
|
+
range: Range
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Document symbol
|
|
136
|
+
*/
|
|
137
|
+
export declare interface DocumentSymbol {
|
|
138
|
+
name: string
|
|
139
|
+
detail?: string
|
|
140
|
+
kind: SymbolKind
|
|
141
|
+
range: Range
|
|
142
|
+
selectionRange: Range
|
|
143
|
+
children?: DocumentSymbol[]
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Workspace symbol
|
|
147
|
+
*/
|
|
148
|
+
export declare interface WorkspaceSymbol {
|
|
149
|
+
name: string
|
|
150
|
+
kind: SymbolKind
|
|
151
|
+
location: Location
|
|
152
|
+
containerName?: string
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Code action
|
|
156
|
+
*/
|
|
157
|
+
export declare interface CodeAction {
|
|
158
|
+
title: string
|
|
159
|
+
kind?: string
|
|
160
|
+
diagnostics?: Diagnostic[]
|
|
161
|
+
isPreferred?: boolean
|
|
162
|
+
edit?: WorkspaceEdit
|
|
163
|
+
command?: Command
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Workspace edit
|
|
167
|
+
*/
|
|
168
|
+
export declare interface WorkspaceEdit {
|
|
169
|
+
changes?: Record<string, TextEdit[]>
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Text edit
|
|
173
|
+
*/
|
|
174
|
+
export declare interface TextEdit {
|
|
175
|
+
range: Range
|
|
176
|
+
newText: string
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Command
|
|
180
|
+
*/
|
|
181
|
+
export declare interface Command {
|
|
182
|
+
title: string
|
|
183
|
+
command: string
|
|
184
|
+
arguments?: unknown[]
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Signature help
|
|
188
|
+
*/
|
|
189
|
+
export declare interface SignatureHelp {
|
|
190
|
+
signatures: SignatureInformation[]
|
|
191
|
+
activeSignature?: number
|
|
192
|
+
activeParameter?: number
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Signature information
|
|
196
|
+
*/
|
|
197
|
+
export declare interface SignatureInformation {
|
|
198
|
+
label: string
|
|
199
|
+
documentation?: string | { kind: string, value: string }
|
|
200
|
+
parameters?: ParameterInformation[]
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Parameter information
|
|
204
|
+
*/
|
|
205
|
+
export declare interface ParameterInformation {
|
|
206
|
+
label: string | [number, number]
|
|
207
|
+
documentation?: string | { kind: string, value: string }
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Document highlight
|
|
211
|
+
*/
|
|
212
|
+
export declare interface DocumentHighlight {
|
|
213
|
+
range: Range
|
|
214
|
+
kind?: DocumentHighlightKind
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* LSP Server for dtsx
|
|
218
|
+
*/
|
|
219
|
+
export declare class DtsxLanguageServer {
|
|
220
|
+
initialize(params: InitializeParams): { capabilities: ServerCapabilities };
|
|
221
|
+
didOpen(params: { textDocument: TextDocumentItem }): void;
|
|
222
|
+
didChange(params: { textDocument: { uri: string, version: number }, contentChanges: Array<{ text: string }> }): void;
|
|
223
|
+
didClose(params: { textDocument: { uri: string } }): void;
|
|
224
|
+
getDiagnostics(uri: string): Diagnostic[];
|
|
225
|
+
hover(params: { textDocument: { uri: string }, position: Position }): Hover | null;
|
|
226
|
+
completion(params: { textDocument: { uri: string }, position: Position }): Array<{ label: string, kind: number, detail?: string, documentation?: string }>;
|
|
227
|
+
definition(params: { textDocument: { uri: string }, position: Position }): Location | null;
|
|
228
|
+
references(params: { textDocument: { uri: string }, position: Position, context: { includeDeclaration: boolean } }): Location[];
|
|
229
|
+
prepareRename(params: { textDocument: { uri: string }, position: Position }): { range: Range, placeholder: string } | null;
|
|
230
|
+
rename(params: { textDocument: { uri: string }, position: Position, newName: string }): WorkspaceEdit | null;
|
|
231
|
+
documentSymbols(params: { textDocument: { uri: string } }): DocumentSymbol[];
|
|
232
|
+
workspaceSymbols(params: { query: string }): WorkspaceSymbol[];
|
|
233
|
+
codeActions(params: { textDocument: { uri: string }, range: Range, context: { diagnostics: Diagnostic[] } }): CodeAction[];
|
|
234
|
+
signatureHelp(params: { textDocument: { uri: string }, position: Position }): SignatureHelp | null;
|
|
235
|
+
documentHighlight(params: { textDocument: { uri: string }, position: Position }): DocumentHighlight[];
|
|
236
|
+
formatting(params: { textDocument: { uri: string }, options: { tabSize: number, insertSpaces: boolean } }): Promise<TextEdit[]>;
|
|
237
|
+
generateDts(uri: string): string | null;
|
|
238
|
+
handleMessage(message: LSPMessage): LSPMessage | null;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* LSP Diagnostic severity (matches LSP specification)
|
|
242
|
+
*/
|
|
243
|
+
export declare enum LspDiagnosticSeverity {
|
|
244
|
+
Error = 1,
|
|
245
|
+
Warning = 2,
|
|
246
|
+
Information = 3,
|
|
247
|
+
Hint = 4,
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Symbol kind enum (LSP spec)
|
|
251
|
+
*/
|
|
252
|
+
export declare enum SymbolKind {
|
|
253
|
+
File = 1,
|
|
254
|
+
Module = 2,
|
|
255
|
+
Namespace = 3,
|
|
256
|
+
Package = 4,
|
|
257
|
+
Class = 5,
|
|
258
|
+
Method = 6,
|
|
259
|
+
Property = 7,
|
|
260
|
+
Field = 8,
|
|
261
|
+
Constructor = 9,
|
|
262
|
+
Enum = 10,
|
|
263
|
+
Interface = 11,
|
|
264
|
+
Function = 12,
|
|
265
|
+
Variable = 13,
|
|
266
|
+
Constant = 14,
|
|
267
|
+
String = 15,
|
|
268
|
+
Number = 16,
|
|
269
|
+
Boolean = 17,
|
|
270
|
+
Array = 18,
|
|
271
|
+
Object = 19,
|
|
272
|
+
Key = 20,
|
|
273
|
+
Null = 21,
|
|
274
|
+
EnumMember = 22,
|
|
275
|
+
Struct = 23,
|
|
276
|
+
Event = 24,
|
|
277
|
+
Operator = 25,
|
|
278
|
+
TypeParameter = 26,
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Completion item kind enum
|
|
282
|
+
*/
|
|
283
|
+
export declare enum CompletionItemKind {
|
|
284
|
+
Text = 1,
|
|
285
|
+
Method = 2,
|
|
286
|
+
Function = 3,
|
|
287
|
+
Constructor = 4,
|
|
288
|
+
Field = 5,
|
|
289
|
+
Variable = 6,
|
|
290
|
+
Class = 7,
|
|
291
|
+
Interface = 8,
|
|
292
|
+
Module = 9,
|
|
293
|
+
Property = 10,
|
|
294
|
+
Unit = 11,
|
|
295
|
+
Value = 12,
|
|
296
|
+
Enum = 13,
|
|
297
|
+
Keyword = 14,
|
|
298
|
+
Snippet = 15,
|
|
299
|
+
Color = 16,
|
|
300
|
+
File = 17,
|
|
301
|
+
Reference = 18,
|
|
302
|
+
Folder = 19,
|
|
303
|
+
EnumMember = 20,
|
|
304
|
+
Constant = 21,
|
|
305
|
+
Struct = 22,
|
|
306
|
+
Event = 23,
|
|
307
|
+
Operator = 24,
|
|
308
|
+
TypeParameter = 25,
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Document highlight kind
|
|
312
|
+
*/
|
|
313
|
+
export declare enum DocumentHighlightKind {
|
|
314
|
+
Text = 1,
|
|
315
|
+
Read = 2,
|
|
316
|
+
Write = 3,
|
|
317
|
+
}
|