Skip to content
This repository was archived by the owner on Mar 12, 2020. It is now read-only.

Commit 8dd1dc6

Browse files
author
Taras Kopets
committed
Add a setting to disable completion for selectors
1 parent 622eb80 commit 8dd1dc6

File tree

3 files changed

+36
-19
lines changed

3 files changed

+36
-19
lines changed

SQLTools.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -437,24 +437,18 @@ def on_query_completions(view, prefix, locations):
437437
if not len(locations):
438438
return None
439439

440-
# disable completions for specific selectors
441-
# disabled_for_selectors = ST.completion.selectors()
442-
disabled_for_selectors = ['string.quoted.single.sql', 'string.quoted.single.pgsql']
443-
if disabled_for_selectors:
444-
for selector in disabled_for_selectors:
440+
ignoreSelectors = ST.completion.getIgnoreSelectors()
441+
if ignoreSelectors:
442+
for selector in ignoreSelectors:
445443
if view.match_selector(locations[0], selector):
446444
return None
447445

448-
# show completions only for specific selectors
449-
selectors = ST.completion.getSelectors()
450-
selectorMatched = False
451-
if selectors:
452-
for selector in selectors:
446+
activeSelectors = ST.completion.getActiveSelectors()
447+
if activeSelectors:
448+
for selector in activeSelectors:
453449
if view.match_selector(locations[0], selector):
454-
selectorMatched = True
455450
break
456-
457-
if not selectorMatched:
451+
else:
458452
return None
459453

460454
# sublimePrefix = prefix

SQLTools.sublime-settings

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,28 @@
8787
},
8888

8989
/**
90-
* The list of syntax selectors for which the plugin autocompletion will be active.
90+
* The list of syntax selectors for which the autocompletion will be active.
9191
* An empty list means autocompletion always active.
9292
*/
93-
"selectors": [
93+
"autocomplete_selectors_active": [
9494
"source.sql",
9595
"source.pgsql",
9696
"source.plpgsql.postgres",
9797
"source.plsql.oracle",
9898
"source.tsql"
9999
],
100100

101+
/**
102+
* The list of syntax selectors for which the autocompletion will be disabled.
103+
*/
104+
"autocomplete_selectors_ignore": [
105+
"string.quoted.single.sql",
106+
"string.quoted.single.pgsql",
107+
"string.quoted.single.postgres",
108+
"string.quoted.single.oracle",
109+
"string.group.quote.oracle"
110+
],
111+
101112
/**
102113
* Command line interface options for each RDBMS.
103114
* In this file, the section `cli` above has the names you can use here.

SQLToolsAPI/Completion.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,17 @@ def __init__(self, allTables, allColumns, allFunctions, settings=None):
172172
if settings is None:
173173
settings = {}
174174

175-
# get completion selectors from settings
176-
self.selectors = settings.get('selectors', [])
175+
# check old setting name ('selectors') first for compatibility
176+
activeSelectors = settings.get('selectors', None)
177+
if not activeSelectors:
178+
activeSelectors = settings.get(
179+
'autocomplete_selectors_active',
180+
['source.sql'])
181+
self.activeSelectors = activeSelectors
182+
183+
self.ignoreSelectors = settings.get(
184+
'autocomplete_selectors_ignore',
185+
['string.quoted.single.sql'])
177186

178187
# determine type of completions
179188
self.completionType = settings.get('autocompletion', 'smart')
@@ -198,8 +207,11 @@ def __init__(self, allTables, allColumns, allFunctions, settings=None):
198207

199208
self.allKeywords.append(CompletionItem('Keyword', keyword))
200209

201-
def getSelectors(self):
202-
return self.selectors
210+
def getActiveSelectors(self):
211+
return self.activeSelectors
212+
213+
def getIgnoreSelectors(self):
214+
return self.ignoreSelectors
203215

204216
def isDisabled(self):
205217
return self.completionType is None

0 commit comments

Comments
 (0)