Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Emacs で Web サービスを開発して8ヶ月が経ちました

Taiju Aoki
December 14, 2018

Emacs で Web サービスを開発して8ヶ月が経ちました

Slide for m3 tech talk

Taiju Aoki

December 14, 2018
Tweet

More Decks by Taiju Aoki

Other Decks in Programming

Transcript

  1. Who Am I ‣ VTuber ͱ Emacs ޷͖ͷ׽ ‣ ࣾձਓ

    8ϲ݄໨ ͷεʔύʔΤϯδχΞ blue (@blue_1617) ‣ ࠷ۙͷ Emacs ʹؔ͢Δ։ൃ https://github.com/blue0513
  2. ͸͡Ίʹ JavaScriptɺRuby on Rails ౳Ͱߏ੒͞ΕΔ Web αʔϏεͷ Emacs Ͱͷ։ൃख๏Λ঺հʂ Syntax

    Check Linter ิ׬ ఆٛࢀর Spell Check ຊεϥΠυ͸ΤϜεϦʔ Advent Calendar Day 16 ͷهࣄΛݩʹ͍ͯ͠·͢ɻ https://www.m3tech.blog/entry/emacs-web-service
  3. ڞ௨ઃఆɿิ׬ http://company-mode.github.io/ company.el ͍Θͣͱ͠ΕͨEmacsͷΠϯςϦηϯε༻ package ͷେޚॴͰ͢ɻ 3rd party ੡ͷ package

    ։ൃ΋੝ΜͰɺLSPʢLanguage Server ProtocolʣͳͲ΁ͷରԠ΋ɻ ࣗಈิ׬ https://qiita.com/blue0513/items/c0dc35a880170997c3f5 cf. Emacsͷิ׬&ݕࡧΛ௒ڧԽ͢Δ
  4. ڞ௨ઃఆɿݕࡧ https://github.com/abo-abo/swiper ivy.el & counsel.el & swiper.el ͍ΘΏΔΠϯΫϦϝϯλϧαʔνΛࢧԉͯ͘͠ΕΔ package Ͱ͢ɻ

    ىಈՄೳͳίϚϯυΛ ΠϯΫϦϝϯλϧʹݕࡧͰ͖Δ https://qiita.com/blue0513/items/c0dc35a880170997c3f5 cf. Emacsͷิ׬&ݕࡧΛ௒ڧԽ͢Δ
  5. ڞ௨ઃఆɿఆٛࢀর https://github.com/jacktasia/dumb-jump dumb-jump.el ProfileStat ͷఆٛʹඈ΂Δ ͲͷݴޠͰ΋ ͍͍ײ͡ʹ ఆٛՕॴ·ͰίϚϯυ̍ͭͰͷҠಈΛՄೳʹ͢Δ package Ͱ͢ɻ

    ։ൃޮ཰͕30%Ҏ্͸޲্͢Δͱࢥ͍·͢ɻ https://qiita.com/blue0513/items/c0dc35a880170997c3f5 cf. Emacsͷิ׬&ݕࡧΛ௒ڧԽ͢Δ
  6. JavaScriptɿMode https://github.com/fxbois/web-mode web-mode.el web-mode ͸ ଟ͘ͷ web template engineʢERB, React/JSX,

    Angularjs, Go Template etcʣʹ ରԠ͍ͯ͠Δ major mode ɻReact ΍ AngularJS ͕ࠞࡏ͍ͯͯ͠΋͍͍ײ͡ʹऔΓѻͬͯ͘ΕΔɻ text-mode web-mode
  7. JavaScriptɿSyntax Check & Lint https://github.com/flycheck/flycheck flycheck.el ։ൃ͍ͯ͠ΔϓϩμΫτͰ͸ Linter ͱͯ͠ eslint

    ΛɻܕνΣοΫͱͯ͠ flowtype Λ ಋೖ͍ͯ͠ΔͷͰɺͦΕΒ΋ϦΞϧλΠϜʹνΣοΫ͠·͢ɻ
  8. JavaScriptɿOthers https://gist.github.com/blue0513/f503c26bf5cb8a1b6fb6e75f1ec91557 eslint-auto.el ։͍͍ͯΔ buffer ʹରͯ͠ eslint --fix ʢLint Error

    ͷࣗಈमਖ਼ʣΛඇಉظͰ࣮ߦͯ͘͠Ε·͢ɻ flycheck ͰΤϥʔ͕ग़͍ͯΔ෦෼͕ ....... ʢΦϨϯδͷ෦෼ʣ
  9. Ruby on RailsɿMode ruby-mode.el & rspec-mode.el & rinari.el ruby-mode ͸౰વͱͯ͠ɺrails

    ಛ༗ͷ Syntax Highlight ΍ Snippet Λޮ཰Α͘ར༻͍ͨ͠ͷͰɺ ͍͍ײ͡ͷ Minor Mode Λઃఆ͠·͢ɻ text-mode ruby-mode
  10. Ruby on RailsɿSyntax Check & Lint https://github.com/flycheck/flycheck flycheck.el ruby ͷ

    Syntax Checker & Linter ͩͬͨΒ rubocop Ұ୒Ͱ͢ͷͰɺͦΕΛ flycheck ͱ࿈ܞͤ͞Δɻ
  11. ࠷ޙʹ ‣ Emacs ͸ੌ͍ ‣ Emacs ͸ҭͯΒΕΔ ‣ جຊػೳΛؚΊͨѹ౗తΧελϚΠζੑ ‣

    3rd Party ੡ͷ package ͷॆ࣮͞ ‣ ඞཁͳ package Λඞཁͳ͚ͩ Install Ͱ͖Δ ‣ ࣗ෼Ͱಠࣗ package Λ։ൃͰ͖Δ Emacs ͸͍͍ͧ