
Habrã®ãªãŒãã£ãšã³ã¹ã®ã»ãšãã©ã¯ãå®æçã«ã³ãŒããæžããŸãã ããã¹ããšãã£ã¿ãŸãã¯IDEã§ã ãŸãããŠã£ã³ããŠãã¡ãã¥ãŒã®æ°ã«é¢ä¿ãªãããšãã£ã¿ãŒã®äžå¿ã¯ãŠã£ãžã§ããã§ãããã³ãŒããç·šéããŠåŒ·èª¿è¡šç€ºããŸãã
1幎以äžåã«Habréã§ãQScintillaã³ã³ããŒãã³ãïŒ 1ã2ã3 ïŒã«ã€ããŠã®åå空éããã®äžé£ã®èšäºãšããã®æ¹å€ãå«ãç§ã®èšäºããããŸãã ã çµæã¯æ§ãããªè¡šçŸã§ããã ãã¹ãŠãæªãããšã¯æããã§ãããäœããã¹ããã¯æ確ã§ã¯ãããŸããã
Qutepartãšãã
ãã®èšäºã§ã¯ãç§ã®ãããžã§ã¯ãã§æ§æã®åŒ·èª¿è¡šç€ºãã©ã®ããã«é 眮ãããããã©ã®ãããªåé¡ãçºçããã©ã®ããã«è§£æ±ºããããã«ã€ããŠèª¬æããŸãã ããã¯ã¢ãããŒãã«é¢ãããã®ã§ãããç¹å®ã®GUIããŒã«ãããã®ä»æ§ã«é¢ãããã®ã§ã¯ãããŸããã ããã¹ããšãã£ã¿ã®ãå éšããèŠãããšã«èå³ãããå Žåã¯ãcatã«ããããã
ãããåºæ¬çãªç§åŠèšäºã§ã¯ãªãããšãããã«æ§ããŠãã ããã ããã¯ç§ã®çµéšã§ãã 代æ¿ã¢ãããŒããšãœãªã¥ãŒã·ã§ã³ã«é¢ããã³ã¡ã³ããèªãã®ã¯éåžžã«èå³æ·±ãã§ãããã
ããæ°
ç§ã¯vimãšemacsã®ç²Ÿç¥ã§ããã¹ããšãã£ã¿ãäœã£ãŠããŸãã ãŠãããŒãµã«ãã¯ãã¹ãã©ãããã©ãŒã ãæ¡åŒµå¯èœãçµéšè±å¯ãªãŠãŒã¶ãŒåãã ãããã PyQtã®ããçŽæçã§ææ°ã®GUIã䜿çšããŸãã ãã®ããã«ã¯ãã³ãŒããšãã£ã¿ãŒãå¿ èŠã§ãã
QScintillaãškatepartã®2ã€ã®ãªãã·ã§ã³ãããããŸããã§ããã
ç§ã¯ããšããšQScintillaã䜿çšããŠããŸããã ã ããã«ãªã¹ããããŠããæ¬ ç¹ã®ããã«ããããæŸæ£ããããšã«ããŸããã
katepartã¯éåžžã«åªããŠããŸãããKDEã©ã€ãã©ãªã«äŸåãããã®ã«æºè¶³ã§ããŸããã ãããŠããããäŸåé¢ä¿ã«çœ®ãããšã¯ãç¹ã«WindowsãšMacOSã«ãšã£ãŠã¯ããŸã䟿å©ã§ã¯ãããŸããã
ã³ãŒã解æ
ç§ã®ãããžã§ã¯ãã¯ç¹å®ã®ãã¯ãããžãŒã«çŠç¹ãåãããŠããŸãããå€ãã®èšèªã匷調ããããšæããŸãã èªåããã¹ã¿ãŒã§ãã以äžã®ãã®ã ãããã£ãŠãkatepartã®æ¢åã®æ§æå®çŸ©ããŒã¿ããŒã¹ã䜿çšããããšã決å®ãããŸããã
katepartã§ãµããŒããããŠããããã°ã©ãã³ã°èšèªããšã«ã ãã€ã©ã€ãå®çŸ©ããããŸã-æ§æãšãã€ã©ã€ãã®èª¬æãå«ãXMLãã¡ã€ã«ã§ãã
ãã€ã©ã€ãå®çŸ©ã¯ãã¹ããŒããã·ã³ã®ãããªãã®ãèšè¿°ããŸãã ãã·ã³ã¯ç¶æ ãå€æŽããªãããããã¹ããé£ç¶çã«è§£æããŸã-ãã³ã³ããã¹ããã åã³ã³ããã¹ãã«ã¯ãå¥ã®ã³ã³ããã¹ãã«ç§»åããå¿ èŠãããäžé£ã®ã«ãŒã«ããããŸãã ãªãŒãããã³ã¯ãçŸåšã®ç¶æ ã«ãªã£ãç¶æ ãèšæ¶ãã以åã®ã³ã³ããã¹ãïŒã³ã³ããã¹ãã¹ã¿ãã¯ïŒã«æ»ãããšãã§ããŸãã
äŸïŒC ++ã ã³ã³ããã¹ãã§ã¯ã ã³ãŒãã«ã«ãŒã«ããããŸãïŒ æåãmet-ã³ã³ããã¹ãã«ç§»åãæååã ãã³ã³ããã¹ããæååãæåãèµ€ã§åŒ·èª¿è¡šç€ºããã«ãŒã«ãä¿æïŒ æåãäžèŽã-åã®ã³ã³ããã¹ãã«æ»ããŸã ã
ã³ã³ããã¹ãããšã«ãããã¹ãã匷調衚瀺ããã¹ã¿ã€ã«ãå®çŸ©ãããŸãã
ãã®ã·ã¹ãã ã¯éåžžã«äŸ¿å©ã§å€çšéã§ãã ãã¡ã€ã«åœ¢åŒã¯ããææžåãããŠããŸãã ããããããããkatepartãçŽ200ã®èšèªãšåœ¢åŒã匷調ããŠããçç±ã§ãã
ç§ã®æèŠã§ã¯ãå¯äžã®æ¬ ç¹ã¯ãã»ãšãã©ã®å Žåãæ§æå®çŸ©ããŒã¹ã®ã³ãŒãã解æããã€ã³ã¿ãŒããªã¿ãŒã®ããã©ãŒãã³ã¹ãç¹å®ã®ããã°ã©ãã³ã°èšèªã®ããŒãµãŒãããäœäžããããšã§ãã
æé©å

æ§æã®åŒ·èª¿è¡šç€ºãæžãããšããç§ã®åã³ã¯ééããããŸããã§ããã ãã¹ãŠãæ©èœãããã¹ãŠãçŸããã katepartã³ã¬ã¯ã·ã§ã³ã®ç°ãªãèšèªã®59åã®ãã¡ã€ã«ã¯ãã¹ãŠæ£ããèŠããããã«éããŸãã ãã£ãïŒ Pythonã¯é ãèšèªã ãšèª°ãèšããŸããïŒïŒ
ãããŠã倧ããªãã¡ã€ã«ãéãããšããŸããã æ¬åœã«å€§ããã ãããŠ
ãããã¡ã€ã©ãŒã䜿çšããŠæ°æéããã¯ã©ã€ããæ°åå éããŸããã ããããããã§ãé ãããããšãå€æããŸããã ãããŠãæé©åã®ããã®ã¹ããŒã¹ã¯ã»ãšãã©äœ¿ãæããããŸããã ã²ã©ãæ··ä¹±ããã³ãŒãã®ããã«ãããŒãµãŒãæ°åããŒã»ã³ãé«éåããããšã¯å¯èœã§ãããããã®ãããªå€©æ°ã®æé©åã¯ããã§ã¯ãããŸããã
ç§ã¯Cã§ã¢ãžã¥ãŒã«ãæžãæ¹æ³ãåŠã³å§ããŸãããããã¯ãŸã£ããé£ãããªãããšãå€æããŸãããPythonã¯æ¡åŒµæ©èœã«éåžžã«åªããã§ãã
ããŒãµãŒã®äœæäžã«åé¡ãçºçããŸãããCã«ã¯æ£èŠè¡šçŸããããŸããã ãããŠãç§ã¯æ¬åœã«äŸåé¢ä¿ãçµã³ãããããŸããã§ããã ãã®åé¡ã¯ãC-Pythonã®çžäºäœçšã2ã€ã®æ¹åã§æ©èœãããšããäºå®ã«ãã解決ãããŸããã Pythonã¯è§£æã®ããã«CãåŒã³åºããPythonã®é¢æ°ã¯Cãããžã£ãŒã¯ããŠæ£èŠè¡šçŸããã¹ãããŸãã
æ¡åŒµæ©èœã䜿çšããŠããŒãµãŒã®ãã¹ããéå§ãããšããããã©ãŒãã³ã¹ã¯PythonããŒãžã§ã³ãšããã»ã©å€ãããªãããšãããããŸããã ãããã¡ã€ã©ãŒãå床åããåé¡ãæ¢ãã«è¡ããŸããã
ããŒãµãŒãPythonãåŒã³åºããŠæ£èŠè¡šçŸããã§ãã¯ããæéã®90ïŒ ãå€æããŸããã ããŠãããã¯ã¯å€±æããŸããã å€éšã©ã€ãã©ãªã䜿çšããå¿ èŠããããŸããã ãã®ãããã³ã³ããŒãã³ãã«ã¯åäžã®äŸåé¢ä¿ãã€ãŸãC pcreã®æ£èŠè¡šçŸåŠçã©ã€ãã©ãªããããŸããã ããã«ãããããã©ãŒãã³ã¹ã¯ããªã蚱容ã§ããããšãå€æããŸããïŒæ°å€ã¯äœããªããŸãïŒã
ãã®çµæãPythonã䜿çšããããšã®é©åãã«å€±æããããšã¯ãããŸããã§ããã Cã®ããŒãµãŒã¯ãã³ã³ããŒãã³ãã®ã³ãŒãããŒã¹ã®çŽ1/3ã§ãã åŽåã®é¢ã§ã¯ããã®ãããªãã€ããªãããªãã·ã§ã³ã¯C ++ã®ãœãªã¥ãŒã·ã§ã³ãããç°¡åã§ããããšãå€æãããšæããŸãã
éåæããã¯ã©ã€ã
ã»ãšãã©ã®ããã¹ããã¡ã€ã«ã®ãµã€ãºã¯éåžžã«å°ãããªã£ãŠããŸãã ãããããœãŒã¹ãç·šéããªããã°ãªããªãããšããããŸããããã®å Žåã30äžè¡ä»¥äžã«ãªããŸãã ããŒãµãŒéçºè ãã©ãã»ã©ã¯ãŒã«ã§ãã£ãŠããèšèªãã©ãã»ã©éããŠãããã®ãããªãã¡ã€ã«ãæåŸãŸã§è§£æããã®ã«ããŠãŒã¶ãŒãåŸ ã€ããšã«åæãããããæéãããããŸãã
katepartã¯ãGUIã¹ããªãŒã ã®ã³ãŒãã匷調衚瀺ããŸãã ãããŠã圌ã¯ãããæ ziã«è¡ããŸã-ããã¯ããªããç»é¢äžã«æãã®ã«å¿ èŠãªã ã匷調衚瀺ãããŸãã ãã¡ã€ã«ãæåã«éãããŠããå Žåããã®ã¢ãããŒãã¯éåžžã«ããŸãæ©èœããŸãã ãã ãã倧ããªãã¡ã€ã«ã®æåŸã«ãžã£ã³ããããšãGUIãããªãŒãºããŸãã ãã®ã¢ãããŒãã¯ç§ã«ã¯åããŠããŸããã§ããã

vimãšemacsã¯ãå¿ èŠã«å¿ããŠå€§ããªãã¡ã€ã«ã®çµãããæç»ããäžå€®ããããã¹ãã解æããŸãã ãã®æ¹æ³ã¯ã匷調衚瀺æã«é·æéGUIããããã¯ããªããšããç¹ã§åªããŠããŸãã ããããããã»ã©åçŽã§ã¯ãããŸããã ããã°ã©ãã³ã°èšèªã¯é çªã«è§£æãããŸãã ããšãã°ãè€æ°è¡ã³ã¡ã³ãã®çµäºæåãæ£ããåŠçããã«ã¯ãã³ã¡ã³ããåã®è¡ã§å§ãŸã£ããã©ãããç¥ãå¿ èŠããããŸãã å Žåã«ãã£ãŠã¯ãäžéããã®è§£æãäžæ£ç¢ºãªç §æãçæããããšãããããŸãïŒvimã®ã¹ã¯ãªãŒã³ã·ã§ããã®ããã«ïŒã
çŸåšãã¯ããã¯åšæ³¢æ°ã®å¢å ãã³ã¢ã®æ°ã®å¢å ã«å€ãã£ããšããã³ã¢ã«ããåé¢ã«ããèšç®ã®æé©åããã°ãã°éèŠã«ãªããŸãã ãã ããããã§åé¡ãçºçããŸããããã¯ããã¡ã€ã«ãé çªã«è§£æããå¿ èŠãããããã ãã§ã¯ãããŸããã
ãŠãŒã¶ãŒã¯åžžã«ã³ãŒããç·šéããŠããŸãã GUIã¹ã¬ããã¯ããŒã¹ãããŒã¯ãåŠçããããã¥ã¡ã³ããå€æŽããŸãã ããã¥ã¡ã³ãã解æãããã¹ããªãŒã ã§åŒ·èª¿è¡šç€ºãããŠããå Žåãå€æŽãåæããå¿ èŠããããŸãã QtããŒã«ãããã¯åžžã«ãã«ãã¹ã¬ããæåã§ã¯ãããŸãããããã¥ã¡ã³ããžã®ã¢ã¯ã»ã¹ã確å®ã«åæããæ¹æ³ãèŠã€ããŠããŸããã ãããŒãæåŠããå¿ èŠããããŸããã
å®éšã®çµæã次ã®è§£æ±ºçãåŸãããŸããããã¡ã€ã«ã解æãããã¿ã€ããŒã«ãã£ãŠGUIã¹ããªãŒã ã§åŒ·èª¿è¡šç€ºãããŸãã ã¿ã€ããŒã¯20ããªç§å®è¡ããããã®åŸããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãåŠçããããã«ã¡ã€ã³ã«ãŒãã«å¶åŸ¡ãè¿ããåã³åŒã³åºãããŸã...ãŠãŒã¶ãŒã巚倧ãªãã¡ã€ã«ãéããŠããã«æåŸã«ãžã£ã³ãããå Žå-ãã¡ã€ã«ã¯è¡šç€ºãããŸããã匷調衚瀺ãããŸããã
ã³ãŒãã¯ç·šéã§ãããã€ã©ã€ãã¯å°ãåŸã«è¡šç€ºãããŸãã
å¢åããã¯ã©ã€ã
ãŠãŒã¶ãŒãã³ãŒããç·šéãããšããæåããã§ã¯ãªããç·šéäžã®å Žæããããã¹ããå床匷調衚瀺ããå¿ èŠããããŸãã ãããŠãååãšããŠã1ã€ãŸãã¯è€æ°ã®è¡ãå€æŽãããŸãã

解æäžã«ãããŒãµãŒã®ã¹ããŒã¿ã¹ãå«ãã¡ã¿ããŒã¿ãããã¯ããã¡ã€ã«ã®åè¡ã«æ·»ä»ãããŸãã ããã¹ããå€æŽãããŠããå Žåãã¡ã¿ããŒã¿ã䜿çšããŠç¹å®ã®è¡ãã解æãéå§ããŸãã
å¢å解æã¯ãæ°ãã解æåŸã«ã¡ã¿ããŒã¿ãå€æŽãããŠããªãè¡ãèŠã€ãããŸã§ç¶ããŸãã
æ§èœæ¯èŒ
ããã¯ã©ã€ãã®æ§èœã®æ¯èŒã¯ãããããã§ãã ããŒããŠã§ã¢ããœãããŠã§ã¢ã®ããŒãžã§ã³ãèšèªãç¹å®ã®ãã¡ã€ã«ã®å 容ãã ãŒã³ãã§ã€ãºãªã©ãå€ãã®èŠå ã«æ¬åœã«äŸåããŠããŸãã
ãããããããªãã§ã¯ãèšäºã¯å®æããŸããã ãããã£ãŠãã»ã¯ã·ã§ã³ãè¿œå ããå¿ èŠããããŸãã
å
責äºé
åè¿°ã®ããã«ãçç£æ§ã¯å€ãã®èŠå ã«äŸåããä»ã®ç¶æ³ã§ã¯ç¶æ³ã¯æ ¹æ¬çã«ç°ãªãå ŽåããããŸãã
ãã®ã»ã¯ã·ã§ã³ã¯ãã®èšäºã®äž»ãªç®çã§ã¯ãããŸããã 枬å®ã¯ã1ã€ã®èšèªã®1ã€ã®ãã¡ã€ã«ã«å¯ŸããŠã®ã¿ãéåžžã«è¡šé¢çã«è¡ãããŸããã å³ã芳å¯ãããã³çµè«ã«ã¯ãé倧ãªãšã©ãŒãå«ãŸããå ŽåããããŸãã
ãããã£ãŠã枬å®æé ãå ¬éããŸããã 以äžã®æ å ±ã¯ãHabrã®èŠèŽè ã楜ããŸããããã ãã«ç§ãçºæãããã®ã ãšèããããšãææ¡ããŸãã
æäŸãããæ å ±ã䜿çšããŠãããã¹ããšãã£ã¿ãŒXãããã¹ããšãã£ã¿ãŒYããåªããŠãããšçµè«ä»ããããšã¯ã§ããŸããã
ãã®ã»ã¯ã·ã§ã³ã¯ãã®èšäºã®äž»ãªç®çã§ã¯ãããŸããã 枬å®ã¯ã1ã€ã®èšèªã®1ã€ã®ãã¡ã€ã«ã«å¯ŸããŠã®ã¿ãéåžžã«è¡šé¢çã«è¡ãããŸããã å³ã芳å¯ãããã³çµè«ã«ã¯ãé倧ãªãšã©ãŒãå«ãŸããå ŽåããããŸãã
ãããã£ãŠã枬å®æé ãå ¬éããŸããã 以äžã®æ å ±ã¯ãHabrã®èŠèŽè ã楜ããŸããããã ãã«ç§ãçºæãããã®ã ãšèããããšãææ¡ããŸãã
æäŸãããæ å ±ã䜿çšããŠãããã¹ããšãã£ã¿ãŒXãããã¹ããšãã£ã¿ãŒYããåªããŠãããšçµè«ä»ããããšã¯ã§ããŸããã
ç§ãèå³ã®ããããã€ãã®ãšãã£ã¿ãŒã§å€§ããªC ++ãã¡ã€ã«ïŒ364121è¡ïŒãéãããã®è¡šã§èŠ³å¯çµæãåéããŸããã
ã³ã³ããŒãã³ããŸãã¯ãšãã£ã¿ãŒ | ãã¡ã€ã«å šäœããã€ã©ã€ãããæé | ãããã¯GUI | ããã¯ã©ã€ãã®åé¡ |
---|---|---|---|
Qutepart | 44ç§ | 決ã㊠| ãã¡ã€ã«ã3ç§éã |
ã±ã€ãããŒã | 6ååŸã«æ®ºããã | 衚瀺ããå¿ èŠãããã ã匷調衚瀺ãããŸã§ | |
QScintilla | 3ç§ | 決ã㊠| ç·šéäžã¯é ããªããŸã |
ã·ã³ãã© | 3ç§ | 決ã㊠| ç·šéäžã¯é ããªããŸã |
åŽé«ãªããã¹ã | 23ç§ | ç·šéæãå€æŽããããã¹ãŠã®ããã¯ã©ã€ããæŽæ°ãããŸã§ | |
é»æ³ãã | 8ç§ | 決ã㊠| ç·šéäžã¯é ããªããŸã |
Qtã¯ãªãšãŒã¿ãŒ | 20ç§ | ç·šéäžãå€æŽããããã¹ãŠã®ããã¯ã©ã€ããæŽæ°ããããŸã§ãã³ã°ããŸã | |
å¿è IDE | 14ç§ | éããš | æåã®51è¡ã®ã¿ã匷調衚瀺ããŸããã ç·šéæã«ã²ã©ãé ãã |
ãŽã£ã | ããã« | 決ã㊠| éäžãããã¡ã€ã«ã解æããå Žåã«ãã£ãŠã¯èª€ã£ãçµæã瀺ããŸãã |
emacs | ããã« | 決ã㊠| éäžãããã¡ã€ã«ã解æããå Žåã«ãã£ãŠã¯èª€ã£ãçµæã瀺ããŸãã å·»ãæ»ããšãçŽ1åéãã³ã°ããŸãã |
ã芧ã®ãšãããQutepartã¯æããã£ãããšããã¹ãã匷調衚瀺ããŸãã ããã¯ãã€ã³ã¿ãŒããªã¿ãŒèšèªãPython-Qtãã³ãã«ãããã³XML圢åŒã®ã€ã³ã¿ãŒããªã¿ãŒæ§æå®çŸ©ã䜿çšãããããè«ççã§ãã
äžæ¹ãé«ã¬ãã«ã®èšèªãšãã¯ãããžãŒã䜿çšãããšãGUIããããã¯ãããã¢ãŒãã£ãã¡ã¯ãã衚瀺ãããããã«ãå€ãã®èšèªã匷調衚瀺ã§ããŸãã
ã»ãšãã©ã®å Žåãå®éã®ãã¡ã€ã«ã䜿çšããå Žåããã¡ã€ã«ã¯æ¢ã«ãã€ã©ã€ã衚瀺ãããŠããããŠãŒã¶ãŒãç·šéããå Žåãããã¯ã©ã€ãã®æŽæ°æ¹æ³ã¯è¡šç€ºãããŸããã ãããã£ãŠãçŸç¶ã¯ç§ã«åã£ãŠãããç§ã¯ãããªãæé©åãæåŠããŸããã
ãããŠäœãèµ·ãã£ã

Qutepartã³ãŒããç·šéããããã®ã³ã³ããŒãã³ããšãããã«åºã¥ããããã¹ããšãã£ã¿ãŒEnkiãå ¥æããŸããã
PyQtãšpcreã«äŸåããŸãã Cã§æ¡åŒµã¢ãžã¥ãŒã«ã®ã¢ã»ã³ããªãå¿ èŠã§ããå°ããªãã¡ã€ã«ã®å Žåãæ¡åŒµæ©èœãªãã§ãpcreãªãã§å®è¡ã§ããŸãã
æ§æå®çŸ©ãã¡ã€ã«ãšã³ãŒãã¢ã©ã€ã¡ã³ãã¢ã«ãŽãªãºã ã¯ãkatepartããåçšããŸããã
katepartãšåæ§ã«ããããžã§ã¯ãã¯LGPLã§å©çšã§ããŸãã
ä»æ¥ãQutepartãšEnkiã®æåã®ããŒãžã§ã³ããªãªãŒã¹ããŸãããããã¯ãçŸåšã®ããŒãžã§ã³ãQScintillaã®ããŒãžã§ã³ãããåªããŠãããšå€æããããã§ãã ãŸã å€ãã®æ©èœã¯ãããŸããã TODOãªã¹ãã¯çŽ æŽãããã§ãã ãŠãŒã¶ãŒã®èŠæã«ããå®æçã«è£å ãããŸãããæ©èœãè¿œå ãããããã«å°ãªããªããŸããã
Habrã³ãã¥ããã£ããã®ã¬ãã¥ãŒã«åãã§ããŸãïŒ