Slide 1

Slide 1 text

Neovim :hearts: Ruby OKURA Masafumi, Fukuoka.rb 0x100 ճ LT େձ, 2022-05-11

Slide 2

Slide 2 text

100000000ճ։࠵ ͓ΊͰͱ͏͍͟͝·͢ʂʂʂ ʢೋਐ਺ʣ

Slide 3

Slide 3 text

࠷ۙͷRubyͷ࿩Λฉ͍͍ͯΔͱ

Slide 4

Slide 4 text

͜Μͳ࿩͕ଟ͍Ͱ͢Ͷ • typeprof͕VSCodeʹରԠͨ͠Αʂ • Steep΋ରԠ͍ͯ͠ΔΑʂ • σόοΨ΋VSCode্Ͱಈ͘Αʂ

Slide 5

Slide 5 text

શ෦VSCode͡ΌΜʂ

Slide 6

Slide 6 text

ԶͨͪʢVimʣʹ໌೔͸ͳ͍…ʁ

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Neovimͱ͸ • VimͷϑΥʔΫ • ݱ୅తͳػೳʹ਺ଟ͘ରԠ • VimͷϓϥάΠϯ͸͍͍ͩͨͦͷ··࢖͑Δ • VimͰ࢖͑ΔϓϥάΠϯͷվྑ൛͕LuaͰॻ͔Ε͍ͯΔ͜ͱ͕ଟ͍ • ඇৗʹ׆ൃͳ։ൃʢຊମɾϓϥάΠϯͱ΋ʹʣ

Slide 9

Slide 9 text

͍͔ͭ͘ͷศརͳϓϥάΠϯΛ͝঺հ

Slide 10

Slide 10 text

neovim/nvim-lspcon fi g

Slide 11

Slide 11 text

neovim/nvim-lspcon fi g • LSPʢVSCodeൃ঵ͷิ׬ػೳͱ͔ʹؔ͢ΔϓϩτίϧʣΛ࢖͏ͨΊ ʹ΄΅ඞਢ • ࣄલʹొ࿥͞ΕͨLSPαʔόʔͰ͋Ε͹ɺઃఆϑΝΠϧΛ1ߦॻ͚ͩ͘ ͰNeovimͰ࢖͑ΔΑ͏ʹͳΔ • ઌ೔SteepରԠͷύονΛ౤͛ͨʢએ఻ʣ • https://github.com/neovim/nvim-lspcon fi g/pull/1842

Slide 12

Slide 12 text

nvim-treesitter/nvim-treesitter

Slide 13

Slide 13 text

nvim-treesitter/nvim-treesitter • TreeSitterͱ͍͏ύʔαʔ͕Neovim͔Β࢖͑ΔΑ͏ʹͳΔ • ૊ΈࠐΈͷϋΠϥΠτΑΓ΋ΧϥϑϧʹͳΔ • ࢹ֮తʹจ๏ཁૉΛ೺ѲͰ͖ΔͷͰศར • ͨͩݱঢ়ɺRubyͰ͸TreeSitterͷΈͩͱΠϯσϯτ͕յΕΔͨΊɺ syntax΋༗ޮʹ͢Δඞཁ͕͋Δ

Slide 14

Slide 14 text

Before

Slide 15

Slide 15 text

After

Slide 16

Slide 16 text

hrsh7th/nvim-cmp

Slide 17

Slide 17 text

hrsh7th/nvim-cmp • ࣗಈิ׬ϓϥάΠϯͰଟ෼Ұ൪ྑ͘Ͱ͖͍ͯΔ • ιʔεΛ௥Ճ͢Δ͜ͱͰ৭ʑͳީิ͔Βิ׬Ͱ͖Δ • LSP͔Β΋ิ׬͕Մೳ • ίϚϯυϥΠϯ΍ݕࡧ΋ิ׬ର৅ • Ruby͸ΤσΟλͷิ׬पΓ͕ऑ͍͕ɺকདྷతʹ͸ܕϕʔεͷิ׬΋༗ ޮʹͰ͖ΔͷͩΖ͏͔

Slide 18

Slide 18 text

mfussenegger/nvim-dap

Slide 19

Slide 19 text

mfussenegger/nvim-dap • Debug Adapter Protocol ( https://microsoft.github.io/debug- adapter-protocol/ ) ͕NeovimͰಈ࡞͢ΔΑ͏ʹͳΔ • rcarriga/nvim-dap-ui Λ࢖͏͜ͱͰIDEͬΆ͍ϦονͳUI΋࢖͑Δ • suketa/nvim-dap-ruby Λ࢖͑͹debug.gemͱ΋࿈ܞͰ͖Δ • …͸͕ͣͩɺݱ࣌఺Ͱ͸ԿΒ͔ͷཧ༝ʹΑΓ͏·͘ಈ࡞͠ͳ͍

Slide 20

Slide 20 text

͓·͚ʢNeovimઐ༻Ͱ͸ͳ͍ͷͰʣ

Slide 21

Slide 21 text

tpope/vim-rails

Slide 22

Slide 22 text

tpope/vim-rails • 10೥Ҏ্લ͔Βଘࡏ͢ΔݹయతͳVimϓϥάΠϯ • `:Emodel`ίϚϯυͳͲɺRailsͷߏ੒Λલఏͱͨ͠ίϚϯυମܥ • લड़ͷnvim-cmpͰίϚϯυิ׬͕Ͱ͖Δͷ͕ڧྗͰɺ`:Emodel u`ͱ ೖྗ͢Δ͚ͩͰޙ͸ิ׬ͰUserϞσϧΛ։͘͜ͱ͕Ͱ͖Δ • Railsͷ৔߹ɺ”User”Ͱ࢝·ΔϑΝΠϧ͕ଟ͍ͨΊ୯ͳΔϑΝδʔ ϑΝΠϯμʔΑΓ΋༗ޮͳ৔߹͕ଟ͍

Slide 23

Slide 23 text

·ͱΊ

Slide 24

Slide 24 text

NeovimΛRubyͷ։ൃ؀ڥͱͯ͠࢖͏͜ͱ • ద੾ͳϓϥάΠϯΛೖΕͯઃఆ͢Ε͹े෼࢖͑Δ • ٯʹݴ͏ͱɺσϑΥϧτͷঢ়ଶͰ͸ੜ࢈ੑΛߴΊΔͷ͸೉͍͠ • ໽հͳͷ͸ɺ࠷దͳϓϥάΠϯ͸೔ʑมΘ͍ͬͯΔ͜ͱ • ͞Βʹ͍͏ͱׂͱߴ֬཰Ͱಥવಈ࡞͠ͳ͘ͳͬͨΓ͢Δ • VimϓϥάΠϯͷੈքʹ͸ʮϦϦʔεʯʮόʔδϣϯʯͷ֓೦͕ͳ ͍ͷͰ…

Slide 25

Slide 25 text

NeovimΛ࢖͏ϝϦοτ • λʔϛφϧ͚ͩͰ։ൃ͕׬݁͢Δ • ๛෋ͳϓϥάΠϯ • ωΠςΟϒͷVimΩʔόΠϯυ

Slide 26

Slide 26 text

Neovim͕޲͍͍ͯΔਓ • ࣗ෼Ͱ৘ใऩू͕Ͱ͖Δ • vim-jpͱ͍͏ίϛϡχςΟ͕͋ͬͯ೔ຊޠ͕࢖͑ΔͷͰͰ͖Δ͸ͣ • ࣗ෼Ͱൺֱɾऔࣺબ୒Ͱ͖Δ • ಉ͡ػೳΛ࣋ͭϓϥάΠϯ͕ෳ਺͋Δ͜ͱ͕ଟ͍ • ઃఆΛࢼߦࡨޡͰ͖Δ • READMEͷ௨Γʹͨ͠ͷʹͳΜ͔มɺͱ͔΋Α͋͘Δ

Slide 27

Slide 27 text

Neovim Ruby

Slide 28

Slide 28 text

pp self • ໊લɿେ૔խ࢙ʢ͓͓͘Β·͞;Έʣ • ॴଐɿϑϦʔϥϯε • ͦͷଞɿKaigi on RailsͷνʔϑΦʔΨφΠβʔɺGrow.rbͷओ࠵ऀɺ Albaͷ࡞ऀ • ޷͖ͳςΩετΤσΟλɿVim

Slide 29

Slide 29 text

ࢀߟ • https://github.com/okuramasafumi/dot fi les/tree/master/vim