PrEditor 2.1.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.
- preditor/__init__.py +315 -0
- preditor/__main__.py +13 -0
- preditor/about_module.py +165 -0
- preditor/cli.py +192 -0
- preditor/config.py +318 -0
- preditor/constants.py +13 -0
- preditor/contexts.py +210 -0
- preditor/cores/__init__.py +0 -0
- preditor/cores/core.py +20 -0
- preditor/dccs/.hab.json +10 -0
- preditor/dccs/maya/PrEditor_maya.mod +1 -0
- preditor/dccs/maya/README.md +22 -0
- preditor/dccs/maya/plug-ins/PrEditor_maya.py +141 -0
- preditor/dccs/studiomax/PackageContents.xml +32 -0
- preditor/dccs/studiomax/PrEditor-PrEditor_Show.mcr +8 -0
- preditor/dccs/studiomax/README.md +17 -0
- preditor/dccs/studiomax/preditor.ms +16 -0
- preditor/dccs/studiomax/preditor_menu.mnx +7 -0
- preditor/debug.py +149 -0
- preditor/delayable_engine/__init__.py +302 -0
- preditor/delayable_engine/delayables.py +85 -0
- preditor/enum.py +728 -0
- preditor/excepthooks.py +165 -0
- preditor/gui/__init__.py +56 -0
- preditor/gui/app.py +163 -0
- preditor/gui/codehighlighter.py +289 -0
- preditor/gui/completer.py +237 -0
- preditor/gui/console.py +605 -0
- preditor/gui/console_base.py +911 -0
- preditor/gui/dialog.py +181 -0
- preditor/gui/drag_tab_bar.py +625 -0
- preditor/gui/editor_chooser.py +57 -0
- preditor/gui/errordialog.py +69 -0
- preditor/gui/find_files.py +137 -0
- preditor/gui/fuzzy_search/__init__.py +0 -0
- preditor/gui/fuzzy_search/fuzzy_search.py +97 -0
- preditor/gui/group_tab_widget/__init__.py +0 -0
- preditor/gui/group_tab_widget/group_tab_widget.py +528 -0
- preditor/gui/group_tab_widget/grouped_tab_menu.py +35 -0
- preditor/gui/group_tab_widget/grouped_tab_models.py +107 -0
- preditor/gui/group_tab_widget/grouped_tab_widget.py +223 -0
- preditor/gui/group_tab_widget/one_tab_widget.py +96 -0
- preditor/gui/level_buttons.py +358 -0
- preditor/gui/logger_window_handler.py +77 -0
- preditor/gui/logger_window_plugin.py +35 -0
- preditor/gui/loggerwindow.py +2405 -0
- preditor/gui/newtabwidget.py +69 -0
- preditor/gui/output_console.py +11 -0
- preditor/gui/qtdesigner/__init__.py +21 -0
- preditor/gui/qtdesigner/_log_plugin.py +29 -0
- preditor/gui/qtdesigner/console_base_plugin.py +48 -0
- preditor/gui/qtdesigner/console_predit_plugin.py +48 -0
- preditor/gui/set_text_editor_path_dialog.py +61 -0
- preditor/gui/status_label.py +99 -0
- preditor/gui/suggest_path_quotes_dialog.py +50 -0
- preditor/gui/ui/editor_chooser.ui +93 -0
- preditor/gui/ui/errordialog.ui +74 -0
- preditor/gui/ui/find_files.ui +140 -0
- preditor/gui/ui/loggerwindow.ui +1909 -0
- preditor/gui/ui/set_text_editor_path_dialog.ui +189 -0
- preditor/gui/ui/suggest_path_quotes_dialog.ui +225 -0
- preditor/gui/window.py +161 -0
- preditor/gui/workbox_mixin.py +1139 -0
- preditor/gui/workbox_text_edit.py +136 -0
- preditor/gui/workboxwidget.py +315 -0
- preditor/logging_config.py +55 -0
- preditor/osystem.py +401 -0
- preditor/plugins.py +118 -0
- preditor/prefs.py +381 -0
- preditor/resource/environment_variables.html +26 -0
- preditor/resource/error_mail.html +85 -0
- preditor/resource/error_mail_inline.html +41 -0
- preditor/resource/img/README.md +17 -0
- preditor/resource/img/arrow_forward.png +0 -0
- preditor/resource/img/check-bold.png +0 -0
- preditor/resource/img/chevron-down.png +0 -0
- preditor/resource/img/chevron-up.png +0 -0
- preditor/resource/img/close-thick.png +0 -0
- preditor/resource/img/comment-edit.png +0 -0
- preditor/resource/img/content-copy.png +0 -0
- preditor/resource/img/content-cut.png +0 -0
- preditor/resource/img/content-duplicate.png +0 -0
- preditor/resource/img/content-paste.png +0 -0
- preditor/resource/img/content-save.png +0 -0
- preditor/resource/img/debug_disabled.png +0 -0
- preditor/resource/img/eye-check.png +0 -0
- preditor/resource/img/file-plus.png +0 -0
- preditor/resource/img/file-remove.png +0 -0
- preditor/resource/img/format-align-left.png +0 -0
- preditor/resource/img/format-letter-case-lower.png +0 -0
- preditor/resource/img/format-letter-case-upper.png +0 -0
- preditor/resource/img/format-letter-case.svg +1 -0
- preditor/resource/img/information.png +0 -0
- preditor/resource/img/logging_critical.png +0 -0
- preditor/resource/img/logging_custom.png +0 -0
- preditor/resource/img/logging_debug.png +0 -0
- preditor/resource/img/logging_error.png +0 -0
- preditor/resource/img/logging_info.png +0 -0
- preditor/resource/img/logging_not_set.png +0 -0
- preditor/resource/img/logging_warning.png +0 -0
- preditor/resource/img/marker.png +0 -0
- preditor/resource/img/play.png +0 -0
- preditor/resource/img/playlist-play.png +0 -0
- preditor/resource/img/plus-minus-variant.png +0 -0
- preditor/resource/img/preditor.ico +0 -0
- preditor/resource/img/preditor.png +0 -0
- preditor/resource/img/preditor.psd +0 -0
- preditor/resource/img/preditor.svg +44 -0
- preditor/resource/img/regex.svg +1 -0
- preditor/resource/img/restart.svg +1 -0
- preditor/resource/img/skip-forward-outline.png +0 -0
- preditor/resource/img/skip-next-outline.png +0 -0
- preditor/resource/img/skip-next.png +0 -0
- preditor/resource/img/skip-previous.png +0 -0
- preditor/resource/img/subdirectory-arrow-right.png +0 -0
- preditor/resource/img/text-search-variant.png +0 -0
- preditor/resource/img/warning-big.png +0 -0
- preditor/resource/lang/python.json +30 -0
- preditor/resource/pref_updates/pref_updates.json +17 -0
- preditor/resource/settings.ini +25 -0
- preditor/resource/stylesheet/Bright.css +76 -0
- preditor/resource/stylesheet/Dark.css +210 -0
- preditor/scintilla/__init__.py +40 -0
- preditor/scintilla/delayables/__init__.py +11 -0
- preditor/scintilla/delayables/smart_highlight.py +97 -0
- preditor/scintilla/delayables/spell_check.py +174 -0
- preditor/scintilla/documenteditor.py +1924 -0
- preditor/scintilla/finddialog.py +68 -0
- preditor/scintilla/lang/__init__.py +80 -0
- preditor/scintilla/lang/config/bash.ini +15 -0
- preditor/scintilla/lang/config/batch.ini +14 -0
- preditor/scintilla/lang/config/cpp.ini +19 -0
- preditor/scintilla/lang/config/css.ini +19 -0
- preditor/scintilla/lang/config/eyeonscript.ini +17 -0
- preditor/scintilla/lang/config/html.ini +21 -0
- preditor/scintilla/lang/config/javascript.ini +24 -0
- preditor/scintilla/lang/config/lua.ini +16 -0
- preditor/scintilla/lang/config/maxscript.ini +20 -0
- preditor/scintilla/lang/config/mel.ini +18 -0
- preditor/scintilla/lang/config/mu.ini +22 -0
- preditor/scintilla/lang/config/nsi.ini +19 -0
- preditor/scintilla/lang/config/perl.ini +19 -0
- preditor/scintilla/lang/config/puppet.ini +19 -0
- preditor/scintilla/lang/config/python.ini +28 -0
- preditor/scintilla/lang/config/ruby.ini +19 -0
- preditor/scintilla/lang/config/sql.ini +7 -0
- preditor/scintilla/lang/config/xml.ini +21 -0
- preditor/scintilla/lang/config/yaml.ini +18 -0
- preditor/scintilla/lang/language.py +240 -0
- preditor/scintilla/lexers/__init__.py +0 -0
- preditor/scintilla/lexers/cpplexer.py +22 -0
- preditor/scintilla/lexers/javascriptlexer.py +27 -0
- preditor/scintilla/lexers/maxscriptlexer.py +235 -0
- preditor/scintilla/lexers/mellexer.py +369 -0
- preditor/scintilla/lexers/mulexer.py +33 -0
- preditor/scintilla/lexers/pythonlexer.py +42 -0
- preditor/scintilla/ui/finddialog.ui +160 -0
- preditor/settings.py +71 -0
- preditor/stream/__init__.py +72 -0
- preditor/stream/console_handler.py +169 -0
- preditor/stream/director.py +144 -0
- preditor/stream/manager.py +97 -0
- preditor/streamhandler_helper.py +46 -0
- preditor/utils/__init__.py +191 -0
- preditor/utils/call_stack.py +86 -0
- preditor/utils/cute.py +106 -0
- preditor/utils/stylesheets.py +54 -0
- preditor/utils/text_search.py +338 -0
- preditor/version.py +34 -0
- preditor/weakref.py +363 -0
- preditor-2.1.0.dist-info/METADATA +308 -0
- preditor-2.1.0.dist-info/RECORD +179 -0
- preditor-2.1.0.dist-info/WHEEL +5 -0
- preditor-2.1.0.dist-info/entry_points.txt +19 -0
- preditor-2.1.0.dist-info/licenses/LICENSE +165 -0
- preditor-2.1.0.dist-info/top_level.txt +3 -0
- tests/encodings/test_ecoding.py +33 -0
- tests/find_files/test_find_files.py +74 -0
- tests/ide/test_delayable_engine.py +171 -0
|
@@ -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
|
|
Binary file
|
|
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,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"SplitterSize": {"new_name": "splitterSize"},
|
|
3
|
+
"SplitterVertical": {"new_name": "splitterVertical"},
|
|
4
|
+
"uiAutoSaveSettingssACT": {"new_name": "autoSaveSettings"},
|
|
5
|
+
"uiAutoPromptACT": {"new_name": "autoPrompt"},
|
|
6
|
+
"uiErrorHyperlinksACT": {"new_name": "errorHyperlinks"},
|
|
7
|
+
"uiHighlightExactCompletionACT": {"new_name": "highlightExactCompletion"},
|
|
8
|
+
"uiSelectTextACT": {"new_name": "selectText"},
|
|
9
|
+
"uiSeparateTracebackACT": {"new_name": "separateTraceback"},
|
|
10
|
+
"workbox_prefs": {
|
|
11
|
+
"tempfile": {
|
|
12
|
+
"new_name": "workbox_id",
|
|
13
|
+
"replace": [[".py", ""]]
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"prefs_version": 2.0
|
|
17
|
+
}
|
|
@@ -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,76 @@
|
|
|
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, 206, 52);
|
|
25
|
+
qproperty-colorNumber: rgb(0, 127, 127);
|
|
26
|
+
qproperty-colorString: rgb(255, 128, 0);
|
|
27
|
+
qproperty-colorKeyword: rgb(250, 24, 110);
|
|
28
|
+
qproperty-colorTripleQuotedString: rgb(255, 128, 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(250, 24, 110);
|
|
62
|
+
qproperty-resultColor: rgb(128, 128, 128);
|
|
63
|
+
qproperty-stdoutColor: rgb(17, 154, 255);
|
|
64
|
+
qproperty-stringColor: rgb(255, 128, 0);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
DragTabBar {
|
|
68
|
+
qproperty-changedColor: "darkorchid";
|
|
69
|
+
qproperty-changedLinkedColor: "darkviolet";
|
|
70
|
+
qproperty-dirtyColor: "orange";
|
|
71
|
+
qproperty-dirtyLinkedColor: "darkorange";
|
|
72
|
+
qproperty-linkedColor: "royalblue";
|
|
73
|
+
qproperty-missingLinkedColor: "deeppink";
|
|
74
|
+
qproperty-orphanedColor: "crimson";
|
|
75
|
+
qproperty-orphanedLinkedColor: "firebrick";
|
|
76
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
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(22, 160, 250);
|
|
157
|
+
qproperty-colorComment: rgb(0, 160, 0);
|
|
158
|
+
qproperty-colorNumber: rgb(0, 200, 200);
|
|
159
|
+
qproperty-colorString: rgb(240, 135, 0);
|
|
160
|
+
qproperty-colorKeyword: rgb(250, 24, 110);
|
|
161
|
+
qproperty-colorTripleQuotedString: rgb(240, 135, 0);
|
|
162
|
+
qproperty-colorMethod: rgb(255, 204, 102);
|
|
163
|
+
qproperty-colorFunction: rgb(22, 160, 250);
|
|
164
|
+
qproperty-colorOperator: rgb(204, 204, 204);
|
|
165
|
+
qproperty-colorIdentifier: rgb(22, 160, 250);
|
|
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, 160, 0);
|
|
195
|
+
qproperty-keywordColor: rgb(250, 24, 110);
|
|
196
|
+
qproperty-resultColor: rgb(128, 128, 128);
|
|
197
|
+
qproperty-stdoutColor: rgb(22, 160, 250);
|
|
198
|
+
qproperty-stringColor: rgb(240, 135, 0);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
DragTabBar {
|
|
202
|
+
qproperty-changedColor: "orchid";
|
|
203
|
+
qproperty-changedLinkedColor: "violet";
|
|
204
|
+
qproperty-dirtyColor: "orange";
|
|
205
|
+
qproperty-dirtyLinkedColor: "sandybrown";
|
|
206
|
+
qproperty-linkedColor: rgb(0, 160, 0);
|
|
207
|
+
qproperty-missingLinkedColor: rgb(255, 50, 140);
|
|
208
|
+
qproperty-orphanedColor: "pink";
|
|
209
|
+
qproperty-orphanedLinkedColor: "plum";
|
|
210
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from __future__ import absolute_import
|
|
2
|
+
|
|
3
|
+
__all__ = ["delayables", "FindState", "Qsci", "QsciScintilla"]
|
|
4
|
+
|
|
5
|
+
import Qt
|
|
6
|
+
|
|
7
|
+
if Qt.IsPyQt6:
|
|
8
|
+
from PyQt6 import Qsci
|
|
9
|
+
from PyQt6.Qsci import QsciScintilla
|
|
10
|
+
elif Qt.IsPyQt5:
|
|
11
|
+
from PyQt5 import Qsci
|
|
12
|
+
from PyQt5.Qsci import QsciScintilla
|
|
13
|
+
elif Qt.IsPyQt4:
|
|
14
|
+
from PyQt4 import Qsci
|
|
15
|
+
from PyQt4.Qsci import QsciScintilla
|
|
16
|
+
else:
|
|
17
|
+
raise ImportError(
|
|
18
|
+
"QScintilla library is not supported by {}".format(Qt.__binding__)
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class FindState(object):
|
|
23
|
+
"""
|
|
24
|
+
Arguments:
|
|
25
|
+
end_pos (int): The position in the document to stop searching. If None, then
|
|
26
|
+
search to the end of the document.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def __init__(self):
|
|
30
|
+
self.expr = ''
|
|
31
|
+
self.wrap = True
|
|
32
|
+
self.wrapped = False
|
|
33
|
+
self.forward = True
|
|
34
|
+
self.flags = 0
|
|
35
|
+
self.start_pos = 0
|
|
36
|
+
self.start_pos_original = None
|
|
37
|
+
self.end_pos = None
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
from . import delayables # noqa: E402
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from __future__ import absolute_import, print_function
|
|
2
|
+
|
|
3
|
+
from . import smart_highlight, spell_check
|
|
4
|
+
|
|
5
|
+
# Import the base classes used to make most Delayables
|
|
6
|
+
# TODO: Make these imports a plugin based system of some sort.
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"smart_highlight",
|
|
10
|
+
"spell_check",
|
|
11
|
+
]
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
from __future__ import absolute_import, print_function
|
|
2
|
+
|
|
3
|
+
import Qt
|
|
4
|
+
from Qt.QtCore import QSignalMapper
|
|
5
|
+
from Qt.QtWidgets import QWidget
|
|
6
|
+
|
|
7
|
+
from ...delayable_engine.delayables import SearchDelayable
|
|
8
|
+
from .. import FindState, QsciScintilla
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SmartHighlight(SearchDelayable):
|
|
12
|
+
key = 'smart_highlight'
|
|
13
|
+
indicator_number = 30
|
|
14
|
+
indicator_style = QsciScintilla.IndicatorStyle.StraightBoxIndicator
|
|
15
|
+
border_alpha = 255
|
|
16
|
+
|
|
17
|
+
def __init__(self, engine):
|
|
18
|
+
super(SmartHighlight, self).__init__(engine)
|
|
19
|
+
self.signal_mapper = QSignalMapper(self)
|
|
20
|
+
# Respect style sheet changes
|
|
21
|
+
# TODO: Correctly connect this signal
|
|
22
|
+
# LoggerWindow.styleSheetChanged.connect(self.update_indicator_color)
|
|
23
|
+
|
|
24
|
+
def add_document(self, document):
|
|
25
|
+
document.indicatorDefine(self.indicator_style, self.indicator_number)
|
|
26
|
+
document.SendScintilla(
|
|
27
|
+
QsciScintilla.SCI_SETINDICATORCURRENT, self.indicator_number
|
|
28
|
+
)
|
|
29
|
+
document.setIndicatorForegroundColor(
|
|
30
|
+
document.paperSmartHighlight, self.indicator_number
|
|
31
|
+
)
|
|
32
|
+
document.SendScintilla(
|
|
33
|
+
QsciScintilla.SCI_INDICSETOUTLINEALPHA,
|
|
34
|
+
self.indicator_number,
|
|
35
|
+
self.border_alpha,
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
self.signal_mapper.setMapping(document, document)
|
|
39
|
+
if Qt.IsPyQt4:
|
|
40
|
+
self.signal_mapper.mapped[QWidget].connect(self.update_highlighter)
|
|
41
|
+
else:
|
|
42
|
+
self.signal_mapper.mappedObject.connect(self.update_highlighter)
|
|
43
|
+
document.selectionChanged.connect(self.signal_mapper.map)
|
|
44
|
+
|
|
45
|
+
def clear_markings(self, document):
|
|
46
|
+
"""Remove markings made by this Delayable for the given document.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
document (blurdev.scintilla.documenteditor.DocumentEditor): The document
|
|
50
|
+
to clear spell check markings from.
|
|
51
|
+
"""
|
|
52
|
+
document.SendScintilla(
|
|
53
|
+
QsciScintilla.SCI_SETINDICATORCURRENT, self.indicator_number
|
|
54
|
+
)
|
|
55
|
+
document.SendScintilla(
|
|
56
|
+
QsciScintilla.SCI_INDICATORCLEARRANGE, 0, len(document.text())
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
def loop(self, document, find_state, clear):
|
|
60
|
+
# Clear the document if needed
|
|
61
|
+
if clear:
|
|
62
|
+
self.clear_markings(document)
|
|
63
|
+
ret = super(SmartHighlight, self).loop(document, find_state)
|
|
64
|
+
if ret:
|
|
65
|
+
# clear should always be false when continuing
|
|
66
|
+
return ret + (False,)
|
|
67
|
+
|
|
68
|
+
def remove_document(self, document):
|
|
69
|
+
self.clear_markings(document)
|
|
70
|
+
document.selectionChanged.disconnect(self.signal_mapper.map)
|
|
71
|
+
|
|
72
|
+
def text_found(self, document, start, end, find_state):
|
|
73
|
+
if not document.is_word(start, end):
|
|
74
|
+
# Don't highlight the word if its not a word on its own
|
|
75
|
+
return
|
|
76
|
+
document.SendScintilla(
|
|
77
|
+
QsciScintilla.SCI_SETINDICATORCURRENT, self.indicator_number
|
|
78
|
+
)
|
|
79
|
+
document.SendScintilla(QsciScintilla.SCI_INDICATORFILLRANGE, start, end - start)
|
|
80
|
+
|
|
81
|
+
def update_highlighter(self, document):
|
|
82
|
+
self.clear_markings(document)
|
|
83
|
+
if document.selection_is_word():
|
|
84
|
+
find_state = FindState()
|
|
85
|
+
find_state.expr = document.selectedText()
|
|
86
|
+
self.search_from_position(document, find_state, None, False)
|
|
87
|
+
|
|
88
|
+
def update_indicator_color(self):
|
|
89
|
+
for document in self.engine.documents:
|
|
90
|
+
document.setIndicatorForegroundColor(
|
|
91
|
+
document.paperSmartHighlight, self.indicator_number
|
|
92
|
+
)
|
|
93
|
+
document.SendScintilla(
|
|
94
|
+
QsciScintilla.SCI_INDICSETOUTLINEALPHA,
|
|
95
|
+
self.indicator_number,
|
|
96
|
+
self.border_alpha,
|
|
97
|
+
)
|