2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Salesforce CLI のオートコンプリートを Windows 端末で試してみた

Last updated at Posted at 2020-03-14

:writing_hand: この記事は Salesforce 開発者向けブログキャンペーンへのエントリー記事です。

はじめに

こんにちは。このエントリでは、Spring '20 のリリースノート で紹介されていた開発系機能のうち、Salesforce CLI のオートコンプリート に対してあれこれした私の体験を綴ります。

オートコンプリートを使用した時間の節約とエラーの削減

コマンドプロンプトから

さっそくインストールしてみます :muscle:

echo y | sfdx plugins:install @oclif/plugin-autocomplete
sfdx autocomplete

>> Error: Autocomplete is not currently supported in Windows

... あれ?
Windows ではサポートされていない?? ... 別のコマンドラインでやってみます :sweat_smile:

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

... 全然ダメですね :thinking:

結論

リリースノートに書いてなかったけど、Windows 端末ではオートコンプリートの恩恵を受けられなさそうですね。(最初から書いておいてほしい... :frowning2:

おまけ: 仕方ないので奥の手、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!

お!いままでと違う!! 続けてみましょう :grinning:

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列も :laughing:

sfdx force <TAB><TAB>

... あれ!?
だめです... なにも動きません... やっぱだめか... :joy:

WSL 2 が使えるようになったらまた試すことにします :sweat_drops:

(2020.05.27 追記)WSL 2 を試しました。。。が、結果は同じでした。やっぱり Windows はだめそうですね。

なんで?

Windows に関する Issue が出てるみたいです。

Code completion should work in Bash on Windows #6

それに対するプルリクエストが作成されているので、マージされるのを待ちたいと思います。

Allow functioning on Bash for Windows. Fixes #6 #7

経過が気になるかたは、私と一緒に「Subscribe」ボタンを押しておとなしく待ちましょう。

さいごに

あとあじのよくないエントリでしたが、しばらくは Mac 端末で楽しくオートコンプリートしていきましょう!

20200314.gif

Spring '20 の新機能の検証レポートでした。それではまた。

おまけ

@oclif/plugin-autocomplete 0.1.5 だと次のコマンドがオートコンプリートできなかったです。

sfdx force:auth:logout
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?