https://fukuokarb.connpass.com/event/245647/
Neovim :hearts: RubyOKURA Masafumi, Fukuoka.rb 0x100 ճ LT େձ, 2022-05-11
View Slide
100000000ճ։࠵͓ΊͰͱ͏͍͟͝·͢ʂʂʂʢೋਐʣ
࠷ۙͷRubyͷΛฉ͍͍ͯΔͱ
͜Μͳ͕ଟ͍Ͱ͢Ͷ• typeprof͕VSCodeʹରԠͨ͠Αʂ• SteepରԠ͍ͯ͠ΔΑʂ• σόοΨVSCode্Ͱಈ͘Αʂ
શ෦VSCode͡ΌΜʂ
ԶͨͪʢVimʣʹ໌ͳ͍…ʁ
Neovimͱ• VimͷϑΥʔΫ• ݱతͳػೳʹଟ͘ରԠ• VimͷϓϥάΠϯ͍͍ͩͨͦͷ··͑Δ• VimͰ͑ΔϓϥάΠϯͷվྑ൛͕LuaͰॻ͔Ε͍ͯΔ͜ͱ͕ଟ͍• ඇৗʹ׆ൃͳ։ൃʢຊମɾϓϥάΠϯͱʹʣ
͍͔ͭ͘ͷศརͳϓϥάΠϯΛ͝հ
neovim/nvim-lspconfig
neovim/nvim-lspconfig• LSPʢVSCodeൃͷิػೳͱ͔ʹؔ͢ΔϓϩτίϧʣΛ͏ͨΊʹ΄΅ඞਢ• ࣄલʹొ͞ΕͨLSPαʔόʔͰ͋ΕɺઃఆϑΝΠϧΛ1ߦॻ͚ͩ͘ͰNeovimͰ͑ΔΑ͏ʹͳΔ• ઌSteepରԠͷύονΛ͛ͨʢએʣ• https://github.com/neovim/nvim-lspconfig/pull/1842
nvim-treesitter/nvim-treesitter
nvim-treesitter/nvim-treesitter• TreeSitterͱ͍͏ύʔαʔ͕Neovim͔Β͑ΔΑ͏ʹͳΔ• ΈࠐΈͷϋΠϥΠτΑΓΧϥϑϧʹͳΔ• ࢹ֮తʹจ๏ཁૉΛѲͰ͖ΔͷͰศར• ͨͩݱঢ়ɺRubyͰTreeSitterͷΈͩͱΠϯσϯτ͕յΕΔͨΊɺsyntax༗ޮʹ͢Δඞཁ͕͋Δ
Before
After
hrsh7th/nvim-cmp
hrsh7th/nvim-cmp• ࣗಈิϓϥάΠϯͰଟҰ൪ྑ͘Ͱ͖͍ͯΔ• ιʔεΛՃ͢Δ͜ͱͰ৭ʑͳީิ͔ΒิͰ͖Δ• LSP͔Βิ͕Մೳ• ίϚϯυϥΠϯݕࡧิର• RubyΤσΟλͷิपΓ͕ऑ͍͕ɺকདྷతʹܕϕʔεͷิ༗ޮʹͰ͖ΔͷͩΖ͏͔
mfussenegger/nvim-dap
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ͱ࿈ܞͰ͖Δ• …͕ͣͩɺݱ࣌ͰԿΒ͔ͷཧ༝ʹΑΓ͏·͘ಈ࡞͠ͳ͍
͓·͚ʢNeovimઐ༻Ͱͳ͍ͷͰʣ
tpope/vim-rails
tpope/vim-rails• 10Ҏ্લ͔Βଘࡏ͢ΔݹయతͳVimϓϥάΠϯ• `:Emodel`ίϚϯυͳͲɺRailsͷߏΛલఏͱͨ͠ίϚϯυମܥ• લड़ͷnvim-cmpͰίϚϯυิ͕Ͱ͖Δͷ͕ڧྗͰɺ`:Emodel u`ͱೖྗ͢Δ͚ͩͰޙิͰUserϞσϧΛ։͘͜ͱ͕Ͱ͖Δ• Railsͷ߹ɺ”User”Ͱ࢝·ΔϑΝΠϧ͕ଟ͍ͨΊ୯ͳΔϑΝδʔϑΝΠϯμʔΑΓ༗ޮͳ߹͕ଟ͍
·ͱΊ
NeovimΛRubyͷ։ൃڥͱͯ͠͏͜ͱ• దͳϓϥάΠϯΛೖΕͯઃఆ͢Εे͑Δ• ٯʹݴ͏ͱɺσϑΥϧτͷঢ়ଶͰੜ࢈ੑΛߴΊΔͷ͍͠• հͳͷɺ࠷దͳϓϥάΠϯʑมΘ͍ͬͯΔ͜ͱ• ͞Βʹ͍͏ͱׂͱߴ֬Ͱಥવಈ࡞͠ͳ͘ͳͬͨΓ͢Δ• VimϓϥάΠϯͷੈքʹʮϦϦʔεʯʮόʔδϣϯʯͷ֓೦͕ͳ͍ͷͰ…
NeovimΛ͏ϝϦοτ• λʔϛφϧ͚ͩͰ։ൃ͕݁͢Δ• ๛ͳϓϥάΠϯ• ωΠςΟϒͷVimΩʔόΠϯυ
Neovim͕͍͍ͯΔਓ• ࣗͰใऩू͕Ͱ͖Δ• vim-jpͱ͍͏ίϛϡχςΟ͕͋ͬͯຊޠ͕͑ΔͷͰͰ͖Δͣ• ࣗͰൺֱɾऔࣺબͰ͖Δ• ಉ͡ػೳΛ࣋ͭϓϥάΠϯ͕ෳ͋Δ͜ͱ͕ଟ͍• ઃఆΛࢼߦࡨޡͰ͖Δ• READMEͷ௨Γʹͨ͠ͷʹͳΜ͔มɺͱ͔Α͋͘Δ
Neovim Ruby
pp self• ໊લɿେխ࢙ʢ͓͓͘Β·͞;Έʣ• ॴଐɿϑϦʔϥϯε• ͦͷଞɿKaigi on RailsͷνʔϑΦʔΨφΠβʔɺGrow.rbͷओ࠵ऀɺAlbaͷ࡞ऀ• ͖ͳςΩετΤσΟλɿVim
ࢀߟ• https://github.com/okuramasafumi/dotfiles/tree/master/vim