summaryrefslogtreecommitdiff
path: root/internal/lsp/handlers_completion.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/lsp/handlers_completion.go')
-rw-r--r--internal/lsp/handlers_completion.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/internal/lsp/handlers_completion.go b/internal/lsp/handlers_completion.go
index 28da503..6350c59 100644
--- a/internal/lsp/handlers_completion.go
+++ b/internal/lsp/handlers_completion.go
@@ -37,6 +37,18 @@ func (s *Server) handleCompletion(req Request) {
var p CompletionParams
var docStr string
if err := json.Unmarshal(req.Params, &p); err == nil {
+ // Skip completion for gitignored / extra-pattern-ignored files
+ if ignored, reason := s.isFileIgnored(p.TextDocument.URI); ignored {
+ logging.Logf("lsp ", "completion skipped: file ignored (%s) uri=%s", reason, p.TextDocument.URI)
+ if s.ignoreLSPNotifyEnabled() {
+ s.reply(req.ID, CompletionList{IsIncomplete: false, Items: []CompletionItem{
+ {Label: "[hexai] file ignored", Detail: reason},
+ }}, nil)
+ } else {
+ s.reply(req.ID, CompletionList{IsIncomplete: false, Items: nil}, nil)
+ }
+ return
+ }
// Log trigger information for every completion request from client
tk, tch := extractTriggerInfo(p)
logging.Logf("lsp ", "completion trigger kind=%d char=%q uri=%s line=%d char=%d",