Spacemacs에서 NodeJS/Express/VueJS 프로젝트에 Prettier + ES6 Lint 적용하기

Because I like to be comfortable to use Spacemac

Instead of using Visual Studio Code, I prefer to use Spacemacs. Besides, I rather to use Spacemacs even some cases where VSCode is much better. I agree that it is true that VSCode is much superior to Spacemacs specially in Web Development field. And sometimes Spacemacs is bottleneck to finish job. Though Spacemacs gives something to me. That is enough. I can switch over both of them in cases.

 

 

Configurations are uploaded in my github repository

https://github.com/andrwj/oh-my-spacemacs 1https://github.com/andrwj/oh-my-spacemacs

 

Prettier + ES6 Lint on VueJS project

References   [ + ]

1. https://github.com/andrwj/oh-my-spacemacs

Emacs용 Solidity 스마트컨트랙 문법검사 루틴을 만들어보았다

Spacemacs에서 Solidity 스마트컨트랙 코딩하려고 찾아보니 solidity-mode1https://github.com/ethereum/emacs-solidity 패키지 하나 나오더라.MELPA 저장소 업데이트 날짜가 올해 4월 29일로 나와서 나름 기대했는데, 웬열…  이름만 "공식 " 이었네.  구려터져서 좀 고쳐 써볼요량으로 Quelpa2https://github.com/quelpa/quelpa receipt 업데이트해서 로컬에서 불러들이려고 했으나, dotspacemacs/user-config()dotspacemacs-additional-packages() 어느 쪽에 넣어도 Autoloading 실패다.  얼마나 쓰는 사람이 없었으면 그런 정도의 버그를 내버려둔걸까 싶어 걍 포기하려했다.

근데 flycheck3http://www.flycheck.org/en/latest/ 기반의 자동완성으로  Solium4https://github.com/duaraghav8/Solium과 Solc5http://solidity.readthedocs.io/en/v0.4.24/installing-solidity.html 두 가지를 체인으로 엮어 표시해주길래 좀 고쳐쓰면 괜찮을 듯 싶었다.  물론 Visual Studio Code에서 solidity 플러그인 써도 좋다. 그러나 난 Spacemacs에서 코딩 할 거거든. 그래서 고치기로 했다.

 

결론을 말하자면, Solidity-mode 패키지에 들어있는 solidity-flycheck.el6https://github.com/ethereum/emacs-solidity/blob/master/solidity-flycheck.el 부분은 사용하지 않고  solidity-mode.el7https://github.com/ethereum/emacs-solidity/blob/master/solidity-mode.el만 사용하되 flycheck용 checker를 따로, 간단히, 만들었다. 마땅한 이름이 없어 solidity-adviser 로 지었지뭐. 문법체크/강조 기능을 구현하는 건 생각보다 어렵지 않았다.  역쉬, Emacs~

 

Solium, Solc, Solhint8https://github.com/protofire/solhint 이 셋중 젤 빡씨게 검사하는 놈은 Solhint 이긴한데 현재 버전과 맞지 않는 경향이 있더라. 그래서 Solc 쓰기로 함. Solium은 도대체 왜 그런거야? 내가 뭘 모르고 있는겐가.. 

 


(flycheck-define-checker solidity-adviser
    "A Solidity syntax checker using the solc compiler"
    :command ("/usr/local/bin/solc" source-inplace)
    :error-patterns (
        (error line-start (file-name) ":" line ":" column ":" " Error: " (message))
        (error line-start "Error: " (message))
        (warning line-start (file-name) ":" line ":" column ":" " Warning: " (message))
     )
    :modes 'solidity-mode
    :predicate
    )

;; 문법검사기라고 하기엔 초라하지만, 제법 잘 동작한다 
(add-to-list 'flycheck-checkers 'solidity-adviser)

;; 눈에 화~악 띄라고 색상도 큼지막하게 넣어준다
(eval-after-load 'flycheck
   '(progn
        (set-face-attribute 'flycheck-warning nil :foreground "blue" :background "yellow")
        (set-face-attribute 'flycheck-error nil :foreground "white" :background "red")))

;; 탭크기 조정해주지 않으면 겁나 경고 때린다 
(add-hook 'solidity-mode-hook
    (lambda ()
        (setq indent-tabs-mode nil)
        (setq tab-width 4)
        ))

 

보다시피 동작은 잘 하지만 VSCode에 비할 수는 없다. 조만간 시간 될 때 팝업에다 Helm 서치 기능같은 걸 붙여보련다. 

Public 을 Pub 이라 써보았다

 

 

 

 SPC   C-x   4  

 

References   [ + ]