From 16d7ef6aa8ed14727d85f80cccd4d362b05246d6 Mon Sep 17 00:00:00 2001 From: Felipe Lema <1232306+FelipeLema@users.noreply.github.com> Date: Mon, 10 May 2021 15:41:37 -0400 Subject: [PATCH] use symbols that "intersect", rather than "begin" within range --- src/messages/textDocument_semanticToken.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/messages/textDocument_semanticToken.cc b/src/messages/textDocument_semanticToken.cc index 499a0ccd..c8c98543 100644 --- a/src/messages/textDocument_semanticToken.cc +++ b/src/messages/textDocument_semanticToken.cc @@ -113,12 +113,12 @@ void MessageHandler::textDocument_semanticTokensRange( for (auto [sym, refcnt] : queryFile->symbol2refcnt) { if (refcnt <= 0) continue; - // skip symbols that don't start within range - if( sym.range.start.line < param.range.start.line - || sym.range.end.line > param.range.end.line + // skip symbols that don't intersect range + if( sym.range.end.line < param.range.start.line + || sym.range.start.line > param.range.end.line // range is within lines here below, let's test if within specified characters/columns - || sym.range.start.column < param.range.start.character - || sym.range.end.column > param.range.end.character) + || sym.range.end.column < param.range.start.character + || sym.range.start.column > param.range.end.character) continue; std::string_view detailed_name; SymbolKind parent_kind = SymbolKind::Unknown;