Javascriptを作成するときは、セミコロンを使用します。ただし、webstorm/phpstormで記述すると、ブレースとブラケットが自動的に補完されますが、セミコロンは自動的に追加されません。私はそれが標準などによって必要とされていないことを知っていますが、それは私がコーディングする方法です-そして私は一人ではありません、多くの人々はこの方法でコーディングします。
例:
var data = $.ajax({});
通常、webstorm/phpstormはこれを行い、カーソルを中括弧内に残します。
var data = $.ajax({})
私が望む世界では、最初の例で述べたように、セミコロンを手動で追加する必要はなく、自動補完するだけです。
自動的に挿入する方法はありません。Complete Statementアクション(Ctrl+Shift+Enter)。
また、セミコロンを使用してステートメントを終了するオプションがSettings
|で有効になっていることも確認する必要があります。 Code Style
| JavaScript
| Other
タブ。
マクロとキーボードショートカットを作成できます。
Record Auto semicolon macro and bind shortcut to it:
1. Edit -> Macros -> Start Macro Recording
2. In the editor go to the end of line by pressing End
3. put semicolon ';'
4. Edit -> Macros -> Stop Macro Recording
5. Give a name, for example 'Auto semicolon'
6. Open settings (Ctrl + Alt + s), select Keymap
7. Expand Macros node
8. Select 'Auto semicolon', in the context menu choose Add Keyboard Shortcut
9. Set Ctrl + ; as First keystroke
10. Save/Apply settings
11. Enjoy!
12. Try it so, in the middle of code line, hit Ctrl + ;
// some useful combinations:
Ctrl + , put colon at the end of line
Ctrl + ; put semicolon at the end of line
Ctrl + . put => at the end of line
から https://Gist.github.com/umidjons/9383758
ただし、自動的に実行するオプションがあればもっとクールになります...
やりたいこと
私の目標は、現在の行の末尾にセミコロンを追加することでした。カーソルの位置は行の中央に保ちます。
例えば.
_func([{''}])
// /\
// ||
// ||
// current cursor position
//
// Now I want to add a semi-colon to the end-of-the-line
// but then continue typing my string contents at the same
// cursor location. i.e. I now want this, with as few
// keystrokes as possible:
//
// Add this semi-colon...
// |
// |
// V
func([{''}]);
// /\
// ||
// ||
// ...while maintaining this cursor position
_
なぜそれをしたいのか
WebStormは、入力時に句読点をうまく「完了」します。つまり、_({['
_を入力すると、_({[' <<cursor here>> ']})
_に自動補完されます。入力を続ける前に、行の最後にセミコロンnowを含めるようにします。ただし、セミコロンを追加した後、現在のカーソル位置で入力を続けたいと思います。自動補完を使用して行末にセミコロンを追加できることは知っていますが、これによりカーソルが行末に残り、バック矢印を複数回押すように強制されます。さらに、私の完成した行がまだ正しいJavaScript構文にならないことがあるため、オートコンプリートが機能しないこともあります。
なぜ大変だったのか
解決策は簡単に思えました。行の最後にジャンプし、セミコロンを入力して、元の場所に戻る単純なマクロを作成します。問題は、WebStormを元の場所に戻す方法を理解するのが難しいことです!ブックマークを設定し、行末に移動し、セミコロンを入力して、ブックマークに戻ることを試みましたが、それは機能しません。なぜなら、私が知る限り、ブックマークは列ではなく行のみを覚えているからです。私は最初に現在の場所でガベージマーカーテキスト(たとえば、xcursorx
)を入力し、行末に移動し、セミコロンを入力して、ガベージマーカーテキストの簡単なfind
を入力しようとしましたが、 WebStormのマクロはfind
ルーチンにテキストを入力してもうまく動作しないようだからです。最初にガベージマーカーテキストを入力し、行末に移動し、セミコロンを入力し、_Navigate/Last Edit Location
_を使用してガベージを削除しようとしましたが、これも機能しません。
最終的に機能したもの
次のようにマクロを作成しました(個々の手順に表示されるキーボードショートカットは、「Mac OS X 10.5+」キーマップのものです...セットアップに適したショートカットまたはメニューオプションを使用してください)。
Edit > Macros > Start Macro Recording
_)Edit > Find > Find Word at Caret
_)(donot通常のfind
を使用しながら、手動で "xcursorx ")Edit > Find > Find Previous/Move to Previous Occurrence
_またはshift-command-G);これにより、「。xcursorx」内の「xcursorx」が選択されます。Edit > Macros > Stop Macro Recording
_)Preferences > (scroll down to) Macros > place-semicolon-at-end-of-line > (right click) > Add Keyboard Shortcut
...そして、必要なショートカットを入力します(例:option-semicolon))いくつかのあいまいなステップの説明
ユースケースによっては、上記のすべての手順が必要なわけではありません。例えば上の例でfunc([{''}])
を使用して機能させるために、余分なピリオドを追加する必要はありません。ただし、Edgeなどの一部のケースでは追加の手順が必要です。カーソルがすでに行の最後にある場合。
使用方法
マクロを使用するには、通常の入力から始め(上部の例では_func([{'
_と入力してfunc([{''}])
を表示します)、ショートカットを入力します(たとえば、option-semicolon)。行の最後にコロンが表示されますが、カーソルは元の場所に残ります。
注意
ガベージテキストが挿入されてから削除されると表示が少しジャンプするため、この解決策は少しハックです。ただし、少なくとも動作します。ガベージマーカーテキストを必要とせずに、同じ最終目標を達成する方法を誰かが理解できれば、それは素晴らしいことです。
これを使用できます https://github.com/yyx990803/semi 。ニーズに合わせてCLIとAPIを提供します。
IntelliJ Idea 2018の場合、以下の手順に従ってください:
これにより、JSにセミコロンが追加されます。
通常、webstorm/phpstormはこれを行い、カーソルを中括弧内に残します。
依然として手動での対応が必要ですが、私はただヒットします End そして ; 毎回。だが Ctrl+Right 動作するはずです、それらのキーは手の届くところにあります。
続けて打つ CTRL+S 文書を保存するすべての行の後に、これは私にとってささいな迷惑にすぎません。
Ctrl + Shift + Enterを押してからブラケットに戻る必要があるのは、私の考えでは解決策ではありません。
実際のソリューションは次のとおりです。
通常、「Shift + 9」を押すと、ステートメントの最後にセミコロンが必要ですか?キーボード上の他のクレイジーな組み合わせを毎回押すことなく。
あなたのニーズに応じてこれの多くの品種を作ることができます。たとえば、「({})」の間に中括弧を追加するか、最後にセミコロンを使用せずに「()」をより頻繁に使用する場合は、ショートカットを「Ctrl + Shift + 9」に変更し、通常のcomboはレギュラーを追加します。あなたの好み!
はい、セミコロンなしでそれを残した場合、Webstormはunterminated statement
としてマークし、強調表示します。行にカーソルがある場合、右中括弧として入力するだけです:
Alt + Enter
これにより、電球メニューが表示されます(自動修正または変更が行われますが、より良い名前はありません)。
コードが正しい場合、または中括弧がその行の唯一の記号である場合、唯一のオプションはTerminate statement
であり、自動的にフォーカスされるので、WebstormのEnterキーを押してセミ-結腸。
この方法により、手動でカーソルを配置してセミコロンを入力する手間が省けますが、どういうわけかその行にいるだけで、alt + enter + enterを実行できます。
自動的にそこにあるわけではありませんが、より速くて簡単です。
行の末尾に移動するマクロを作成し、セミコロンを挿入します。次に、マクロをセミコロンキーストロークに割り当てます。したがって、入力のどの時点でも、コード行を終了できます。