PrEditor 0.0.0.dev1__py2.py3-none-any.whl → 0.1.0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of PrEditor might be problematic. Click here for more details.

Files changed (363) hide show
  1. PrEditor-0.1.0.dist-info/LICENSE +165 -0
  2. PrEditor-0.1.0.dist-info/METADATA +212 -0
  3. PrEditor-0.1.0.dist-info/RECORD +149 -0
  4. {PrEditor-0.0.0.dev1.dist-info → PrEditor-0.1.0.dist-info}/WHEEL +1 -1
  5. PrEditor-0.1.0.dist-info/entry_points.txt +18 -0
  6. PrEditor-0.1.0.dist-info/top_level.txt +1 -0
  7. preditor/__init__.py +301 -0
  8. {blurdev → preditor}/__main__.py +13 -13
  9. preditor/about_module.py +166 -0
  10. preditor/cli.py +192 -0
  11. {blurdev → preditor}/contexts.py +119 -119
  12. preditor/cores/core.py +65 -0
  13. preditor/dccs/maya/PrEditor_maya.mod +2 -0
  14. preditor/dccs/maya/plug-ins/PrEditor_maya.py +108 -0
  15. preditor/debug.py +294 -0
  16. blurdev/scintilla/delayable_engine.py → preditor/delayable_engine/__init__.py +310 -299
  17. blurdev/scintilla/delayables/base.py → preditor/delayable_engine/delayables.py +85 -85
  18. {blurdev → preditor}/enum.py +728 -1003
  19. {blurdev → preditor}/gui/__init__.py +84 -125
  20. preditor/gui/app.py +159 -0
  21. {blurdev → preditor}/gui/codehighlighter.py +209 -219
  22. {blurdev → preditor}/gui/completer.py +226 -236
  23. {blurdev → preditor}/gui/console.py +801 -858
  24. {blurdev → preditor}/gui/dialog.py +200 -216
  25. preditor/gui/drag_tab_bar.py +190 -0
  26. preditor/gui/editor_chooser.py +57 -0
  27. {blurdev → preditor}/gui/errordialog.py +100 -97
  28. preditor/gui/fuzzy_search/fuzzy_search.py +93 -0
  29. preditor/gui/group_tab_widget/__init__.py +319 -0
  30. preditor/gui/group_tab_widget/grouped_tab_menu.py +35 -0
  31. preditor/gui/group_tab_widget/grouped_tab_models.py +108 -0
  32. preditor/gui/group_tab_widget/grouped_tab_widget.py +75 -0
  33. preditor/gui/group_tab_widget/one_tab_widget.py +54 -0
  34. preditor/gui/level_buttons.py +349 -0
  35. {blurdev → preditor}/gui/logger_window_handler.py +46 -45
  36. {blurdev → preditor}/gui/loggerwindow.py +1205 -1417
  37. {blurdev → preditor}/gui/newtabwidget.py +69 -68
  38. {blurdev → preditor}/gui/redmine_login_dialog.py +63 -61
  39. {blurdev → preditor}/gui/set_text_editor_path_dialog.py +59 -57
  40. preditor/gui/ui/editor_chooser.ui +93 -0
  41. {blurdev → preditor}/gui/ui/errordialog.ui +81 -81
  42. {blurdev → preditor}/gui/ui/loggerwindow.ui +1030 -864
  43. {blurdev → preditor}/gui/ui/redmine_login_dialog.ui +124 -124
  44. {blurdev → preditor}/gui/ui/set_text_editor_path_dialog.ui +149 -149
  45. {blurdev → preditor}/gui/window.py +183 -199
  46. preditor/gui/workbox_mixin.py +357 -0
  47. preditor/gui/workbox_text_edit.py +117 -0
  48. preditor/gui/workboxwidget.py +276 -0
  49. preditor/logging_config.py +52 -0
  50. preditor/osystem.py +401 -0
  51. preditor/plugins.py +65 -0
  52. preditor/prefs.py +74 -0
  53. {blurdev → preditor}/resource/environment_variables.html +26 -38
  54. {blurdev → preditor}/resource/error_mail.html +85 -85
  55. {blurdev → preditor}/resource/error_mail_inline.html +41 -41
  56. preditor/resource/img/README.md +7 -0
  57. preditor/resource/img/arrow_forward.png +0 -0
  58. preditor/resource/img/check-bold.png +0 -0
  59. preditor/resource/img/chevron-down.png +0 -0
  60. preditor/resource/img/chevron-up.png +0 -0
  61. preditor/resource/img/close-thick.png +0 -0
  62. preditor/resource/img/comment-edit.png +0 -0
  63. preditor/resource/img/content-copy.png +0 -0
  64. preditor/resource/img/content-cut.png +0 -0
  65. preditor/resource/img/content-duplicate.png +0 -0
  66. preditor/resource/img/content-paste.png +0 -0
  67. preditor/resource/img/content-save.png +0 -0
  68. preditor/resource/img/debug_disabled.png +0 -0
  69. preditor/resource/img/eye-check.png +0 -0
  70. preditor/resource/img/file-plus.png +0 -0
  71. preditor/resource/img/file-remove.png +0 -0
  72. preditor/resource/img/format-align-left.png +0 -0
  73. preditor/resource/img/format-letter-case-lower.png +0 -0
  74. preditor/resource/img/format-letter-case-upper.png +0 -0
  75. preditor/resource/img/information.png +0 -0
  76. preditor/resource/img/logging_critical.png +0 -0
  77. preditor/resource/img/logging_custom.png +0 -0
  78. preditor/resource/img/logging_debug.png +0 -0
  79. preditor/resource/img/logging_error.png +0 -0
  80. preditor/resource/img/logging_info.png +0 -0
  81. preditor/resource/img/logging_not_set.png +0 -0
  82. preditor/resource/img/logging_warning.png +0 -0
  83. preditor/resource/img/marker.png +0 -0
  84. preditor/resource/img/play.png +0 -0
  85. preditor/resource/img/playlist-play.png +0 -0
  86. preditor/resource/img/plus-minus-variant.png +0 -0
  87. preditor/resource/img/preditor.ico +0 -0
  88. preditor/resource/img/preditor.png +0 -0
  89. preditor/resource/img/preditor.psd +0 -0
  90. preditor/resource/img/preditor.svg +44 -0
  91. preditor/resource/img/restart.svg +1 -0
  92. preditor/resource/img/skip-forward-outline.png +0 -0
  93. preditor/resource/img/skip-next-outline.png +0 -0
  94. preditor/resource/img/skip-next.png +0 -0
  95. preditor/resource/img/skip-previous.png +0 -0
  96. preditor/resource/img/subdirectory-arrow-right.png +0 -0
  97. preditor/resource/img/text-search-variant.png +0 -0
  98. {blurdev → preditor}/resource/lang/python.json +30 -30
  99. preditor/resource/settings.ini +25 -0
  100. {blurdev/resource/stylesheet/logger → preditor/resource/stylesheet}/Bright.css +56 -61
  101. {blurdev → preditor}/resource/stylesheet/Dark.css +190 -132
  102. {blurdev → preditor}/scintilla/__init__.py +22 -28
  103. preditor/scintilla/delayables/__init__.py +11 -0
  104. {blurdev → preditor}/scintilla/delayables/smart_highlight.py +94 -93
  105. {blurdev → preditor}/scintilla/delayables/spell_check.py +173 -172
  106. {blurdev → preditor}/scintilla/documenteditor.py +2039 -2115
  107. {blurdev → preditor}/scintilla/finddialog.py +68 -81
  108. {blurdev → preditor}/scintilla/lang/__init__.py +80 -93
  109. {blurdev → preditor}/scintilla/lang/config/bash.ini +15 -15
  110. {blurdev → preditor}/scintilla/lang/config/batch.ini +14 -14
  111. {blurdev → preditor}/scintilla/lang/config/cpp.ini +19 -19
  112. {blurdev → preditor}/scintilla/lang/config/css.ini +19 -19
  113. {blurdev → preditor}/scintilla/lang/config/eyeonscript.ini +17 -17
  114. {blurdev → preditor}/scintilla/lang/config/html.ini +21 -21
  115. {blurdev → preditor}/scintilla/lang/config/javascript.ini +24 -24
  116. {blurdev → preditor}/scintilla/lang/config/lua.ini +16 -16
  117. {blurdev → preditor}/scintilla/lang/config/maxscript.ini +20 -20
  118. {blurdev → preditor}/scintilla/lang/config/mel.ini +18 -18
  119. {blurdev → preditor}/scintilla/lang/config/mu.ini +22 -22
  120. {blurdev → preditor}/scintilla/lang/config/nsi.ini +5 -5
  121. {blurdev → preditor}/scintilla/lang/config/perl.ini +19 -19
  122. {blurdev → preditor}/scintilla/lang/config/puppet.ini +19 -19
  123. {blurdev → preditor}/scintilla/lang/config/python.ini +28 -28
  124. {blurdev → preditor}/scintilla/lang/config/ruby.ini +19 -19
  125. {blurdev → preditor}/scintilla/lang/config/sql.ini +7 -7
  126. {blurdev → preditor}/scintilla/lang/config/xml.ini +21 -21
  127. {blurdev → preditor}/scintilla/lang/config/yaml.ini +18 -18
  128. {blurdev → preditor}/scintilla/lang/language.py +240 -250
  129. preditor/scintilla/lexers/__init__.py +0 -0
  130. {blurdev → preditor}/scintilla/lexers/cpplexer.py +21 -30
  131. {blurdev → preditor}/scintilla/lexers/javascriptlexer.py +25 -34
  132. {blurdev → preditor}/scintilla/lexers/maxscriptlexer.py +234 -253
  133. {blurdev → preditor}/scintilla/lexers/mellexer.py +368 -376
  134. {blurdev → preditor}/scintilla/lexers/mulexer.py +32 -41
  135. {blurdev → preditor}/scintilla/lexers/pythonlexer.py +41 -50
  136. {blurdev → preditor}/scintilla/ui/finddialog.ui +160 -160
  137. preditor/settings.py +71 -0
  138. preditor/stream/__init__.py +80 -0
  139. preditor/stream/director.py +56 -0
  140. preditor/stream/manager.py +74 -0
  141. preditor/streamhandler_helper.py +46 -0
  142. preditor/utils/__init__.py +0 -0
  143. preditor/utils/cute.py +30 -0
  144. preditor/utils/stylesheets.py +54 -0
  145. {blurdev → preditor}/version.py +5 -5
  146. preditor/weakref.py +363 -0
  147. PrEditor-0.0.0.dev1.dist-info/METADATA +0 -51
  148. PrEditor-0.0.0.dev1.dist-info/RECORD +0 -279
  149. PrEditor-0.0.0.dev1.dist-info/top_level.txt +0 -1
  150. blurdev/__init__.py +0 -356
  151. blurdev/cores/__init__.py +0 -98
  152. blurdev/cores/application.py +0 -26
  153. blurdev/cores/core.py +0 -634
  154. blurdev/debug.py +0 -593
  155. blurdev/external.py +0 -391
  156. blurdev/gui/level_buttons.py +0 -585
  157. blurdev/gui/workboxwidget.py +0 -205
  158. blurdev/logger.py +0 -238
  159. blurdev/osystem.py +0 -813
  160. blurdev/prefs.py +0 -33
  161. blurdev/protocols/__init__.py +0 -71
  162. blurdev/protocols/write_std_output_handler.py +0 -83
  163. blurdev/resource/designer_plugins.xml +0 -9
  164. blurdev/resource/error_email_old.html +0 -41
  165. blurdev/resource/img/add.png +0 -0
  166. blurdev/resource/img/ajax-loader.gif +0 -0
  167. blurdev/resource/img/application.png +0 -0
  168. blurdev/resource/img/applications.png +0 -0
  169. blurdev/resource/img/assburner.png +0 -0
  170. blurdev/resource/img/assfreezer.png +0 -0
  171. blurdev/resource/img/bar.gif +0 -0
  172. blurdev/resource/img/blank.png +0 -0
  173. blurdev/resource/img/blurdev.png +0 -0
  174. blurdev/resource/img/calendar_disabled.png +0 -0
  175. blurdev/resource/img/calendar_enabled.png +0 -0
  176. blurdev/resource/img/cancel.png +0 -0
  177. blurdev/resource/img/custom.png +0 -0
  178. blurdev/resource/img/debug_high.png +0 -0
  179. blurdev/resource/img/debug_low.png +0 -0
  180. blurdev/resource/img/debug_mid.png +0 -0
  181. blurdev/resource/img/debug_off.png +0 -0
  182. blurdev/resource/img/django.png +0 -0
  183. blurdev/resource/img/doc.png +0 -0
  184. blurdev/resource/img/edit.png +0 -0
  185. blurdev/resource/img/elemental.png +0 -0
  186. blurdev/resource/img/explore.png +0 -0
  187. blurdev/resource/img/favorite.png +0 -0
  188. blurdev/resource/img/file.png +0 -0
  189. blurdev/resource/img/folder.png +0 -0
  190. blurdev/resource/img/ide/add.png +0 -0
  191. blurdev/resource/img/ide/add_note.png +0 -0
  192. blurdev/resource/img/ide/arrow_down.png +0 -0
  193. blurdev/resource/img/ide/arrow_up.png +0 -0
  194. blurdev/resource/img/ide/check.png +0 -0
  195. blurdev/resource/img/ide/class.png +0 -0
  196. blurdev/resource/img/ide/clean.png +0 -0
  197. blurdev/resource/img/ide/clearlog.png +0 -0
  198. blurdev/resource/img/ide/close.png +0 -0
  199. blurdev/resource/img/ide/comment_add.png +0 -0
  200. blurdev/resource/img/ide/comment_remove.png +0 -0
  201. blurdev/resource/img/ide/comment_toggle.png +0 -0
  202. blurdev/resource/img/ide/console.png +0 -0
  203. blurdev/resource/img/ide/copy.png +0 -0
  204. blurdev/resource/img/ide/copylstrip.png +0 -0
  205. blurdev/resource/img/ide/cut.png +0 -0
  206. blurdev/resource/img/ide/edit.png +0 -0
  207. blurdev/resource/img/ide/find.png +0 -0
  208. blurdev/resource/img/ide/find_replace.png +0 -0
  209. blurdev/resource/img/ide/findnext.png +0 -0
  210. blurdev/resource/img/ide/findprev.png +0 -0
  211. blurdev/resource/img/ide/folder_find.png +0 -0
  212. blurdev/resource/img/ide/function.png +0 -0
  213. blurdev/resource/img/ide/git-bash.png +0 -0
  214. blurdev/resource/img/ide/git-gui.png +0 -0
  215. blurdev/resource/img/ide/gitk.png +0 -0
  216. blurdev/resource/img/ide/goto.png +0 -0
  217. blurdev/resource/img/ide/goto_def.png +0 -0
  218. blurdev/resource/img/ide/help.png +0 -0
  219. blurdev/resource/img/ide/highlighter.png +0 -0
  220. blurdev/resource/img/ide/lowercase.png +0 -0
  221. blurdev/resource/img/ide/newfile.png +0 -0
  222. blurdev/resource/img/ide/newfolder.png +0 -0
  223. blurdev/resource/img/ide/newproject.png +0 -0
  224. blurdev/resource/img/ide/newwizard.png +0 -0
  225. blurdev/resource/img/ide/open.png +0 -0
  226. blurdev/resource/img/ide/paste.png +0 -0
  227. blurdev/resource/img/ide/pdb_continue.png +0 -0
  228. blurdev/resource/img/ide/pdb_down.png +0 -0
  229. blurdev/resource/img/ide/pdb_next.png +0 -0
  230. blurdev/resource/img/ide/pdb_step.png +0 -0
  231. blurdev/resource/img/ide/pdb_up.png +0 -0
  232. blurdev/resource/img/ide/plus_minus.png +0 -0
  233. blurdev/resource/img/ide/preferences.png +0 -0
  234. blurdev/resource/img/ide/project_find.png +0 -0
  235. blurdev/resource/img/ide/python.png +0 -0
  236. blurdev/resource/img/ide/pyular.png +0 -0
  237. blurdev/resource/img/ide/qt.png +0 -0
  238. blurdev/resource/img/ide/quit.png +0 -0
  239. blurdev/resource/img/ide/redo.png +0 -0
  240. blurdev/resource/img/ide/refresh.png +0 -0
  241. blurdev/resource/img/ide/remove.png +0 -0
  242. blurdev/resource/img/ide/ruler.png +0 -0
  243. blurdev/resource/img/ide/run.png +0 -0
  244. blurdev/resource/img/ide/runall.png +0 -0
  245. blurdev/resource/img/ide/runallclear.png +0 -0
  246. blurdev/resource/img/ide/runselected.png +0 -0
  247. blurdev/resource/img/ide/runselectedclear.png +0 -0
  248. blurdev/resource/img/ide/save.png +0 -0
  249. blurdev/resource/img/ide/saveas.png +0 -0
  250. blurdev/resource/img/ide/sdk.png +0 -0
  251. blurdev/resource/img/ide/separator.png +0 -0
  252. blurdev/resource/img/ide/tabbed.png +0 -0
  253. blurdev/resource/img/ide/tile.png +0 -0
  254. blurdev/resource/img/ide/toolbar.png +0 -0
  255. blurdev/resource/img/ide/undo.png +0 -0
  256. blurdev/resource/img/ide/uppercase.png +0 -0
  257. blurdev/resource/img/ide/view_as.png +0 -0
  258. blurdev/resource/img/ide/windowed.png +0 -0
  259. blurdev/resource/img/ide.ico +0 -0
  260. blurdev/resource/img/ide.png +0 -0
  261. blurdev/resource/img/ide48.png +0 -0
  262. blurdev/resource/img/info.png +0 -0
  263. blurdev/resource/img/legacy tool.png +0 -0
  264. blurdev/resource/img/library.png +0 -0
  265. blurdev/resource/img/logger/about.png +0 -0
  266. blurdev/resource/img/logger/arrow_forward.png +0 -0
  267. blurdev/resource/img/logger/clear.png +0 -0
  268. blurdev/resource/img/logger/close.png +0 -0
  269. blurdev/resource/img/logger/debug_disabled.png +0 -0
  270. blurdev/resource/img/logger/debug_high.png +0 -0
  271. blurdev/resource/img/logger/debug_low.png +0 -0
  272. blurdev/resource/img/logger/debug_mid.png +0 -0
  273. blurdev/resource/img/logger/down.png +0 -0
  274. blurdev/resource/img/logger/find.png +0 -0
  275. blurdev/resource/img/logger/logging_critical.png +0 -0
  276. blurdev/resource/img/logger/logging_debug.png +0 -0
  277. blurdev/resource/img/logger/logging_error.png +0 -0
  278. blurdev/resource/img/logger/logging_info.png +0 -0
  279. blurdev/resource/img/logger/logging_not_set.png +0 -0
  280. blurdev/resource/img/logger/logging_warning.png +0 -0
  281. blurdev/resource/img/logger/next.png +0 -0
  282. blurdev/resource/img/logger/play.png +0 -0
  283. blurdev/resource/img/logger/playlist_play.png +0 -0
  284. blurdev/resource/img/logger/previous.png +0 -0
  285. blurdev/resource/img/logger/return.png +0 -0
  286. blurdev/resource/img/logger/save.png +0 -0
  287. blurdev/resource/img/logger/subdirectory_arrow_right.png +0 -0
  288. blurdev/resource/img/logger/up.png +0 -0
  289. blurdev/resource/img/lovebar.png +0 -0
  290. blurdev/resource/img/new.png +0 -0
  291. blurdev/resource/img/new_selected.png +0 -0
  292. blurdev/resource/img/node.png +0 -0
  293. blurdev/resource/img/ok.png +0 -0
  294. blurdev/resource/img/options.png +0 -0
  295. blurdev/resource/img/packages.png +0 -0
  296. blurdev/resource/img/preview/add.png +0 -0
  297. blurdev/resource/img/preview/brush.png +0 -0
  298. blurdev/resource/img/preview/delete.png +0 -0
  299. blurdev/resource/img/preview/delte.png +0 -0
  300. blurdev/resource/img/preview/fill.png +0 -0
  301. blurdev/resource/img/preview/layers.png +0 -0
  302. blurdev/resource/img/preview/media.png +0 -0
  303. blurdev/resource/img/preview/navigate.png +0 -0
  304. blurdev/resource/img/preview/pencil.png +0 -0
  305. blurdev/resource/img/preview/select.png +0 -0
  306. blurdev/resource/img/preview/type.png +0 -0
  307. blurdev/resource/img/preview/visible.png +0 -0
  308. blurdev/resource/img/project.png +0 -0
  309. blurdev/resource/img/python_logger.ico +0 -0
  310. blurdev/resource/img/python_logger.png +0 -0
  311. blurdev/resource/img/refresh.png +0 -0
  312. blurdev/resource/img/remove.png +0 -0
  313. blurdev/resource/img/reset.png +0 -0
  314. blurdev/resource/img/richtext/font_bold.png +0 -0
  315. blurdev/resource/img/richtext/font_italic.png +0 -0
  316. blurdev/resource/img/richtext/link_image.png +0 -0
  317. blurdev/resource/img/richtext/spell_check.png +0 -0
  318. blurdev/resource/img/richtext/unordered_list.png +0 -0
  319. blurdev/resource/img/save.png +0 -0
  320. blurdev/resource/img/savesettings.png +0 -0
  321. blurdev/resource/img/settings.png +0 -0
  322. blurdev/resource/img/tool.png +0 -0
  323. blurdev/resource/img/toolbarHandleHorizontal.png +0 -0
  324. blurdev/resource/img/toolbarHandleVertical.png +0 -0
  325. blurdev/resource/img/trash.png +0 -0
  326. blurdev/resource/img/trax.png +0 -0
  327. blurdev/resource/img/tree.png +0 -0
  328. blurdev/resource/img/treegrunt.ico +0 -0
  329. blurdev/resource/img/treegrunt.png +0 -0
  330. blurdev/resource/img/treegruntedit.png +0 -0
  331. blurdev/resource/img/user interface.png +0 -0
  332. blurdev/resource/img/warning.png +0 -0
  333. blurdev/resource/img/watermark.png +0 -0
  334. blurdev/resource/sdk/blurdev.sdk +0 -3
  335. blurdev/resource/settings.ini +0 -82
  336. blurdev/resource/softimage/BlurApplication.dll +0 -0
  337. blurdev/resource/softimage/BlurApplication64.dll +0 -0
  338. blurdev/resource/stylesheet/Carbon.css +0 -35
  339. blurdev/resource/stylesheet/logger/Dark.css +0 -62
  340. blurdev/resource/templ/py_comment.templ +0 -1
  341. blurdev/resource/templ/py_debug_raise_error.templ +0 -7
  342. blurdev/resource/templ/py_doc_string.templ +0 -10
  343. blurdev/resource/templ/py_header.templ +0 -9
  344. blurdev/resource/templ/py_line_comment.templ +0 -1
  345. blurdev/resource/templ/py_log_to_file.templ +0 -22
  346. blurdev/resource/templ/py_module_path.templ +0 -1
  347. blurdev/resource/templ/py_pyqt_core.templ +0 -1
  348. blurdev/resource/templ/py_pyqt_gui.templ +0 -1
  349. blurdev/resource/templ/py_splashscreen.templ +0 -6
  350. blurdev/resource/templ/py_testing_note.templ +0 -1
  351. blurdev/resource/templ/py_testing_note_end.templ +0 -1
  352. blurdev/resource/tools_environments.json +0 -72
  353. blurdev/resource/tools_environments.xml +0 -11
  354. blurdev/resource/tools_environments_linux.xml +0 -11
  355. blurdev/resource/tools_environments_offline.xml +0 -7
  356. blurdev/runtimes/__init__.py +0 -2
  357. blurdev/runtimes/logger.py +0 -44
  358. blurdev/scintilla/delayables/__init__.py +0 -9
  359. blurdev/settings.py +0 -312
  360. blurdev/utils/error.py +0 -389
  361. {blurdev/scintilla/lexers → preditor/cores}/__init__.py +0 -0
  362. {blurdev/utils → preditor/gui/fuzzy_search}/__init__.py +0 -0
  363. {blurdev → preditor}/resource/img/warning-big.png +0 -0
@@ -1,250 +1,240 @@
1
- ##
2
- # \namespace blurdev.scintilla.lang.language
3
- #
4
- # \remarks [desc::commented]
5
- #
6
- # \author eric@blur.com
7
- # \author Blur Studio
8
- # \date 05/16/11
9
- #
10
-
11
- from __future__ import print_function
12
- from __future__ import absolute_import
13
- import sys
14
- import re
15
-
16
- try:
17
- from configparser import ConfigParser
18
- except ImportError:
19
- from ConfigParser import ConfigParser
20
-
21
- from Qt import Qsci
22
-
23
-
24
- class MethodDescriptor(object):
25
- def __init__(self, dtype, expr):
26
- self.dtype = dtype
27
- self.exprText = expr
28
- try:
29
- self.expr = re.compile(expr, re.DOTALL | re.MULTILINE)
30
- except Exception:
31
- print('error generating expression', expr)
32
- self.expr = None
33
-
34
- def search(self, text, startpos=-1):
35
- if not self.expr:
36
- return None
37
-
38
- if startpos != -1:
39
- return self.expr.search(text, startpos)
40
- else:
41
- return self.expr.search(text)
42
-
43
-
44
- class Language(object):
45
- def __init__(self):
46
- self._name = ''
47
- self._fileTypes = []
48
-
49
- # lexer class information
50
- self._lexerClass = -1
51
- self._lexerClassName = ''
52
- self._lexerModule = ''
53
- self._lexerColorTypes = {}
54
- self._custom = False
55
- self._sourcefile = ''
56
-
57
- # comment information
58
- self._lineComment = ''
59
-
60
- # method descriptors
61
- self._descriptors = []
62
-
63
- def addDescriptor(self, type, expr):
64
- self._descriptors.append(MethodDescriptor(type, expr))
65
-
66
- def createLexer(self, parent=None):
67
- # create an instance of the lexer
68
- cls = self.lexerClass()
69
- if not cls:
70
- return None
71
-
72
- output = cls(parent)
73
- if output and parent:
74
- output.setFont(parent.font())
75
- return output
76
-
77
- def descriptors(self):
78
- return self._descriptors
79
-
80
- def isCustom(self):
81
- return self._custom
82
-
83
- def name(self):
84
- return self._name
85
-
86
- def lexerColorTypes(self):
87
- return self._lexerColorTypes
88
-
89
- def lineComment(self):
90
- return self._lineComment
91
-
92
- def fileTypes(self):
93
- return self._fileTypes
94
-
95
- def lexerClass(self):
96
- if self._lexerClass == -1:
97
- # use a custom lexer module
98
- if self._lexerModule:
99
- # retrieve the lexer module
100
- module = sys.modules.get(self._lexerModule)
101
-
102
- # try to import the module
103
- if not module:
104
- try:
105
- __import__(self._lexerModule)
106
- module = sys.modules.get(self._lexerModule)
107
- except Exception:
108
- print(
109
- (
110
- '[blurdev.scintilla.lexers.Language.createLexer() Error] '
111
- 'Could not import %s module'
112
- )
113
- % self._lexerModule
114
- )
115
- self._lexerClass = None
116
- return None
117
-
118
- # otherwise, its in the Qsci module
119
- else:
120
- module = Qsci
121
-
122
- # retrieve the lexer class
123
- self._lexerClass = module.__dict__.get(self._lexerClassName)
124
- if not self._lexerClass:
125
- print(
126
- (
127
- '[blurdev.scintilla.lexers.Language.createLexer() Error] '
128
- 'No %s class in %s'
129
- )
130
- % (self._lexerClassName, module.__name__)
131
- )
132
-
133
- return self._lexerClass
134
-
135
- def lexerClassName(self):
136
- return self._lexerClassName
137
-
138
- def lexerModule(self):
139
- return self._lexerModule
140
-
141
- def save(self, filename=''):
142
- if not filename:
143
- filename = self.filename()
144
- if not filename:
145
- return False
146
-
147
- parser = ConfigParser()
148
- parser.add_section('GLOBALS')
149
- parser.set('GLOBALS', 'name', self.name())
150
- parser.set('GLOBALS', 'filetypes', ';'.join(self.fileTypes()))
151
- # quotes are to preserve spaces which configparser strips out
152
- parser.set('GLOBALS', 'linecomment', '"{}"'.format(self.lineComment()))
153
-
154
- parser.add_section('LEXER')
155
- parser.set('LEXER', 'class', self.lexerClassName())
156
- parser.set('LEXER', 'module', self.lexerModule())
157
-
158
- parser.add_section('DESCRIPTORS')
159
- for i, desc in enumerate(self._descriptors):
160
- parser.set('DESCRIPTORS', '%s%i' % (desc.dtype, i), desc.exprText)
161
-
162
- parser.add_section('COLOR_TYPES')
163
- for key, value in self.lexerColorTypes().items():
164
- parser.set('COLOR_TYPES', key, ','.join([str(val) for val in value]))
165
-
166
- # save the language
167
- f = open(filename, 'w')
168
- parser.write(f)
169
- f.close()
170
-
171
- self._sourcefile = filename
172
- return True
173
-
174
- def setCustom(self, state):
175
- self._custom = state
176
-
177
- def setFileTypes(self, fileTypes):
178
- self._fileTypes = fileTypes
179
-
180
- def setLexerClassName(self, className):
181
- self._lexerClassName = className
182
-
183
- def setLexerModule(self, module):
184
- self._lexerModule = module
185
-
186
- def setLineComment(self, lineComment):
187
- self._lineComment = lineComment
188
-
189
- def setLexerColorTypes(self, lexerColorTypes):
190
- self._lexerColorTypes = lexerColorTypes
191
-
192
- def setName(self, name):
193
- self._name = name
194
-
195
- def sourcefile(self):
196
- return self._sourcefile
197
-
198
- @staticmethod
199
- def fromConfig(filename):
200
- parser = ConfigParser()
201
-
202
- if not parser.read(filename):
203
- return False
204
-
205
- plugin = Language()
206
- plugin._name = parser.get('GLOBALS', 'name')
207
- plugin._fileTypes = parser.get('GLOBALS', 'filetypes').split(';')
208
-
209
- # try to load the line comment information
210
- try:
211
- plugin._lineComment = parser.get('GLOBALS', 'linecomment').strip('"')
212
- except Exception:
213
- pass
214
-
215
- # try to load the lexer information
216
- try:
217
- plugin._lexerClassName = parser.get('LEXER', 'class')
218
- plugin._lexerModule = parser.get('LEXER', 'module')
219
- except Exception:
220
- pass
221
-
222
- # load the different descriptor options
223
- try:
224
- options = parser.options('DESCRIPTORS')
225
- except Exception:
226
- options = []
227
-
228
- for option in options:
229
- expr = parser.get('DESCRIPTORS', option)
230
- option = re.match(r'([^\d]*)\d*', option).groups()[0]
231
- plugin._descriptors.append(MethodDescriptor(option, expr))
232
-
233
- # load the different color map options
234
- try:
235
- options = parser.options('COLOR_TYPES')
236
- except Exception:
237
- options = []
238
-
239
- for option in options:
240
- vals = []
241
- for val in parser.get('COLOR_TYPES', option).split(','):
242
- try:
243
- vals.append(int(val))
244
- except Exception:
245
- pass
246
- plugin._lexerColorTypes[option] = vals
247
-
248
- plugin._sourcefile = filename
249
-
250
- return plugin
1
+ from __future__ import absolute_import, print_function
2
+
3
+ import re
4
+ import sys
5
+
6
+ try:
7
+ from configparser import ConfigParser
8
+ except ImportError:
9
+ from ConfigParser import ConfigParser
10
+
11
+ from PyQt5 import Qsci
12
+
13
+
14
+ class MethodDescriptor(object):
15
+ def __init__(self, dtype, expr):
16
+ self.dtype = dtype
17
+ self.exprText = expr
18
+ try:
19
+ self.expr = re.compile(expr, re.DOTALL | re.MULTILINE)
20
+ except Exception:
21
+ print('error generating expression', expr)
22
+ self.expr = None
23
+
24
+ def search(self, text, startpos=-1):
25
+ if not self.expr:
26
+ return None
27
+
28
+ if startpos != -1:
29
+ return self.expr.search(text, startpos)
30
+ else:
31
+ return self.expr.search(text)
32
+
33
+
34
+ class Language(object):
35
+ def __init__(self):
36
+ self._name = ''
37
+ self._fileTypes = []
38
+
39
+ # lexer class information
40
+ self._lexerClass = -1
41
+ self._lexerClassName = ''
42
+ self._lexerModule = ''
43
+ self._lexerColorTypes = {}
44
+ self._custom = False
45
+ self._sourcefile = ''
46
+
47
+ # comment information
48
+ self._lineComment = ''
49
+
50
+ # method descriptors
51
+ self._descriptors = []
52
+
53
+ def addDescriptor(self, type, expr):
54
+ self._descriptors.append(MethodDescriptor(type, expr))
55
+
56
+ def createLexer(self, parent=None):
57
+ # create an instance of the lexer
58
+ cls = self.lexerClass()
59
+ if not cls:
60
+ return None
61
+
62
+ output = cls(parent)
63
+ if output and parent:
64
+ output.setFont(parent.font())
65
+ return output
66
+
67
+ def descriptors(self):
68
+ return self._descriptors
69
+
70
+ def isCustom(self):
71
+ return self._custom
72
+
73
+ def name(self):
74
+ return self._name
75
+
76
+ def lexerColorTypes(self):
77
+ return self._lexerColorTypes
78
+
79
+ def lineComment(self):
80
+ return self._lineComment
81
+
82
+ def fileTypes(self):
83
+ return self._fileTypes
84
+
85
+ def lexerClass(self):
86
+ if self._lexerClass == -1:
87
+ # use a custom lexer module
88
+ if self._lexerModule:
89
+ # retrieve the lexer module
90
+ module = sys.modules.get(self._lexerModule)
91
+
92
+ # try to import the module
93
+ if not module:
94
+ try:
95
+ __import__(self._lexerModule)
96
+ module = sys.modules.get(self._lexerModule)
97
+ except Exception:
98
+ print(
99
+ (
100
+ '[preditor.scintilla.lexers.Language.createLexer() '
101
+ 'Error] Could not import %s module'
102
+ )
103
+ % self._lexerModule
104
+ )
105
+ self._lexerClass = None
106
+ return None
107
+
108
+ # otherwise, its in the Qsci module
109
+ else:
110
+ module = Qsci
111
+
112
+ # retrieve the lexer class
113
+ self._lexerClass = module.__dict__.get(self._lexerClassName)
114
+ if not self._lexerClass:
115
+ print(
116
+ (
117
+ '[preditor.scintilla.lexers.Language.createLexer() Error] '
118
+ 'No %s class in %s'
119
+ )
120
+ % (self._lexerClassName, module.__name__)
121
+ )
122
+
123
+ return self._lexerClass
124
+
125
+ def lexerClassName(self):
126
+ return self._lexerClassName
127
+
128
+ def lexerModule(self):
129
+ return self._lexerModule
130
+
131
+ def save(self, filename=''):
132
+ if not filename:
133
+ filename = self.filename()
134
+ if not filename:
135
+ return False
136
+
137
+ parser = ConfigParser()
138
+ parser.add_section('GLOBALS')
139
+ parser.set('GLOBALS', 'name', self.name())
140
+ parser.set('GLOBALS', 'filetypes', ';'.join(self.fileTypes()))
141
+ # quotes are to preserve spaces which configparser strips out
142
+ parser.set('GLOBALS', 'linecomment', '"{}"'.format(self.lineComment()))
143
+
144
+ parser.add_section('LEXER')
145
+ parser.set('LEXER', 'class', self.lexerClassName())
146
+ parser.set('LEXER', 'module', self.lexerModule())
147
+
148
+ parser.add_section('DESCRIPTORS')
149
+ for i, desc in enumerate(self._descriptors):
150
+ parser.set('DESCRIPTORS', '%s%i' % (desc.dtype, i), desc.exprText)
151
+
152
+ parser.add_section('COLOR_TYPES')
153
+ for key, value in self.lexerColorTypes().items():
154
+ parser.set('COLOR_TYPES', key, ','.join([str(val) for val in value]))
155
+
156
+ # save the language
157
+ f = open(filename, 'w')
158
+ parser.write(f)
159
+ f.close()
160
+
161
+ self._sourcefile = filename
162
+ return True
163
+
164
+ def setCustom(self, state):
165
+ self._custom = state
166
+
167
+ def setFileTypes(self, fileTypes):
168
+ self._fileTypes = fileTypes
169
+
170
+ def setLexerClassName(self, className):
171
+ self._lexerClassName = className
172
+
173
+ def setLexerModule(self, module):
174
+ self._lexerModule = module
175
+
176
+ def setLineComment(self, lineComment):
177
+ self._lineComment = lineComment
178
+
179
+ def setLexerColorTypes(self, lexerColorTypes):
180
+ self._lexerColorTypes = lexerColorTypes
181
+
182
+ def setName(self, name):
183
+ self._name = name
184
+
185
+ def sourcefile(self):
186
+ return self._sourcefile
187
+
188
+ @staticmethod
189
+ def fromConfig(filename):
190
+ parser = ConfigParser()
191
+
192
+ if not parser.read(filename):
193
+ return False
194
+
195
+ plugin = Language()
196
+ plugin._name = parser.get('GLOBALS', 'name')
197
+ plugin._fileTypes = parser.get('GLOBALS', 'filetypes').split(';')
198
+
199
+ # try to load the line comment information
200
+ try:
201
+ plugin._lineComment = parser.get('GLOBALS', 'linecomment').strip('"')
202
+ except Exception:
203
+ pass
204
+
205
+ # try to load the lexer information
206
+ try:
207
+ plugin._lexerClassName = parser.get('LEXER', 'class')
208
+ plugin._lexerModule = parser.get('LEXER', 'module')
209
+ except Exception:
210
+ pass
211
+
212
+ # load the different descriptor options
213
+ try:
214
+ options = parser.options('DESCRIPTORS')
215
+ except Exception:
216
+ options = []
217
+
218
+ for option in options:
219
+ expr = parser.get('DESCRIPTORS', option)
220
+ option = re.match(r'([^\d]*)\d*', option).groups()[0]
221
+ plugin._descriptors.append(MethodDescriptor(option, expr))
222
+
223
+ # load the different color map options
224
+ try:
225
+ options = parser.options('COLOR_TYPES')
226
+ except Exception:
227
+ options = []
228
+
229
+ for option in options:
230
+ vals = []
231
+ for val in parser.get('COLOR_TYPES', option).split(','):
232
+ try:
233
+ vals.append(int(val))
234
+ except Exception:
235
+ pass
236
+ plugin._lexerColorTypes[option] = vals
237
+
238
+ plugin._sourcefile = filename
239
+
240
+ return plugin
File without changes
@@ -1,30 +1,21 @@
1
- ##
2
- # \namespace blurdev.scintilla.lexers.pythonlexer
3
- #
4
- # \remarks Defines a class for parsing C++ files with smart highlighting
5
- #
6
- # \author beta@blur.com
7
- # \author Blur Studio
8
- # \date 08/19/10
9
- #
10
-
11
- from __future__ import absolute_import
12
- from Qt.Qsci import QsciLexerCPP
13
- from Qt.QtGui import QColor
14
-
15
-
16
- class CppLexer(QsciLexerCPP):
17
- # Items in this list will be highlighted using the color for self.KeywordSet2
18
- highlightedKeywords = ''
19
-
20
- def defaultPaper(self, style):
21
- if style == self.CommentLine:
22
- # Set the highlight color for this lexer
23
- return QColor(155, 255, 155)
24
- return super(CppLexer, self).defaultPaper(style)
25
-
26
- def keywords(self, style):
27
- # Words to be highlighted
28
- if style == self.CommentLine and self.highlightedKeywords:
29
- return self.highlightedKeywords
30
- return super(CppLexer, self).keywords(style)
1
+ from __future__ import absolute_import
2
+
3
+ from PyQt5.Qsci import QsciLexerCPP
4
+ from Qt.QtGui import QColor
5
+
6
+
7
+ class CppLexer(QsciLexerCPP):
8
+ # Items in this list will be highlighted using the color for self.KeywordSet2
9
+ highlightedKeywords = ''
10
+
11
+ def defaultPaper(self, style):
12
+ if style == self.CommentLine:
13
+ # Set the highlight color for this lexer
14
+ return QColor(155, 255, 155)
15
+ return super(CppLexer, self).defaultPaper(style)
16
+
17
+ def keywords(self, style):
18
+ # Words to be highlighted
19
+ if style == self.CommentLine and self.highlightedKeywords:
20
+ return self.highlightedKeywords
21
+ return super(CppLexer, self).keywords(style)
@@ -1,34 +1,25 @@
1
- ##
2
- # \namespace blurdev.scintilla.lexers.pythonlexer
3
- #
4
- # \remarks Defines a class for parsing C++ files with smart highlighting
5
- #
6
- # \author beta@blur.com
7
- # \author Blur Studio
8
- # \date 08/19/10
9
- #
10
-
11
- from __future__ import absolute_import
12
- from Qt.Qsci import QsciLexerJavaScript
13
- from Qt.QtGui import QColor
14
-
15
-
16
- class JavaScriptLexer(QsciLexerJavaScript):
17
- # Items in this list will be highlighted using the color for self.KeywordSet2
18
- highlightedKeywords = ''
19
-
20
- def defaultFont(self, index):
21
- # HACK: TODO: I should probably preserve the existing fonts
22
- return self.font(0)
23
-
24
- def defaultPaper(self, style):
25
- if style == self.KeywordSet2:
26
- # Set the highlight color for this lexer
27
- return QColor(155, 255, 155)
28
- return super(JavaScriptLexer, self).defaultPaper(style)
29
-
30
- def keywords(self, style):
31
- # Words to be highlighted
32
- if style == 2 and self.highlightedKeywords:
33
- return self.highlightedKeywords
34
- return super(JavaScriptLexer, self).keywords(style)
1
+ from __future__ import absolute_import
2
+
3
+ from PyQt5.Qsci import QsciLexerJavaScript
4
+ from Qt.QtGui import QColor
5
+
6
+
7
+ class JavaScriptLexer(QsciLexerJavaScript):
8
+ # Items in this list will be highlighted using the color for self.KeywordSet2
9
+ highlightedKeywords = ''
10
+
11
+ def defaultFont(self, index):
12
+ # HACK: TODO: I should probably preserve the existing fonts
13
+ return self.font(0)
14
+
15
+ def defaultPaper(self, style):
16
+ if style == self.KeywordSet2:
17
+ # Set the highlight color for this lexer
18
+ return QColor(155, 255, 155)
19
+ return super(JavaScriptLexer, self).defaultPaper(style)
20
+
21
+ def keywords(self, style):
22
+ # Words to be highlighted
23
+ if style == 2 and self.highlightedKeywords:
24
+ return self.highlightedKeywords
25
+ return super(JavaScriptLexer, self).keywords(style)