我在Atom中使用Ansible Playbook自动补完插件进行了一次尝试
每次写Playbook时,我都感到很痛苦,因为我不得不每次打开官方文档。所以,我想要一个好用的助手,可以使用Ansible的Python API动态获取信息。但是,我发现没有这样的工具,所以我决定自己动手做一个。一开始它完全是为了我个人使用而创建的,但是它非常实用,所以我决定将其公开。
公开的网址
https://atom.io/packages/autocomplete-ansible 可提供自动补全 Ansible 的 Atom 插件。
https://github.com/h-hirokawa/atom-autocomplete-ansible 是一个用于 Atom 的 Ansible 自动补全插件的存储库。
必要的环境
-
- Ansible 2.0 以上がインストール済み
autocomplete-plusが有効化されたAtomエディタ(デフォルト状態のはず)
安装步骤
$ apm install autocomplete-ansible
或者,您可以从Atom GUI上的Install Packages中选择安装。
在安装Ansible时使用Homebrew的注意事项。
如果您在OS X上使用Homebrew进行安装,由于Python无法直接引用Ansible,因此在启动Atom之前,请设置环境变量PYTHONPATH,如下所示。
$ export PYTHONPATH="/usr/local/Cellar/ansible/2.1.0.0/libexec/lib/python2.7/site-packages:/usr/local/Cellar/ansible/2.1.0.0/libexec/vendor/lib/python2.7/site-packages:$PYTHONPATH"
$ atom
2.1.0.0的部分会根据安装的Ansible版本而不同。
此外,/usr/local/bin/ansible中还写有实际启动Ansible时设置的PYTHONPATH的值。
顺便说一下,在下一次更新中,我们计划可以从插件设置中添加PYTHONPATH。
功能
-
- 各種ディレクティブ名、モジュール名の自動補完
モジュール名の補完候補表示には公式ドキュメントへのリンク付き
with_ と打つとループ用のLookupプラグイン名も補完される
モジュールの引数を補完するスニペット
モジュール名 + r: 必須引数だけを展開
モジュール名 + o: オプション含めて全ての引数を展開
目前还没有任何选项设置或项目。
正在做的事情
从Atom中执行简单的Python脚本,该脚本会获取Ansible模块文档和指令信息,并以JSON格式输出。通过使用autocomplete-plus的Provider API进行字符串匹配和处理。
执着
-
- ディレクティブの補完はYAMLのキーを入力している時のみ有効
-
- モジュール名の補完が有効になるのは、上記に加えてキーが action/local_action の時
-
- モジュール名がキーの時も action/local_action がキーの時もスニペットがいい感じに動く
action/local_action 時は、引数を args: ブロック内に展開する
commandモジュールなどの名前なし引数も正しく扱える
顺便说一下,模块参数不是以连接字符串的形式传递,而是以字典的形式展开。
待办事项
-
- PythonインタープリタのパスとPYTHONPATHの設定くらいはできるようにする
-
- テスト書く
-
- モジュール・ブロック内で個別にモジュール引数を自動補完できるようにする
- そのうち変数の補完も対応したい
请将错误报告、意见和需求发送至GitHub的issues!