je-editor 0.0.186__tar.gz → 0.0.188__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. {je_editor-0.0.186 → je_editor-0.0.188}/PKG-INFO +2 -2
  2. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/__init__.py +2 -2
  3. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/__main__.py +1 -1
  4. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/code_process/code_exec.py +1 -1
  5. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/plaintext_code_edit/code_edit_plaintext.py +10 -2
  6. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/shell_process/shell_exec.py +1 -1
  7. je_editor-0.0.188/je_editor/pyside_ui/code/syntax/python_syntax.py +62 -0
  8. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/syntax/syntax_setting.py +2 -0
  9. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/editor/editor_widget.py +1 -1
  10. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/main_editor.py +5 -4
  11. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/redirect_manager/redirect_manager_class.py +2 -1
  12. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor.egg-info/PKG-INFO +2 -2
  13. {je_editor-0.0.186 → je_editor-0.0.188}/pyproject.toml +1 -1
  14. je_editor-0.0.186/je_editor/pyside_ui/code/syntax/python_syntax.py +0 -39
  15. {je_editor-0.0.186 → je_editor-0.0.188}/LICENSE +0 -0
  16. {je_editor-0.0.186 → je_editor-0.0.188}/README.md +0 -0
  17. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/__init__.py +0 -0
  18. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/browser/__init__.py +0 -0
  19. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/browser/browser_download_window.py +0 -0
  20. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/browser/browser_serach_lineedit.py +0 -0
  21. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/browser/browser_view.py +0 -0
  22. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/browser/browser_widget.py +0 -0
  23. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/__init__.py +0 -0
  24. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/auto_save/__init__.py +0 -0
  25. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/auto_save/auto_save_manager.py +0 -0
  26. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/auto_save/auto_save_thread.py +0 -0
  27. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/code_format/__init__.py +0 -0
  28. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/code_format/pep8_format.py +0 -0
  29. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/code_process/__init__.py +0 -0
  30. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/plaintext_code_edit/__init__.py +0 -0
  31. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/running_process_manager.py +0 -0
  32. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/shell_process/__init__.py +0 -0
  33. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/syntax/__init__.py +0 -0
  34. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/textedit_code_result/__init__.py +0 -0
  35. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/code/textedit_code_result/code_record.py +0 -0
  36. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/dialog/__init__.py +0 -0
  37. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/dialog/file_dialog/__init__.py +0 -0
  38. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/dialog/file_dialog/create_file_dialog.py +0 -0
  39. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/dialog/file_dialog/open_file_dialog.py +0 -0
  40. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/dialog/file_dialog/save_file_dialog.py +0 -0
  41. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/dialog/search_ui/__init__.py +0 -0
  42. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/dialog/search_ui/search_error_box.py +0 -0
  43. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/dialog/search_ui/search_text_box.py +0 -0
  44. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/__init__.py +0 -0
  45. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/dock/__init__.py +0 -0
  46. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/dock/destroy_dock.py +0 -0
  47. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/editor/__init__.py +0 -0
  48. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/editor/editor_widget_dock.py +0 -0
  49. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/editor/process_input.py +0 -0
  50. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/ipython_widget/__init__.py +0 -0
  51. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/ipython_widget/rich_jupyter.py +0 -0
  52. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/__init__.py +0 -0
  53. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/check_style_menu/__init__.py +0 -0
  54. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/check_style_menu/build_check_style_menu.py +0 -0
  55. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/dock_menu/__init__.py +0 -0
  56. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/dock_menu/build_dock_menu.py +0 -0
  57. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/file_menu/__init__.py +0 -0
  58. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/file_menu/build_file_menu.py +0 -0
  59. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/help_menu/__init__.py +0 -0
  60. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/help_menu/build_help_menu.py +0 -0
  61. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/language_menu/__init__.py +0 -0
  62. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/language_menu/build_language_server.py +0 -0
  63. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/python_env_menu/__init__.py +0 -0
  64. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/python_env_menu/build_venv_menu.py +0 -0
  65. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/run_menu/__init__.py +0 -0
  66. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/run_menu/build_run_menu.py +0 -0
  67. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/__init__.py +0 -0
  68. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_debug_menu.py +0 -0
  69. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_program_menu.py +0 -0
  70. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_shell_menu.py +0 -0
  71. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/utils.py +0 -0
  72. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/set_menu_bar.py +0 -0
  73. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/style_menu/__init__.py +0 -0
  74. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/style_menu/build_style_menu.py +0 -0
  75. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/tab_menu/__init__.py +0 -0
  76. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/tab_menu/build_tab_menu.py +0 -0
  77. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/text_menu/__init__.py +0 -0
  78. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/menu/text_menu/build_text_menu.py +0 -0
  79. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/save_settings/__init__.py +0 -0
  80. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/save_settings/setting_utils.py +0 -0
  81. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/save_settings/user_color_setting_file.py +0 -0
  82. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/save_settings/user_setting_file.py +0 -0
  83. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/system_tray/__init__.py +0 -0
  84. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/pyside_ui/main_ui/system_tray/extend_system_tray.py +0 -0
  85. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/start_editor.py +0 -0
  86. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/__init__.py +0 -0
  87. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/encodings/__init__.py +0 -0
  88. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/encodings/python_encodings.py +0 -0
  89. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/exception/__init__.py +0 -0
  90. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/exception/exception_tags.py +0 -0
  91. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/exception/exceptions.py +0 -0
  92. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/file/__init__.py +0 -0
  93. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/file/open/__init__.py +0 -0
  94. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/file/open/open_file.py +0 -0
  95. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/file/save/__init__.py +0 -0
  96. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/file/save/save_file.py +0 -0
  97. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/json/__init__.py +0 -0
  98. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/json/json_file.py +0 -0
  99. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/json_format/__init__.py +0 -0
  100. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/json_format/json_process.py +0 -0
  101. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/logging/__init__.py +0 -0
  102. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/logging/loggin_instance.py +0 -0
  103. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/multi_language/__init__.py +0 -0
  104. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/multi_language/english.py +0 -0
  105. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/multi_language/multi_language_wrapper.py +0 -0
  106. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/multi_language/traditional_chinese.py +0 -0
  107. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/redirect_manager/__init__.py +0 -0
  108. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/venv_check/__init__.py +0 -0
  109. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor/utils/venv_check/check_venv.py +0 -0
  110. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor.egg-info/SOURCES.txt +0 -0
  111. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor.egg-info/dependency_links.txt +0 -0
  112. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor.egg-info/requires.txt +0 -0
  113. {je_editor-0.0.186 → je_editor-0.0.188}/je_editor.egg-info/top_level.txt +0 -0
  114. {je_editor-0.0.186 → je_editor-0.0.188}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: je_editor
3
- Version: 0.0.186
3
+ Version: 0.0.188
4
4
  Summary: JEditor is basic but powerful editor include GPT
5
5
  Author-email: JE-Chen <jechenmailman@gmail.com>
6
6
  License: MIT
@@ -2,7 +2,7 @@ from je_editor.pyside_ui.browser.browser_widget import BrowserWidget
2
2
  from je_editor.pyside_ui.code.code_process.code_exec import ExecManager
3
3
  from je_editor.pyside_ui.code.shell_process.shell_exec import ShellManager
4
4
  from je_editor.pyside_ui.code.syntax.python_syntax import PythonHighlighter
5
- from je_editor.pyside_ui.code.syntax.syntax_setting import syntax_word_setting_dict, syntax_rule_setting_dict
5
+ from je_editor.pyside_ui.code.syntax.syntax_setting import syntax_extend_setting_dict, syntax_rule_setting_dict
6
6
  from je_editor.pyside_ui.main_ui.editor.editor_widget import EditorWidget
7
7
  from je_editor.pyside_ui.main_ui.editor.editor_widget_dock import FullEditorWidget
8
8
  from je_editor.pyside_ui.main_ui.main_editor import EDITOR_EXTEND_TAB
@@ -26,7 +26,7 @@ __all__ = [
26
26
  "start_editor", "EditorMain", "EDITOR_EXTEND_TAB",
27
27
  "JEditorException", "JEditorExecException", "FullEditorWidget",
28
28
  "JEditorRunOnShellException", "JEditorSaveFileException", "syntax_rule_setting_dict",
29
- "JEditorOpenFileException", "JEditorContentFileException", "syntax_word_setting_dict",
29
+ "JEditorOpenFileException", "JEditorContentFileException", "syntax_extend_setting_dict",
30
30
  "JEditorCantFindLanguageException", "JEditorJsonException", "PythonHighlighter",
31
31
  "user_setting_dict", "user_setting_color_dict", "EditorWidget", "BrowserWidget",
32
32
  "ExecManager", "ShellManager", "traditional_chinese_word_dict", "english_word_dict",
@@ -2,7 +2,7 @@ if __name__ == "__main__":
2
2
  # argparse
3
3
  import argparse
4
4
 
5
- from je_editor.tkinter_ui.editor_main_ui.tkinter_editor import start_editor
5
+ from je_editor.start_editor import start_editor
6
6
 
7
7
  argparse_event_dict = {
8
8
  "start": start_editor,
@@ -131,7 +131,7 @@ class ExecManager(object):
131
131
  # start tkinter_ui update
132
132
  # start timer
133
133
  self.timer = QTimer(self.main_window)
134
- self.timer.setInterval(1)
134
+ self.timer.setInterval(100)
135
135
  self.timer.timeout.connect(self.pull_text)
136
136
  self.timer.start()
137
137
  except Exception as error:
@@ -14,7 +14,8 @@ from typing import Union, List
14
14
  import jedi
15
15
  from PySide6 import QtGui
16
16
  from PySide6.QtCore import Qt, QRect
17
- from PySide6.QtGui import QPainter, QTextCharFormat, QTextFormat, QKeyEvent, QAction, QTextDocument, QTextCursor
17
+ from PySide6.QtGui import QPainter, QTextCharFormat, QTextFormat, QKeyEvent, QAction, QTextDocument, QTextCursor, \
18
+ QTextOption
18
19
  from PySide6.QtWidgets import QPlainTextEdit, QWidget, QTextEdit, QCompleter
19
20
  from jedi.api.classes import Completion
20
21
 
@@ -43,6 +44,7 @@ class CodeEditor(QPlainTextEdit):
43
44
  self.check_env()
44
45
  # Self main window (parent)
45
46
  self.main_window = main_window
47
+ self.current_file = main_window.current_file
46
48
 
47
49
  self.skip_popup_behavior_list = [
48
50
  Qt.Key.Key_Enter, Qt.Key.Key_Return, Qt.Key.Key_Up, Qt.Key.Key_Down,
@@ -64,9 +66,10 @@ class CodeEditor(QPlainTextEdit):
64
66
  self.setTabStopDistance(
65
67
  QtGui.QFontMetricsF(self.font()).horizontalAdvance(" ")
66
68
  )
67
- self.highlighter = PythonHighlighter(self.document())
69
+ self.highlighter = PythonHighlighter(self.document(), main_window=self)
68
70
  self.highlight_current_line()
69
71
  self.setLineWrapMode(self.LineWrapMode.NoWrap)
72
+ self.setWordWrapMode(QTextOption.WrapMode.WrapAnywhere)
70
73
  # Search Text
71
74
  self.search_action = QAction("Search")
72
75
  self.search_action.setShortcut("Ctrl+f")
@@ -79,6 +82,11 @@ class CodeEditor(QPlainTextEdit):
79
82
  self.completer: Union[None, QCompleter] = None
80
83
  self.set_complete([])
81
84
 
85
+ def reset_highlighter(self):
86
+ jeditor_logger.info("CodeEditor reset_highlighter")
87
+ self.highlighter = PythonHighlighter(self.document(), main_window=self)
88
+ self.highlight_current_line()
89
+
82
90
  def check_env(self):
83
91
  jeditor_logger.info("CodeEditor check_env")
84
92
  path = venv_check()
@@ -112,7 +112,7 @@ class ShellManager(object):
112
112
  self.read_program_error_output_from_thread.start()
113
113
  # start timer
114
114
  self.timer = QTimer(self.main_window)
115
- self.timer.setInterval(1)
115
+ self.timer.setInterval(100)
116
116
  self.timer.timeout.connect(self.pull_text)
117
117
  self.timer.start()
118
118
  except Exception as error:
@@ -0,0 +1,62 @@
1
+ from __future__ import annotations
2
+
3
+ from pathlib import Path
4
+ from typing import TYPE_CHECKING
5
+
6
+ if TYPE_CHECKING:
7
+ from je_editor.pyside_ui.code.plaintext_code_edit.code_edit_plaintext import CodeEditor
8
+
9
+ from PySide6.QtCore import QRegularExpression
10
+ from PySide6.QtGui import QSyntaxHighlighter
11
+ from PySide6.QtGui import QTextCharFormat
12
+
13
+ from je_editor.pyside_ui.code.syntax.syntax_setting import syntax_word_setting_dict, syntax_rule_setting_dict, \
14
+ syntax_extend_setting_dict
15
+ from je_editor.utils.logging.loggin_instance import jeditor_logger
16
+
17
+
18
+ class PythonHighlighter(QSyntaxHighlighter):
19
+ def __init__(self, parent=None, main_window: CodeEditor = None):
20
+ jeditor_logger.info(f"Init PythonHighlighter parent: {parent}")
21
+ super().__init__(parent)
22
+
23
+ self.highlight_rules = []
24
+ if main_window.current_file is not None:
25
+ current_file_suffix = Path(main_window.current_file).suffix
26
+ else:
27
+ current_file_suffix = ".py"
28
+ if current_file_suffix == ".py":
29
+ # Highlight
30
+ for rule_variable_dict in syntax_word_setting_dict.values():
31
+ color = rule_variable_dict.get("color")
32
+ text_char_format = QTextCharFormat()
33
+ text_char_format.setForeground(color)
34
+ for word in rule_variable_dict.get("words"):
35
+ pattern = QRegularExpression(rf"\b{word}\b")
36
+ self.highlight_rules.append((pattern, text_char_format))
37
+ for rule_variable_dict in syntax_rule_setting_dict.values():
38
+ color = rule_variable_dict.get("color")
39
+ text_char_format = QTextCharFormat()
40
+ text_char_format.setForeground(color)
41
+ for rule in rule_variable_dict.get("rules"):
42
+ pattern = QRegularExpression(rule)
43
+ self.highlight_rules.append((pattern, text_char_format))
44
+ else:
45
+ if syntax_extend_setting_dict.get(current_file_suffix):
46
+ for rule_variable_dict in syntax_extend_setting_dict.get("current_file_suffix").values():
47
+ color = rule_variable_dict.get("color")
48
+ text_char_format = QTextCharFormat()
49
+ text_char_format.setForeground(color)
50
+ for word in rule_variable_dict.get("words"):
51
+ pattern = QRegularExpression(rf"\b{word}\b")
52
+ self.highlight_rules.append((pattern, text_char_format))
53
+ else:
54
+ pass
55
+
56
+ def highlightBlock(self, text) -> None:
57
+ jeditor_logger.info(f"PythonHighlighter highlightBlock text: {text}")
58
+ for pattern, pattern_format in self.highlight_rules:
59
+ match_iterator = pattern.globalMatch(text)
60
+ while match_iterator.hasNext():
61
+ match = match_iterator.next()
62
+ self.setFormat(match.capturedStart(), match.capturedLength(), pattern_format)
@@ -61,5 +61,7 @@ syntax_word_setting_dict: dict = {
61
61
  "words": ("self",),
62
62
  "color": QColor(204, 0, 204)
63
63
  }
64
+ }
64
65
 
66
+ syntax_extend_setting_dict: dict = {
65
67
  }
@@ -108,7 +108,7 @@ class EditorWidget(QWidget):
108
108
  self.grid_layout.addWidget(self.full_splitter)
109
109
  # Check format time
110
110
  self.check_format_timer = QTimer()
111
- self.check_format_timer.setInterval(10)
111
+ self.check_format_timer.setInterval(100)
112
112
  self.check_format_timer.timeout.connect(self.check_file_format)
113
113
  self.check_format_timer.start()
114
114
 
@@ -9,10 +9,8 @@ from PySide6.QtCore import QTimer, QEvent
9
9
  from PySide6.QtGui import QFontDatabase, QIcon, Qt
10
10
  from PySide6.QtWidgets import QMainWindow, QWidget, QTabWidget
11
11
  from frontengine import FrontEngineMainUI
12
- from frontengine import RedirectManager
13
12
  from qt_material import QtStyleTools
14
13
 
15
- from je_editor.utils.logging.loggin_instance import jeditor_logger
16
14
  from je_editor.pyside_ui.browser.browser_widget import BrowserWidget
17
15
  from je_editor.pyside_ui.code.auto_save.auto_save_manager import init_new_auto_save_thread, file_is_open_manager_dict
18
16
  from je_editor.pyside_ui.main_ui.editor.editor_widget import EditorWidget
@@ -23,6 +21,7 @@ from je_editor.pyside_ui.main_ui.save_settings.user_setting_file import user_set
23
21
  write_user_setting
24
22
  from je_editor.pyside_ui.main_ui.system_tray.extend_system_tray import ExtendSystemTray
25
23
  from je_editor.utils.file.open.open_file import read_file
24
+ from je_editor.utils.logging.loggin_instance import jeditor_logger
26
25
  from je_editor.utils.multi_language.multi_language_wrapper import language_wrapper
27
26
  from je_editor.utils.redirect_manager.redirect_manager_class import redirect_manager_instance
28
27
 
@@ -80,7 +79,7 @@ class EditorMain(QMainWindow, QtStyleTools):
80
79
  self.tab_widget.tabCloseRequested.connect(self.close_tab)
81
80
  # Timer to redirect error or message
82
81
  self.redirect_timer = QTimer(self)
83
- self.redirect_timer.setInterval(1)
82
+ self.redirect_timer.setInterval(100)
84
83
  self.redirect_timer.start()
85
84
  self.setWindowTitle(language_wrapper.language_word_dict.get("application_name"))
86
85
  self.setToolTip(language_wrapper.language_word_dict.get("application_name"))
@@ -101,7 +100,7 @@ class EditorMain(QMainWindow, QtStyleTools):
101
100
  redirect_manager_instance.set_redirect()
102
101
  # Timer to redirect error or message
103
102
  self.redirect_timer = QTimer(self)
104
- self.redirect_timer.setInterval(1)
103
+ self.redirect_timer.setInterval(100)
105
104
  self.redirect_timer.timeout.connect(self.redirect)
106
105
  self.redirect_timer.start()
107
106
  # TAB Add
@@ -181,6 +180,8 @@ class EditorMain(QMainWindow, QtStyleTools):
181
180
  if last_file_path.is_file() and last_file_path.exists() and widget.code_save_thread is None:
182
181
  init_new_auto_save_thread(str(last_file_path), widget)
183
182
  widget.code_edit.setPlainText(read_file(widget.current_file)[1])
183
+ widget.code_edit.current_file = widget.current_file
184
+ widget.code_edit.reset_highlighter()
184
185
  file_is_open_manager_dict.update({str(last_file_path): str(last_file_path.name)})
185
186
  widget.rename_self_tab()
186
187
 
@@ -52,8 +52,9 @@ class RedirectManager(object):
52
52
  sys.stderr = redirect_err
53
53
  default_logger = logging.getLogger("RedirectManager")
54
54
  default_logger.addHandler(redirect_err)
55
+ skip_logger_list = ["JEditor", "FrontEngine", "AutomationIDE"]
55
56
  for name in logging.root.manager.loggerDict.keys():
56
- if name == "JEditor":
57
+ if name in skip_logger_list:
57
58
  continue
58
59
  else:
59
60
  logging.getLogger(name).addHandler(redirect_err)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: je_editor
3
- Version: 0.0.186
3
+ Version: 0.0.188
4
4
  Summary: JEditor is basic but powerful editor include GPT
5
5
  Author-email: JE-Chen <jechenmailman@gmail.com>
6
6
  License: MIT
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "je_editor"
9
- version = "0.0.186"
9
+ version = "0.0.188"
10
10
  authors = [
11
11
  { name = "JE-Chen", email = "jechenmailman@gmail.com" },
12
12
  ]
@@ -1,39 +0,0 @@
1
- from PySide6.QtCore import QRegularExpression
2
- from PySide6.QtGui import QSyntaxHighlighter
3
- from PySide6.QtGui import QTextCharFormat
4
-
5
- from je_editor.pyside_ui.code.syntax.syntax_setting import syntax_word_setting_dict, syntax_rule_setting_dict
6
- from je_editor.utils.logging.loggin_instance import jeditor_logger
7
-
8
-
9
- class PythonHighlighter(QSyntaxHighlighter):
10
- def __init__(self, parent=None):
11
- jeditor_logger.info(f"Init PythonHighlighter parent: {parent}")
12
- super().__init__(parent)
13
-
14
- self.highlight_rules = []
15
-
16
- # Highlight
17
- for rule_variable_dict in syntax_word_setting_dict.values():
18
- color = rule_variable_dict.get("color")
19
- text_char_format = QTextCharFormat()
20
- text_char_format.setForeground(color)
21
- for word in rule_variable_dict.get("words"):
22
- pattern = QRegularExpression(rf"\b{word}\b")
23
- self.highlight_rules.append((pattern, text_char_format))
24
-
25
- for rule_variable_dict in syntax_rule_setting_dict.values():
26
- color = rule_variable_dict.get("color")
27
- text_char_format = QTextCharFormat()
28
- text_char_format.setForeground(color)
29
- for rule in rule_variable_dict.get("rules"):
30
- pattern = QRegularExpression(rule)
31
- self.highlight_rules.append((pattern, text_char_format))
32
-
33
- def highlightBlock(self, text) -> None:
34
- jeditor_logger.info(f"PythonHighlighter highlightBlock text: {text}")
35
- for pattern, pattern_format in self.highlight_rules:
36
- match_iterator = pattern.globalMatch(text)
37
- while match_iterator.hasNext():
38
- match = match_iterator.next()
39
- self.setFormat(match.capturedStart(), match.capturedLength(), pattern_format)
File without changes
File without changes
File without changes