Autocomplete optimization
This commit is contained in:
parent
59af25d8a3
commit
43589a136b
2
dsymbol
2
dsymbol
|
|
@ -1 +1 @@
|
||||||
Subproject commit 54ccb4581f1d4217b69969c1ffe4f4c091c81527
|
Subproject commit 335a683314209f51e83a753f01a3ce478437b35a
|
||||||
|
|
@ -48,7 +48,7 @@ import memory.allocators;
|
||||||
import common.constants;
|
import common.constants;
|
||||||
import common.messages;
|
import common.messages;
|
||||||
|
|
||||||
private alias ASTAllocator = CAllocatorImpl!(AllocatorList!(n => Region!Mallocator(1024 * 64)));
|
private alias ASTAllocator = CAllocatorImpl!(AllocatorList!(n => Region!Mallocator(1024 * 32)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets documentation for the symbol at the cursor
|
* Gets documentation for the symbol at the cursor
|
||||||
|
|
@ -147,7 +147,8 @@ public AutocompleteResponse symbolSearch(const AutocompleteRequest request)
|
||||||
const(Token)[] tokenArray = getTokensForParser(cast(ubyte[]) request.sourceCode,
|
const(Token)[] tokenArray = getTokensForParser(cast(ubyte[]) request.sourceCode,
|
||||||
config, &cache);
|
config, &cache);
|
||||||
auto allocator = scoped!(ASTAllocator)();
|
auto allocator = scoped!(ASTAllocator)();
|
||||||
ScopeSymbolPair pair = generateAutocompleteTrees(tokenArray, allocator);
|
ScopeSymbolPair pair = generateAutocompleteTrees(tokenArray, allocator,
|
||||||
|
request.cursorPosition);
|
||||||
scope(exit) pair.destroy();
|
scope(exit) pair.destroy();
|
||||||
|
|
||||||
static struct SearchResults
|
static struct SearchResults
|
||||||
|
|
@ -289,7 +290,8 @@ AutocompleteResponse dotCompletion(T)(T beforeTokens,
|
||||||
case tok!"this":
|
case tok!"this":
|
||||||
case tok!"super":
|
case tok!"super":
|
||||||
auto allocator = scoped!(ASTAllocator)();
|
auto allocator = scoped!(ASTAllocator)();
|
||||||
ScopeSymbolPair pair = generateAutocompleteTrees(tokenArray, allocator);
|
ScopeSymbolPair pair = generateAutocompleteTrees(tokenArray, allocator,
|
||||||
|
cursorPosition);
|
||||||
scope(exit) pair.destroy();
|
scope(exit) pair.destroy();
|
||||||
response.setCompletions(pair.scope_, getExpression(beforeTokens),
|
response.setCompletions(pair.scope_, getExpression(beforeTokens),
|
||||||
cursorPosition, CompletionType.identifiers, false, partial);
|
cursorPosition, CompletionType.identifiers, false, partial);
|
||||||
|
|
@ -337,7 +339,8 @@ SymbolStuff getSymbolsForCompletion(const AutocompleteRequest request,
|
||||||
const(Token)[] tokenArray;
|
const(Token)[] tokenArray;
|
||||||
auto beforeTokens = getTokensBeforeCursor(request.sourceCode,
|
auto beforeTokens = getTokensBeforeCursor(request.sourceCode,
|
||||||
request.cursorPosition, cache, tokenArray);
|
request.cursorPosition, cache, tokenArray);
|
||||||
ScopeSymbolPair pair = generateAutocompleteTrees(tokenArray, allocator);
|
ScopeSymbolPair pair = generateAutocompleteTrees(tokenArray, allocator,
|
||||||
|
request.cursorPosition);
|
||||||
auto expression = getExpression(beforeTokens);
|
auto expression = getExpression(beforeTokens);
|
||||||
return SymbolStuff(getSymbolsByTokenChain(pair.scope_, expression,
|
return SymbolStuff(getSymbolsByTokenChain(pair.scope_, expression,
|
||||||
request.cursorPosition, type), pair.symbol, pair.scope_);
|
request.cursorPosition, type), pair.symbol, pair.scope_);
|
||||||
|
|
@ -414,7 +417,8 @@ AutocompleteResponse parenCompletion(T)(T beforeTokens,
|
||||||
case tok!")":
|
case tok!")":
|
||||||
case tok!"]":
|
case tok!"]":
|
||||||
auto allocator = scoped!(ASTAllocator)();
|
auto allocator = scoped!(ASTAllocator)();
|
||||||
ScopeSymbolPair pair = generateAutocompleteTrees(tokenArray, allocator);
|
ScopeSymbolPair pair = generateAutocompleteTrees(tokenArray, allocator,
|
||||||
|
cursorPosition);
|
||||||
scope(exit) pair.destroy();
|
scope(exit) pair.destroy();
|
||||||
auto expression = getExpression(beforeTokens[0 .. $ - 1]);
|
auto expression = getExpression(beforeTokens[0 .. $ - 1]);
|
||||||
response.setCompletions(pair.scope_, expression,
|
response.setCompletions(pair.scope_, expression,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue