Compare commits
No commits in common. "259e7a7dd41464ab5d8a6f63a2da0ee0ee53013a" and "59b92714d2f32be00dd39d753650935bd4f16890" have entirely different histories.
259e7a7dd4
...
59b92714d2
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -34,7 +34,6 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
|
|||
.DS_Store
|
||||
|
||||
/tmp
|
||||
vscode-extension/tmp
|
||||
/docs
|
||||
|
||||
*.vsix
|
||||
|
|
@ -17,6 +17,7 @@ import {
|
|||
CompletionItemKind,
|
||||
TextDocumentChangeEvent,
|
||||
} from 'vscode-languageserver/node'
|
||||
import { setGlobals } from '../../../src/parser/tokenizer'
|
||||
import { globals } from '../../../src/prelude'
|
||||
|
||||
// Initialize parser with prelude globals so it knows dict/list/str are in scope
|
||||
|
|
|
|||
41
vscode-extension/tmp/test-dotget-parse.ts
Normal file
41
vscode-extension/tmp/test-dotget-parse.ts
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
import { parser } from '../../src/parser/shrimp'
|
||||
import { setGlobals } from '../../src/parser/tokenizer'
|
||||
import { PRELUDE_NAMES } from '../server/src/prelude-names'
|
||||
|
||||
// Set globals for DotGet detection
|
||||
setGlobals(PRELUDE_NAMES as unknown as string[])
|
||||
|
||||
// Test cases - does incomplete DotGet parse correctly?
|
||||
const testCases = [
|
||||
'dict.',
|
||||
'dict.g',
|
||||
'dict.get',
|
||||
'$.',
|
||||
'$.e',
|
||||
'$.env',
|
||||
]
|
||||
|
||||
for (const code of testCases) {
|
||||
console.log(`\nTesting: "${code}"`)
|
||||
const tree = parser.parse(code)
|
||||
const cursor = tree.cursor()
|
||||
|
||||
// Print the parse tree
|
||||
const printTree = (depth = 0) => {
|
||||
const indent = ' '.repeat(depth)
|
||||
console.log(`${indent}${cursor.name} [${cursor.from}-${cursor.to}]`)
|
||||
|
||||
if (cursor.firstChild()) {
|
||||
do {
|
||||
printTree(depth + 1)
|
||||
} while (cursor.nextSibling())
|
||||
cursor.parent()
|
||||
}
|
||||
}
|
||||
|
||||
printTree()
|
||||
|
||||
// Check at cursor position (end of string)
|
||||
const node = tree.resolveInner(code.length, -1)
|
||||
console.log(`Node at end: ${node.name} (type: ${node.type.id})`)
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user