Advertisement
AZJIO

nppUDF

Jun 20th, 2013
1,167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 25.65 KB | None | 0 0
  1. #cs ----------------------------------------------------------------------------
  2. AutoIt Version: 3.3.6.1
  3.  
  4.  
  5. #Include <nppUDF.au3>
  6. #ce ----------------------------------------------------------------------------
  7. #Region    ;************ Includes ************
  8. #include-once
  9. #include <WindowsConstants.au3>
  10. #include <SendMessage.au3>
  11. ;~ #Include <Array.au3>;~~~
  12. #EndRegion ;************ Includes ************
  13.  
  14. #Region ###
  15.  
  16. ; #ifndef MENUCMDID_H
  17. ; $MENUCMDID_H
  18. Global Const $NPPM_GETCURRENTLINE = 4024 + 8
  19. Global Const $NPPM_MENUCOMMAND = 2024 + 48
  20. $IDM=40000
  21.  
  22. Global Const $IDM_FILE=($IDM + 1000)
  23. Global Const $IDM_FILE_NEW=($IDM_FILE + 1)
  24. Global Const $IDM_FILE_OPEN=($IDM_FILE + 2)
  25. Global Const $IDM_FILE_CLOSE=($IDM_FILE + 3)
  26. Global Const $IDM_FILE_CLOSEALL=($IDM_FILE + 4)
  27. Global Const $IDM_FILE_CLOSEALL_BUT_CURRENT=($IDM_FILE + 5)
  28. Global Const $IDM_FILE_SAVE=($IDM_FILE + 6)
  29. Global Const $IDM_FILE_SAVEALL=($IDM_FILE + 7)
  30. Global Const $IDM_FILE_SAVEAS=($IDM_FILE + 8)
  31. Global Const $IDM_FILE_ASIAN_LANG=($IDM_FILE + 9)
  32. Global Const $IDM_FILE_PRINT=($IDM_FILE + 10)
  33. Global Const $IDM_FILE_PRINTNOW=1001
  34. Global Const $IDM_FILE_EXIT=($IDM_FILE + 11)
  35. Global Const $IDM_FILE_LOADSESSION=($IDM_FILE + 12)
  36. Global Const $IDM_FILE_SAVESESSION=($IDM_FILE + 13)
  37. Global Const $IDM_FILE_RELOAD=($IDM_FILE + 14)
  38. Global Const $IDM_FILE_SAVECOPYAS=($IDM_FILE + 15)
  39. Global Const $IDM_FILE_DELETE=($IDM_FILE + 16)
  40. Global Const $IDM_FILE_RENAME=($IDM_FILE + 17)
  41.  
  42.  ; A mettre а jour si on ajoute nouveau menu item dans le menu "File"
  43.     ; $IDM_FILEMENU_LASTONE IDM_FILE_RENAME
  44.  
  45. Global Const $IDM_EDIT=($IDM + 2000)
  46. Global Const $IDM_EDIT_CUT=($IDM_EDIT + 1)
  47. Global Const $IDM_EDIT_COPY=($IDM_EDIT + 2)
  48. Global Const $IDM_EDIT_UNDO=($IDM_EDIT + 3)
  49. Global Const $IDM_EDIT_REDO=($IDM_EDIT + 4)
  50. Global Const $IDM_EDIT_PASTE=($IDM_EDIT + 5)
  51. Global Const $IDM_EDIT_DELETE=($IDM_EDIT + 6)
  52. Global Const $IDM_EDIT_SELECTALL=($IDM_EDIT + 7)
  53.  
  54. Global Const $IDM_EDIT_INS_TAB=($IDM_EDIT + 8)
  55. Global Const $IDM_EDIT_RMV_TAB=($IDM_EDIT + 9)
  56. Global Const $IDM_EDIT_DUP_LINE=($IDM_EDIT + 10)
  57. Global Const $IDM_EDIT_TRANSPOSE_LINE=($IDM_EDIT + 11)
  58. Global Const $IDM_EDIT_SPLIT_LINES=($IDM_EDIT + 12)
  59. Global Const $IDM_EDIT_JOIN_LINES=($IDM_EDIT + 13)
  60. Global Const $IDM_EDIT_LINE_UP=($IDM_EDIT + 14)
  61. Global Const $IDM_EDIT_LINE_DOWN=($IDM_EDIT + 15)
  62. Global Const $IDM_EDIT_UPPERCASE=($IDM_EDIT + 16)
  63. Global Const $IDM_EDIT_LOWERCASE=($IDM_EDIT + 17)
  64.  
  65. Global Const $IDM_EDIT_BLOCK_COMMENT=($IDM_EDIT + 22)
  66. Global Const $IDM_EDIT_STREAM_COMMENT=($IDM_EDIT + 23)
  67. Global Const $IDM_EDIT_TRIMTRAILING=($IDM_EDIT + 24)
  68.  
  69. Global Const $IDM_EDIT_RTL=($IDM_EDIT+26)
  70. Global Const $IDM_EDIT_LTR=($IDM_EDIT+27)
  71. Global Const $IDM_EDIT_SETREADONLY=($IDM_EDIT+28)
  72. Global Const $IDM_EDIT_FULLPATHTOCLIP=($IDM_EDIT+29)
  73. Global Const $IDM_EDIT_FILENAMETOCLIP=($IDM_EDIT+30)
  74. Global Const $IDM_EDIT_CURRENTDIRTOCLIP=($IDM_EDIT+31)
  75.  
  76. Global Const $IDM_EDIT_CLEARREADONLY=($IDM_EDIT+33)
  77. Global Const $IDM_EDIT_COLUMNMODE=($IDM_EDIT+34)
  78. Global Const $IDM_EDIT_BLOCK_COMMENT_SET=($IDM_EDIT+35)
  79. Global Const $IDM_EDIT_BLOCK_UNCOMMENT=($IDM_EDIT+36)
  80.  
  81. Global Const $IDM_EDIT_AUTOCOMPLETE=(50000+0)
  82. Global Const $IDM_EDIT_AUTOCOMPLETE_CURRENTFILE=(50000+1)
  83. Global Const $IDM_EDIT_FUNCCALLTIP=(50000+2)
  84.  
  85. ; Belong to MENU FILE
  86. Global Const $IDM_OPEN_ALL_RECENT_FILE=($IDM_EDIT + 40)
  87. Global Const $IDM_CLEAN_RECENT_FILE_LIST=($IDM_EDIT + 41)
  88.  
  89. Global Const $IDM_SEARCH=($IDM + 3000)
  90.  
  91. Global Const $IDM_SEARCH_FIND=($IDM_SEARCH + 1)
  92. Global Const $IDM_SEARCH_FINDNEXT=($IDM_SEARCH + 2)
  93. Global Const $IDM_SEARCH_REPLACE=($IDM_SEARCH + 3)
  94. Global Const $IDM_SEARCH_GOTOLINE=($IDM_SEARCH + 4)
  95. Global Const $IDM_SEARCH_TOGGLE_BOOKMARK=($IDM_SEARCH + 5)
  96. Global Const $IDM_SEARCH_NEXT_BOOKMARK=($IDM_SEARCH + 6)
  97. Global Const $IDM_SEARCH_PREV_BOOKMARK=($IDM_SEARCH + 7)
  98. Global Const $IDM_SEARCH_CLEAR_BOOKMARKS=($IDM_SEARCH + 8)
  99. Global Const $IDM_SEARCH_GOTOMATCHINGBRACE=($IDM_SEARCH + 9)
  100. Global Const $IDM_SEARCH_FINDPREV=($IDM_SEARCH + 10)
  101. Global Const $IDM_SEARCH_FINDINCREMENT=($IDM_SEARCH + 11)
  102. Global Const $IDM_SEARCH_FINDINFILES=($IDM_SEARCH + 13)
  103. Global Const $IDM_SEARCH_VOLATILE_FINDNEXT=($IDM_SEARCH + 14)
  104. Global Const $IDM_SEARCH_VOLATILE_FINDPREV=($IDM_SEARCH + 15)
  105. Global Const $IDM_SEARCH_CUTMARKEDLINES=($IDM_SEARCH + 18)
  106. Global Const $IDM_SEARCH_COPYMARKEDLINES=($IDM_SEARCH + 19)
  107. Global Const $IDM_SEARCH_PASTEMARKEDLINES=($IDM_SEARCH + 20)
  108. Global Const $IDM_SEARCH_DELETEMARKEDLINES=($IDM_SEARCH + 21)
  109. Global Const $IDM_SEARCH_MARKALLEXT1=($IDM_SEARCH + 22)
  110. Global Const $IDM_SEARCH_UNMARKALLEXT1=($IDM_SEARCH + 23)
  111. Global Const $IDM_SEARCH_MARKALLEXT2=($IDM_SEARCH + 24)
  112. Global Const $IDM_SEARCH_UNMARKALLEXT2=($IDM_SEARCH + 25)
  113. Global Const $IDM_SEARCH_MARKALLEXT3=($IDM_SEARCH + 26)
  114. Global Const $IDM_SEARCH_UNMARKALLEXT3=($IDM_SEARCH + 27)
  115. Global Const $IDM_SEARCH_MARKALLEXT4=($IDM_SEARCH + 28)
  116. Global Const $IDM_SEARCH_UNMARKALLEXT4=($IDM_SEARCH + 29)
  117. Global Const $IDM_SEARCH_MARKALLEXT5=($IDM_SEARCH + 30)
  118. Global Const $IDM_SEARCH_UNMARKALLEXT5=($IDM_SEARCH + 31)
  119. Global Const $IDM_SEARCH_CLEARALLMARKS=($IDM_SEARCH + 32)
  120.  
  121. Global Const $IDM_VIEW=($IDM + 4000)
  122. ; $IDM_VIEW_TOOLBAR_HIDE            =($IDM_VIEW + 1)
  123. Global Const $IDM_VIEW_TOOLBAR_REDUCE=($IDM_VIEW + 2)
  124. Global Const $IDM_VIEW_TOOLBAR_ENLARGE=($IDM_VIEW + 3)
  125. Global Const $IDM_VIEW_TOOLBAR_STANDARD=($IDM_VIEW + 4)
  126. Global Const $IDM_VIEW_REDUCETABBAR=($IDM_VIEW + 5)
  127. Global Const $IDM_VIEW_LOCKTABBAR=($IDM_VIEW + 6)
  128. Global Const $IDM_VIEW_DRAWTABBAR_TOPBAR=($IDM_VIEW + 7)
  129. Global Const $IDM_VIEW_DRAWTABBAR_INACIVETAB=($IDM_VIEW + 8)
  130. Global Const $IDM_VIEW_POSTIT=($IDM_VIEW + 9)
  131. Global Const $IDM_VIEW_TOGGLE_FOLDALL=($IDM_VIEW + 10)
  132. Global Const $IDM_VIEW_USER_DLG=($IDM_VIEW + 11)
  133. Global Const $IDM_VIEW_LINENUMBER=($IDM_VIEW + 12)
  134. Global Const $IDM_VIEW_SYMBOLMARGIN=($IDM_VIEW + 13)
  135. Global Const $IDM_VIEW_FOLDERMAGIN=($IDM_VIEW + 14)
  136. Global Const $IDM_VIEW_FOLDERMAGIN_SIMPLE=($IDM_VIEW + 15)
  137. Global Const $IDM_VIEW_FOLDERMAGIN_ARROW=($IDM_VIEW + 16)
  138. Global Const $IDM_VIEW_FOLDERMAGIN_CIRCLE=($IDM_VIEW + 17)
  139. Global Const $IDM_VIEW_FOLDERMAGIN_BOX=($IDM_VIEW + 18)
  140. Global Const $IDM_VIEW_ALL_CHARACTERS=($IDM_VIEW + 19)
  141. Global Const $IDM_VIEW_INDENT_GUIDE=($IDM_VIEW + 20)
  142. Global Const $IDM_VIEW_CURLINE_HILITING=($IDM_VIEW + 21)
  143. Global Const $IDM_VIEW_WRAP=($IDM_VIEW + 22)
  144. Global Const $IDM_VIEW_ZOOMIN=($IDM_VIEW + 23)
  145. Global Const $IDM_VIEW_ZOOMOUT=($IDM_VIEW + 24)
  146. Global Const $IDM_VIEW_TAB_SPACE=($IDM_VIEW + 25)
  147. Global Const $IDM_VIEW_EOL=($IDM_VIEW + 26)
  148. Global Const $IDM_VIEW_EDGELINE=($IDM_VIEW + 27)
  149. Global Const $IDM_VIEW_EDGEBACKGROUND=($IDM_VIEW + 28)
  150. Global Const $IDM_VIEW_TOGGLE_UNFOLDALL=($IDM_VIEW + 29)
  151. Global Const $IDM_VIEW_FOLD_CURRENT=($IDM_VIEW + 30)
  152. Global Const $IDM_VIEW_UNFOLD_CURRENT=($IDM_VIEW + 31)
  153. Global Const $IDM_VIEW_FULLSCREENTOGGLE=($IDM_VIEW + 32)
  154. Global Const $IDM_VIEW_ZOOMRESTORE=($IDM_VIEW + 33)
  155. Global Const $IDM_VIEW_ALWAYSONTOP=($IDM_VIEW + 34)
  156. Global Const $IDM_VIEW_SYNSCROLLV=($IDM_VIEW + 35)
  157. Global Const $IDM_VIEW_SYNSCROLLH=($IDM_VIEW + 36)
  158. Global Const $IDM_VIEW_EDGENONE=($IDM_VIEW + 37)
  159. Global Const $IDM_VIEW_DRAWTABBAR_CLOSEBOTTUN=($IDM_VIEW + 38)
  160. Global Const $IDM_VIEW_DRAWTABBAR_DBCLK2CLOSE=($IDM_VIEW + 39)
  161. Global Const $IDM_VIEW_REFRESHTABAR=($IDM_VIEW + 40)
  162. Global Const $IDM_VIEW_WRAP_SYMBOL=($IDM_VIEW + 41)
  163. Global Const $IDM_VIEW_HIDELINES=($IDM_VIEW + 42)
  164. Global Const $IDM_VIEW_DRAWTABBAR_VERTICAL=($IDM_VIEW + 43)
  165. Global Const $IDM_VIEW_DRAWTABBAR_MULTILINE=($IDM_VIEW + 44)
  166. Global Const $IDM_VIEW_DOCCHANGEMARGIN=($IDM_VIEW + 45)
  167.  
  168.  
  169. Global Const $IDM_VIEW_FOLD=($IDM_VIEW + 50)
  170. Global Const $IDM_VIEW_FOLD_1=($IDM_VIEW_FOLD + 1)
  171. Global Const $IDM_VIEW_FOLD_2=($IDM_VIEW_FOLD + 2)
  172. Global Const $IDM_VIEW_FOLD_3=($IDM_VIEW_FOLD + 3)
  173. Global Const $IDM_VIEW_FOLD_4=($IDM_VIEW_FOLD + 4)
  174. Global Const $IDM_VIEW_FOLD_5=($IDM_VIEW_FOLD + 5)
  175. Global Const $IDM_VIEW_FOLD_6=($IDM_VIEW_FOLD + 6)
  176. Global Const $IDM_VIEW_FOLD_7=($IDM_VIEW_FOLD + 7)
  177. Global Const $IDM_VIEW_FOLD_8=($IDM_VIEW_FOLD + 8)
  178.  
  179. Global Const $IDM_VIEW_UNFOLD=($IDM_VIEW + 60)
  180. Global Const $IDM_VIEW_UNFOLD_1=($IDM_VIEW_UNFOLD + 1)
  181. Global Const $IDM_VIEW_UNFOLD_2=($IDM_VIEW_UNFOLD + 2)
  182. Global Const $IDM_VIEW_UNFOLD_3=($IDM_VIEW_UNFOLD + 3)
  183. Global Const $IDM_VIEW_UNFOLD_4=($IDM_VIEW_UNFOLD + 4)
  184. Global Const $IDM_VIEW_UNFOLD_5=($IDM_VIEW_UNFOLD + 5)
  185. Global Const $IDM_VIEW_UNFOLD_6=($IDM_VIEW_UNFOLD + 6)
  186. Global Const $IDM_VIEW_UNFOLD_7=($IDM_VIEW_UNFOLD + 7)
  187. Global Const $IDM_VIEW_UNFOLD_8=($IDM_VIEW_UNFOLD + 8)
  188.  
  189.  
  190. Global Const $IDM_VIEW_GOTO_ANOTHER_VIEW=10001
  191. Global Const $IDM_VIEW_CLONE_TO_ANOTHER_VIEW=10002
  192. Global Const $IDM_VIEW_GOTO_NEW_INSTANCE=10003
  193. Global Const $IDM_VIEW_LOAD_IN_NEW_INSTANCE=10004
  194.  
  195. Global Const $IDM_VIEW_SWITCHTO_OTHER_VIEW=($IDM_VIEW + 72)
  196.  
  197.  
  198. Global Const $IDM_FORMAT=($IDM + 5000)
  199. Global Const $IDM_FORMAT_TODOS=($IDM_FORMAT + 1)
  200. Global Const $IDM_FORMAT_TOUNIX=($IDM_FORMAT + 2)
  201. Global Const $IDM_FORMAT_TOMAC=($IDM_FORMAT + 3)
  202. Global Const $IDM_FORMAT_ANSI=($IDM_FORMAT + 4)
  203. Global Const $IDM_FORMAT_UTF_8=($IDM_FORMAT + 5)
  204. Global Const $IDM_FORMAT_UCS_2BE=($IDM_FORMAT + 6)
  205. Global Const $IDM_FORMAT_UCS_2LE=($IDM_FORMAT + 7)
  206. Global Const $IDM_FORMAT_AS_UTF_8=($IDM_FORMAT + 8)
  207. Global Const $IDM_FORMAT_CONV2_ANSI=($IDM_FORMAT + 9)
  208. Global Const $IDM_FORMAT_CONV2_AS_UTF_8=($IDM_FORMAT + 10)
  209. Global Const $IDM_FORMAT_CONV2_UTF_8=($IDM_FORMAT + 11)
  210. Global Const $IDM_FORMAT_CONV2_UCS_2BE=($IDM_FORMAT + 12)
  211. Global Const $IDM_FORMAT_CONV2_UCS_2LE=($IDM_FORMAT + 13)
  212.  
  213. Global Const $IDM_LANG=($IDM + 6000)
  214. Global Const $IDM_LANGSTYLE_CONFIG_DLG=($IDM_LANG + 1)
  215. Global Const $IDM_LANG_C=($IDM_LANG + 2)
  216. Global Const $IDM_LANG_CPP=($IDM_LANG + 3)
  217. Global Const $IDM_LANG_JAVA=($IDM_LANG + 4)
  218. Global Const $IDM_LANG_HTML=($IDM_LANG + 5)
  219. Global Const $IDM_LANG_XML=($IDM_LANG + 6)
  220. Global Const $IDM_LANG_JS=($IDM_LANG + 7)
  221. Global Const $IDM_LANG_PHP=($IDM_LANG + 8)
  222. Global Const $IDM_LANG_ASP=($IDM_LANG + 9)
  223. Global Const $IDM_LANG_CSS=($IDM_LANG + 10)
  224. Global Const $IDM_LANG_PASCAL=($IDM_LANG + 11)
  225. Global Const $IDM_LANG_PYTHON=($IDM_LANG + 12)
  226. Global Const $IDM_LANG_PERL=($IDM_LANG + 13)
  227. Global Const $IDM_LANG_OBJC=($IDM_LANG + 14)
  228. Global Const $IDM_LANG_ASCII=($IDM_LANG + 15)
  229. Global Const $IDM_LANG_TEXT=($IDM_LANG + 16)
  230. Global Const $IDM_LANG_RC=($IDM_LANG + 17)
  231. Global Const $IDM_LANG_MAKEFILE=($IDM_LANG + 18)
  232. Global Const $IDM_LANG_INI=($IDM_LANG + 19)
  233. Global Const $IDM_LANG_SQL=($IDM_LANG + 20)
  234. Global Const $IDM_LANG_VB=($IDM_LANG + 21)
  235. Global Const $IDM_LANG_BATCH=($IDM_LANG + 22)
  236. Global Const $IDM_LANG_CS=($IDM_LANG + 23)
  237. Global Const $IDM_LANG_LUA=($IDM_LANG + 24)
  238. Global Const $IDM_LANG_TEX=($IDM_LANG + 25)
  239. Global Const $IDM_LANG_FORTRAN=($IDM_LANG + 26)
  240. Global Const $IDM_LANG_SH=($IDM_LANG + 27)
  241. Global Const $IDM_LANG_FLASH=($IDM_LANG + 28)
  242. Global Const $IDM_LANG_NSIS=($IDM_LANG + 29)
  243. Global Const $IDM_LANG_TCL=($IDM_LANG + 30)
  244. Global Const $IDM_LANG_LISP=($IDM_LANG + 31)
  245. Global Const $IDM_LANG_SCHEME=($IDM_LANG + 32)
  246. Global Const $IDM_LANG_ASM=($IDM_LANG + 33)
  247. Global Const $IDM_LANG_DIFF=($IDM_LANG + 34)
  248. Global Const $IDM_LANG_PROPS=($IDM_LANG + 35)
  249. Global Const $IDM_LANG_PS=($IDM_LANG + 36)
  250. Global Const $IDM_LANG_RUBY=($IDM_LANG + 37)
  251. Global Const $IDM_LANG_SMALLTALK=($IDM_LANG + 38)
  252. Global Const $IDM_LANG_VHDL=($IDM_LANG + 39)
  253. Global Const $IDM_LANG_CAML=($IDM_LANG + 40)
  254. Global Const $IDM_LANG_KIX=($IDM_LANG + 41)
  255. Global Const $IDM_LANG_ADA=($IDM_LANG + 42)
  256. Global Const $IDM_LANG_VERILOG=($IDM_LANG + 43)
  257. Global Const $IDM_LANG_AU3=($IDM_LANG + 44)
  258. Global Const $IDM_LANG_MATLAB=($IDM_LANG + 45)
  259. Global Const $IDM_LANG_HASKELL=($IDM_LANG + 46)
  260. Global Const $IDM_LANG_INNO=($IDM_LANG + 47)
  261. Global Const $IDM_LANG_CMAKE=($IDM_LANG + 48)
  262. Global Const $IDM_LANG_YAML=($IDM_LANG + 49)
  263.  
  264. Global Const $IDM_LANG_EXTERNAL=($IDM_LANG + 50)
  265. Global Const $IDM_LANG_EXTERNAL_LIMIT=($IDM_LANG + 79)
  266.  
  267. Global Const $IDM_LANG_USER=($IDM_LANG + 80)     ; 46080
  268. Global Const $IDM_LANG_USER_LIMIT=($IDM_LANG + 110)  ; 46110
  269.  
  270.  
  271. Global Const $IDM_ABOUT=($IDM  + 7000)
  272. Global Const $IDM_HOMESWEETHOME=($IDM_ABOUT  + 1)
  273. Global Const $IDM_PROJECTPAGE=($IDM_ABOUT  + 2)
  274. Global Const $IDM_ONLINEHELP=($IDM_ABOUT  + 3)
  275. Global Const $IDM_FORUM=($IDM_ABOUT  + 4)
  276. Global Const $IDM_PLUGINSHOME=($IDM_ABOUT  + 5)
  277. Global Const $IDM_UPDATE_NPP=($IDM_ABOUT  + 6)
  278. Global Const $IDM_WIKIFAQ=($IDM_ABOUT  + 7)
  279. Global Const $IDM_HELP=($IDM_ABOUT  + 8)
  280.  
  281.  
  282. Global Const $IDM_SETTING=($IDM + 8000)
  283. Global Const $IDM_SETTING_TAB_SIZE=($IDM_SETTING + 1)
  284. Global Const $IDM_SETTING_TAB_REPLCESPACE=($IDM_SETTING + 2)
  285. Global Const $IDM_SETTING_HISTORY_SIZE=($IDM_SETTING + 3)
  286. Global Const $IDM_SETTING_EDGE_SIZE=($IDM_SETTING + 4)
  287. Global Const $IDM_SETTING_IMPORTPLUGIN=($IDM_SETTING + 5)
  288. Global Const $IDM_SETTING_IMPORTSTYLETHEMS=($IDM_SETTING + 6)
  289.  
  290. Global Const $IDM_SETTING_TRAYICON=($IDM_SETTING + 8)
  291. Global Const $IDM_SETTING_SHORTCUT_MAPPER=($IDM_SETTING + 9)
  292. Global Const $IDM_SETTING_REMEMBER_LAST_SESSION=($IDM_SETTING + 10)
  293. Global Const $IDM_SETTING_PREFERECE=($IDM_SETTING + 11)
  294.  
  295. Global Const $IDM_SETTING_AUTOCNBCHAR=($IDM_SETTING + 15)
  296.  
  297. ; Menu macro
  298. Global Const $IDM_MACRO_STARTRECORDINGMACRO=($IDM_EDIT + 18)
  299. Global Const $IDM_MACRO_STOPRECORDINGMACRO=($IDM_EDIT + 19)
  300. Global Const $IDM_MACRO_PLAYBACKRECORDEDMACRO=($IDM_EDIT + 21)
  301. Global Const $IDM_MACRO_SAVECURRENTMACRO=($IDM_EDIT + 25)
  302. Global Const $IDM_MACRO_RUNMULTIMACRODLG=($IDM_EDIT+32)
  303.  
  304. Global Const $IDM_EXECUTE=($IDM + 9000)
  305.  
  306. ; #endif ; MENUCMDID_H
  307.  
  308.  
  309.  
  310. ; $WM_USER = 1024
  311. Global Const $SCINTILLA_USER=($WM_USER + 2000)
  312. Global Const $NPPMSG=($WM_USER + 1000)
  313. Global Const $ALL_OPEN_FILES=0
  314. Global Const $CURRENT_DIRECTORY=2
  315. Global Const $CURRENT_WORD=6
  316. Global Const $EXT_PART=5
  317. Global Const $FILE_NAME=3
  318. Global Const $FULL_CURRENT_PATH=1
  319. Global Const $MAIN_VIEW=0
  320. Global Const $MODELESSDIALOGADD=0
  321. Global Const $MODELESSDIALOGREMOVE=1
  322. Global Const $NAME_PART=4
  323. Global Const $NPP_DIRECTORY=7
  324. Global Const $NPPM_ACTIVATEDOC=($NPPMSG + 28)
  325. Global Const $NPPM_ADDTOOLBARICON=($NPPMSG + 41)
  326. Global Const $NPPM_CREATESCINTILLAHANDLE=($NPPMSG + 20)
  327. Global Const $NPPM_DECODESCI=($NPPMSG + 27)
  328. Global Const $NPPM_DESTROYSCINTILLAHANDLE=($NPPMSG + 21)
  329. Global Const $NPPM_DMMGETPLUGINHWNDBYNAME=($NPPMSG + 43)
  330. Global Const $NPPM_DMMHIDE=($NPPMSG + 31)
  331. Global Const $NPPM_DMMREGASDCKDLG=($NPPMSG + 33)
  332. Global Const $NPPM_DMMSHOW=($NPPMSG + 30)
  333. Global Const $NPPM_DMMUPDATEDISPINFO=($NPPMSG + 32)
  334. Global Const $NPPM_DMMVIEWOTHERTAB=($NPPMSG + 35)
  335. Global Const $NPPM_DOOPEN=($SCINTILLA_USER + 8)
  336.  
  337. Global Const $WM_DOCK_USERDEFINE_DLG=($SCINTILLA_USER + 1)
  338. Global Const $WM_UNDOCK_USERDEFINE_DLG=($SCINTILLA_USER + 2)
  339. Global Const $WM_DOOPEN=($SCINTILLA_USER + 8)
  340. Global Const $WM_FINDINFILES=($SCINTILLA_USER + 9)
  341.  
  342. Global Const $RUNCOMMAND_USER=($WM_USER + 3000)
  343. Global Const $NPPM_ENCODESCI=($NPPMSG + 26)
  344. Global Const $NPPM_GETCURRENTDIRECTORY=($RUNCOMMAND_USER + $CURRENT_DIRECTORY)
  345. Global Const $NPPM_GETCURRENTDOCINDEX=($NPPMSG + 23)
  346. Global Const $NPPM_GETCURRENTLANGTYPE=($NPPMSG + 5)
  347. Global Const $NPPM_GETCURRENTSCINTILLA=($NPPMSG + 4)
  348. Global Const $NPPM_GETCURRENTWORD=($RUNCOMMAND_USER + $CURRENT_WORD)
  349. Global Const $NPPM_GETENABLETHEMETEXTUREFUNC=($NPPMSG + 45)
  350. Global Const $NPPM_GETEXTPART=($RUNCOMMAND_USER + $EXT_PART)
  351. Global Const $NPPM_GETFILENAME=($RUNCOMMAND_USER + $FILE_NAME)
  352. Global Const $NPPM_GETFULLCURRENTPATH=($RUNCOMMAND_USER + $FULL_CURRENT_PATH)
  353. Global Const $NPPM_GETMENUHANDLE=($NPPMSG + 25)
  354. Global Const $NPPM_GETNAMEPART=($RUNCOMMAND_USER + $NAME_PART)
  355. Global Const $NPPM_GETNBOPENFILES=($NPPMSG + 7)
  356. Global Const $NPPM_GETNBSESSIONFILES=($NPPMSG + 13)
  357. Global Const $NPPM_GETNBUSERLANG=($NPPMSG + 22)
  358. Global Const $NPPM_GETNPPDIRECTORY=($RUNCOMMAND_USER + $NPP_DIRECTORY)
  359. Global Const $NPPM_GETOPENFILENAMES=($NPPMSG + 8)
  360. Global Const $NPPM_GETOPENFILENAMESPRIMARY=($NPPMSG + 17)
  361. Global Const $NPPM_GETOPENFILENAMESSECOND=($NPPMSG + 18)
  362. Global Const $NPPM_GETPLUGINSCONFIGDIR=($NPPMSG + 46)
  363. Global Const $NPPM_GETSESSIONFILES=($NPPMSG + 14)
  364. Global Const $NPPM_GETWINDOWSVERSION=($NPPMSG + 42)
  365. Global Const $NPPM_LAUNCHFINDINFILESDLG=($NPPMSG + 29)
  366. Global Const $NPPM_LOADSESSION=($NPPMSG + 34)
  367. Global Const $NPPM_MAKECURRENTBUFFERDIRTY=($NPPMSG + 44)
  368. Global Const $NPPM_MODELESSDIALOG=($NPPMSG + 12)
  369. Global Const $NPPM_MSGTOPLUGIN=($NPPMSG + 47)
  370. Global Const $NPPM_RELOADFILE=($NPPMSG + 36)
  371. Global Const $NPPM_SAVEALLFILES=($NPPMSG + 39)
  372. Global Const $NPPM_SAVECURRENTFILE=($NPPMSG + 38)
  373. Global Const $NPPM_SAVECURRENTSESSION=($NPPMSG + 16)
  374. Global Const $NPPM_SAVESESSION=($NPPMSG + 15)
  375. Global Const $NPPM_SETCURRENTLANGTYPE=($NPPMSG + 6)
  376. Global Const $NPPM_SETMENUITEMCHECK=($NPPMSG + 40)
  377. Global Const $NPPM_SETSTATUSBAR=($NPPMSG + 24)
  378. Global Const $NPPM_SWITCHTOFILE=($NPPMSG + 37)
  379. Global Const $NPPN_FIRST=1000
  380. Global Const $NPPN_FILEBEFORECLOSE=($NPPN_FIRST + 3)
  381. Global Const $NPPN_FILEBEFOREOPEN=($NPPN_FIRST + 6)
  382. Global Const $NPPN_FILEBEFORESAVE=($NPPN_FIRST + 7)
  383. Global Const $NPPN_FILECLOSED=($NPPN_FIRST + 5)
  384. Global Const $NPPN_FILEOPENED=($NPPN_FIRST + 4)
  385. Global Const $NPPN_FILESAVED=($NPPN_FIRST + 8)
  386. Global Const $NPPN_READY=($NPPN_FIRST + 1)
  387. Global Const $NPPN_TBMODIFICATION=($NPPN_FIRST + 2)
  388. Global Const $NPPPLUGINMENU=0
  389. Global Const $PRIMARY_VIEW=1
  390. Global Const $SECOND_VIEW=2
  391. Global Const $STATUSBAR_CUR_POS=2
  392. Global Const $STATUSBAR_DOC_SIZE=1
  393. Global Const $STATUSBAR_DOC_TYPE=0
  394. Global Const $STATUSBAR_EOF_FORMAT=3
  395. Global Const $STATUSBAR_TYPING_MODE=5
  396. Global Const $STATUSBAR_UNICODE_TYPE=4
  397. Global Const $SUB_VIEW=1
  398. Global Const $VAR_NOT_RECOGNIZED=0
  399.  
  400. #EndRegion ###
  401.  
  402.  
  403.  
  404. ; Send commands to Scite's Director interface
  405. Func _NPP_Send_Command($My_Hwnd, $sCmd)
  406.     Local $WM_COPYDATA = 74
  407.     Local $CmdStruct = DllStructCreate('Char[' & StringLen($sCmd) + 1 & ']')
  408.     ;ConsoleWrite('-->' & $sCmd & @lf )
  409.     DllStructSetData($CmdStruct, 1, $sCmd)
  410.     Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr')
  411.     DllStructSetData($COPYDATA, 1, 1)
  412.     DllStructSetData($COPYDATA, 2, StringLen($sCmd) + 1)
  413.     DllStructSetData($COPYDATA, 3, DllStructGetPtr($CmdStruct))
  414.     ; DllCall('User32.dll', 'None', 'SendMessageW', 'HWnd', WinGetHandle('[CLASS:Notepad++]'), 'Int', $My_Hwnd, 'HWnd', 0, 'Ptr', DllStructGetPtr($COPYDATA))
  415.     DllCall("user32.dll", 'ptr', "SendMessage", "hwnd", WinGetHandle('[CLASS:Notepad++]'), "uint", $My_Hwnd, 'int', 0, 'int', $sCmd)
  416. EndFunc   ;==>SendSciTE_Command
  417.  
  418. Func _Send_Command($type, $My_Hwnd, $sCmd)
  419.     ; Local $CmdStruct = DllStructCreate('Char[' & StringLen($sCmd) + 1 & ']')
  420.     ; If @error Then Return
  421.     ; DllStructSetData($CmdStruct, 1, $sCmd)
  422.     ; Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr')
  423.     ; DllStructSetData($COPYDATA, 1, 1)
  424.     ; DllStructSetData($COPYDATA, 2, StringLen($sCmd) + 1)
  425.     ; DllStructSetData($COPYDATA, 3, DllStructGetPtr($CmdStruct))
  426.     Local $sss = _SendMessage(WinGetHandle('[CLASS:Notepad++]'), $type, $My_Hwnd, $sCmd, 0, "hwnd", "ptr")
  427.     ; $CmdStruct = 0
  428.     Return $sss
  429. EndFunc   ;==>_SciTE_Send_Command
  430.  
  431. Func _npp_command($command)
  432.     Return _SendMessage(WinGetHandle('[CLASS:Notepad++]'), $NPPM_MENUCOMMAND, 0, $command)
  433.     ; Return _SendMessage(WinGetHandle('[CLASS:Notepad++]'), $NPPM_GETCURRENTLINE, 0, 0)
  434. EndFunc
  435.  
  436. Func _npp_GetText($flag = 2);$flag=0 - current word, $flag=1 - current line, $flag=2 - all text
  437.     Local $HndCtrl_Cur, $s_Text, $wparam, $lparam, $aSel[2]
  438.     $HndCtrl_Cur = ControlGetHandle('[CLASS:Notepad++]', "", "[CLASSNN:Scintilla" & _npp_GetCtrlInstance() & "]")
  439.     If Not $HndCtrl_Cur Then Return 0
  440.     $s_Text = ControlGetText("[CLASS:Notepad++]", '', "[CLASSNN:Scintilla" & _npp_GetCtrlInstance() & "]")
  441.     $s_Text = BinaryToString(StringToBinary($s_Text, 2), 1)
  442.     If $s_Text Then
  443.         If $flag = 2 Then
  444.             Return $s_Text
  445.         Else
  446.             $wparam = DllStructCreate("uint Start")
  447.             $lparam = DllStructCreate("uint End")
  448.             _SendMessage($HndCtrl_Cur, 0xB0, DllStructGetPtr($wparam), DllStructGetPtr($lparam), 0, "ptr", "ptr");$EM_GETSEL=0xB0
  449.             $aSel[0] = DllStructGetData($wparam, "Start")
  450.             $aSel[1] = DllStructGetData($lparam, "End")
  451.             If $flag = 0 And $aSel[1] > $aSel[0] Then
  452.                 Return StringMid($s_Text, $aSel[0]+1, $aSel[1] - $aSel[0])
  453.             EndIf
  454.             Local $pattern = '[\r\n]'
  455.             If $flag = 0 Then $pattern = '(?i)[^a-zа-я0-9_@#$]'
  456.             Local $sRet = '', $i, $char, $startPos = $aSel[1]
  457.             For $i = $startPos+1 To StringLen($s_Text)
  458.                 $char = StringMid($s_Text, $i, 1)
  459.                 If StringRegExp($char, $pattern) Then
  460.                     ExitLoop
  461.                 Else
  462.                     $sRet &= $char
  463.                     $aSel[1] += 1
  464.                 EndIf
  465.             Next
  466.             For $i = $startPos To 1 Step -1
  467.                 $char = StringMid($s_Text, $i, 1)
  468.                 If StringRegExp($char, $pattern) Then
  469.                     ExitLoop
  470.                 Else
  471.                     $sRet = $char & $sRet
  472.                     $aSel[0] -= 1
  473.                 EndIf
  474.             Next
  475.             If $flag = 0 And $aSel[1] > $aSel[0] Then
  476.                 _SendMessage($HndCtrl_Cur, 0xB1, $aSel[0], $aSel[1]);$EM_SETSEL=0xB1
  477.             EndIf
  478.             Return $sRet
  479.         EndIf
  480.     EndIf
  481.     Return ''
  482. EndFunc
  483.  
  484. Func _npp_SetText($s_Text, $flag = 2);$flag=0 - insert to end, $flag=1 - insert to current pos, $flag=2 - overwrite all text
  485.     Local $HndCtrl_Cur = ControlGetHandle('[CLASS:Notepad++]', "", "[CLASSNN:Scintilla" & _npp_GetCtrlInstance() & "]")
  486.     If Not $HndCtrl_Cur Then Return 0
  487.     If $s_Text Then
  488.         $s_Text = StringToBinary($s_Text, 1)
  489.         $s_Text &= StringRight('0000', Mod(StringLen($s_Text), 4) + 2)
  490.         $s_Text = BinaryToString($s_Text, 2)
  491.     EndIf
  492.     If $flag < 2 Then
  493.         If Not $flag Then
  494.             Local $iLength = _SendMessage($HndCtrl_Cur, 0x000E);$__EDITCONSTANT_WM_GETTEXTLENGTH=0x000E
  495.             _SendMessage($HndCtrl_Cur, 0xB1, $iLength, $iLength);$EM_SETSEL=0xB1
  496.         EndIf
  497.         _SendMessage($HndCtrl_Cur, 0xC2, True, $s_Text, 0, "wparam", "wstr");$EM_REPLACESEL=0xC2
  498.     Else
  499.         ControlSetText('[CLASS:Notepad++]', "", "[CLASSNN:Scintilla" & _npp_GetCtrlInstance() & "]", $s_Text)
  500.     EndIf
  501.     Return 1
  502. EndFunc
  503.  
  504. Func _npp_FULL_CURRENT_PATH()
  505.     Local $bak, $ret
  506.     $bak = ClipGet()
  507.     Sleep(100)
  508.     ClipPut('')
  509.     _npp_command($IDM_EDIT_FULLPATHTOCLIP)
  510.     Sleep(50)
  511.     $ret = ClipGet()
  512.     Sleep(50)
  513.     ClipPut($bak)
  514.     Return $ret
  515. EndFunc
  516.  
  517. Func _npp_GetCtrlInstance()
  518.     Local $HndCtrl_1 = ControlGetHandle('[CLASS:Notepad++]', "", "[CLASSNN:Scintilla1]")
  519.     Local $HndCtrl_2 = ControlGetHandle('[CLASS:Notepad++]', "", "[CLASSNN:Scintilla2]")
  520.     If Not $HndCtrl_1 Then Return ''
  521.     Local $state1 = BitAnd(WinGetState($HndCtrl_1), 2)
  522.     Local $state2 = BitAnd(WinGetState($HndCtrl_2), 2)
  523.     If Not $state2 Then
  524.         Return 1
  525.     ElseIf Not $state1 Then
  526.         Return 2
  527.     ElseIf $state1 And $state2 Then
  528.         Local $size1 = WinGetPos($HndCtrl_1)
  529.         Local $size2 = WinGetPos($HndCtrl_2)
  530.         If IsArray($size1) And IsArray($size2) Then
  531.             If $size1[1] < $size2[1] Then
  532.                 Return 1
  533.             Else
  534.                 Return 2
  535.             EndIf
  536.         EndIf
  537.     EndIf
  538.     Return ''
  539. EndFunc
  540.  
  541. ; $Hnd_Cur = WinWait("[CLASS:Notepad++]")
  542. ; $NPPM_SAVECURRENTFILE = 2024 + 38
  543. ; $NPPM_SAVEALLFILES = 2024 + 39
  544. ; $NPPM_GETCURRENTLINE = 4024 + 8
  545. ; $NPPM_GETCURRENTCOLUMN = 4024 + 9
  546. ; _SendMessage($Hnd_Cur, $NPPM_SAVECURRENTFILE, 0, 0)
  547. ; $curLine = _SendMessage($Hnd_Cur, $NPPM_GETCURRENTLINE, 0, 0); 0-based
  548. ; $curColumn = _SendMessage($Hnd_Cur, $NPPM_GETCURRENTCOLUMN, 0, 0); 0-based
  549.  
  550.  
  551. ; ConsoleWrite('->' & _npp_FULL_CURRENT_PATH() & @CRLF)
  552. ; _SendMessage($Hnd_Cur, $NPPM_MENUCOMMAND, 0, $IDM_FILE_NEW)
  553. ; DllCall("user32.dll", 'ptr', "SendMessageW", "hwnd", $Hnd_Cur, "uint", $NPPM_MENUCOMMAND, 'int', 0, 'int', $IDM_FILE_NEW)
  554.  
  555. Func _npp_GetCurPos();0-based
  556.     Local $HndCtrl_Cur, $aSel[2], $ar, $s_Text, $wparam, $lparam
  557.     Dim $ar[2]
  558.     $HndCtrl_Cur = ControlGetHandle('[CLASS:Notepad++]', "", "[CLASSNN:Scintilla" & _npp_GetCtrlInstance() & "]")
  559.     If Not $HndCtrl_Cur Then Return SetError(1, 0, $ar)
  560.     $s_Text = ControlGetText("[CLASS:Notepad++]", '', "[CLASSNN:Scintilla" & _npp_GetCtrlInstance() & "]")
  561.     $s_Text = BinaryToString(StringToBinary($s_Text, 2), 1)
  562.     If $s_Text Then
  563.         Local $NPPM_GETCURRENTLINE = 4024 + 8
  564.         $ar[0] = _SendMessage(WinGetHandle('[CLASS:Notepad++]'), $NPPM_GETCURRENTLINE, 0, 0); 0-based
  565.         $wparam = DllStructCreate("uint Start")
  566.         $lparam = DllStructCreate("uint End")
  567.         _SendMessage($HndCtrl_Cur, 0xB0, DllStructGetPtr($wparam), DllStructGetPtr($lparam), 0, "ptr", "ptr");$EM_GETSEL=0xB0
  568.         $aSel[0] = DllStructGetData($wparam, "Start")
  569.         $aSel[1] = DllStructGetData($lparam, "End")
  570.         $s_Text = StringLeft($s_Text, $aSel[1])
  571.         $aSel = StringRegExp($s_Text, '([^\r\n]*)($|\r\n|\r|\n)', 3)
  572.         If IsArray($aSel) Then
  573.             $ar[1] = StringLen($aSel[2 * $ar[0]]); 0-based
  574.         EndIf
  575.     EndIf
  576. ;   $ar[1] = _SendMessage($Hnd_Cur, $NPPM_GETCURRENTCOLUMN, 0, 0); 0-based
  577.     Return $ar
  578. EndFunc
  579.  
  580. Func _npp_SetCurPos($iLine = -1, $iPos = 0);0-based
  581.     Local $HndCtrl_Cur, $str, $i, $iLength, $i_Line, $strLine
  582.     $HndCtrl_Cur = ControlGetHandle('[CLASS:Notepad++]', "", "[CLASSNN:Scintilla" & _npp_GetCtrlInstance() & "]")
  583.     If Not $HndCtrl_Cur Then Return 0
  584.     If $iLine < 0 Or $iPos < 0 Then
  585.         $iLength = _SendMessage($HndCtrl_Cur, 0x000E);$__EDITCONSTANT_WM_GETTEXTLENGTH=0x000E
  586.         _SendMessage($HndCtrl_Cur, 0xB1, $iLength, $iLength);$EM_SETSEL=0xB1
  587.     Else
  588.         $str = _npp_GetText()
  589.         If $str Then
  590.             $aStr = StringRegExp($str, '([^\r\n]*)($|\r\n|\r|\n)', 3)
  591.             If IsArray($aStr) Then
  592.                 $i_Line = 0
  593.                 $strLine = ''
  594.                 For $i = 0 To UBound($aStr) -1
  595.                     If StringRegExp($aStr[$i], '[\r\n]+') Then
  596.                         $i_Line += 1
  597.                         $iLength += StringLen($aStr[$i])
  598.                     Else
  599.                         If $i_Line >= $iLine Then
  600.                             $strLine = $aStr[$i]
  601.                             ExitLoop
  602.                         Else
  603.                             $iLength += StringLen($aStr[$i])
  604.                         EndIf
  605.                     EndIf
  606.                 Next
  607.                 $i = StringLen($strLine)
  608.                 If $iPos + 1 > $i Then
  609.                     If $i Then
  610.                         $iLength += $i
  611.                     EndIf
  612.                 Else
  613.                     $iLength += $iPos
  614.                 EndIf
  615.                 _SendMessage($HndCtrl_Cur, 0xB1, $iLength, $iLength);$EM_SETSEL=0xB1
  616.             Else
  617.                 $i = StringLen($str)
  618.                 If $iPos + 1 > $i Then
  619.                     If $i Then
  620.                         $iLength += $i
  621.                     EndIf
  622.                 Else
  623.                     $iLength += $iPos
  624.                 EndIf
  625.                 _SendMessage($HndCtrl_Cur, 0xB1, $iLength, $iLength);$EM_SETSEL=0xB1
  626.             EndIf
  627.         EndIf
  628.     EndIf
  629. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement