Rubyåå¿è ã«çµ¶å¯¾ãªã¹ã¹ã¡ã®Atomããã±ã¼ã¸ãrubocop-auto-correctãã
ç¥ã£ã¦ãã人ã¯ç¥ã£ã¦ãã¾ãããããã®æãã¾ã¤ãã¨ããã«Emacså®è·µå
¥éã®æ¬æ¸ã«å¯ãã¦ãæ¸ãã¦ããã£ãæãå®ã¯åã¯ã¾ã Rubyã1è¡ãæ¸ãããã¨ãããã¾ããã§ããããããããããã3å¹´ããã¾ã§ã¯æ®éã«Rubyãæ¸ãããã«ãªãã¾ããã
ããã§ãæ¬æ¥ã¯Rubyãæ¸ãéã«ãåã便å©ã«å©ç¨ãã¦ããAtomããã±ã¼ã¸ã®ã²ã¨ã¤ãç´¹ä»ãããã¨æãã¾ãã
RuboCopã
ãã¦ãåå¿è
ãRubyãæ¸ãéã«ãã¨ã¦ãé ¼ãã«ãªãGemãããã¾ãããããRuboCopã§ããæ°ããè¨èªãå¦ã¶éãã·ã³ã¿ãã¯ã¹ãã§ãã«ã¼ã¯å¿
é ãã¼ã«ã§ãããRuboCopã¯ãã¹ã¿ã¤ã«ã¬ã¤ãã«å¾ã£ã¦èªåã®æ¸ããã³ã¼ãããRubyã¨ãã¦GoodãBadã夿ãã¦è¦åãã¦ããããããä»ã®è¨èªã¯æ¸ãããã¨ãããã©Rubyã¯åãã¦ãã¨ãã人ã«ã¨ã£ã¦ãã¨ã¦ãããããããã¼ã«ã§ãã
ãããªRuboCopã«ã¯ã-a / --auto-correctããªãã·ã§ã³ãããããããå©ç¨ããã¨ãæ©æ¢°çã«ä¿®æ£å¯è½ãªã³ã¼ããèªåçã«ä¿®æ£ãã¦ããã¾ãã
ãã®æ©è½ãè¦ãã¨ããåã¯Goã®gofmtã³ãã³ãã¨ãgo-modeã®gofmt-before-save()ãæãåºãã¾ãããããã¯ãgofmtã³ãã³ããå©ç¨ãã¦ç·¨éä¸ã®ãããã¡ãä¿åã¿ã¤ãã³ã°ã§èªåçã«æ´å½¢ãã¦ãããã¨ããä¾¿å©æ©è½ã§ãã
ãã®æ©è½ãå©ç¨ããã¨ãEmacsã§Goãæ¸ãã¨ããã¤ã³ãã³ããä¸åæ°ã«ãããã¨ãªããã³ã¼ããæ¸ããããã«ãªãããããããããã¨ãã£ã¿ã®ããã¹ãå§¿ã ã¨æåãã¦ãã¾ããã
RuboCopã¨auto-correctæ©è½ãè¦ãã¨ããããã¯ã¨ãã£ã¿ããµãã¼ãããã¹ãæ©è½ã§ããã¨ç´æãããããgo-modeãåèã«Atomããã±ã¼ã¸ã¨ãã¦ä½æããã®ããrubocop-auto-correctã§ãã
rubocop-auto-correctã
rubocop-auto-correctãä¸è¨ã§è¨ãã°ãAtomã§ç·¨éãã¦ããRubyã³ã¼ãã«Rubocopã®-aãªãã·ã§ã³ãé©ç¨ããããã±ã¼ã¸ã§ããå
·ä½çãªåä½ã¯ãã¹ã¯ãªã¼ã³ãã£ã¹ããè¦ã¦ããã ãã¨ãã¦ãä¸ä¾ãç´¹ä»ããã¨ã次ã®ãããªæãã§ãã
# ãããªã³ã¼ãã def badName if something test end end # ãã®ããã«èªåä¿®æ£ããã¾ã def badName test if something end
ãã®ããã±ã¼ã¸ã¯ããã¾ã§ã¯å人çã«Rubyãæ¸ãä¸ã§æ¬ ãããã¨ã®ã§ããªããã¼ã«ã«ãªã£ã¦ãã¾ããä¾ãã°ãç´ç²ãªæååã«ããã«ã¯ãªã¼ãã使ã£ã¦ããã¨ãRuboCopã¯ã·ã³ã°ã«ã¯ãªã¼ãã使ãã¨ãæãã«ãªãã¾ããããã¡ãã¡æã§ä¿®æ£ããã®ã¯é¢åã§ããã£ããå¿ãã¦ãã¾ããã¨ãããã§ãããã
ãããªæãrubocop-auto-correctãããã°ãä¿åããã ãã§åæã«ä¿®æ£ãè¡ã£ã¦ããã¾ãããé°ã§ãè¨èªæ¯ã®ã³ã¼ãã£ã³ã°ã¹ã¿ã¤ã«ãæèãããã¨ãªããä¸èº«ã®ã¿ã«éä¸ãã¦ã³ã¼ããæ¸ããã¨ãã§ããããã«ãªãã®ã§ãã
rubocop-auto-correctã®è¨å®ã
rubocop-auto-correctã«ã¯å¹¾ã¤ãã®è¨å®ãç¨æãã¦ãã¾ãã
Auto Runãªãã·ã§ã³
Auto Runãªãã·ã§ã³ã¯ãæå¹åããã¨ãã¡ã¤ã«ä¿åæã«èªåçã«ä¿®æ£ãã¦ããããªãã·ã§ã³ã§ããåã¯æå¹ã«ãã¦å©ç¨ãã¦ãã¾ãã
Correct Fileãªãã·ã§ã³
Correct Fileãªãã·ã§ã³ã¯ãæå¹åããã¨ãããã¡ã§ã¯ãªãããã¡ã¤ã«ãç´æ¥ä¿®æ£ããããã«åä½ã夿´ãã¾ããç¡å¹åæã¯ããã¡ã¤ã«ã§ã¯ãªããããã¡ã«ä¿®æ£ãè¡ããããä¿åããã¾ã§ãã¡ã¤ã«ã«ã¯åæ ããã¾ãããåã¯ãã¡ããæå¹ã«ãã¦ãã¾ãã
Notificationãªãã·ã§ã³
Notificationãªãã·ã§ã³ã¯ãæå¹åããã¨RuboCopã«ãã£ã¦ä¿®æ£ãè¡ãªãããå ´åãAtomã®NotificationManagerãå©ç¨ãã¦éç¥ãè¡ã£ã¦ããã¾ããéç¥ããããå ´åã¯ãç¡å¹åã«ãã¾ãããã
Rubocop Command Pathãªãã·ã§ã³
Rubocop Command Pathãªãã·ã§ã³ã¯ãRuboCopã®ãã¹ãæ£ããAtomã«ä¼ãã£ã¦ããªãå ´åããç¹å®ã®ãã¹ã«ã¤ã³ã¹ãã¼ã«ãããRuboCopã³ãã³ããå©ç¨ãããå ´åãªã©ã«ãRuboCopã³ãã³ãã®ãã¹ãç´æ¥æå®ããããã®ãªãã·ã§ã³ã§ãã
æ¨æºã§ã¯ããã¹ãªãã®rubocopã³ãã³ããå©ç¨ããããã«ãªã£ã¦ãã¾ãã
ãã®ä»ã
ãªãã¸ããªã¯ãã¡ãã¨ãªã£ã¦ãã¾ãã®ã§ãå©ç¨ãã¦ã¿ã¦ãããä½ãè¦æãæ¹åãããã°issueãªãPRãªãã§ãå ±åãé¡ããã¾ãã
ãªããå人çã«ã¯ããã¨åãæ©è½ã®ESLintçãæ¬²ããã¨æã£ã¦ããã®ã§ãããESLint 2.0.0ã§å¾
æã®èªåä¿®æ£æ©è½ãå
¥ããããªã®ã§ããªãªã¼ã¹ãããã使ãããã¨æãã¾ãã
ããã§ã¯æ¥½ããRubyã©ã¤ãããéããã ããã