この記事は Salesforce 開発者向けブログキャンペーンへのエントリー記事です。
はじめに
こんにちは。このエントリでは、Spring '20 のリリースノート で紹介されていた開発系機能のうち、Salesforce CLI のオートコンプリート に対してあれこれした私の体験を綴ります。
コマンドプロンプトから
さっそくインストールしてみます
echo y | sfdx plugins:install @oclif/plugin-autocomplete
sfdx autocomplete
>> Error: Autocomplete is not currently supported in Windows
... あれ?
Windows ではサポートされていない?? ... 別のコマンドラインでやってみます
PowerShell から
echo y | sfdx plugins:install @oclif/plugin-autocomplete
sfdx autocomplete
>> Error: Autocomplete is not currently supported in Windows
... あれ?? 同じだ。やっぱだめなのかな!?
Git Bash から
echo y | sfdx plugins:install @oclif/plugin-autocomplete
sfdx autocomplete
>> Error: Autocomplete is not currently supported in Windows
... 全然ダメですね
結論
リリースノートに書いてなかったけど、Windows 端末ではオートコンプリートの恩恵を受けられなさそうですね。(最初から書いておいてほしい... )
おまけ: 仕方ないので奥の手、WSL だ
いよいよ Windows っぽくなくなってきましたが、WSL 1 でやってみます。
# wsl を起動します
wsl
# 事前準備
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
# 再起動します
exit
wsl
# Node.js の LTS を最新化します
nvm install --lts
node -v # v12.16.1
npm -v # 6.13.4
# Salesforce CLI をインストールします
npm install --global sfdx-cli
いよいよです。
echo y | sfdx plugins:install @oclif/plugin-autocomplete
sfdx autocomplete
>> Building the autocomplete cache... done
>>
>> Setup Instructions for SFDX CLI Autocomplete ---
>>
>> 1) Add the autocomplete env var to your bash profile and source it
>> $ printf "$(sfdx autocomplete:script bash)" >> ~/.bashrc; source ~/.bashrc
>>
>> NOTE: If your terminal starts as a login shell you may need to print the init script into ~/.bash_profile or ~/.profile.
>>
>> 2) Test it out, e.g.:
>> $ sfdx <TAB><TAB> # Command completion
>> $ sfdx command --<TAB><TAB> # Flag completion
>>
>> Enjoy!
お!いままでと違う!! 続けてみましょう
printf "$(sfdx autocomplete:script bash)" >> ~/.bashrc; source ~/.bashrc
ちなみに
<TAB>
とは、キーボードのタブキーを押下すること、とします。
sfdx <TAB><TAB>
>> Display all 123 possibilities? (y or n)
あれ? 期待してる表示と違うけど... y
を押下します。ドキドキ...
autocomplete force:lightning:lwc:test:run force:package:uninstall:report
commands force:lightning:lwc:test:setup force:package:update
force:alias:list force:lightning:test:create force:package:version:create
force:alias:set force:lightning:test:install force:package:version:create:list
force:analytics:template:create force:lightning:test:run force:package:version:create:report
force:apex:class:create force:limits:api:display force:package:version:list
force:apex:execute force:mdapi:convert force:package:version:promote
force:apex:log:get force:mdapi:deploy force:package:version:report
force:apex:log:list force:mdapi:deploy:cancel force:package:version:update
force:apex:log:tail force:mdapi:deploy:report force:project:create
force:apex:test:report force:mdapi:describemetadata force:project:upgrade
force:apex:test:run force:mdapi:listmetadata force:schema:sobject:describe
force:apex:trigger:create force:mdapi:retrieve force:schema:sobject:list
force:auth:device:login force:mdapi:retrieve:report force:source:convert
force:auth:jwt:grant force:org:clone force:source:delete
force:auth:list force:org:create force:source:deploy
force:auth:logout force:org:delete force:source:deploy:cancel
force:auth:sfdxurl:store force:org:display force:source:deploy:report
force:auth:web:login force:org:list force:source:open
force:community:create force:org:open force:source:pull
force:community:publish force:org:shape:create force:source:push
force:community:template:list force:org:shape:delete force:source:retrieve
force:config:get force:org:shape:list force:source:status
force:config:list force:org:snapshot:create force:user:create
force:config:set force:org:snapshot:delete force:user:display
force:data:bulk:delete force:org:snapshot:get force:user:list
force:data:bulk:status force:org:snapshot:list force:user:password:generate
force:data:bulk:upsert force:org:status force:user:permset:assign
force:data:record:create force:package1:version:create force:visualforce:component:create
force:data:record:delete force:package1:version:create:get force:visualforce:page:create
force:data:record:get force:package1:version:display help
force:data:record:update force:package1:version:list plugins
force:data:soql:query force:package:create plugins:generate
force:data:tree:export force:package:hammertest:list plugins:install
force:data:tree:import force:package:hammertest:report plugins:link
force:lightning:app:create force:package:hammertest:run plugins:trust:sign
force:lightning:component:create force:package:install plugins:trust:verify
force:lightning:event:create force:package:install:report plugins:uninstall
force:lightning:interface:create force:package:installed:list plugins:update
force:lightning:lint force:package:list update
force:lightning:lwc:test:create force:package:uninstall which
で、でたーーー しかも3列も
sfdx force <TAB><TAB>
... あれ!?
だめです... なにも動きません... やっぱだめか...
WSL 2 が使えるようになったらまた試すことにします
(2020.05.27 追記)WSL 2 を試しました。。。が、結果は同じでした。やっぱり Windows はだめそうですね。
なんで?
Windows に関する Issue が出てるみたいです。
それに対するプルリクエストが作成されているので、マージされるのを待ちたいと思います。
経過が気になるかたは、私と一緒に「Subscribe」ボタンを押しておとなしく待ちましょう。
さいごに
あとあじのよくないエントリでしたが、しばらくは Mac 端末で楽しくオートコンプリートしていきましょう!
Spring '20 の新機能の検証レポートでした。それではまた。
おまけ
@oclif/plugin-autocomplete 0.1.5
だと次のコマンドがオートコンプリートできなかったです。
sfdx force:auth:logout