Open ghost opened 6 years ago
I agree @MBuchaus, company-mode completion would be a great addition. I've been hoping to get started with this for a while but haven't had the time. Please, go ahead if you feel so inclined!
See this wiki page for some tips on writing a company-mode backend. Alternatively, you may want to consider creating a completion-at-point
function instead and using company's built-in CAPF
backend too.
It would be awesome if you could add some tests for the backend. Don't worry if you're not sure, I can help you 👍
Let me know if you have any questions or need any help.
I will do what I can.. I want to learn this, thanks for the feedback.
With a little bit of python intronspection (for ideas see https://github.com/gtmanfred/salint) this could be very useful
@max-arnold what's the first thing you'd like to have completion for?
I think adding something small will be more achievable to begin with.
I see four broad categories for possible autocompletion helpers:
include
, extend
, require
, watch
, onchanges
etc)name
, include
, extend
, require
, watch
, onchanges
, onfail
, prereq
, use
, listen
and their *_in
and *_any
counterparts, runas
, runas_password
, fire_event
, reload_*
, unless
, onlyif
, check_cmd
, retry
, order
). Basically, everything defined in salt.state.STATE_INTERNAL_KEYWORDS
.salt.utils.jinja.py
So far the (3) seems to be easiest to start with, and (1) looks most useful.
As a side note, the Salt plugin for Sublime partially covers (1) and (4): https://github.com/saltstack/sublime-text/tree/master/Snippets
The new baredoc
module in the upcoming Salt 3001 Sodium release can dump all the state/execution module functions. VSCode SaltStack plugin already uses it to provide the most comprehensive state autocompletion feature:
https://github.com/korekontrol/vscode-saltstack/pull/6/ https://github.com/korekontrol/vscode-saltstack/pull/8/
Interesting, thanks @max-arnold!
Do you have an opinion on the VSCode approach (generating and storing json files) vs the salt-mode approach (calling a python script and loading the definitions into memory)?
VSCode approach pros:
Cons:
I guess it is easier to keep the existing approach in salt-mode
and call the baredoc
module directly (it can parse any salt module even if it doesn't have all the necessary dependencies installed).
I really like where this is headed.. I would like to have the completion using company-mode in spacemacs. I will dive in and help if I can.. I'm new to lisp elisp.. I'm going to dig into getting this working.. If you have any tips or pointers that would help, it would be appreciated ..
Marty