Added configuration for code-folding.

This commit is contained in:
Martín Lucas Golini
2024-06-02 22:12:52 -03:00
parent ec8e773639
commit 6832032470
15 changed files with 175 additions and 37 deletions

View File

@@ -35,8 +35,6 @@ LSPDocumentClient::~LSPDocumentClient() {
sceneNode->removeActionsByTag( mTag );
if ( nullptr != sceneNode && 0 != mTagSemanticTokens )
sceneNode->removeActionsByTag( mTagSemanticTokens );
if ( nullptr != sceneNode && 0 != mTagFoldRange )
sceneNode->removeActionsByTag( mTagFoldRange );
mShutdown = true;
while ( mRunningSemanticTokens )
Sys::sleep( Milliseconds( 0.1f ) );
@@ -130,7 +128,6 @@ void LSPDocumentClient::refreshTag() {
String::HashType oldTag = mTag;
mTag = String::hash( mDoc->getURI().toString() );
mTagSemanticTokens = String::hash( mDoc->getURI().toString() + ":semantictokens" );
mTagFoldRange = String::hash( mDoc->getURI().toString() + ":foldrange" );
UISceneNode* sceneNode = getUISceneNode();
if ( nullptr != sceneNode && 0 != oldTag )
sceneNode->removeActionsByTag( oldTag );
@@ -420,24 +417,6 @@ void LSPDocumentClient::requestFoldRange() {
}
}
void LSPDocumentClient::requestFoldRangeDelayed() {
if ( !mServer || !mServer->getCapabilities().foldingRangeProvider )
return;
UISceneNode* sceneNode = getUISceneNode();
if ( sceneNode ) {
sceneNode->removeActionsByTag( mTagFoldRange );
LSPDocumentClient* docClient = this;
URI uri = mDoc->getURI();
LSPClientServer* server = mServer;
sceneNode->runOnMainThread(
[docClient, server, uri]() {
if ( server->hasDocument( uri ) )
docClient->requestFoldRange();
},
Seconds( 1.f ), mTagFoldRange );
}
}
void LSPDocumentClient::requestSymbolsDelayed() {
if ( !mServer || !mServer->getCapabilities().documentSymbolProvider )
return;