Is there a way to get code assist typing “@” to comple Less variables?
The variables are not necessarily in the same file.
Thanks
Is there a way to get code assist typing “@” to comple Less variables?
The variables are not necessarily in the same file.
Thanks
It would be extremely rad if we could have had this. but I doubt it! it needs parsing your less files and all your imports that makes it a little bit slow!
You can create File Settings, syntax specific, and copy this:
{
// Additional situations to trigger auto complete
"auto_complete_triggers": {"selector": "text.html", "characters": "@"} ]
}
Change the ‘selector’ to, possibly, ‘source.less’
It is possible to tap into ‘on_query_completions’ and create a completions list which is only for less, and extracts @-completions from, for example, all open less-files. I suspect someone may have already created something similar
Here’s some code I found, but it needs to be adapted to only search within .less files:
[code]import sublime_plugin, sublime
class AutocompleteAll(sublime_plugin.EventListener):
def on_query_completions(self, view, prefix, locations):
window = sublime.active_window()
# get results from each tab
results = [v.extract_completions(prefix) for v in window.views() if v.buffer_id() != view.buffer_id()]
results = (item,item) for sublist in results for item in sublist] #flatten
results = list(set(results)) # make unique
results.sort() # sort
return results[/code]
Something like this:
[code]import sublime_plugin, sublime
class AutocompleteLess(sublime_plugin.EventListener):
def on_query_completions(self, view, prefix, locations):
if not view.match_selector(locations[0], 'source.less -string -comment -constant'):
return ]
window = sublime.active_window()
# get results from each tab
results = [v.extract_completions(prefix) for v in window.views() if v.buffer_id() != view.buffer_id()
and v.match_selector(0, 'source.less')]
results = (item,item) for sublist in results for item in sublist] #flatten
results = list(set(results)) # make unique
results.sort() # sort
return results[/code]
but I haven’t tested it
[quote=“agibsonsw”]Something like this:
[code]import sublime_plugin, sublime
class AutocompleteLess(sublime_plugin.EventListener):
def on_query_completions(self, view, prefix, locations):
if not view.match_selector(locations[0], 'source.less -string -comment -constant'):
return ]
window = sublime.active_window()
# get results from each tab
results = [v.extract_completions(prefix) for v in window.views() if v.buffer_id() != view.buffer_id()
and v.match_selector(0, 'source.less')]
results = (item,item) for sublist in results for item in sublist] #flatten
results = list(set(results)) # make unique
results.sort() # sort
return results[/code]
but I haven’t tested it [/quote]
I’ve tried this but doesn’t seems to work.
Is there an error message in the Console (Ctrl ’ )?
It probably doesn’t recognise ‘source.less’. Isn’t this CSS? So perhaps ‘source.css’ and delete ‘-string -comment -constant’ for the moment, to see if this is the issue.