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

IntelliJ Plugin開発入門

1821636ac95415aa6e84bc33b394283d?s=47 tommykw
February 18, 2017

IntelliJ Plugin開発入門

1821636ac95415aa6e84bc33b394283d?s=128

tommykw

February 18, 2017
Tweet

Transcript

  1. Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ *OUFMMJ+1MVHJO։ൃೖ໳

  2. ϚϚϦ ϓϩϑΟʔϧ ෋ా݈ೋ !UPNNZLX !UPNNZLX $POOFIJUP JOD"OESPJE&OHJOFFS

  3. ϚϚϦ ΞδΣϯμ w *OUFMMJ+1MVHJOʹ͍ͭͯ w 0QUJNJ[F*NQPSUTʹ͍ͭͯ w 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ

  4. Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ *OUFMMJ+1MVHJOʹ͍ͭͯ

  5. ϚϚϦ *OUFMMJ+1MVHJOʹ͍ͭͯ w *OUFMMJ+1MVHJOʹ͍ͭͯ w 0QUJNJ[F*NQPSUTʹ͍ͭͯ w 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ

  6. ϚϚϦ *OUFMMJ+1MVHJOʹ͍ͭͯ ίʔυิ׬ɺݕࠪɺϦϑΝΫλϦϯάɺϦιʔε ͷ࠷దԽͳͲɺଟ͘ͷػೳ͕͋ΓɺݴޠʹಛԽ͠ ͨ*%&ɺྫ͑͹3VCZ.JOFɺ1IQ4UPSNɺ "OESPJE4UVEJPͳͲ༷ʑͳ1MVHJO͕͋Γ·͢ɻ *OUFMMJ+1MVHJOʹ͍ͭͯ

  7. ϚϚϦ *OUFMMJ+1MVHJOػೳҰཡ ػೳҰཡ w *OUFOUJPO"DUJPOT w $PEF*OTQFDUJPO w "DUJPO4ZTUFN

  8. ϚϚϦ *OUFMMJ+1MVHJOػೳҰཡ ػೳҰཡ w *OUFOUJPO"DUJPOT w $PEF*OTQFDUJPO w "DUJPO4ZTUFN

  9. ϚϚϦ *OUFOUJPO"DUJPOT *OUFOUJPO"DUJPOT ߏจ্ͷ໰୊Λվળɺ·ͨ͸࠷దԽ͢ΔͨΊͷ ద੾ͳҙਤಈ࡞ΛఏҊ͠·͢ɻ"MU &OUFSγϣʔ τΧοτΛ༻͍ͯૢ࡞͢Δ͜ͱ͕Ͱ͖·͢ɻ

  10. ϚϚϦ *OUFOUJPO"DUJPOT *OUFOUJPO"DUJPOT

  11. ϚϚϦ *OUFOUJPO"DUJPOT *OUFOUJPO"DUJPOT

  12. ϚϚϦ *OUFOUJPO"DUJPOT *OUFOUJPO"DUJPOT

  13. ϚϚϦ $PEF*OTQFDUJPO ػೳҰཡ w *OUFOUJPO"DUJPOT w $PEF*OTQFDUJPO w "DUJPO4ZTUFN

  14. ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO ίϯύΠϧΛ͢ΔલʹಛఆͷίʔυͷݕࠪΛߦ͍ɺ ΤϥʔɺܯࠂɺϓϩδΣΫτݻ༗ͷن໿ҧ൓ͳͲ Λࢦఠ͠·͢ɻ*OUFOUJPO"DUJPOT "MU &OUFS Ͱ ࢦఠ͞Εͨίʔυͷमਖ਼Λߦ͏͜ͱ͕Ͱ͖·͢ɻ

  15. ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO

  16. ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO

  17. ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO

  18. ϚϚϦ $PEF*OTQFDUJPO $PEF*OTQFDUJPO

  19. ϚϚϦ "DUJPO4ZTUFN ػೳҰཡ w *OUFOUJPO"DUJPOT w $PEF*OTQFDUJPO w "DUJPO4ZTUFN

  20. ϚϚϦ "DUJPO4ZTUFN *%&"ͷϝχϡʔ΍πʔϧόʔʹΧελϜΞΠς ϜΛ௥Ճ͢Δ͜ͱ͕Ͱ͖·͢ɻ"O"DUJPOΫϥε Λ೿ੜͨ͠΋ͷͰɺϝχϡʔ߲໨·ͨ͸πʔϧόʔ Ϙλϯ͕બ୒͞Εͨͱ͖ʹ࣮ߦϝιου͕ݺͼ ग़͞Ε·͢ɻ "DUJPO4ZTUFN

  21. ϚϚϦ "DUJPO4ZTUFN "DUJPO4ZTUFN

  22. Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ 0QUJNJ[F*NQPSUTʹ͍ͭͯ

  23. ϚϚϦ 0QUJNJ[F*NQPSUTʹ͍ͭͯ w *OUFMMJ+1MVHJOʹ͍ͭͯ w 0QUJNJ[F*NQPSUTʹ͍ͭͯ w 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ

  24. ϚϚϦ 0QUJNJ[F*NQPSUTʹ͍ͭͯ +BWBɺ,PUMJOͷJNQPSUΩʔϫʔυʹಛԽͨ͠ "DUJPO1MVHJOͰɺॏෳͨ͠JNQPSU΍ະ࢖༻ͷ JNQPSUΛҰׅͰૢ࡞͢Δ͜ͱ͕Ͱ͖·͢ɻ·ͨ ͸JNQPSUͷॱংͷ੔ཧΛߦ͍·͢ɻ 0QUJNJ[F*NQPSUTʹ͍ͭͯ

  25. ϚϚϦ 0QUJNJ[F*NQPSUT 0QUJNJ[F*NQPSUT

  26. ϚϚϦ 0QUJNJ[F*NQPSUT 0QUJNJ[F*NQPSUT

  27. ϚϚϦ 0QUJNJ[F*NQPSUT 0QUJNJ[F*NQPSUT

  28. ϚϚϦ "OESPJEͷϦιʔε؅ཧ "OESPJEʹ͓͚ΔϦιʔε؅ཧ

  29. ϚϚϦ "OESPJEͷϦιʔε؅ཧ Ϧιʔε؅ཧΛ؆୯ʹ͍ͨ͠ ઌ΄ͲͷϦιʔείʔυͷBUUSJCVUF͸ɺίʔυ ͱҟͳΓɺະ࢖༻࣌ʹ৭͕มΘΓ·ͤΜɻͲͷ Ϧιʔε͕ະ࢖༻Ͱ͋Δͷ͔ௐ΂Δͷׂ͕ͱ໘౗ ͍͘͞Ͱ͢ɻग़དྷΕ͹ॱং΋ἧ͍͑ͨ

  30. ϚϚϦ "OESPJEͷϦιʔε؅ཧ 0QUJNJ[F*NQPSUTͷϦιʔε൛͕͋Δͱ ͍͍Ͷʂʂ

  31. Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ

  32. ϚϚϦ 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ w *%&"1MVHJOʹ͍ͭͯ w 0QUJNJ[F*NQPSUTʹ͍ͭͯ w 0QUJNJ[F3FTPVSDFTʹ͍ͭͯ

  33. ϚϚϦ 0QUJNJ[F3FTPVSDFT1MVHJO ػೳͱͯ͠͸ɺະ࢖༻ͷϦιʔεͷ࡟আ͕ϝΠϯ ͷػೳͰ͢ɻকདྷతʹ͸0QUJNJ[FJNQPSUTͷΑ ͏ͳॱংௐ੔΍ະ࢖༻ϦιʔεͷΧϥʔΛάϨʔ ʹͨ͠ΓɺϓϨϏϡʔը໘Λग़͍ͨ͠ͱࢥͬͯ ͍·͢ɻ͜ΕΛ࡞Γ͍ͨʂ 0QUJNJ[F3FTPVSDFT1MVHJO

  34. ϚϚϦ 3FNPWF6OVTFE3FTPVSDFT ࣮͸ʮ3FNPWF6OVTFE3FTPVSDFTʯͱ ͍͏ػೳ͕͢Ͱʹ͋ͬͨʂ

  35. ϚϚϦ 3FNPWF6OVTFE3FTPVSDFT 3FNPWF6OVTFE3FTPVSDFT

  36. ϚϚϦ 3FNPWF6OVTFE3FTPVSDFT ෆཁͳϦιʔεͷ࡟আΛߦ͏"DUJPO1MVHJOɻ
 ෆཁͳQOH΍YNM಺ͷBUUSJCVUFͷ࡟আ͕Ͱ͖ɺ "OESPJE4UVEJPʹಋೖ͞Ε͍ͯͨɻ 3FNPWF6OVTFE3FTPVSDFT

  37. ϚϚϦ 3FNPWF6OVTFE3FTPVSDFT ϓϩμΫτͰ࣮ࡍʹࢼ͕ͨ͠ಈ͔ͳ͍ɻ খ͍͞αϯϓϧͩͱͪΌΜͱಈ͘ͷͰɺ Կ͔όά͕͋ΔΜͰ͠ΐ͏͔ʼʻ 3FNPWF6OVTFE3FTPVSDFT

  38. ϚϚϦ *OUFMMJ+1MVHJO࡞੒ *OUFMMJ+1MVHJOΛ࡞ͬͯΈͨʂ

  39. ϚϚϦ 0QUJNJ[F3FTPVSDFTͷίʔυ 3FTPVSDF0QUJNJ[F"DUJPO

  40. ϚϚϦ 0QUJNJ[F3FTPVSDFTͷಈ࡞ ͜Μͳײ͡ͷಈ࡞Ͱ͢ʂ

  41. ϚϚϦ 0QUJNJ[F3FTPVSDFTͷಈ࡞ 0QUJNJ[F3FTPVSDFT

  42. ϚϚϦ 0QUJNJ[F3FTPVSDFTͷಈ࡞ 0QUJNJ[F3FTPVSDFT

  43. ϚϚϦ 0QUJNJ[F3FTPVSDFTͷಈ࡞ 0QUJNJ[F3FTPVSDFT

  44. ϚϚϦ 0QUJNJ[F3FTPVSDFT YNMɺLUϑΝΠϧɺKBWBϑΝΠϧΛૢ࡞͢Δʹ͋ ͨΓɺ7JSUVBM'JMFͱ1TJ'JMFΛ࢖ͬͯૢ࡞͍ͯ͠ ·ͨ͠ɻͦΕͧΕͷػೳ͍ͭͯ֬ೝ͠·͢ɻ

  45. ϚϚϦ 7JSUVBM'JMF 7JSUVBM'JMF Ծ૝ϑΝΠϧγεςϜͰɺ*OUFMMJ+ϓϥοτϑΥʔ ϜͷίϯϙʔωϯτͰϑΝΠϧΛॲཧ͢ΔͨΊʹ ར༻͠·͢ɻ

  46. ϚϚϦ 14*'JMFT 14*'JMFT 1SPHSBN4USVDUVSF*OUFSGBDFͰɺݴޠϑΝΠ ϧͷFMFNFOUΛද͠ɺ9NM'JMFɺ1TJ+BWB'JMFɺ ,U'JMFͳͲ͕͋Γ·͢ɻϑΝΠϧͷಡΈࠐΈ΍ղ ੳΛߦ͏͜ͱ͕Ͱ͖·͢ɻ

  47. ϚϚϦ ࡶײ ࡶײ w ͦ͜·Ͱ։ൃϋʔυϧ͸ߴ͘ͳ͍ w αϯϓϧ͕গͳ͍ͷͰগ͠େม͔΋͠Εͳ͍ w ίʔυΛಡΉ͜ͱ͸ଟͦ͏ w

    υΩϡϝϯτ͕ॆ࣮͍ͯ͠ͳ͍ w νϟϯε͸͋Γͦ͏ w ,PUMJOʹίϯτϦϏϡʔτνϟϯε w ϥΠϒϥϦͷ1MVHJOΛ࡞Δ
  48. Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ *OUFMMJ+1MVHJO։ൃೖ໳

  49. Ո଒ͷຖ೔Λ΋ͬͱসإʹɻ ϚϚϦ ίωώτגࣜձࣾ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠