web-dev-qa-db-ja.com

javascript関数、メソッドなどにセミコロンを自動的に追加するようにwebstormを設定するにはどうすればよいですか

Javascriptを作成するときは、セミコロンを使用します。ただし、webstorm/phpstormで記述すると、ブレースとブラケットが自動的に補完されますが、セミコロンは自動的に追加されません。私はそれが標準などによって必要とされていないことを知っていますが、それは私がコーディングする方法です-そして私は一人ではありません、多くの人々はこの方法でコーディングします。

例:

var data = $.ajax({});

通常、webstorm/phpstormはこれを行い、カーソルを中括弧内に残します。

var data = $.ajax({})

私が望む世界では、最初の例で述べたように、セミコロンを手動で追加する必要はなく、自動補完するだけです。

56
tvpmb

自動的に挿入する方法はありません。Complete Statementアクション(Ctrl+Shift+Enter)。

また、セミコロンを使用してステートメントを終了するオプションがSettings |で有効になっていることも確認する必要があります。 Code Style | JavaScript | Otherタブ。

78
CrazyCoder

マクロとキーボードショートカットを作成できます。

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

ただし、自動的に実行するオプションがあればもっとクールになります...

10
ricka

やりたいこと

私の目標は、現在の行の末尾にセミコロンを追加することでした。カーソルの位置は行の中央に保ちます。

例えば.

_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_)
  • 単一の非スペース/非単語文字を入力します。期間
  • その直後に、他のどこにも使用しないガベージマーカーテキストの単一の「Word」を入力します。 「xcursorx」
  • その直後に、別の単一の非スペース/非単語文字を入力します。別のピリオド(つまり、「。xcursorx」と入力した)
  • 行の最後にジャンプする(例:コマンド右矢印)
  • セミコロンを入力
  • セミコロン(つまりスペースなし)の直後に、ガベージマーカーテキストの同じ単一の「単語」を再度入力しますが、隣接する非スペース/非単語文字は入力しません。 「; xcursorx」と入力します
  • カーソルを「Word」の1つ後ろに移動します(例:オプションの左矢印)
  • カーソル位置でWordを検索します(つまり_Edit > Find > Find Word at Caret_)(donot通常のfindを使用しながら、手動で "xcursorx ")
  • 選択したテキストを削除します(つまり、Deleteキーまたはバックスペースキーを押して、行末の2番目の「xcursorx」を削除します)
  • 最後に選択されたテキストの前の出現を見つける(すなわち_Edit > Find > Find Previous/Move to Previous Occurrence_またはshift-command-G);これにより、「。xcursorx」内の「xcursorx」が選択されます。
  • 選択したテキストを削除します(つまり、削除またはバックスペースキーを押します)
  • 1文字進む(つまり、右矢印、2番目のピリオドのafter
  • 2つの文字を削除します(つまり、削除またはバックスペースを2回押して、2つのピリオドを削除します)
  • マクロの記録を停止します(つまり、_Edit > Macros > Stop Macro Recording_)
  • マクロに名前を付けます(例: 'place-semicolon-at-end-of-line')
  • マクロにキーボードショートカットを指定します(例:Preferences > (scroll down to) Macros > place-semicolon-at-end-of-line > (right click) > Add Keyboard Shortcut ...そして、必要なショートカットを入力します(例:option-semicolon))

いくつかのあいまいなステップの説明

ユースケースによっては、上記のすべての手順が必要なわけではありません。例えば上の例でfunc([{''}])を使用して機能させるために、余分なピリオドを追加する必要はありません。ただし、Edgeなどの一部のケースでは追加の手順が必要です。カーソルがすでに行の最後にある場合。

使用方法

マクロを使用するには、通常の入力から始め(上部の例では_func([{'_と入力してfunc([{''}])を表示します)、ショートカットを入力します(たとえば、option-semicolon)。行の最後にコロンが表示されますが、カーソルは元の場所に残ります。

注意

ガベージテキストが挿入されてから削除されると表示が少しジャンプするため、この解決策は少しハックです。ただし、少なくとも動作します。ガベージマーカーテキストを必要とせずに、同じ最終目標を達成する方法を誰かが理解できれば、それは素晴らしいことです。

6
Andrew Willems

これを使用できます https://github.com/yyx990803/semi 。ニーズに合わせてCLIとAPIを提供します。

1
Geng Jiawen

IntelliJ Idea 2018の場合、以下の手順に従ってください:

  • 設定を開く: Ctrl+Alt+S
  • エディター>コードスタイル> JavaScript
  • [タブ]> [句読点]を選択します
  • ドロップダウンで、「常に使用/使用」セミコロンを選択してステートメントを終了します
  • 適用してOK

これにより、JSにセミコロンが追加されます。

1
Kapil Lohakare

eslintを使用できます

をセットする "semi"ルールから"error"または2

セミコロンを追加するファイルで右クリックし、[Fix ESLint Problemsメニューの下部近く

right click menu

1
dubaniewicz

通常、webstorm/phpstormはこれを行い、カーソルを中括弧内に残します。

依然として手動での対応が必要ですが、私はただヒットします End そして ; 毎回。だが Ctrl+Right 動作するはずです、それらのキーは手の届くところにあります。

続けて打つ CTRL+S 文書を保存するすべての行の後に、これは私にとってささいな迷惑にすぎません。

0
Barry Staes

Ctrl + Shift + Enterを押してからブラケットに戻る必要があるのは、私の考えでは解決策ではありません。

実際のソリューションは次のとおりです。

通常、「Shift + 9」を押すと、ステートメントの最後にセミコロンが必要ですか?キーボード上の他のクレイジーな組み合わせを毎回押すことなく。

  1. エディターに関数を入力します。
  2. 「(」を入力する直前に、[編集]> [マクロ]> [マクロ記録の開始]に移動します。
  3. 「();」と入力し、「Left」キーを2回押して、内部に戻ります。
  4. [編集]> [マクロ]> [マクロ記録の開始]に移動して名前を付けます(例:自動セミコロン; 5 [設定]> [外観と動作]> [キーマップ]> [マクロ]に移動し、[自動セミコロン]を右クリックして[キーボードショートカットの追加]を選択し、Shift ;
  5. 環境設定を終了し、エディターに戻ってテストしてください!

あなたのニーズに応じてこれの多くの品種を作ることができます。たとえば、「({})」の間に中括弧を追加するか、最後にセミコロンを使用せずに「()」をより頻繁に使用する場合は、ショートカットを「Ctrl + Shift + 9」に変更し、通常のcomboはレギュラーを追加します。あなたの好み!

0
Kesarion

はい、セミコロンなしでそれを残した場合、Webstormはunterminated statementとしてマークし、強調表示します。行にカーソルがある場合、右中括弧として入力するだけです:

Alt + Enter

これにより、電球メニューが表示されます(自動修正または変更が行われますが、より良い名前はありません)。

コードが正しい場合、または中括弧がその行の唯一の記号である場合、唯一のオプションはTerminate statementであり、自動的にフォーカスされるので、WebstormのEnterキーを押してセミ-結腸。

この方法により、手動でカーソルを配置してセミコロンを入力する手間が省けますが、どういうわけかその行にいるだけで、alt + enter + enterを実行できます。

自動的にそこにあるわけではありませんが、より速くて簡単です。

0
Gilad Peleg

行の末尾に移動するマクロを作成し、セミコロンを挿入します。次に、マクロをセミコロンキーストロークに割り当てます。したがって、入力のどの時点でも、コード行を終了できます。

0
Developer