Slide 1

Slide 1 text

Vimmer ͷ Web ΤϯδχΞ͕ TypeScript Ͱ Neovim ϓϥάΠϯΛ࡞ͬͨ࿩ Takuma Yamamoto

Slide 2

Slide 2 text

BIOGRAPHY ͋ͳͨ͸୭Ͱ͔͢ʁ 5BLVNB:BNBNPUP 8PSLBUTOBQNF 'SPN.JZB[BLJ ٕज़ελοΫ 4/4 झຯ ɾόοΫΤϯυ3VCZPO3BJMT ɾϑϩϯτΤϯυ3FBDU ɾΞϓϦ3FBDU/BUJWF ɾɹɹIUUQTHJUIVCDPNUBNBHPLFSBO ɾɹɹIUUQTUXJUUFSDPNZBNBUBLV ɾɹɹIUUQTRJJUBDPNUBNBHPLFSBO ɾɹɹIUUQT[FOOEFWUBNBHPLFSBO ɾ͓΍ͭ ɾα΢φ ɾΞχϝ

Slide 3

Slide 3 text

INTRODUCTION ͓΍ͭͱɺੈքΛ໘ന͘ɻ ͓΍ͭͷఆظศ ௚Ӧళ ਗ਼੅നՏ TOBQNF͸ɺϫΫϫΫ͢ΔΑ͏ͳ͓΍ͭࣄۀΛల։͍ͯ͠·͢ɻ

Slide 4

Slide 4 text

INTRODUCTION ੈք؍ᷓΕΔϚΠϖʔδ͸ TypeScript Ͱ࡞ΒΕ͍ͯ·͢ Ϣʔβʔͱͷ઀఺Ͱ͋ΔϚΠϖʔδͰ͸ɺϫΫϫΫ͢ΔΑ͏ͳσβΠϯΛ৺͕͚͍ͯ·͢ɻ 
 ͜ΕΒ͸શͯ5ZQF4DSJQU͕ϕʔεͱͳͬͨ3FBDUͰ։ൃ͞Ε͍ͯ·͢ɻ

Slide 5

Slide 5 text

TODAY’s TOPIC TypeScript Ͱ Neovim ϓϥάΠϯΛ࡞ͬͨܦݧΛ঺հ /FPWJNΛ࢖͍࢝Ίͯ೥͕ܦͪɺ࠷ۙ%FOPQTͱग़ձ͍·ͨ͠ɻ 
 ࢖͍׳ΕͨݴޠͰ͋Δ5ZQF4DSJQUͰɺϓϥάΠϯΛ։ൃ͢Δ͜ͱ͕ՄೳʹͳΓ·ͨ͠ɻ

Slide 6

Slide 6 text

TODAY’s GOAL Neovim ϓϥάΠϯ։ൃͷ͖͔͚ͬʹ ։ൃࣄྫΛ஌Δ ։ൃ΁ͷ͖͔͚ͬ 5ZQF4DSJQUΛ࢖ͬͨ/FPWJN ϓϥάΠϯͷ։ൃࣄྫʹ͍ͭ ͯɺ঺հ͠·͢ɻ ࣗ෼޷ΈͷϓϥάΠϯΛ։ൃ ͯ͠ΈΑ͏ͱɺߟ͑Δ͖͔ͬ ͚ʹͳΕ͹خ͍͠Ͱ͢ɻ

Slide 7

Slide 7 text

What is Deno? ͦ΋ͦ΋ Deno ͱ͸ԿͰ͔͢ʁ

Slide 8

Slide 8 text

INTRODUCTION JavaScript TypeScript runtime %FOPJTB+BWB4DSJQU 5ZQF4DSJQU BOE 8FC"TTFNCMZSVOUJNFXJUITFDVSFEFGBVMUT BOEBHSFBUEFWFMPQFSFYQFSJFODF %FOPͱ͸ɺ%FOP-BOE*OD͕։ൃ͍ͯ͠Δϓ ϩμΫτͰ͋Γɺ҆શ͔ͭ༏Εͨ։ൃऀମݧΛ උ͑ͨ+BWB4DSJQU΍5ZQF4DSJQUϥϯλΠϜϞ δϡʔϧͰ͢ɻ Ҿ༻ݩIUUQTEFOPDPNSVOUJNF EFOPMBOEEFOP "NPEFSOSVOUJNFGPS+BWB4DSJQUBOE5ZQF4DSJQU 3VTU

Slide 9

Slide 9 text

What is Denops? ͦ΋ͦ΋ Denops ͱ͸ԿͰ͔͢ʁ

Slide 10

Slide 10 text

INTRODUCTION %FOPQTJTBOFDPTZTUFNPG7JN/FPWJN XIJDIBMMPXTEFWFMPQFSTUPXSJUFQMVHJOTJO %FOP %FOPQTͱ͸WJNKQʹΑͬͯ։ൃ͞Ε͍ͯΔϓ ϩμΫτͰ͢ɻ7JN/FPWJNͷΤίγεςϜͰ ͋Γɺ։ൃऀ͸+BWB4DSJQU΍5ZQF4DSJQUΛ ϕʔεʹ7JN/FPWJNϓϥάΠϯΛ࡞Ε·͢ɻ Ҿ༻ݩIUUQTHJUIVCDPNWJNEFOPQTEFOPQTWJN Ecosystem of Vim/Neovim WJNEFOPQTEFOPQTWJN "OFDPTZTUFNPG7JN/FPWJNXIJDIBMMPXT EFWFMPQFSTUPXSJUFDSPTTQMBUGPSNQMVHJOTJO%FOP 7JN4DSJQU

Slide 11

Slide 11 text

Why use Denops to develop plugins? ͳͥ Denops Λ࢖ͬͯϓϥάΠϯΛ࡞ΔͷͰ͔͢ʁ

Slide 12

Slide 12 text

BACKGROUND Vim/Neovim ʹ͓͚Δؔ܎ੑͷม๴ظ 7JNଆ͸7JNTDSJQUͷܽ఺Λิͬͨ৽͍͠ݴޠͰ͋Δ7JNTDSJQUͷ։ൃΛਐΊ͓ͯΓ/FPWJNଆ ͸7JNTDSJQUΛ׬શʹࣺͯͯ-VBʹҠߦ͠Α͏ͱ͍ͯ͠·͢ɻ ݱࡏ7JNͱ/FPWJNͷؔ܎͸େ͖ͳม๴ظʹ͍ΔΑ͏Ͱ͢ɻ Ҿ༻ݩIUUQT[FOOEFWMBNCEBMJTVFBSUJDMFTCBGCBCDFD v9.0

Slide 13

Slide 13 text

BACKGROUND Vim/Neovim ͷ྆ํͰಈ࡞͢ΔϓϥάΠϯ։ൃͷ೉͠͞ ͜ͷΑ͏ʹ7JN/FPWJNͷဃ཭͕େ͖͘޿͕͓ͬͯΓɺ૒ํͰಈ࡞͢ΔϓϥάΠϯΛॻ͘ͷ͕ඇৗʹ ೉͘͠ͳ͖͍ͬͯͯΔঢ়ଶͰ͢ɻ ͦ͏͍ͬͨഎܠ͔Β7JN/FPWJNͷ྆ํͰಈ࡞͢ΔϓϥάΠϯΛ࡞Δ͜ͱ͕೉͘͠ͳ͍ͬͯ·͢ɻ Ҿ༻ݩIUUQT[FOOEFWMBNCEBMJTVFBSUJDMFTCBGCBCDFD ϓϥάΠϯ

Slide 14

Slide 14 text

BACKGROUND Vim/Neovim ͷ֎ʹಠࣗΤίγεςϜΛల։ ͦΜͳதDPDOWJN͸ϥϯλΠϜʹ/PEFKTΛ࠾༻͠7JN/FPWJNͷϓϥάΠϯػߏͷ֎Ͱಠࣗͷ ΤίγεςϜΛల։͢Δ͜ͱͰ7JN/FPWJN૒ํΛαϙʔτ͢Δ͜ͱΛՄೳʹ͍ͯ͠·͢ɻ DPDOWJN͸ϥϯλΠϜͱͯ͠/PEFKTΛ࠾༻͠ɺ7JN/FPWJNͷ֎ʹಠࣗΤίγεςϜΛల։ɻ 
 ͦͷ࢓૊ΈΛࢀߟʹ͢Δ͜ͱͰɺ7JN/FPWJNͷ྆ํͰػೳ͢ΔϓϥάΠϯ։ൃΛՄೳͱ͠·ͨ͠ɻ Ҿ༻ݩIUUQT[FOOEFWMBNCEBMJTVFBSUJDMFTCBGCBCDFD

Slide 15

Slide 15 text

BACKGROUND ։ൃͷ͠΍͢͞Λߟ͑ɺϥϯλΠϜͱͯ͠ Deno Λ࠾༻ ͦͷͨΊґଘ؅ཧΛ಺แ͠ɺόΠφϦҰ͕ͭ͋Ε͹ಈ࡞͢Δ%FOPΛϕʔεʹ͢Ε͹7JN/FPWJN ૒ํͰಈ࡞͠ɺ։ൃ΋؆୯ͳΤίγεςϜ͕Ͱ͖ΔͷͰ͸ͳ͍͔ʁͱࢥ͍։ൃʹ౿Έ੾Γ·ͨ͠ɻ /PEFKT͸ɺґଘ؅ཧ͕ෳࡶͰɺϏϧυ΋ඞཁͳͨΊɺΤίγεςϜͱͯ͠࢖͍উख͕ྑ͘ͳͦ͞͏ɻ 
 όΠφϦͻͱͭͰಈ͘%FOPΛϕʔεʹ͢Ε͹ɺ։ൃ΋͠΍ͦ͢͏ͱ͍͏ߟ͑Ͱ࠾༻ͨͦ͠͏Ͱ͢ɻ Ҿ༻ݩIUUQT[FOOEFWMBNCEBMJTVFBSUJDMFTCBGCBCDFD

Slide 16

Slide 16 text

BACKGROUND Web ΤϯδχΞʹ΋ೃછΈͷ͋ΔݴޠͰ։ൃͰ͖Δ %FOPΛར༻͢Δ͜ͱͰɺ8FCΤϯδχΞͷࢲʹͱͬͯ΋ೃછΈͷ͋Δ+BWB4DSJQU΍5ZQF4DSJQUΛ ࢖༻ͯ͠7JN/FPWJNϓϥάΠϯΛ։ൃ͢Δ͜ͱ͕Ͱ͖Δͷ͸ϝϦοτͩͱײ͍ͯ͡·͢ɻ ·ͨ੄໺͕޿͕Δ͜ͱͰɺ7JN/FPWJNϓϥάΠϯͷ։ൃ͕׆ൃʹͳ͍ͬͯ͘͜ͱ΋ɺ7JNNFSͷ ΤϯδχΞʹͱͬͯେ͖ͳϝϦοτͩͱײ͍ͯ͡·͢ɻ

Slide 17

Slide 17 text

How to develop plugins with Denops? Denops ͰͲͷΑ͏ʹϓϥάΠϯΛ։ൃ͢Δͷ͔ʁ

Slide 18

Slide 18 text

TUTORIAL Docker ͷ४උ ࢀরݩIUUQTXXXEPDLFSDPNQSPEVDUTEPDLFSEFTLUPQ

Slide 19

Slide 19 text

TUTORIAL Neovim ͷΠϯετʔϧ Ҿ༻ݩIUUQTHJUIVCDPNUBNBHPLFSBO%PDLFS fi MFTCMPCNBJOCBTF%PDLFS fi MF ˞"QQMF$IJQ౥ࡌͷ.BD#PPLΛ࢖༻͢Δ͜ͱΛલఏͱ͍ͯ͠·͢

Slide 20

Slide 20 text

TUTORIAL Deno ͷΠϯετʔϧ Ҿ༻ݩIUUQTHJUIVCDPNUBNBHPLFSBO%PDLFS fi MFTCMPCNBJOCBTF%PDLFS fi MF ˞"QQMF$IJQ౥ࡌͷ.BD#PPLΛ࢖༻͢Δ͜ͱΛલఏͱ͍ͯ͠·͢

Slide 21

Slide 21 text

TUTORIAL Denops ͷΠϯετʔϧ Ҿ༻ݩIUUQTHJUIVCDPNUBNBHPLFSBO%PDLFS fi MFTCMPCNBJOCBTF%PDLFS fi MF Ҿ༻ݩIUUQTHJUIVCDPNUBNBHPLFSBOEPU fi MFTCMPCCBTFMPDBMTIBSFEFJOUPNMHFOFSBMUPNM ˞"QQMF$IJQ౥ࡌͷ.BD#PPLΛ࢖༻͢Δ͜ͱΛલఏͱ͍ͯ͠·͢ ˞ύοέʔδϚωʔδϟʔͱͯ͠EFJOWJNΛ࢖༻͍ͯ͠·͢

Slide 22

Slide 22 text

TUTORIAL runtimepath ͷࢦఆͱσόοάϞʔυͷ༗ޮԽ Ҿ༻ݩIUUQTWJNEFOPQTHJUIVCJPEFOPQTEPDVNFOUBUJPO WJNSD͋Δ͍͸JOJUWJNʹҎԼͷઃఆΛ௥Ճ͠·͢ɻ

Slide 23

Slide 23 text

TUTORIAL ϓϥάΠϯσΟϨΫτϦߏ଄ͷ࡞੒ Ҿ༻ݩIUUQTWJNEFOPQTHJUIVCJPEFOPQTEPDVNFOUBUJPO ҎԼͷίϚϯυΛ࣮ߦ͠ɺඞཁ࠷௿ݶͷσΟϨΫτϦߏ଄Λ࡞੒͠·͢ɻ

Slide 24

Slide 24 text

TUTORIAL main ؔ਺ͷ࡞੒ NBJOUTʹҎԼͷΑ͏ͳNBJOؔ਺Λ࡞੒͠·͢ɻ Ҿ༻ݩIUUQTWJNEFOPQTHJUIVCJPEFOPQTEPDVNFOUBUJPO

Slide 25

Slide 25 text

TUTORIAL Neovim Λىಈ͠ main ؔ਺Λ࣮ߦ͢Δ ਖ਼࣮͘͠૷Ͱ͖͍ͯΕ͹ɺ)FMMP%FOPQTͱදࣔ͞ΕΔ͸ͣͰ͢ɻ Ҿ༻ݩIUUQTWJNEFOPQTHJUIVCJPEFOPQTEPDVNFOUBUJPO

Slide 26

Slide 26 text

TUTORIAL API ͷ௥Ճ Ҿ༻ݩIUUQTWJNEFOPQTHJUIVCJPEFOPQTEPDVNFOUBUJPO NBJOؔ਺ʹಠࣗFDIPͱ͍͏"1*Λ৽نʹ௥Ճ͠·͢ɻ

Slide 27

Slide 27 text

TUTORIAL API ͷݺͼग़͠ /FPWJNΛىಈͨ͠ঢ়ଶͰɺҎԼͷίϚϯυΛ࣮ߦ͠·͢ɻ Ҿ༻ݩIUUQTWJNEFOPQTHJUIVCJPEFOPQTEPDVNFOUBUJPO ୈҰҾ਺ʹೖΔ஋͸ɺEFOPQTσΟϨΫτϦ௚Լʹ͋ΓɺNBJOUTΛؚΉσΟϨΫτϦ໊Ͱ͢ɻ

Slide 28

Slide 28 text

TUTORIAL API ͷ࣮ߦ݁Ռ ਖ਼࣮͘͠૷Ͱ͖͍ͯΕ͹ɺ)FMMP%FOPQTͱදࣔ͞ΕΔ͸ͣͰ͢ɻ Ҿ༻ݩIUUQTWJNEFOPQTHJUIVCJPEFOPQTEPDVNFOUBUJPO

Slide 29

Slide 29 text

What kind of plugins can be developed? ΑΓ۩ମతʹͲ͏͍ͬͨϓϥάΠϯ͕࡞ΕΔͷ͔ʁ

Slide 30

Slide 30 text

INTRODUCTION 4IPVHPࢯ͸EEVWJNͱ͍͏6*GSBNXPSLΛ։ ൃ͍ͯ͠·͢ɻ͜ͷϓϥάΠϯʹ͸%FOPQT͕ ར༻͞Ε͍ͯ·͢ɻ 
 ֦ுੑʹ༏Ε͓ͯΓɺ֦ுϓϥάΠϯΛ։ൃ͠ ΍͍͢ͱ͍͏ಛ௃͕͋Γ·͢ɻ ddu.vim: UI framework plugin 4IPVHPEEVWJN %BSLEFOPQPXFSFE6*GSBNFXPSLGPSOFPWJN7JN 5ZQF4DSJQU

Slide 31

Slide 31 text

INTRODUCTION ui, source, fi lter, kind ͱ͍͏֓೦ ui source fi lter kind WJFXΛ੍ޚ͢Δ JUFNΛੜ੒͢Δ JUFNΛߜΓࠐΈɾιʔτɾՃ޻͢Δ JUFNʹର࣮͠ߦ͢ΔΞΫγϣϯ ֦ுϓϥάΠϯྫ EEVVJ f ֦ுϓϥάΠϯྫ EEVTPVSDF fi MF@SFD ֦ுϓϥάΠϯྫ EEV fi MUFSNBUDIFS@TVCTUSJOH ֦ுϓϥάΠϯྫ EEVLJOE fi MF

Slide 32

Slide 32 text

INTRODUCTION 4ͭͷ֓೦Λ૊Έ߹ΘͤɺFuzzy Finder Λ࣮ݱͰ͖Δ

Slide 33

Slide 33 text

INTRODUCTION ddu.vim ʹΑΔ Fuzzy Finder ͷߏ੒ཁૉΛՄࢹԽ EEVVJ ff WJFXͷ੍ޚ ˞ fl PBUJOHΛࢦఆ EEVTPVSDF fi MF@SFD ࠶ؼతʹϑΝΠϧΛऔಘ EEV fi MUFSNBUDIFS@TVCTUSJOH ೖྗͨ͠஋ͰߜΓࠐΈ EEVLJOE fi MF બ୒࣌ʹ։͘ ˞PQFOΛࢦఆ ˞େ·͔ͳઆ໌ͳͷͰɺৄ͘͠͸;FOO΍ιʔείʔυΛ͓ಡΈ͍ͩ͘͞ɻ

Slide 34

Slide 34 text

INTRODUCTION ૊Έ߹ΘͤΛม͑Δ͜ͱͰ Filer ΋࣮ݱͰ͖Δ

Slide 35

Slide 35 text

INTRODUCTION ddu.vim ʹΑΔ Filer ͷߏ੒ཁૉΛՄࢹԽ ˞େ·͔ͳઆ໌ͳͷͰɺৄ͘͠͸;FOO΍ιʔείʔυΛ͓ಡΈ͍ͩ͘͞ɻ EEVVJ fi MFS WJFXͷ੍ޚ EEVTPVSDF fi MF ಛఆQBUI಺ͷϑΝΠϧɾσΟϨΫτϦΛऔಘ EEVLJOE fi MF બ୒࣌ʹ։͘ ˞PQFOΛࢦఆ EEVDPMVNO fi MFOBNF JUFNͷݟͤํΛ੍ޚ ˞ϑΝΠϧͱσΟϨΫτϦͷݟͤํΛม͑ͨΓ ˞σΟϨΫτϦͷ։ดͰݟͤํΛม͑ͨΓ

Slide 36

Slide 36 text

MOTIVATION Filer ͰΞΠίϯͱҰॹʹϑΝΠϧ໊Λද͍ࣔͨ͠ 'JMFSͰදࣔ͞ΕΔϑΝΠϧɾσΟϨΫτϦʹɺΞΠίϯ΋ఴ͑ͯ΋ͬͱ՚΍͔ʹ͍ͨ͠ɻ 
 ͦ͏͍ͬͨϞνϕʔγϣϯ͔Β֦ுϓϥάΠϯͷ։ൃΛߦ͍·ͨ͠ɻ ΞΠίϯ΋ද͍ࣔͨ͠ʂ

Slide 37

Slide 37 text

How did develop my plugins? ͲͷΑ͏ʹ֦ுϓϥάΠϯΛ࡞͔ͬͨʁ

Slide 38

Slide 38 text

EXAMPLE 4IPVHPࢯ͸EEVVJ fi MFS޲͚ʹΧϥϜ༻ͷ֦ு ϓϥάΠϯʮEEVDPMVNO fi MFOBNFʯΛఏڙ͠ ͍ͯ·͢ɻ 
 ͜ͷϓϥάΠϯΛࢀߟʹͯ͠ɺΞΠίϯͳͲ΋ ҰॹʹදࣔͰ͖ΔΑ͏վม͠·ͨ͠ɻ طଘϓϥάΠϯΛࢀߟʹ 4IPVHPEEVDPMVNO fi MFOBNF 'JMFOBNFDPMVNOGPSEEVWJN 5ZQF4DSJQU

Slide 39

Slide 39 text

σΟϨΫτϦͷσϑΥϧτΞΠίϯΛมߋ EXAMPLE EEVDPMVNO fi MFOBNF EEVDPMVNOEFWJDPO@ fi MFOBNF #BTF$PMVNOΫϥεΛܧঝ͢Δ$PMVNOΫϥε಺ʹQBSBNT ΛPWFSSJEF͍ͯ͠ΔՕॴ͕͋Γ·͢ɻ 
 ͦ͜Ͱ஋Λࢦఆ͢Δ͜ͱͰɺσϑΥϧτ஋Λઃఆ͢Δ͜ͱ͕Ͱ͖·͢ɻ

Slide 40

Slide 40 text

-/+ Ͱ͸ͳ͘ɺ։ดσΟϨΫτϦͷΞΠίϯ͕දࣔ͞ΕΔ EXAMPLE ࢦఆͨ͠ʮ։ดσΟϨΫτϦʯͷΞΠίϯͰදࣔ͞ΕΔ͜ͱ͕Ͱ͖·ͨ͠ɻ

Slide 41

Slide 41 text

ϑΝΠϧλΠϓʹରԠ͢ΔΞΠίϯΛද͍ࣔͨ͠ EXAMPLE ϑΝΠϧλΠϓʹରԠ͢ΔΞΠίϯΛฦؔ͢਺Λ࡞੒͠·ͨ͠ɻ 
 ͦͷΞΠίϯΛ࠷ऴతʹදࣔ͢ΔςΩετʹ࿈݁͢ΔΑ͏ͳ࣮૷ʹ͍ͯ͠·͢ɻ ࠷ऴతʹ͜͜ͷ஋͕දࣔ͞ΕΔ

Slide 42

Slide 42 text

EXAMPLE ࣗ෼͕࢖༻͍ͯ͠ΔଞͷϓϥάΠϯͰɺOWJN XFCEFWJDPOTΛ࢖༻͍ͯ͠·ͨ͠ɻ 
 ࢖༻͢ΔΞΠίϯΛ౷Ұ͔ͨͬͨ͠ͷͰɺΞΠ ίϯσʔλ͸OWJNXFCEFWJDPOTΛࢀߟʹ͠· ͨ͠ɻ nvim-web-devicons Λࢀߟʹ OWJNUSFFOWJNXFCEFWJDPOT MVBAGPSLAPGWJNXFCEFWJDPOTGPSOFPWJN -VB ˞͜ͷϓϥάΠϯ͸WJNEFWJDPOTΛGPSLͯ͠࡞ΒΕ͍ͯΔΑ͏Ͱ͢

Slide 43

Slide 43 text

ϑΝΠϧλΠϓ͝ͱʹΞΠίϯ͕දࣔ͞ΕΔ EXAMPLE ϑΝΠϧλΠϓ͝ͱʹΞΠίϯ͕දࣔ͞ΕΔΑ͏ʹͳΓ·ͨ͠ɻ

Slide 44

Slide 44 text

Πϯσϯτ͕ڱ͘ײͯ͡ݟͮΒ͔ͬͨͷͰ޿͍ͨ͘͠ EXAMPLE SFQFBUؔ਺ͷҾ਺ΛࢦఆͰ͖ΔͱΑͦ͞͏ ओ؍తͳ͜ͱͳͷͰ͕͢ɺࣗ෼ʹ͸Πϯσϯτ͕ڱ͘ײ͡ɺݟͮΒ͍ͳͱࢥ͍ͬͯ·ͨ͠ɻ 
 ਓʹΑͬͯݟ΍͢͞͸ҟͳΔͷͰɺϢʔβʔ͕ࢦఆͰ͖ΔΑ͏ʹ͠Α͏ͱߟ͑·ͨ͠ɻ EEVDPMVNO fi MFOBNF ϑΝΠϧͷ֊૚෼͚ۭͩനΛ࿈͍݁ͯ͠Δ

Slide 45

Slide 45 text

Ϣʔβʔࢦఆͷ஋͸ Params ͔ΒऔಘͰ͖Δ EXAMPLE EEVʹઃఆͨ͠DPMVNO1BSBNTͷ஋͸ɺ$PMVNOΫϥεͷ1BSBNTʹ౉͞Ε·͢ɻ 
 ͜ͷ࢓૊ΈΛར༻ͯ͠ɺΠϯσϯτͻͱͭ෼ͷαΠζΛϢʔβʔ͕ࢦఆͰ͖ΔΑ͏ʹ͠·ͨ͠ɻ TFUUJOHT EEVDPMVNOEFWJDPO@ fi MFOBNF

Slide 46

Slide 46 text

ΠϯσϯτͷαΠζΛϢʔβʔ͕ௐ੔Ͱ͖Δ EXAMPLE JOEFOUBUJPO8JEUI σϑΥϧτ JOEFOUBUJPO8JEUI ϢʔβʔࢦఆͷJOEFOUBUJPO8JEUI஋ͰɺϑΝΠϧ໊ͷલʹ͋ΔۭനΛௐ੔Ͱ͖ΔΑ͏ʹ͠·ͨ͠ɻ

Slide 47

Slide 47 text

ϑΝΠϧͷΞΠίϯͷ৭ΛҰׅͰࢦఆ͍ͨ͠ਓ͍Δ͔΋ EXAMPLE ͜Ε΋ઌ΄ͲͷDPMVNO1BSBNTͰϢʔβʔ͕஋ΛࢦఆͰ͖Δ࢓૊ΈΛར༻͠·ͨ͠ɻ 
 ΞΠίϯʢσΟϨΫτϦΛআ͘ʣͷ৭Λࢦఆͨ͠৔߹ɺҰׅͰมߋͰ͖ΔΑ͏ʹ͠·ͨ͠ɻ TFUUJOHT EEVDPMVNOEFWJDPO@ fi MFOBNF

Slide 48

Slide 48 text

ϑΝΠϧͷΞΠίϯͷ৭ΛҰׅͰมߋͰ͖Δ EXAMPLE fi MF*DPO$PMPSOVMM σϑΥϧτ Ϣʔβʔࢦఆͷ fi MF*DPO$PMPS஋ͰɺϑΝΠϧΞΠίϯͷ৭ΛҰׅͰมߋͰ͖ΔΑ͏ʹ͠·ͨ͠ɻ fi MF*DPO$PMPSl%""%z

Slide 49

Slide 49 text

Summary Denops Λ׆༻ͨ͠ϓϥάΠϯ։ൃΛ·ͱΊΔͱ…

Slide 50

Slide 50 text

SUMMARY Denops ͰϓϥάΠϯΛ։ൃͯ͠Έͯ… ɾ7JN/FPWJN྆ํͰಈ࡞͢ΔϓϥάΠϯΛ։ൃ͢Δ͜ͱ͕Ͱ͖Δɻ 
 ɾ8FCΤϯδχΞͰ΋࢖͍׳Εͨ5ZQF4DSJQUͰϓϥάΠϯ։ൃ͕Ͱ͖Δɻ 
 ɾ੄໺͕޿͕Δ͜ͱͰɺ7JN/FPWJNϓϥάΠϯ։ൃ͕׆ൃʹͳΔɻ 
 ɾϓϥάΠϯ͕ॆ࣮ͯ͠ɺΑΓΑ͍։ൃऀମݧΛ໨ࢦͤΔྑ͍॥؀͕ੜ·ΕΔɻ 
 ɾ࠷ॳ͸ϑϨʔϜϫʔΫΛར༻͢Δ͜ͱͰɺগͳ͍ίετͰ։ൃΠϝʔδ͕༙͘ɻ

Slide 51

Slide 51 text

Recruitment ΤϯδχΞืूதͰ͢ʂ

Slide 52

Slide 52 text

RECRUITMENT We are Hiring! εφοΫϛʔͰ͸ɺʮ͓΍ͭͱɺੈքΛ໘ന ͘ʯ͍ͯ͘͠ɺͦΜͳ׆ಈΛ࢓ࣄͱͯ͠औΓ૊ Έ͍ͨΤϯδχΞΛืू͍ͯ͠·͢ɻ IUUQTUFBNTOBRNFDPN εφοΫϛʔ࠾༻