Rails 프로젝트에서 파일을 저장할 때 자동으로 rubocop --autocorrect를 받자.

3570 단어 Emacs
이 기사는 글로비스 Advent Calendar 2018의 9 일째 기사입니다.

안녕하세요. 3월부터 Globis의 말석을 더럽히고 있습니다 motchang라고 합니다. SAML이라든지 OAuth2라든지 OpenID Connect라든지의 샘플 구현의 기사를 쓰고 있었습니다만, 재료가 입고 있는 것을 눈치채 버렸으므로 가벼운 Tips적인 내용으로 실례합니다.

소개



여러분이 담당하는 Rails 프로젝트에는 Rubocop이 도입되어 있습니까? Globis 프로젝트 Rails 프로젝트는 물론 모든 프로젝트에 Rubocop이 도입되어 CI에서 위반을 탐지하는 메커니즘이 움직이고 있습니다.

에디터의 설정을 하면 인라인으로 스타일 위반을 표시하는 것이 가능합니다만, go fmt 를 알고 있어 우리에게 있어서 일일이 rubocop 의 경고에 맞춘 코드를 쓰거나, 수동으로 rubocop 를 실행하거나 스타일 를 맞추다니 세계에는 살고 싶지 않네요. 그러므로 파일을 저장한 다음에 rubocop --autocorrect 를 에디터에 하도록 합시다.

패키지 설치



여러분 당신의 패키지 매니저가 있다고 생각하기 때문에, 여기에서는 일반적인 방법만. 패키지 관리자에게 melpa를 로드합니다.

init.el
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(package-initialize)

그런 다음 M-x package-list-packages rubocopfmt 패키지를 설치하십시오.



초기 설정



설치가 끝나면 init.el에 다음 hook을 등록하고 M-x eval-buffer하십시오.

init.el
(add-hook 'ruby-mode-hook #'flymake-mode)
(add-hook 'ruby-mode-hook #'rubocopfmt-mode)

이 상태에서 루비 파일을 편집하고 save-buffer하면 다음 명령이 실행됩니다. 개발중에 위반한다고 생각되는 Lint/Debugger 등의 룰이 미리 무효가 되어 있는 것이 니크네요.
bundle exec rubocop --stdin identity_provider_sample.rb 
                    --auto-correct 
                    --format emacs 
                    --except
                    Lint/Debugger,Lint/UnusedBlockArgument,Lint/UnusedMethodArgument,Style/EmptyMethod



요약


flymake 그리고 열심히 노력하고 있었지만 패키지 넣으면 전부 끝났다.

기타



옛날에는 「기동이 무겁다」 「메모리 과식」등이라고 불려 기피되고 있던 면도 있는 Emacs입니다만, 2018년 현재, Emacs를 사용하고 있어 무겁다고 느끼는 PC는 그다지 없는 것은 아닐까요. 또한 Rails 프로젝트의 개발에 한정된 이야기에서는 robe-mode이라는 옴니 보관 도구가 있으며, 이것은 뒤에서 Rails console이 움직이고 있기 때문에 Ruby의 버릇에 확실히 메소드나 정수의 정의 위치로 점프할 수 있으므로 RubyMine 에 필적할 정도로 편리합니다. ctag나 gtag의 태그 점프로는 맛볼 수 없는 편리성으로, 한 번 맛보면 그만둘 수 없습니다. 무겁기 때문에 평소에는 사용하지 않지만. 여러분도 꼭 Emacsian이 되세요

좋은 웹페이지 즐겨찾기