programing

자바 스크립트 함수, 메소드 등에 세미콜론을 자동으로 추가하도록 webstorm을 설정하려면 어떻게해야합니까?

nasanasas 2020. 12. 30. 08:16
반응형

자바 스크립트 함수, 메소드 등에 세미콜론을 자동으로 추가하도록 webstorm을 설정하려면 어떻게해야합니까?


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>> ']}). 나는 라인의 끝에 세미콜론을 포함 있는지 확인하려면 지금 나중에 잊어 버릴 냐, 좀 더 타이핑을하기 전에. 그러나 세미콜론을 추가 한 후 현재 커서 위치에서 계속 입력하고 싶습니다. 자동 완성 기능을 사용하여 줄 끝에 세미콜론을 추가 할 수 있다는 것을 알고 있지만 이로 인해 줄 끝에 커서가 남게되어 뒤로 화살표를 여러 번 눌러야합니다. 또한 때때로 반 완성 된 줄이 아직 올바른 JavaScript 구문이 아니므로 자동 완성이 작동하지 않을 수도 있습니다.

어려웠던 이유

해결책은 쉬웠습니다. 간단한 매크로를 작성하여 줄 끝으로 이동하고 세미콜론을 입력 한 다음 원래 위치로 돌아갑니다. 문제는 WebStorm을 유도하여 원래 위치로 돌아가는 방법을 알아 내기가 어렵다는 것입니다! 책갈피를 설정하고, 줄 끝으로 이동하고, 세미콜론을 입력하고, 책갈피로 돌아 가려고했지만, 제가 알 수있는 한 책갈피는 열이 아닌 줄만 기억하기 때문에 작동하지 않습니다. 먼저 현재 위치 (예 xcursorx:)에 find가비지 마커 텍스트를 입력하고, 줄 끝으로 이동하고, 세미콜론을 입력하고, 간단한 가비지 마커 텍스트를 시도했지만, WebStorm의 매크로가 보이지 않기 때문에 작동하지 않습니다. find루틴 에 텍스트를 입력하여 멋지게 재생합니다 . 먼저 가비지 마커 텍스트를 입력하고 줄 끝으로 이동해 보았습니다.Navigate/Last Edit Location 쓰레기를 지우지 만 그것도 작동하지 않습니다.

결국 작동 한 것

다음과 같이 매크로를 만들었습니다 (개별 단계에 표시된 키보드 단축키는 "Mac OS X 10.5+"키맵의 단축키입니다 ... 설정에 적합한 단축키 또는 메뉴 옵션 사용).

  • 원하는 위치에 커서 / 캐럿 시작하여 (즉 매크로 촬영을 시작 Edit > Macros > Start Macro Recording)
  • 공백 / 단어가 아닌 단일 문자 (예 : 마침표)를 입력합니다.
  • 그 직후 다른 곳에서는 사용하지 않을 가비지 마커 텍스트의 단일 "단어"를 입력합니다 (예 : "xcursorx").
  • 그 직후에 공백이 아닌 / 단어가 아닌 다른 문자 (예 : 다른 마침표)를 입력합니다 (예 : ".xcursorx"를 입력했습니다.).
  • 줄 끝으로 이동 (예 : command- 오른쪽 화살표)
  • 세미콜론을 입력
  • 세미콜론 바로 뒤에 (즉, 공백 없음), 가비지 마커 텍스트의 동일한 단일 "단어"를 다시 입력하되 공백이 아닌 / 단어가 아닌 문자를 측면에 넣지 마십시오. 예를 들어 "; xcursorx"를 입력합니다.
  • 커서를 한 "단어"뒤로 이동 (예 : 옵션 왼쪽 화살표)
  • 커서에서 단어 찾기 (예 : "xcursorx"를 수동으로 입력하는 동안 일반 문자를 사용 Edit > Find > Find Word at Caret하지 마십시오find )
  • 선택한 텍스트를 삭제합니다 (예 : 행 끝에서 두 번째 "xcursorx"를 삭제하려면 delete 또는 백 스페이스 키를 누르십시오)
  • 마지막으로 선택한 텍스트의 이전 항목을 찾습니다 (예 : Edit > Find > Find Previous/Move to Previous Occurrence또는 shift-command-G). ".xcursorx"내에서 "xcursorx"가 선택됩니다.
  • 선택한 텍스트를 삭제합니다 (예 : 삭제 또는 백 스페이스 키 누르기)
  • 한 문자 앞으로 이동 (예 : 오른쪽 화살표, 두 번째 마침표 이후 )
  • 두 문자를 삭제합니다 (즉, 두 마침표를 삭제하려면 delete 또는 백 스페이스 키를 두 번 누름)
  • (즉, 매크로 촬영을 중지 Edit > Macros > Stop Macro Recording)
  • 매크로에 이름 지정 (예 : 'place-semicolon-at-line-of-line')
  • 매크로에 키보드 단축키 제공 (예 : Preferences > (scroll down to) Macros > place-semicolon-at-end-of-line > (right click) > Add Keyboard Shortcut원하는 단축키 입력 (예 : option-semicolon))

일부 모호한 단계에 대한 설명

위의 모든 단계가 일부 사용 사례에 필요한 것은 아닙니다. 예를 들어을 사용하여 맨 위에있는 예제에서 작동하기 위해 추가 마침표를 추가 할 필요가 없습니다 func([{''}]). 그러나 커서가 이미 행의 맨 끝에있는 경우와 같이 일부 예외적 인 경우에는 추가 단계가 필요합니다.

사용 방법

매크로를 사용하려면 일반적인 타이핑 (맨 위의 예에서 나타나는 func([{'원인 func([{''}])을 입력)으로 시작하고 바로 가기 (예 : 옵션-세미콜론)를 입력하면 세미콜론이 줄 끝에 표시되지만 커서는 원래 위치에 남아 있습니다.

경고

이 솔루션은 쓰레기 텍스트가 삽입 된 다음 삭제 될 때 디스플레이가 약간 점프하기 때문에 약간의 해킹입니다. 그러나 적어도 작동합니다. 가비지 마커 텍스트 없이도 동일한 최종 목표를 달성하는 방법을 알아낼 수 있다면 좋을 것입니다.


IntelliJ Idea 2018의 경우 아래 단계를 따르십시오.

  • 설정 열기 : Ctrl+ Alt+S
  • 편집기> 코드 스타일> JavaScript
  • 탭> 구두점 선택
  • 드롭 다운에서 "항상 사용 / 사용"세미콜론을 선택하여 문을 종료합니다.
  • 적용 및 확인

이것은 JS에서 추가 세미콜론을 추가합니다.


You can use this https://github.com/yyx990803/semi. Provide cli and api to meet your needs.


You can use eslint:

set the "semi" rule to "error" or 2

in the file that you'd like to add semi-colons right click and then select Fix ESLint Problems near the bottom of the menu

right click menu


Yeah, if you leave it without a semi-colon Webstorm will mark it as unterminated statement and highlight it. When you are on the line (with the cursor) as the closing brace just type:

Alt + Enter

Which will bring up the light-bulb menu (auto corrects or changes stuff, I don't have a better name for it).

Hopefully if your code is correct, or the brace is the only symbol in that line, the only option you have will is Terminate statement and it will be automatically focused on, so just press the enter key for Webstorm to add the semi-colon.

This way saves you from manually positioning the cursor and typing the semi-colon yourself, but just be on that line somehow, and do alt+enter+ enter and there you have it.

Yeah it's not automatically there, but it's quicker and easy.


Normally, webstorm/phpstorm will do this, and leave the cursor inside the curly braces:

Still requires manual action, but i'd just hit End and ; every time. But Ctrl+Right should work also, those keys are within reach.

I continuously hit CTRL+S after every line to save a document, so this would be only a minor nuisance to me..


Having to hit Ctrl+Shift+Enter and then get back in the brackets every time is not a solution in my mind.

Here's a real solution:

You usually want a semicolon at the end of a statement right when you hit 'Shift+9' right? Without hitting some other crazy combination on the keyboard every time.

  1. Type a function in the editor;
  2. Right before you type '(' go to Edit > Macros > Start Macro Recording;
  3. Type '();'and hit the 'Left' key 2 times so you're back inside;
  4. Go to Edit > Macros > Start Macro Recording and name it (e.g. auto-semicolon; 5 Go to Preferences > Appearance & Behaviour > Keymap > Macros and right click 'auto-semicolon', select Add keyboard Shortcut and press 'Shift+9';
  5. Exit Preferences and back in the editor test it out!

You can make many varieties of this depending on your needs. For example adding the curly braces in between '({})' or if you use '()' more often without the need for a semicolon at the end you can change the shortcut to 'Ctrl+Shift+9', and the usual combo just adds the regular. Your preference!


Create a macro to move to the end of the line and insert the semi-colon. Then assign the macro to the semi-colon keystroke. Thus, at any point in your typing you can terminate the line of code.

ReferenceURL : https://stackoverflow.com/questions/11805103/how-can-i-setup-webstorm-to-automatically-add-semi-colons-to-javascript-function

반응형