PrEditor 1.0.0__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 (158) hide show
  1. preditor/__init__.py +322 -0
  2. preditor/__main__.py +13 -0
  3. preditor/about_module.py +161 -0
  4. preditor/cli.py +192 -0
  5. preditor/config.py +302 -0
  6. preditor/contexts.py +119 -0
  7. preditor/cores/__init__.py +0 -0
  8. preditor/cores/core.py +20 -0
  9. preditor/dccs/maya/PrEditor_maya.mod +2 -0
  10. preditor/dccs/maya/plug-ins/PrEditor_maya.py +110 -0
  11. preditor/debug.py +144 -0
  12. preditor/delayable_engine/__init__.py +302 -0
  13. preditor/delayable_engine/delayables.py +85 -0
  14. preditor/enum.py +728 -0
  15. preditor/excepthooks.py +131 -0
  16. preditor/gui/__init__.py +93 -0
  17. preditor/gui/app.py +160 -0
  18. preditor/gui/codehighlighter.py +209 -0
  19. preditor/gui/completer.py +226 -0
  20. preditor/gui/console.py +867 -0
  21. preditor/gui/dialog.py +178 -0
  22. preditor/gui/drag_tab_bar.py +190 -0
  23. preditor/gui/editor_chooser.py +57 -0
  24. preditor/gui/errordialog.py +68 -0
  25. preditor/gui/find_files.py +125 -0
  26. preditor/gui/fuzzy_search/__init__.py +0 -0
  27. preditor/gui/fuzzy_search/fuzzy_search.py +93 -0
  28. preditor/gui/group_tab_widget/__init__.py +325 -0
  29. preditor/gui/group_tab_widget/grouped_tab_menu.py +35 -0
  30. preditor/gui/group_tab_widget/grouped_tab_models.py +108 -0
  31. preditor/gui/group_tab_widget/grouped_tab_widget.py +78 -0
  32. preditor/gui/group_tab_widget/one_tab_widget.py +54 -0
  33. preditor/gui/level_buttons.py +343 -0
  34. preditor/gui/logger_window_handler.py +48 -0
  35. preditor/gui/logger_window_plugin.py +32 -0
  36. preditor/gui/loggerwindow.py +1385 -0
  37. preditor/gui/newtabwidget.py +69 -0
  38. preditor/gui/set_text_editor_path_dialog.py +59 -0
  39. preditor/gui/status_label.py +99 -0
  40. preditor/gui/suggest_path_quotes_dialog.py +50 -0
  41. preditor/gui/ui/editor_chooser.ui +93 -0
  42. preditor/gui/ui/errordialog.ui +74 -0
  43. preditor/gui/ui/find_files.ui +140 -0
  44. preditor/gui/ui/loggerwindow.ui +1105 -0
  45. preditor/gui/ui/set_text_editor_path_dialog.ui +189 -0
  46. preditor/gui/ui/suggest_path_quotes_dialog.ui +225 -0
  47. preditor/gui/window.py +161 -0
  48. preditor/gui/workbox_mixin.py +389 -0
  49. preditor/gui/workbox_text_edit.py +137 -0
  50. preditor/gui/workboxwidget.py +298 -0
  51. preditor/logging_config.py +52 -0
  52. preditor/osystem.py +401 -0
  53. preditor/plugins.py +118 -0
  54. preditor/prefs.py +74 -0
  55. preditor/resource/environment_variables.html +26 -0
  56. preditor/resource/error_mail.html +85 -0
  57. preditor/resource/error_mail_inline.html +41 -0
  58. preditor/resource/img/README.md +17 -0
  59. preditor/resource/img/arrow_forward.png +0 -0
  60. preditor/resource/img/check-bold.png +0 -0
  61. preditor/resource/img/chevron-down.png +0 -0
  62. preditor/resource/img/chevron-up.png +0 -0
  63. preditor/resource/img/close-thick.png +0 -0
  64. preditor/resource/img/comment-edit.png +0 -0
  65. preditor/resource/img/content-copy.png +0 -0
  66. preditor/resource/img/content-cut.png +0 -0
  67. preditor/resource/img/content-duplicate.png +0 -0
  68. preditor/resource/img/content-paste.png +0 -0
  69. preditor/resource/img/content-save.png +0 -0
  70. preditor/resource/img/debug_disabled.png +0 -0
  71. preditor/resource/img/eye-check.png +0 -0
  72. preditor/resource/img/file-plus.png +0 -0
  73. preditor/resource/img/file-remove.png +0 -0
  74. preditor/resource/img/format-align-left.png +0 -0
  75. preditor/resource/img/format-letter-case-lower.png +0 -0
  76. preditor/resource/img/format-letter-case-upper.png +0 -0
  77. preditor/resource/img/format-letter-case.svg +1 -0
  78. preditor/resource/img/information.png +0 -0
  79. preditor/resource/img/logging_critical.png +0 -0
  80. preditor/resource/img/logging_custom.png +0 -0
  81. preditor/resource/img/logging_debug.png +0 -0
  82. preditor/resource/img/logging_error.png +0 -0
  83. preditor/resource/img/logging_info.png +0 -0
  84. preditor/resource/img/logging_not_set.png +0 -0
  85. preditor/resource/img/logging_warning.png +0 -0
  86. preditor/resource/img/marker.png +0 -0
  87. preditor/resource/img/play.png +0 -0
  88. preditor/resource/img/playlist-play.png +0 -0
  89. preditor/resource/img/plus-minus-variant.png +0 -0
  90. preditor/resource/img/preditor.ico +0 -0
  91. preditor/resource/img/preditor.png +0 -0
  92. preditor/resource/img/preditor.psd +0 -0
  93. preditor/resource/img/preditor.svg +44 -0
  94. preditor/resource/img/regex.svg +1 -0
  95. preditor/resource/img/restart.svg +1 -0
  96. preditor/resource/img/skip-forward-outline.png +0 -0
  97. preditor/resource/img/skip-next-outline.png +0 -0
  98. preditor/resource/img/skip-next.png +0 -0
  99. preditor/resource/img/skip-previous.png +0 -0
  100. preditor/resource/img/subdirectory-arrow-right.png +0 -0
  101. preditor/resource/img/text-search-variant.png +0 -0
  102. preditor/resource/img/warning-big.png +0 -0
  103. preditor/resource/lang/python.json +30 -0
  104. preditor/resource/settings.ini +25 -0
  105. preditor/resource/stylesheet/Bright.css +65 -0
  106. preditor/resource/stylesheet/Dark.css +199 -0
  107. preditor/scintilla/__init__.py +22 -0
  108. preditor/scintilla/delayables/__init__.py +11 -0
  109. preditor/scintilla/delayables/smart_highlight.py +94 -0
  110. preditor/scintilla/delayables/spell_check.py +173 -0
  111. preditor/scintilla/documenteditor.py +2038 -0
  112. preditor/scintilla/finddialog.py +68 -0
  113. preditor/scintilla/lang/__init__.py +80 -0
  114. preditor/scintilla/lang/config/bash.ini +15 -0
  115. preditor/scintilla/lang/config/batch.ini +14 -0
  116. preditor/scintilla/lang/config/cpp.ini +19 -0
  117. preditor/scintilla/lang/config/css.ini +19 -0
  118. preditor/scintilla/lang/config/eyeonscript.ini +17 -0
  119. preditor/scintilla/lang/config/html.ini +21 -0
  120. preditor/scintilla/lang/config/javascript.ini +24 -0
  121. preditor/scintilla/lang/config/lua.ini +16 -0
  122. preditor/scintilla/lang/config/maxscript.ini +20 -0
  123. preditor/scintilla/lang/config/mel.ini +18 -0
  124. preditor/scintilla/lang/config/mu.ini +22 -0
  125. preditor/scintilla/lang/config/nsi.ini +19 -0
  126. preditor/scintilla/lang/config/perl.ini +19 -0
  127. preditor/scintilla/lang/config/puppet.ini +19 -0
  128. preditor/scintilla/lang/config/python.ini +28 -0
  129. preditor/scintilla/lang/config/ruby.ini +19 -0
  130. preditor/scintilla/lang/config/sql.ini +7 -0
  131. preditor/scintilla/lang/config/xml.ini +21 -0
  132. preditor/scintilla/lang/config/yaml.ini +18 -0
  133. preditor/scintilla/lang/language.py +240 -0
  134. preditor/scintilla/lexers/__init__.py +0 -0
  135. preditor/scintilla/lexers/cpplexer.py +21 -0
  136. preditor/scintilla/lexers/javascriptlexer.py +25 -0
  137. preditor/scintilla/lexers/maxscriptlexer.py +234 -0
  138. preditor/scintilla/lexers/mellexer.py +368 -0
  139. preditor/scintilla/lexers/mulexer.py +32 -0
  140. preditor/scintilla/lexers/pythonlexer.py +41 -0
  141. preditor/scintilla/ui/finddialog.ui +160 -0
  142. preditor/settings.py +71 -0
  143. preditor/stream/__init__.py +80 -0
  144. preditor/stream/director.py +73 -0
  145. preditor/stream/manager.py +74 -0
  146. preditor/streamhandler_helper.py +46 -0
  147. preditor/utils/__init__.py +0 -0
  148. preditor/utils/cute.py +30 -0
  149. preditor/utils/stylesheets.py +54 -0
  150. preditor/utils/text_search.py +342 -0
  151. preditor/version.py +21 -0
  152. preditor/weakref.py +363 -0
  153. preditor-1.0.0.dist-info/METADATA +224 -0
  154. preditor-1.0.0.dist-info/RECORD +158 -0
  155. preditor-1.0.0.dist-info/WHEEL +5 -0
  156. preditor-1.0.0.dist-info/entry_points.txt +18 -0
  157. preditor-1.0.0.dist-info/licenses/LICENSE +165 -0
  158. preditor-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,85 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <style>
5
+ body {
6
+ font-family: Verdana, sans-serif;
7
+ font-size: 12px;
8
+ color: #484848;
9
+ background: white;
10
+ }
11
+ p {
12
+ margin: 0;
13
+ padding: 0;
14
+ }
15
+ h1, h2, h3 {
16
+ font-family: "Trebuchet MS", Verdana, sans-serif;
17
+ margin: 0 0 10px 0;
18
+ padding: 0;
19
+ }
20
+ h1 {
21
+ font-size: 16px;
22
+ }
23
+ h2 {
24
+ font-size: 15px;
25
+ }
26
+ h3 {
27
+ font-size: 14px;
28
+ }
29
+ ul {
30
+ margin: 0 0 10px 10px;
31
+ padding: 0;
32
+ list-style: none;
33
+ }
34
+ li {
35
+ margin: 0;
36
+ padding: 0;
37
+ }
38
+ .information, .traceback, .error_report, .footer {
39
+ margin: 0;
40
+ padding: 0;
41
+ }
42
+ .footer {
43
+ border-top: solid black 1px;
44
+ padding: 10px 0 0 0;
45
+ }
46
+ </style>
47
+ </head>
48
+ <body>
49
+ <h1>{{ subject }}</h1>
50
+ <div class="information">
51
+ <h2>Debug Information</h2>
52
+
53
+ {% for label, section_dict in info_dict.items() %}
54
+ <h3>{{ label }}</h3>
55
+ <ul>
56
+ {% for key, value in section_dict.items() %}
57
+ <li><span style="font-weight:bold">{{ key }}:</span> {{ value }}</li>
58
+ {% endfor %}
59
+ </ul>
60
+ {% endfor %}
61
+
62
+ </div>
63
+ <div class="traceback">
64
+ <h2>Trackback</h2>
65
+ {{ highlight_code(traceback) }}
66
+ </div>
67
+
68
+ {% if error_report %}
69
+ <div class="error_report">
70
+ <h2>Error Reports</h2>
71
+
72
+ {% for title, report in error_report %}
73
+ <h3>{{ title }}</h3>
74
+ {{ highlight_code(report) }}
75
+ {% endfor %}
76
+ </div>
77
+ {% endif %}
78
+
79
+ <div class="footer">
80
+ <p class="send_time">{{ send_time }}</p>
81
+ <p>You received this notification because you have either subscribed to it, or are involved in it.</p>
82
+ <p>To change your notification preferences, go into trax and change your options settings.</p>
83
+ </div>
84
+ </body>
85
+ </html>
@@ -0,0 +1,41 @@
1
+ <!-- AUTOGENERATED FROM 'error_mail.html' (see: https://inliner.cm/) -->
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <body style="font-family:Verdana, sans-serif;font-size:12px;color:#484848;background-color:white;background-image:none;background-repeat:repeat;background-position:top left;background-attachment:scroll;" >
5
+ <h1 style="font-family:'Trebuchet MS', Verdana, sans-serif;margin-top:0;margin-bottom:10px;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;font-size:16px;" >{{ subject }}</h1>
6
+ <div class="information" style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;" >
7
+ <h2 style="font-family:'Trebuchet MS', Verdana, sans-serif;margin-top:0;margin-bottom:10px;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;font-size:15px;" >Debug Information</h2>
8
+
9
+ {% for label, section_dict in info_dict.items() %}
10
+ <h3 style="font-family:'Trebuchet MS', Verdana, sans-serif;margin-top:0;margin-bottom:10px;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;font-size:14px;" >{{ label }}</h3>
11
+ <ul style="margin-top:0;margin-bottom:10px;margin-right:0;margin-left:10px;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;list-style-type:none;list-style-position:outside;list-style-image:none;" >
12
+ {% for key, value in section_dict.items() %}
13
+ <li style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;" ><span style="font-weight:bold;" >{{ key }}:</span> {{ value }}</li>
14
+ {% endfor %}
15
+ </ul>
16
+ {% endfor %}
17
+
18
+ </div>
19
+ <div class="traceback" style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;" >
20
+ <h2 style="font-family:'Trebuchet MS', Verdana, sans-serif;margin-top:0;margin-bottom:10px;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;font-size:15px;" >Trackback</h2>
21
+ {{ highlight_code(traceback) }}
22
+ </div>
23
+
24
+ {% if error_report %}
25
+ <div class="error_report" style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;" >
26
+ <h2 style="font-family:'Trebuchet MS', Verdana, sans-serif;margin-top:0;margin-bottom:10px;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;font-size:15px;" >Error Reports</h2>
27
+
28
+ {% for title, report in error_report %}
29
+ <h3 style="font-family:'Trebuchet MS', Verdana, sans-serif;margin-top:0;margin-bottom:10px;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;font-size:14px;" >{{ title }}</h3>
30
+ {{ highlight_code(report) }}
31
+ {% endfor %}
32
+ </div>
33
+ {% endif %}
34
+
35
+ <div class="footer" style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;border-top-width:1px;border-top-style:solid;border-top-color:black;padding-top:10px;padding-bottom:0;padding-right:0;padding-left:0;" >
36
+ <p class="send_time" style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;" >{{ send_time }}</p>
37
+ <p style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;" >You received this notification because you have either subscribed to it, or are involved in it.</p>
38
+ <p style="margin-top:0;margin-bottom:0;margin-right:0;margin-left:0;padding-top:0;padding-bottom:0;padding-right:0;padding-left:0;" >To change your notification preferences, go into trax and change your options settings.</p>
39
+ </div>
40
+ </body>
41
+ </html>
@@ -0,0 +1,17 @@
1
+ # Preditor icon build from these source images
2
+
3
+ * Predator Icon: https://icon-icons.com/icon/predator/54149
4
+ * Pencil Icon: https://icon-icons.com/icon/pencil/73779
5
+ Converted to multi-resolution icon using: https://convertico.com/svg-to-ico/
6
+
7
+ Most other icons downloaded from https://materialdesignicons.com/.
8
+
9
+ Svg icons are preferred as they are plain text files that play nicely with git.
10
+ Please make sure to update the sources table when adding or updating images.
11
+
12
+ # Sources for resources
13
+
14
+ | File | Source | Notes | Author |
15
+ |---|---|---|---|
16
+ | ![](preditor/resource/img/format-letter-case.svg) [format-letter-case.svg](preditor/resource/img/format-letter-case.svg) | https://pictogrammers.com/library/mdi/icon/format-letter-case/ | | [Austin Andrews](https://pictogrammers.com/contributor/Templarian/) |
17
+ | ![](preditor/resource/img/regex.svg) [regex.svg](preditor/resource/img/regex.svg) | https://pictogrammers.com/library/mdi/icon/regex/ | | [Doug C. Hardester](https://pictogrammers.com/contributor/r3volution11/) |
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.06,18C20,17.83 19.91,17.54 19.86,17.11C19.19,17.81 18.38,18.16 17.45,18.16C16.62,18.16 15.93,17.92 15.4,17.45C14.87,17 14.6,16.39 14.6,15.66C14.6,14.78 14.93,14.1 15.6,13.61C16.27,13.12 17.21,12.88 18.43,12.88H19.83V12.24C19.83,11.75 19.68,11.36 19.38,11.07C19.08,10.78 18.63,10.64 18.05,10.64C17.53,10.64 17.1,10.76 16.75,11C16.4,11.25 16.23,11.54 16.23,11.89H14.77C14.77,11.46 14.92,11.05 15.22,10.65C15.5,10.25 15.93,9.94 16.44,9.71C16.95,9.5 17.5,9.36 18.13,9.36C19.11,9.36 19.87,9.6 20.42,10.09C20.97,10.58 21.26,11.25 21.28,12.11V16C21.28,16.8 21.38,17.42 21.58,17.88V18H20.06M17.66,16.88C18.11,16.88 18.54,16.77 18.95,16.56C19.35,16.35 19.65,16.07 19.83,15.73V14.16H18.7C16.93,14.16 16.04,14.63 16.04,15.57C16.04,16 16.19,16.3 16.5,16.53C16.8,16.76 17.18,16.88 17.66,16.88M5.46,13.71H9.53L7.5,8.29L5.46,13.71M6.64,6H8.36L13.07,18H11.14L10.17,15.43H4.82L3.86,18H1.93L6.64,6Z" /></svg>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,44 @@
1
+ <svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
2
+ <title>Predator_icon-icons</title>
3
+ <style>
4
+ .s0 { fill: #7986cb }
5
+ .s1 { fill: #9fa8da }
6
+ .s2 { fill: #3949ab }
7
+ .s3 { fill: #607d8b }
8
+ .s4 { fill: #1a237e }
9
+ .s5 { fill: #c5cae9 }
10
+ .s6 { fill: #ffaec3 }
11
+ .s7 { fill: #ff9db2 }
12
+ .s8 { fill: #f18da2 }
13
+ .s9 { fill: #eef1f6 }
14
+ .s10 { fill: #594667 }
15
+ .s11 { fill: #ffdf97 }
16
+ </style>
17
+ <g id="Preditor">
18
+ <path id="Layer" class="s0" d="m125.9 284.8l25.5-110.4h209.2l25.5 110.4c4.7 23.2-8.1 46.5-30.2 53.5l-99.9 33.7-99.9-33.7c-22.1-7-36.1-30.3-30.2-53.5z"/>
19
+ <path id="Layer" class="s1" d="m314.1 372c0 12.7-10.5 23.2-23.2 23.2h-69.8c-12.7 0-23.2-10.5-23.2-23.2v-81.4l34.9-34.8h46.4l34.9 34.8z"/>
20
+ <g id="Layer">
21
+ <path id="Layer" class="s2" d="m511.6 337.1c0 7-4.6 11.6-11.6 11.6-7 0-11.6-4.6-11.6-11.6 0-224.3-94.1-275.4-133.6-287 39.5 27.9 110.4 101.1 110.4 268.4v53.5c0 6.9-4.7 11.6-11.7 11.6-6.9 0-11.6-4.7-11.6-11.6v-53.5c0-209.2-116.2-259.1-119.7-261.4-6.9-2.4-9.3-9.3-6.9-15.2 1.1-4.6 5.8-6.9 10.4-6.9 0-7 5.8-11.6 11.6-11.6 7 0 174.3 8.1 174.3 313.7z"/>
22
+ <path id="Layer" class="s2" d="m419.8 313.9v92.9c0 7-4.6 11.6-11.6 11.6-7 0-11.6-4.6-11.6-11.6v-92.9c0-183.6-86-233.6-87.1-233.6-5.9-3.5-8.2-10.5-4.7-16.3 2.3-5.8 9.3-8.1 15.1-4.6 3.5 2.3 98.8 55.8 99.9 254.5z"/>
23
+ <path id="Layer" class="s2" d="m70.1 318.5v53.5c0 6.9-4.7 11.6-11.6 11.6-7 0-11.7-4.7-11.7-11.6v-53.5c0-168.5 72.1-241.7 111.6-268.4-40.7 10.4-134.8 59.2-134.8 287 0 7-4.6 11.6-11.6 11.6-7 0-11.6-4.6-11.6-11.6 0-305.6 167.3-313.7 174.3-313.7 5.8 0 11.6 4.6 11.6 11.6 4.6 0 9.3 2.3 11.6 6.9 2.3 5.9-1.2 12.8-7 15.2-4.6 2.3-120.8 52.2-120.8 261.4z"/>
24
+ <path id="Layer" class="s2" d="m208.4 64c3.4 5.8 1.1 12.8-4.7 16.3-1.2 0-87.1 50-87.1 233.6v92.9c0 7-4.7 11.6-11.7 11.6-6.9 0-11.6-4.6-11.6-11.6v-92.9c0-198.7 95.3-252.2 98.8-254.5 5.8-2.3 12.8-1.2 16.3 4.6z"/>
25
+ </g>
26
+ <path id="Layer" class="s3" d="m128.2 186z"/>
27
+ <path id="Layer" class="s3" d="m128.2 174.4v11.6z"/>
28
+ <path id="Layer" class="s3" d="m81.7 93.1z"/>
29
+ <path id="Layer" class="s4" d="m350.1 196.5c0 0 7 26.7-7 44.1-30.2 39.6-63.9 15.2-68.5 10.5-4.7-4.6-7-19.7-7-19.7 51.1-9.3 82.5-34.9 82.5-34.9z"/>
30
+ <path id="Layer" class="s4" d="m243.2 230.2c0 0-2.3 15.1-7 19.7-4.6 5.9-38.3 29.1-68.5-10.4-14-17.4-7-44.2-7-44.2 0 0 32.6 26.8 82.5 34.9z"/>
31
+ <path id="Layer" class="s1" d="m256 232.5c-77.1 0-139.4-51.9-139.4-116.2 0-64.2 62.3-116.2 139.4-116.2 77.1 0 139.4 52 139.4 116.2 0 64.3-62.3 116.2-139.4 116.2z"/>
32
+ <path id="Layer" class="s0" d="m256 193c-64.3 0-116.2-40.5-116.2-90.6 0-50.2 51.9-90.7 116.2-90.7 64.3 0 116.2 40.5 116.2 90.7 0 50.1-51.9 90.6-116.2 90.6z"/>
33
+ <path id="Layer" class="s5" d="m258.3 155.8c-51.4 0-92.9-32.2-92.9-72 0-39.9 41.5-72.1 92.9-72.1 51.4 0 93 32.2 93 72.1 0 39.8-41.6 72-93 72z"/>
34
+ </g>
35
+ <g id="Pencil">
36
+ <path id="Layer" class="s6" d="m158.6 470l196.6-34.8c-3 3.2-4.6 7.1-3.9 11.5 0.2 2.2 1.3 4.2 2.7 5.8l-192.5 34.1z"/>
37
+ <path id="Layer" class="s7" d="m154.9 449.1l196.6-34.8c-3 3.2-4.6 7.1-3.9 11.5 0.8 4.3 3.7 7.5 7.6 9.4l-196.6 34.8z"/>
38
+ <path id="Layer" class="s8" d="m152.2 432.3l192.5-34.1c-1.1 2.3-1.2 4.3-0.8 6.7 0.8 4.3 3.7 7.5 7.6 9.4l-196.6 34.8z"/>
39
+ <path id="Layer" class="s9" d="m138.7 434.9l13.3-2.3 9.6 54.1-13.3 2.3z"/>
40
+ <path id="Layer" class="s10" d="m148.2 488.9l-27 4.8c-6.4 1.2-12.8-2.6-13.7-8.1l-6-33.5c-0.9-5.5 3.7-11.3 10.1-12.4l27.1-4.8z"/>
41
+ <path id="Layer" class="s11" d="m393 417.7c0.4 2.4 1.3 4.7 3 6.4l-42.2 28.6c-1.4-1.5-2.2-3.4-2.7-5.8-0.7-4.3 0.9-8.3 3.9-11.5-3.9-1.9-6.8-5-7.6-9.4-0.7-4.3 0.9-8.3 3.9-11.5-3.9-1.9-6.8-5.1-7.6-9.4-0.4-2.4-0.1-4.6 0.8-6.6l49.2 12.2c-0.8 2.4-1.1 4.7-0.7 7z"/>
42
+ <path id="Layer" class="s10" d="m410 414.7l-14 9.4c-1.5-1.9-2.6-4-3-6.4-0.4-2.3-0.4-4.8 0.7-7z"/>
43
+ </g>
44
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16,16.92C15.67,16.97 15.34,17 15,17C14.66,17 14.33,16.97 14,16.92V13.41L11.5,15.89C11,15.5 10.5,15 10.11,14.5L12.59,12H9.08C9.03,11.67 9,11.34 9,11C9,10.66 9.03,10.33 9.08,10H12.59L10.11,7.5C10.3,7.25 10.5,7 10.76,6.76V6.76C11,6.5 11.25,6.3 11.5,6.11L14,8.59V5.08C14.33,5.03 14.66,5 15,5C15.34,5 15.67,5.03 16,5.08V8.59L18.5,6.11C19,6.5 19.5,7 19.89,7.5L17.41,10H20.92C20.97,10.33 21,10.66 21,11C21,11.34 20.97,11.67 20.92,12H17.41L19.89,14.5C19.7,14.75 19.5,15 19.24,15.24V15.24C19,15.5 18.75,15.7 18.5,15.89L16,13.41V16.92H16V16.92M5,19A2,2 0 0,1 7,17A2,2 0 0,1 9,19A2,2 0 0,1 7,21A2,2 0 0,1 5,19H5Z" /></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,4C14.1,4 16.1,4.8 17.6,6.3C20.7,9.4 20.7,14.5 17.6,17.6C15.8,19.5 13.3,20.2 10.9,19.9L11.4,17.9C13.1,18.1 14.9,17.5 16.2,16.2C18.5,13.9 18.5,10.1 16.2,7.7C15.1,6.6 13.5,6 12,6V10.6L7,5.6L12,0.6V4M6.3,17.6C3.7,15 3.3,11 5.1,7.9L6.6,9.4C5.5,11.6 5.9,14.4 7.8,16.2C8.3,16.7 8.9,17.1 9.6,17.4L9,19.4C8,19 7.1,18.4 6.3,17.6Z" /></svg>
Binary file
Binary file
Binary file
@@ -0,0 +1,30 @@
1
+ {
2
+ "language": "Python",
3
+ "ext": ".py;.pys;.pyw",
4
+ "comments": [
5
+ "#(?!Result: )[^\\n]*"
6
+ ],
7
+ "strings": [
8
+ "'",
9
+ "\""
10
+ ],
11
+ "keywords": [
12
+ "class",
13
+ "def",
14
+ "elif",
15
+ "else",
16
+ "except",
17
+ "False",
18
+ "for",
19
+ "from",
20
+ "if",
21
+ "import",
22
+ "in",
23
+ "pass",
24
+ "print",
25
+ "self",
26
+ "True",
27
+ "try",
28
+ "while"
29
+ ]
30
+ }
@@ -0,0 +1,25 @@
1
+ [Default]
2
+ bdev_error_email = The Pipe<thePipe+{hash}@blur.com>
3
+
4
+ [Windows]
5
+ bdev_cmd_shell_execfile = "%(filepath)s"
6
+ bdev_cmd_shell_debug = "%(filepath)s"
7
+ bdev_cmd_shell_exec = "%(command)s"
8
+ bdev_cmd_browse = open "%(filepath)s"
9
+ bdev_path_temp = c:/temp
10
+ bdev_path_prefs_shared = \\SNAKE\user\config\%(username)s\userprefs
11
+ bdev_path_blur = c:/blur
12
+ bdev_path_prefs = %appdata%\blur\userprefs
13
+
14
+ [Windows Offline]
15
+ bdev_path_prefs_shared = %APPDATA%/blur/userprefs
16
+
17
+ [Linux]
18
+ bdev_cmd_shell_exec = gnome-terminal -x bash -c "%(command)s && echo Press enter to close && read"
19
+ bdev_cmd_shell_debug = gnome-terminal -x bash -c "%(filepath)s && echo Press enter to close && read"
20
+ bdev_cmd_shell_execfile = bash --rcfile %(filepath)s
21
+ bdev_path_temp = /tmp/
22
+ bdev_path_blur = $HOME/.blur
23
+ bdev_path_prefs_shared = $BDEV_PATH_PREFS
24
+ bdev_path_prefs = $BDEV_PATH_BLUR/userprefs
25
+ bdev_cmd_browse = nemo %(filepath)s
@@ -0,0 +1,65 @@
1
+ DocumentEditor {
2
+ qproperty-pyMarginsForegroundColor: "black";
3
+ qproperty-pyMarginsBackgroundColor: rgb(224, 224, 224);
4
+ qproperty-pySelectionBackgroundColor: rgb(192, 192, 192);
5
+ qproperty-pySelectionForegroundColor: "black";
6
+ qproperty-pyCaretBackgroundColor: "white";
7
+ qproperty-pyCaretForegroundColor: "black";
8
+ qproperty-pyMatchedBraceBackgroundColor: rgb(100, 225, 100);
9
+ qproperty-pyMatchedBraceForegroundColor: "black";
10
+ qproperty-pyUnmatchedBraceBackgroundColor: "white";
11
+ qproperty-pyUnmatchedBraceForegroundColor: "blue";
12
+ qproperty-pyEdgeColor: rgb(100, 45, 45);
13
+
14
+ qproperty-pyIndentationGuidesBackgroundColor: "white";
15
+ qproperty-pyIndentationGuidesForegroundColor : "black";
16
+ qproperty-pyMarkerBackgroundColor: "white";
17
+ qproperty-pyMarkerForegroundColor: "black";
18
+ qproperty-foldMarginsBackgroundColor: rgb(224, 224, 224);
19
+ qproperty-foldMarginsForegroundColor: "white";
20
+ qproperty-braceBadForeground: "black";
21
+ qproperty-braceBadBackground: rgb(250, 100, 100);
22
+
23
+ qproperty-colorDefault: "black";
24
+ qproperty-colorComment: rgb(0, 127, 0);
25
+ qproperty-colorNumber: rgb(0, 127, 127);
26
+ qproperty-colorString: rgb(127, 0, 127);
27
+ qproperty-colorKeyword: rgb(0, 0, 127);
28
+ qproperty-colorTripleQuotedString: rgb(127, 0, 0);
29
+ qproperty-colorMethod: rgb(0, 0, 255);
30
+ qproperty-colorFunction: rgb(0, 127, 127);
31
+ qproperty-colorOperator: "black";
32
+ qproperty-colorIdentifier: "black";
33
+ qproperty-colorCommentBlock: rgb(127, 127, 127);
34
+ qproperty-colorUnclosedString: "black";
35
+ qproperty-colorSmartHighlight: rgb(64, 112, 144);
36
+ qproperty-colorDecorator: rgb(128, 80, 0);
37
+ qproperty-paperDefault: "white";
38
+ qproperty-paperComment: "white";
39
+ qproperty-paperNumber: "white";
40
+ qproperty-paperString: "white";
41
+ qproperty-paperKeyword: "white";
42
+ qproperty-paperTripleQuotedString: "white";
43
+ qproperty-paperMethod: "white";
44
+ qproperty-paperFunction: "white";
45
+ qproperty-paperOperator: "white";
46
+ qproperty-paperIdentifier: "white";
47
+ qproperty-paperCommentBlock: "white";
48
+ qproperty-paperUnclosedString: rgb(224, 192, 224);
49
+ qproperty-paperSmartHighlight: rgba(155, 255, 155, 75);
50
+ qproperty-paperDecorator: "white";
51
+ }
52
+
53
+ ConsolePrEdit, ErrorDialog {
54
+ qproperty-errorMessageColor: rgb(255, 0, 0);
55
+ }
56
+
57
+ ConsolePrEdit {
58
+ color: rgb(0,0,0);
59
+ background-color: rgb(255,255,255);
60
+ qproperty-commentColor: rgb(0, 206, 52);
61
+ qproperty-keywordColor: rgb(17, 154, 255);
62
+ qproperty-resultColor: rgb(128, 128, 128);
63
+ qproperty-stdoutColor: rgb(17, 154, 255);
64
+ qproperty-stringColor: rgb(255, 128, 0);
65
+ }
@@ -0,0 +1,199 @@
1
+ QWidget {
2
+ background-color: rgb(60, 60, 63);
3
+ color: rgb(202, 202, 202);
4
+ }
5
+
6
+ QListView, QTableView, QTreeView, QLineEdit, QTextEdit, QPlainTextEdit, QAbstractSpinBox, QComboBox:editable {
7
+ background-color: rgb(70, 70, 73);
8
+ }
9
+
10
+ QFrame {
11
+ alternate-background-color: rgb(60, 60, 63);
12
+ }
13
+
14
+ QWidget:disabled {
15
+ color: rgb(88, 91, 94);
16
+ }
17
+
18
+ QPushButton:checked, QPushButton:pressed, QToolButton:checked, QToolButton:pressed{
19
+ background-color: rgb(47, 47, 49);
20
+ }
21
+
22
+ QFrame::item:disabled, QFrame::section:disabled {
23
+ color: rgb(52, 52, 54);
24
+ }
25
+
26
+ QLabel, QToolBox {
27
+ background: none;
28
+ }
29
+
30
+ QScrollBar {
31
+ background-color: rgb(60, 60, 63);
32
+ border-radius: 2px;
33
+ }
34
+
35
+ QScrollBar:horizontal {
36
+ padding: 0 16px 0 16px;
37
+ }
38
+
39
+ QScrollBar:vertical {
40
+ padding: 16px 0 16px 0;
41
+ }
42
+
43
+ QScrollBar::handle, QScrollBar::add-line, QScrollBar::sub-line {
44
+ background-color: rgb(78, 81, 84);
45
+ border-radius: 2px;
46
+ border: 1px solid rgb(33, 33, 36);
47
+ }
48
+
49
+ QScrollBar::handle:horizontal, QScrollBar::add-line, QScrollBar::sub-line {
50
+ background: qlineargradient(y1:0, y2:1, stop:0 rgb(78, 81, 84), stop:1 rgb(60, 60, 63));
51
+ }
52
+
53
+ QScrollBar::handle:vertical {
54
+ background: qlineargradient(x1:0, x2:1, stop:0 rgb(78, 81, 84), stop:1 rgb(70, 70, 73));
55
+ }
56
+
57
+ QScrollBar::handle:active, QScrollBar::add-line:active, QScrollBar::sub-line:active {
58
+ background-color: rgb(88, 91, 94);
59
+ }
60
+
61
+ QScrollBar::handle:horizontal {
62
+ min-width: 16px;
63
+ }
64
+
65
+ QScrollBar::handle:vertical {
66
+ min-height: 16px;
67
+ }
68
+
69
+ QScrollBar::add-line, QScrollBar::sub-line{
70
+ width: 8px;
71
+ height: 8px;
72
+ padding: 3px;
73
+ }
74
+
75
+ QScrollBar::add-line:horizontal {
76
+ subcontrol-position: right;
77
+ }
78
+
79
+ QScrollBar::sub-line:horizontal {
80
+ subcontrol-position: left;
81
+ }
82
+ QScrollBar::add-line:vertical {
83
+ subcontrol-position: bottom;
84
+ }
85
+
86
+ QScrollBar::sub-line:vertical {
87
+ subcontrol-position: top;
88
+ }
89
+
90
+ QScrollBar::up-arrow, QScrollBar::down-arrow, QScrollBar::left-arrow, QScrollBar::right-arrow {
91
+ width: 0;
92
+ height: 0;
93
+ border: 4px solid rgba(78, 81, 84, 0);
94
+ }
95
+
96
+ QScrollBar::up-arrow {
97
+ border-bottom-color: rgb(202, 202, 202);
98
+ border-top-width: 0;
99
+ }
100
+
101
+ QScrollBar::down-arrow {
102
+ border-top-color: rgb(202, 202, 202);
103
+ border-bottom-width: 0;
104
+ }
105
+
106
+ QScrollBar::left-arrow {
107
+ border-right-color: rgb(202, 202, 202);
108
+ border-left-width: 0;
109
+ }
110
+
111
+ QScrollBar::right-arrow {
112
+ border-left-color: rgb(202, 202, 202);
113
+ border-right-width: 0;
114
+ }
115
+
116
+ QMenu {
117
+ border-style: solid;
118
+ border-color: rgb(25,25,25);
119
+ border-width: 1px;
120
+ }
121
+
122
+ QMenu:unchecked {
123
+ background-color: none;
124
+ }
125
+
126
+ QMenu:checked {
127
+ background-color: none;
128
+ }
129
+
130
+ QMenu:selected {
131
+ background-color: none;
132
+ }
133
+
134
+ DocumentEditor {
135
+ qproperty-pyMarginsForegroundColor: rgb(202, 202, 202);
136
+ qproperty-pyMarginsBackgroundColor: rgb(70, 70, 73);
137
+ qproperty-pySelectionBackgroundColor: rgb(90, 90, 93);
138
+ qproperty-pySelectionForegroundColor: rgb(240, 240, 240);
139
+ qproperty-pyCaretBackgroundColor: rgb(70, 70, 73);
140
+ qproperty-pyCaretForegroundColor: rgb(255, 255, 255);
141
+ qproperty-pyMatchedBraceBackgroundColor: rgb(60, 60, 63);
142
+ qproperty-pyMatchedBraceForegroundColor: rgb(240, 240, 240);
143
+ qproperty-pyUnmatchedBraceBackgroundColor: rgb(70, 70, 73);
144
+ qproperty-pyUnmatchedBraceForegroundColor: rgb(200, 180, 180);
145
+ qproperty-pyEdgeColor: rgb(100, 45, 45);
146
+
147
+ qproperty-pyIndentationGuidesBackgroundColor: rgb(70, 70, 73);
148
+ qproperty-pyIndentationGuidesForegroundColor: rgb(102, 153, 204);
149
+ qproperty-pyMarkerBackgroundColor: rgb(45, 255, 45);
150
+ qproperty-pyMarkerForegroundColor: rgb(200, 0, 200);
151
+ qproperty-foldMarginsBackgroundColor: rgb(60, 60, 63);
152
+ qproperty-foldMarginsForegroundColor: rgb(60, 60, 63);
153
+ qproperty-braceBadForeground: rgb(255, 255, 255);
154
+ qproperty-braceBadBackground: rgb(100, 60, 60);
155
+
156
+ qproperty-colorDefault: rgb(102, 153, 204);
157
+ qproperty-colorComment: rgb(153, 153, 153);
158
+ qproperty-colorNumber: rgb(249, 145, 87);
159
+ qproperty-colorString: rgb(153, 204, 153);
160
+ qproperty-colorKeyword: rgb(204, 153, 204);
161
+ qproperty-colorTripleQuotedString: rgb(220, 204, 153);
162
+ qproperty-colorMethod: rgb(255, 204, 102);
163
+ qproperty-colorFunction: rgb(132, 203, 255);
164
+ qproperty-colorOperator: rgb(204, 204, 204);
165
+ qproperty-colorIdentifier: rgb(102, 153, 204);
166
+ qproperty-colorCommentBlock: rgb(117, 113, 94);
167
+ qproperty-colorUnclosedString: rgb(255, 255, 255);
168
+ qproperty-colorSmartHighlight: rgb(255, 255, 255);
169
+ qproperty-colorDecorator: rgb(240, 100, 102);
170
+ qproperty-paperDefault: rgb(70, 70, 73);
171
+ qproperty-paperComment: rgb(70, 70, 73);
172
+ qproperty-paperNumber: rgb(70, 70, 73);
173
+ qproperty-paperString: rgb(70, 70, 73);
174
+ qproperty-paperKeyword: rgb(70, 70, 73);
175
+ qproperty-paperTripleQuotedString: rgb(70, 70, 73);
176
+ qproperty-paperMethod: rgb(70, 70, 73);
177
+ qproperty-paperFunction: rgb(70, 70, 73);
178
+ qproperty-paperOperator: rgb(70, 70, 73);
179
+ qproperty-paperIdentifier: rgb(70, 70, 73);
180
+ qproperty-paperCommentBlock: rgb(70, 70, 73);
181
+ qproperty-paperUnclosedString: rgb(100, 60, 60);
182
+ qproperty-paperSmartHighlight: rgba(75, 180, 0, 25);
183
+ qproperty-paperDecorator: rgb(70, 70, 73);
184
+ }
185
+
186
+
187
+ ConsolePrEdit, ErrorDialog {
188
+ qproperty-errorMessageColor: rgb(255, 0, 0);
189
+ }
190
+
191
+ ConsolePrEdit {
192
+ color: rgb(255, 255, 255);
193
+ background-color: rgb(70, 70, 73);
194
+ qproperty-commentColor: rgb(0, 206, 52);
195
+ qproperty-keywordColor: rgb(17, 154, 255);
196
+ qproperty-resultColor: rgb(128, 128, 128);
197
+ qproperty-stdoutColor: rgb(17, 154, 255);
198
+ qproperty-stringColor: rgb(255, 128, 0);
199
+ }
@@ -0,0 +1,22 @@
1
+ from __future__ import absolute_import
2
+
3
+
4
+ class FindState(object):
5
+ """
6
+ Arguments:
7
+ end_pos (int): The position in the document to stop searching. If None, then
8
+ search to the end of the document.
9
+ """
10
+
11
+ def __init__(self):
12
+ self.expr = ''
13
+ self.wrap = True
14
+ self.wrapped = False
15
+ self.forward = True
16
+ self.flags = 0
17
+ self.start_pos = 0
18
+ self.start_pos_original = None
19
+ self.end_pos = None
20
+
21
+
22
+ from . import delayables # noqa: F401, E402