je-editor 0.0.104__py3-none-any.whl → 0.0.228__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.
- je_editor/__init__.py +26 -21
- je_editor/__main__.py +1 -1
- je_editor/code_scan/ruff_thread.py +58 -0
- je_editor/code_scan/watchdog_implement.py +56 -0
- je_editor/code_scan/watchdog_thread.py +78 -0
- je_editor/git_client/commit_graph.py +77 -0
- je_editor/git_client/git_action.py +175 -0
- je_editor/git_client/git_cli.py +66 -0
- je_editor/pyside_ui/browser/browser_download_window.py +75 -0
- je_editor/pyside_ui/browser/browser_serach_lineedit.py +51 -0
- je_editor/pyside_ui/browser/browser_view.py +87 -0
- je_editor/pyside_ui/browser/browser_widget.py +103 -0
- je_editor/pyside_ui/browser/main_browser_widget.py +85 -0
- je_editor/pyside_ui/code/auto_save/auto_save_manager.py +60 -0
- je_editor/pyside_ui/code/auto_save/auto_save_thread.py +59 -0
- je_editor/pyside_ui/code/code_format/pep8_format.py +130 -0
- je_editor/pyside_ui/code/code_process/code_exec.py +267 -0
- je_editor/pyside_ui/code/plaintext_code_edit/code_edit_plaintext.py +412 -0
- je_editor/pyside_ui/code/running_process_manager.py +48 -0
- je_editor/pyside_ui/code/shell_process/shell_exec.py +236 -0
- je_editor/pyside_ui/code/syntax/python_syntax.py +99 -0
- je_editor/pyside_ui/code/syntax/syntax_setting.py +95 -0
- je_editor/pyside_ui/code/textedit_code_result/code_record.py +75 -0
- je_editor/pyside_ui/code/variable_inspector/inspector_gui.py +172 -0
- je_editor/pyside_ui/dialog/ai_dialog/set_ai_dialog.py +71 -0
- je_editor/pyside_ui/dialog/file_dialog/create_file_dialog.py +68 -0
- je_editor/pyside_ui/dialog/file_dialog/open_file_dialog.py +111 -0
- je_editor/pyside_ui/dialog/file_dialog/save_file_dialog.py +67 -0
- je_editor/pyside_ui/dialog/search_ui/search_error_box.py +49 -0
- je_editor/pyside_ui/dialog/search_ui/search_text_box.py +49 -0
- je_editor/pyside_ui/git_ui/code_diff_compare/code_diff_viewer_widget.py +90 -0
- je_editor/pyside_ui/git_ui/code_diff_compare/line_number_code_viewer.py +141 -0
- je_editor/pyside_ui/git_ui/code_diff_compare/multi_file_diff_viewer.py +88 -0
- je_editor/pyside_ui/git_ui/code_diff_compare/side_by_side_diff_widget.py +284 -0
- je_editor/pyside_ui/git_ui/git_client/commit_table.py +65 -0
- je_editor/pyside_ui/git_ui/git_client/git_branch_tree_widget.py +156 -0
- je_editor/pyside_ui/git_ui/git_client/git_client_gui.py +799 -0
- je_editor/pyside_ui/git_ui/git_client/graph_view.py +218 -0
- je_editor/pyside_ui/main_ui/ai_widget/ai_config.py +34 -0
- je_editor/pyside_ui/main_ui/ai_widget/ask_thread.py +36 -0
- je_editor/pyside_ui/main_ui/ai_widget/chat_ui.py +147 -0
- je_editor/pyside_ui/main_ui/ai_widget/langchain_interface.py +84 -0
- je_editor/pyside_ui/main_ui/console_widget/console_gui.py +162 -0
- je_editor/pyside_ui/main_ui/console_widget/qprocess_adapter.py +84 -0
- je_editor/pyside_ui/main_ui/dock/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/dock/destroy_dock.py +50 -0
- je_editor/pyside_ui/main_ui/editor/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/editor/editor_widget.py +301 -0
- je_editor/pyside_ui/main_ui/editor/editor_widget_dock.py +70 -0
- je_editor/pyside_ui/main_ui/editor/process_input.py +101 -0
- je_editor/pyside_ui/main_ui/ipython_widget/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/ipython_widget/rich_jupyter.py +78 -0
- je_editor/pyside_ui/main_ui/main_editor.py +369 -0
- je_editor/pyside_ui/main_ui/menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/check_style_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/check_style_menu/build_check_style_menu.py +104 -0
- je_editor/pyside_ui/main_ui/menu/dock_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/dock_menu/build_dock_menu.py +208 -0
- je_editor/pyside_ui/main_ui/menu/file_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/file_menu/build_file_menu.py +186 -0
- je_editor/pyside_ui/main_ui/menu/help_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/help_menu/build_help_menu.py +100 -0
- je_editor/pyside_ui/main_ui/menu/language_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/language_menu/build_language_server.py +89 -0
- je_editor/pyside_ui/main_ui/menu/python_env_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/python_env_menu/build_venv_menu.py +238 -0
- je_editor/pyside_ui/main_ui/menu/run_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/run_menu/build_run_menu.py +160 -0
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_debug_menu.py +109 -0
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_program_menu.py +101 -0
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_shell_menu.py +98 -0
- je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/utils.py +41 -0
- je_editor/pyside_ui/main_ui/menu/set_menu_bar.py +63 -0
- je_editor/pyside_ui/main_ui/menu/style_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/style_menu/build_style_menu.py +73 -0
- je_editor/pyside_ui/main_ui/menu/tab_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/tab_menu/build_tab_menu.py +275 -0
- je_editor/pyside_ui/main_ui/menu/text_menu/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/menu/text_menu/build_text_menu.py +135 -0
- je_editor/pyside_ui/main_ui/save_settings/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/save_settings/setting_utils.py +33 -0
- je_editor/pyside_ui/main_ui/save_settings/user_color_setting_file.py +103 -0
- je_editor/pyside_ui/main_ui/save_settings/user_setting_file.py +58 -0
- je_editor/pyside_ui/main_ui/system_tray/__init__.py +0 -0
- je_editor/pyside_ui/main_ui/system_tray/extend_system_tray.py +90 -0
- je_editor/start_editor.py +32 -8
- je_editor/utils/encodings/python_encodings.py +100 -97
- je_editor/utils/exception/exception_tags.py +11 -11
- je_editor/utils/file/open/open_file.py +38 -22
- je_editor/utils/file/save/save_file.py +40 -16
- je_editor/utils/json/json_file.py +36 -15
- je_editor/utils/json_format/json_process.py +38 -2
- je_editor/utils/logging/__init__.py +0 -0
- je_editor/utils/logging/loggin_instance.py +57 -0
- je_editor/utils/multi_language/__init__.py +0 -0
- je_editor/utils/multi_language/english.py +221 -0
- je_editor/utils/multi_language/multi_language_wrapper.py +54 -0
- je_editor/utils/multi_language/traditional_chinese.py +214 -0
- je_editor/utils/redirect_manager/redirect_manager_class.py +67 -25
- je_editor/utils/venv_check/__init__.py +0 -0
- je_editor/utils/venv_check/check_venv.py +51 -0
- je_editor-0.0.228.dist-info/METADATA +99 -0
- je_editor-0.0.228.dist-info/RECORD +140 -0
- {je_editor-0.0.104.dist-info → je_editor-0.0.228.dist-info}/WHEEL +1 -1
- {je_editor-0.0.104.dist-info → je_editor-0.0.228.dist-info/licenses}/LICENSE +1 -1
- je_editor/pyside_ui/auto_save/auto_save_thread.py +0 -34
- je_editor/pyside_ui/code_editor/code_edit_plaintext.py +0 -143
- je_editor/pyside_ui/code_process/code_exec.py +0 -190
- je_editor/pyside_ui/code_result/code_record.py +0 -39
- je_editor/pyside_ui/colors/global_color.py +0 -4
- je_editor/pyside_ui/file_dialog/open_file_dialog.py +0 -27
- je_editor/pyside_ui/file_dialog/save_file_dialog.py +0 -24
- je_editor/pyside_ui/main_ui/editor_main_ui/main_editor.py +0 -183
- je_editor/pyside_ui/main_ui_setting/ui_setting.py +0 -36
- je_editor/pyside_ui/menu/menu_bar/check_style_menu/build_check_style_menu.py +0 -44
- je_editor/pyside_ui/menu/menu_bar/file_menu/build_file_menu.py +0 -30
- je_editor/pyside_ui/menu/menu_bar/help_menu/build_help_menu.py +0 -39
- je_editor/pyside_ui/menu/menu_bar/run_menu/build_run_menu.py +0 -102
- je_editor/pyside_ui/menu/menu_bar/set_menu_bar.py +0 -24
- je_editor/pyside_ui/menu/menu_bar/venv_menu/build_venv_menu.py +0 -74
- je_editor/pyside_ui/search_ui/search_error_box.py +0 -20
- je_editor/pyside_ui/search_ui/search_text_box.py +0 -20
- je_editor/pyside_ui/shell_process/shell_exec.py +0 -157
- je_editor/pyside_ui/syntax/python_syntax.py +0 -99
- je_editor/pyside_ui/treeview/project_treeview/set_project_treeview.py +0 -47
- je_editor/pyside_ui/user_setting/user_setting_file.py +0 -23
- je_editor-0.0.104.dist-info/METADATA +0 -84
- je_editor-0.0.104.dist-info/RECORD +0 -69
- /je_editor/{pyside_ui/auto_save → code_scan}/__init__.py +0 -0
- /je_editor/{pyside_ui/code_editor → git_client}/__init__.py +0 -0
- /je_editor/pyside_ui/{code_process → browser}/__init__.py +0 -0
- /je_editor/pyside_ui/{code_result → code}/__init__.py +0 -0
- /je_editor/pyside_ui/{colors → code/auto_save}/__init__.py +0 -0
- /je_editor/pyside_ui/{file_dialog → code/code_format}/__init__.py +0 -0
- /je_editor/pyside_ui/{main_ui/editor_main_ui → code/code_process}/__init__.py +0 -0
- /je_editor/pyside_ui/{main_ui_setting → code/plaintext_code_edit}/__init__.py +0 -0
- /je_editor/pyside_ui/{menu → code/shell_process}/__init__.py +0 -0
- /je_editor/pyside_ui/{menu/menu_bar → code/syntax}/__init__.py +0 -0
- /je_editor/pyside_ui/{menu/menu_bar/check_style_menu → code/textedit_code_result}/__init__.py +0 -0
- /je_editor/pyside_ui/{menu/menu_bar/file_menu → code/variable_inspector}/__init__.py +0 -0
- /je_editor/pyside_ui/{menu/menu_bar/help_menu → dialog}/__init__.py +0 -0
- /je_editor/pyside_ui/{menu/menu_bar/run_menu → dialog/ai_dialog}/__init__.py +0 -0
- /je_editor/pyside_ui/{menu/menu_bar/venv_menu → dialog/file_dialog}/__init__.py +0 -0
- /je_editor/pyside_ui/{search_ui → dialog/search_ui}/__init__.py +0 -0
- /je_editor/pyside_ui/{shell_process → git_ui}/__init__.py +0 -0
- /je_editor/pyside_ui/{syntax → git_ui/code_diff_compare}/__init__.py +0 -0
- /je_editor/pyside_ui/{treeview → git_ui/git_client}/__init__.py +0 -0
- /je_editor/pyside_ui/{treeview/project_treeview → main_ui/ai_widget}/__init__.py +0 -0
- /je_editor/pyside_ui/{user_setting → main_ui/console_widget}/__init__.py +0 -0
- {je_editor-0.0.104.dist-info → je_editor-0.0.228.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# 匯入自訂錯誤訊息與例外類別
|
|
2
|
+
# Import custom error messages and exception class
|
|
3
|
+
|
|
4
|
+
import shutil
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
# 匯入自訂錯誤訊息與例外類別
|
|
8
|
+
# Import custom error messages and exception class
|
|
9
|
+
from je_editor.utils.exception.exception_tags import compiler_not_found_error
|
|
10
|
+
from je_editor.utils.exception.exceptions import JEditorExecException
|
|
11
|
+
from je_editor.utils.logging.loggin_instance import jeditor_logger
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def check_and_choose_venv(venv_path: Path) -> str:
|
|
15
|
+
"""
|
|
16
|
+
功能說明 (Function Description):
|
|
17
|
+
檢查虛擬環境 (venv) 路徑,並嘗試尋找可用的 Python 編譯器。
|
|
18
|
+
Check the virtual environment (venv) path and try to find a usable Python interpreter.
|
|
19
|
+
|
|
20
|
+
:param venv_path: 虛擬環境的路徑 / path to the virtual environment
|
|
21
|
+
:return: Python 編譯器的完整路徑 / full path to the Python interpreter
|
|
22
|
+
:raise JEditorExecException: 若找不到 Python 編譯器 / if no Python interpreter is found
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
jeditor_logger.info(f"check_venv.py check_and_choose_venv venv_path: {venv_path}")
|
|
26
|
+
|
|
27
|
+
# 如果 venv_path 是資料夾且存在
|
|
28
|
+
# If venv_path is a directory and exists
|
|
29
|
+
if venv_path.is_dir() and venv_path.exists():
|
|
30
|
+
# 先嘗試在該路徑下尋找 python3
|
|
31
|
+
# Try to find python3 in the given path
|
|
32
|
+
compiler_path = shutil.which("python3", path=str(venv_path))
|
|
33
|
+
if compiler_path:
|
|
34
|
+
return compiler_path
|
|
35
|
+
|
|
36
|
+
# 如果找不到 python3,再找 python
|
|
37
|
+
# If python3 not found, try python
|
|
38
|
+
compiler_path = shutil.which("python", path=str(venv_path))
|
|
39
|
+
if compiler_path:
|
|
40
|
+
return compiler_path
|
|
41
|
+
|
|
42
|
+
# 如果 venv_path 無效或都找不到,最後再嘗試系統預設的 python3 或 python
|
|
43
|
+
# If venv_path is invalid or no interpreter found, try system default python3 or python
|
|
44
|
+
compiler_path = shutil.which("python3") or shutil.which("python")
|
|
45
|
+
|
|
46
|
+
# 如果還是找不到,拋出例外
|
|
47
|
+
# If still not found, raise exception
|
|
48
|
+
if compiler_path is None:
|
|
49
|
+
raise JEditorExecException(compiler_not_found_error)
|
|
50
|
+
|
|
51
|
+
return compiler_path
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: je_editor
|
|
3
|
+
Version: 0.0.228
|
|
4
|
+
Summary: JEditor is basic but powerful editor include GPT
|
|
5
|
+
Author-email: JE-Chen <jechenmailman@gmail.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/JE-Chen/je_editor
|
|
7
|
+
Project-URL: Documentation, https://je-editor.readthedocs.io/en/latest/
|
|
8
|
+
Project-URL: Code, https://github.com/JE-Chen/je_editor
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
10
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
11
|
+
Classifier: Environment :: Win32 (MS Windows)
|
|
12
|
+
Classifier: Environment :: MacOS X
|
|
13
|
+
Classifier: Environment :: X11 Applications
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Requires-Python: >=3.10
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: PySide6==6.10.0
|
|
20
|
+
Requires-Dist: qt-material
|
|
21
|
+
Requires-Dist: yapf
|
|
22
|
+
Requires-Dist: frontengine
|
|
23
|
+
Requires-Dist: pycodestyle
|
|
24
|
+
Requires-Dist: jedi
|
|
25
|
+
Requires-Dist: qtconsole
|
|
26
|
+
Requires-Dist: langchain_openai==1.0.2
|
|
27
|
+
Requires-Dist: langchain==1.0.3
|
|
28
|
+
Requires-Dist: pydantic
|
|
29
|
+
Requires-Dist: watchdog
|
|
30
|
+
Requires-Dist: ruff
|
|
31
|
+
Requires-Dist: gitpython
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
# je_editor
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
[](https://pepy.tech/project/je-editor)
|
|
39
|
+
|
|
40
|
+
[](https://www.codacy.com/gh/JE-Chen/je_editor/dashboard?utm_source=github.com&utm_medium=referral&utm_content=JE-Chen/je_editor&utm_campaign=Badge_Grade)
|
|
41
|
+
|
|
42
|
+
[](https://github.com/Intergration-Automation-Testing/je_editor/actions/workflows/stable_python3_9.yml)
|
|
43
|
+
|
|
44
|
+
[](https://github.com/Intergration-Automation-Testing/je_editor/actions/workflows/stable_python3_10.yml)
|
|
45
|
+
|
|
46
|
+
[](https://github.com/Intergration-Automation-Testing/je_editor/actions/workflows/stable_python3_11.yml)
|
|
47
|
+
|
|
48
|
+
### Document
|
|
49
|
+
|
|
50
|
+
[](https://je-editor.readthedocs.io/en/latest/?badge=latest)
|
|
51
|
+
|
|
52
|
+
[JEditor Doc Click Here!](https://je-editor.readthedocs.io/en/latest/)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+

|
|
58
|
+
> * Project Kanban https://github.com/orgs/Integration-Automation/projects/2/views/1
|
|
59
|
+
> * Modern Editor.
|
|
60
|
+
> * Old JEditor remake.
|
|
61
|
+
> * AutoSave, Encoding Feature.
|
|
62
|
+
> * Multi program and shell runner.
|
|
63
|
+
> * Including yapf python format checker.
|
|
64
|
+
> * Including reformat JSON.
|
|
65
|
+
> * Virtual Environment support.
|
|
66
|
+
> * Dark & Light mode ui support.
|
|
67
|
+
> * File tree support.
|
|
68
|
+
> * Line code.
|
|
69
|
+
> * Current line highlight.
|
|
70
|
+
> * Python code highlight.
|
|
71
|
+
> * Performance efficiency than old JEditor 1000%.
|
|
72
|
+
> * OS Independent.
|
|
73
|
+
|
|
74
|
+
* Include FrontEngine & FrontEngine GPT
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Requires
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
python 3.9 or later
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## install
|
|
85
|
+
|
|
86
|
+
```commandline
|
|
87
|
+
pip install je_editor
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
* Test on
|
|
91
|
+
* windows 10 ~ 11
|
|
92
|
+
* osx 10.5 ~ 11 big sur
|
|
93
|
+
* ubuntu 20.0.4
|
|
94
|
+
* raspberry pi 3B+
|
|
95
|
+
|
|
96
|
+
| All test in test dir
|
|
97
|
+
|
|
98
|
+
### Architecture Diagram
|
|
99
|
+

|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
je_editor/__init__.py,sha256=yIUH6MZZUrVYKo0emfnHmq4hzjTu1NygO2lbIpmYkao,2418
|
|
2
|
+
je_editor/__main__.py,sha256=2ymm4ESRcqP4K1YQyeaDbGhuK-0C1IausIiEOpbm6Ds,570
|
|
3
|
+
je_editor/start_editor.py,sha256=dxO48X6CZAsyU-MjFw3iek0CAb__lhbvtzAqV3g_3g0,1503
|
|
4
|
+
je_editor/code_scan/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
je_editor/code_scan/ruff_thread.py,sha256=DNM4cEZt5PBqIDtyy5GXq9BFwLhSuLu8FFBxn3_9xRE,1983
|
|
6
|
+
je_editor/code_scan/watchdog_implement.py,sha256=OlBIgjj3A4RnS1a2jlyqZg1Ot5mKTsr3eASZpJcerN0,2116
|
|
7
|
+
je_editor/code_scan/watchdog_thread.py,sha256=B_ezpxiHUjluDzcBOIOAAo5V9iORkkIvoztmv3LwxLo,2611
|
|
8
|
+
je_editor/git_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
je_editor/git_client/commit_graph.py,sha256=JPCe5-JTMPpziJYI7ufXJibSVYJuLZRw37-L6IY1ve4,2721
|
|
10
|
+
je_editor/git_client/git_action.py,sha256=9zoPLh1PBvs8a59n9ZQqXNLIOniAXdta6LmCbDlV3Zs,6094
|
|
11
|
+
je_editor/git_client/git_cli.py,sha256=GAKbjsYZEhp0eUe5SeMO-Wk_E9mzpFhiz3jw4bVO0fI,2098
|
|
12
|
+
je_editor/pyside_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
je_editor/pyside_ui/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
+
je_editor/pyside_ui/browser/browser_download_window.py,sha256=8yNm4HkNfLsjXLDAlwLV-5Xd9ybGP8g-jzi7WWtoz0Y,3385
|
|
15
|
+
je_editor/pyside_ui/browser/browser_serach_lineedit.py,sha256=Pd6OieulMgWEGq-kk7Hqp2W3nvt45F57fb_9ZORXnBo,1877
|
|
16
|
+
je_editor/pyside_ui/browser/browser_view.py,sha256=K8fJM33yU_5A3BIho_A6kOFBEfu5VnmLaK6evG6p2OY,3120
|
|
17
|
+
je_editor/pyside_ui/browser/browser_widget.py,sha256=BMV9YleKPhHCsBPLWHoOzD2JBJzzuWITBDOrYZPjmkc,4840
|
|
18
|
+
je_editor/pyside_ui/browser/main_browser_widget.py,sha256=4rIdOBcuH4KVy7RNgP910l6Pa1yCCragrMKsZBnSHPs,4045
|
|
19
|
+
je_editor/pyside_ui/code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
je_editor/pyside_ui/code/running_process_manager.py,sha256=ySJCeL50MBQnqIb9clTYa2-57QPbfqbBRUgWLP1yigg,1854
|
|
21
|
+
je_editor/pyside_ui/code/auto_save/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
+
je_editor/pyside_ui/code/auto_save/auto_save_manager.py,sha256=50sf4jJUxGV7E2Zx9IRTBY5j-vwa1DtfL0IhqM3tkyE,2283
|
|
23
|
+
je_editor/pyside_ui/code/auto_save/auto_save_thread.py,sha256=JPBB9Fqvzmn0fdrvf_7uWU0GQxAYLhtXaydrrp_-v5c,2680
|
|
24
|
+
je_editor/pyside_ui/code/code_format/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
+
je_editor/pyside_ui/code/code_format/pep8_format.py,sha256=2WLUgfZ_9ldZ9Tmid6InAiwf3IpV8x0KtswefghRJPs,5547
|
|
26
|
+
je_editor/pyside_ui/code/code_process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
+
je_editor/pyside_ui/code/code_process/code_exec.py,sha256=pILtFug7VP8E0_keArWkKB84AzNSBKlFl1b2Qbag8rg,12738
|
|
28
|
+
je_editor/pyside_ui/code/plaintext_code_edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
+
je_editor/pyside_ui/code/plaintext_code_edit/code_edit_plaintext.py,sha256=0n8mpHVikjGvgM4NDcqnEKOTKATYeM5D9_VFl9ysZno,16259
|
|
30
|
+
je_editor/pyside_ui/code/shell_process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
+
je_editor/pyside_ui/code/shell_process/shell_exec.py,sha256=mB2QzeCkXap6lEk6Gso6_4K_SPn415g9JkJAH3sVaD4,12787
|
|
32
|
+
je_editor/pyside_ui/code/syntax/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
+
je_editor/pyside_ui/code/syntax/python_syntax.py,sha256=LhBk3QUNUIhX388fIQEEZuybIMKDXK5W07L9LW_2ZCg,4544
|
|
34
|
+
je_editor/pyside_ui/code/syntax/syntax_setting.py,sha256=Vf9PQRPe3esvXWEhO7lOJ_WCsQJMdZa4ugm106UN-G4,3735
|
|
35
|
+
je_editor/pyside_ui/code/textedit_code_result/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
+
je_editor/pyside_ui/code/textedit_code_result/code_record.py,sha256=D0a73RtoAr0XrQgoq7IxmvQdhshCJi5Ho_atG2Ev_J0,3400
|
|
37
|
+
je_editor/pyside_ui/code/variable_inspector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
+
je_editor/pyside_ui/code/variable_inspector/inspector_gui.py,sha256=tt-Y_rlSZDHj3cE4cdGxZVSc6rRcOxRHDb2sflLwQac,7009
|
|
39
|
+
je_editor/pyside_ui/dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
+
je_editor/pyside_ui/dialog/ai_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
+
je_editor/pyside_ui/dialog/ai_dialog/set_ai_dialog.py,sha256=MoJRBA5lUH4MDTS4_js6L1xP4LflXbWX-kUTu6IcRwg,3290
|
|
42
|
+
je_editor/pyside_ui/dialog/file_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
|
+
je_editor/pyside_ui/dialog/file_dialog/create_file_dialog.py,sha256=bfi1kQm1I29OScA5JAOirdlFkBu_MWpS7n2DC5u47PA,2744
|
|
44
|
+
je_editor/pyside_ui/dialog/file_dialog/open_file_dialog.py,sha256=8r0KQYr58-dalu0cUUBMLautQULrxz4AFcsOySw5P2E,5051
|
|
45
|
+
je_editor/pyside_ui/dialog/file_dialog/save_file_dialog.py,sha256=7QrPr7RbIxf1UYbaEMc2RpE_zqg4WA-zJGTpnIMz-TU,2783
|
|
46
|
+
je_editor/pyside_ui/dialog/search_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
+
je_editor/pyside_ui/dialog/search_ui/search_error_box.py,sha256=3hyFbamBx9Mh6YT-pq3SlP9GUi3vX_ehrL5r4pLrNzU,1812
|
|
48
|
+
je_editor/pyside_ui/dialog/search_ui/search_text_box.py,sha256=DpHSPpWDHm043AXCQKtP1koKfdj-dbOmOBj2NdiH7LQ,1881
|
|
49
|
+
je_editor/pyside_ui/git_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
+
je_editor/pyside_ui/git_ui/code_diff_compare/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
+
je_editor/pyside_ui/git_ui/code_diff_compare/code_diff_viewer_widget.py,sha256=GIqXdvTi29a830urelbLqG0ITyldzTya1kqPNTK0w4Q,3643
|
|
52
|
+
je_editor/pyside_ui/git_ui/code_diff_compare/line_number_code_viewer.py,sha256=VFC98ERf-Wj78MTD0bwAXOKtFRTjcdkndA-SiuiTI0g,5638
|
|
53
|
+
je_editor/pyside_ui/git_ui/code_diff_compare/multi_file_diff_viewer.py,sha256=V9SSTLpb9W_GQJBhzO-n1y0AdJn5y5vCRTnoJs7zC0o,3196
|
|
54
|
+
je_editor/pyside_ui/git_ui/code_diff_compare/side_by_side_diff_widget.py,sha256=6dbHCRfEwJxnzWkbSDV0MiVL6cAbn54zCdIKDqFcS6Q,11336
|
|
55
|
+
je_editor/pyside_ui/git_ui/git_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
+
je_editor/pyside_ui/git_ui/git_client/commit_table.py,sha256=Xgmzvsj-awdcQ149lUCmOcVkJrEg5EwVpSsZ3q6ntGk,2553
|
|
57
|
+
je_editor/pyside_ui/git_ui/git_client/git_branch_tree_widget.py,sha256=hwAbljngXWOt4t6E6Om5KliwWOK_5tbsuBCjrSCXVPU,6470
|
|
58
|
+
je_editor/pyside_ui/git_ui/git_client/git_client_gui.py,sha256=58035pLsBLPHm0_dKE-jWLuFhw4NqhpgiexfdNP-2xo,34246
|
|
59
|
+
je_editor/pyside_ui/git_ui/git_client/graph_view.py,sha256=WfRGIEU9mW6EvNBbWLnE5uwS1YuRuPmRA1K-brFxSTE,7908
|
|
60
|
+
je_editor/pyside_ui/main_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
|
+
je_editor/pyside_ui/main_ui/main_editor.py,sha256=dc1w0FFT86GZgYpGPtNlXlbMKALh7LfsXDHZuYni3VA,15899
|
|
62
|
+
je_editor/pyside_ui/main_ui/ai_widget/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
+
je_editor/pyside_ui/main_ui/ai_widget/ai_config.py,sha256=8DfSAbSF64GGbYd-fHn9C4Odq8lcReh8RnEfzgzDrGQ,1304
|
|
64
|
+
je_editor/pyside_ui/main_ui/ai_widget/ask_thread.py,sha256=LSnjKANAgVWI5AUkMP_EjFqE9DUmsDUycHZMQASteTA,1493
|
|
65
|
+
je_editor/pyside_ui/main_ui/ai_widget/chat_ui.py,sha256=K6I3jPwTZVHlYUydYMc3Ic_MLgBVyiCx_kAW8D_QS1Y,9027
|
|
66
|
+
je_editor/pyside_ui/main_ui/ai_widget/langchain_interface.py,sha256=oJRUhGqxNWkCwojDVmX_Xh1vGXDMHIIqI7b4tIqGFRw,3490
|
|
67
|
+
je_editor/pyside_ui/main_ui/console_widget/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
|
+
je_editor/pyside_ui/main_ui/console_widget/console_gui.py,sha256=EhzXKhs0N5HE7elsznlnPs7Q_dgkFu7mUwvwgbNwIBs,7429
|
|
69
|
+
je_editor/pyside_ui/main_ui/console_widget/qprocess_adapter.py,sha256=gmpNKAhZW5Qmh0EHoCkOGUF4e_yYVGHB6l0h0J6SnIg,4094
|
|
70
|
+
je_editor/pyside_ui/main_ui/dock/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
+
je_editor/pyside_ui/main_ui/dock/destroy_dock.py,sha256=wyJ8yWiSTOU8jEyH7VPPqXnwfeoXDg6-icA0MUzfGmk,1878
|
|
72
|
+
je_editor/pyside_ui/main_ui/editor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
+
je_editor/pyside_ui/main_ui/editor/editor_widget.py,sha256=-s8Jg8V4t3VRndncHi6PWdFgeZw-A-EWonhixeWuPEg,14035
|
|
74
|
+
je_editor/pyside_ui/main_ui/editor/editor_widget_dock.py,sha256=fAK-EQeRcGtCY2G8T_to6cbgUqRZPFsCM5z2oBj2C6A,3253
|
|
75
|
+
je_editor/pyside_ui/main_ui/editor/process_input.py,sha256=hDBGcIRsNzJyFhGS33i8Yr150yPcihjUF6tLi6bGPPE,5364
|
|
76
|
+
je_editor/pyside_ui/main_ui/ipython_widget/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
|
+
je_editor/pyside_ui/main_ui/ipython_widget/rich_jupyter.py,sha256=h5x1o_RAzN_IY8RQHANtoXHpxBt_hkhKS9tmbcQJzAw,3944
|
|
78
|
+
je_editor/pyside_ui/main_ui/menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
|
+
je_editor/pyside_ui/main_ui/menu/set_menu_bar.py,sha256=K9eJM5BV2RbYNwzR2RfmX3bmnZp3TPeriH3arTCXROQ,3139
|
|
80
|
+
je_editor/pyside_ui/main_ui/menu/check_style_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
+
je_editor/pyside_ui/main_ui/menu/check_style_menu/build_check_style_menu.py,sha256=9-Brr61P9wVcD3oiEEYN-wsOoguuZOZMqPcEvzPdfOk,5492
|
|
82
|
+
je_editor/pyside_ui/main_ui/menu/dock_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
je_editor/pyside_ui/main_ui/menu/dock_menu/build_dock_menu.py,sha256=_iBQ5JCDVKC7zK9dPV2DBON80sPd0XVT9n8TdZkek40,10799
|
|
84
|
+
je_editor/pyside_ui/main_ui/menu/file_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
|
+
je_editor/pyside_ui/main_ui/menu/file_menu/build_file_menu.py,sha256=Buhs5IoxgWMwzMukEsXSuxXIGL1e_-jPYipyYUfd_Lw,8876
|
|
86
|
+
je_editor/pyside_ui/main_ui/menu/help_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
|
+
je_editor/pyside_ui/main_ui/menu/help_menu/build_help_menu.py,sha256=gCYNctrkb6jzsT7G5bVnbJLt7p2r16pqrLhNLhQemlw,4161
|
|
88
|
+
je_editor/pyside_ui/main_ui/menu/language_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
|
+
je_editor/pyside_ui/main_ui/menu/language_menu/build_language_server.py,sha256=tkWNPwj7cAqm3g8u3tr98oXfXggQb0nJkmnZDbu6N2c,3831
|
|
90
|
+
je_editor/pyside_ui/main_ui/menu/python_env_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
+
je_editor/pyside_ui/main_ui/menu/python_env_menu/build_venv_menu.py,sha256=_4dHdL9Cha_2JaZIudr0VR16zzeR7dd-IkVRsmeCcSA,12299
|
|
92
|
+
je_editor/pyside_ui/main_ui/menu/run_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
+
je_editor/pyside_ui/main_ui/menu/run_menu/build_run_menu.py,sha256=ksGzh17eWrH7jighjRjwI0ENF-yTb86NMEGY3FcwM0Q,6587
|
|
94
|
+
je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
95
|
+
je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_debug_menu.py,sha256=DqYVSog1HdKlfHROc-Rn5ciffe_7DPkn_0LBMqJ2E5k,5142
|
|
96
|
+
je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_program_menu.py,sha256=xmMHcbqucWRyHuwKrwJPUQYMVsOJu2HscJnIyh2aD58,4863
|
|
97
|
+
je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/build_shell_menu.py,sha256=0mPwGbLg_K9O7H0jfWWHXcfsBMubIGkZz2aCucusKIA,4561
|
|
98
|
+
je_editor/pyside_ui/main_ui/menu/run_menu/under_run_menu/utils.py,sha256=72Fc3oX9_cqg6qqMKMl0fXtziH1kV42jR2LsLxalGYY,1731
|
|
99
|
+
je_editor/pyside_ui/main_ui/menu/style_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
100
|
+
je_editor/pyside_ui/main_ui/menu/style_menu/build_style_menu.py,sha256=gMBo-pDI2uTiXcKjSPChaUNd1l27MriBdo5ZRzTQsLY,3229
|
|
101
|
+
je_editor/pyside_ui/main_ui/menu/tab_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
|
+
je_editor/pyside_ui/main_ui/menu/tab_menu/build_tab_menu.py,sha256=dEuTeWs3W1wIX8-aDyKoNT9n82LB7GVATa9V6lJd_Lw,13154
|
|
103
|
+
je_editor/pyside_ui/main_ui/menu/text_menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
104
|
+
je_editor/pyside_ui/main_ui/menu/text_menu/build_text_menu.py,sha256=GkZwEpndZK3z1G70fipaC24KMH4KN7a89OX-SazRNbo,5869
|
|
105
|
+
je_editor/pyside_ui/main_ui/save_settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
106
|
+
je_editor/pyside_ui/main_ui/save_settings/setting_utils.py,sha256=4itj8FWxkVNMa_J8IsQqY-JY36ww6rASJ0lGL3zac14,1372
|
|
107
|
+
je_editor/pyside_ui/main_ui/save_settings/user_color_setting_file.py,sha256=pJgyejR6nxJSBC-5eHjLkfdKr3kc2DSb9a0h227iWKU,4473
|
|
108
|
+
je_editor/pyside_ui/main_ui/save_settings/user_setting_file.py,sha256=zGdSjlDtDWFAYz4LxJOdPP78UGzsDH1alGSxH94GA18,2431
|
|
109
|
+
je_editor/pyside_ui/main_ui/system_tray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
+
je_editor/pyside_ui/main_ui/system_tray/extend_system_tray.py,sha256=NMhLWEkpnbGjPwPITU0t03z5ZnNDV9cYuD7g_SLPhjc,3661
|
|
111
|
+
je_editor/utils/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
112
|
+
je_editor/utils/encodings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
113
|
+
je_editor/utils/encodings/python_encodings.py,sha256=7FZiXQOx2XrgEibwYe5fMu6tExBnhYCi0LLhUwO8NFE,6458
|
|
114
|
+
je_editor/utils/exception/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
115
|
+
je_editor/utils/exception/exception_tags.py,sha256=_Ev3-kyxhEh1afD7hClvuBxfDLp3L4AEudn2GrCXz8g,1106
|
|
116
|
+
je_editor/utils/exception/exceptions.py,sha256=4e2ivqFWgBq4L_8QgRjd79xdOAgR_tyW_hpBlQeePpw,506
|
|
117
|
+
je_editor/utils/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
118
|
+
je_editor/utils/file/open/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
119
|
+
je_editor/utils/file/open/open_file.py,sha256=wAFA6TZs5iL0VhBExfaJSwXfFJ26hkuHWwwZRrVf2Zo,2460
|
|
120
|
+
je_editor/utils/file/save/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
121
|
+
je_editor/utils/file/save/save_file.py,sha256=wq8HlW_NuBBLu7iqZburlRyx2iSWQPyOwX8vANs1WjE,2294
|
|
122
|
+
je_editor/utils/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
123
|
+
je_editor/utils/json/json_file.py,sha256=-rtW1JaIdL_Qkaso1tuLd3WCgz5hHUmmWqnn84yuJcg,2921
|
|
124
|
+
je_editor/utils/json_format/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
125
|
+
je_editor/utils/json_format/json_process.py,sha256=Gc975IBbcRF11Zxbp1iLwA56oEIIwL4D72Zx_wUHdy8,2942
|
|
126
|
+
je_editor/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
|
+
je_editor/utils/logging/loggin_instance.py,sha256=Bq2QUR7uQXmdE8J5BDU_mAu9-JA43vfWmgRDxzCLrX8,2468
|
|
128
|
+
je_editor/utils/multi_language/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
129
|
+
je_editor/utils/multi_language/english.py,sha256=DhmyXe4oa5Mpaoqzg9tOnCoA1wajPk0kWL01NORt-2M,10049
|
|
130
|
+
je_editor/utils/multi_language/multi_language_wrapper.py,sha256=M4l-zkDA1wGXVgFM39mhsfABnBZ5nXH9EkMEe-P0Xus,2065
|
|
131
|
+
je_editor/utils/multi_language/traditional_chinese.py,sha256=IaQNlAm13BuOYfnt04S9-VZ3Ixtgfq9kaKvSZGlrmDY,10105
|
|
132
|
+
je_editor/utils/redirect_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
133
|
+
je_editor/utils/redirect_manager/redirect_manager_class.py,sha256=J430b5L-qc8ILPigKBawFLQIF46km5ckGRfARTYkLVY,3869
|
|
134
|
+
je_editor/utils/venv_check/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
|
+
je_editor/utils/venv_check/check_venv.py,sha256=5sq4EGJA9POWcua4dq92hY-ON4laNV68URtXrJSCzHY,2177
|
|
136
|
+
je_editor-0.0.228.dist-info/licenses/LICENSE,sha256=KMhUHh6pnIUvmXDW-49L_Sz63bqkOlPDqsecaqKiitU,1091
|
|
137
|
+
je_editor-0.0.228.dist-info/METADATA,sha256=b70iUfixqXnQXTO0i2iGzPYH5hcM4JiWPrQHfZkWh_g,3487
|
|
138
|
+
je_editor-0.0.228.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
139
|
+
je_editor-0.0.228.dist-info/top_level.txt,sha256=_9YA7BgxpkmdLs-5V_UQILxClcMRgPyG1a3qaE-Bkcs,10
|
|
140
|
+
je_editor-0.0.228.dist-info/RECORD,,
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import time
|
|
2
|
-
from pathlib import Path
|
|
3
|
-
from threading import Thread
|
|
4
|
-
|
|
5
|
-
from je_editor.utils.file.save.save_file import write_file
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class SaveThread(Thread):
|
|
9
|
-
|
|
10
|
-
def __init__(self, file_to_save, text_to_write, auto_save=False):
|
|
11
|
-
"""
|
|
12
|
-
:param file_to_save: file we want to auto save
|
|
13
|
-
:param text_to_write: text that will be output to file
|
|
14
|
-
:param auto_save: enable auto save or not
|
|
15
|
-
"""
|
|
16
|
-
super().__init__()
|
|
17
|
-
self.file = file_to_save
|
|
18
|
-
self.path = None
|
|
19
|
-
self.text_to_write = text_to_write
|
|
20
|
-
self.auto_save = auto_save
|
|
21
|
-
# set daemon
|
|
22
|
-
self.daemon = True
|
|
23
|
-
|
|
24
|
-
def run(self):
|
|
25
|
-
# loop and save current edit file
|
|
26
|
-
if self.file is not None:
|
|
27
|
-
self.auto_save = True
|
|
28
|
-
self.path = Path(self.file)
|
|
29
|
-
while self.auto_save and self.file is not None:
|
|
30
|
-
time.sleep(5)
|
|
31
|
-
if self.path.exists() and self.path.is_file():
|
|
32
|
-
write_file(self.file, self.text_to_write)
|
|
33
|
-
else:
|
|
34
|
-
break
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
from PySide6 import QtGui
|
|
2
|
-
from PySide6.QtCore import Qt, QRect
|
|
3
|
-
from PySide6.QtGui import QPainter, QColor, QTextCharFormat, QTextFormat, QKeyEvent, QAction, QTextDocument
|
|
4
|
-
from PySide6.QtWidgets import QPlainTextEdit, QWidget, QTextEdit
|
|
5
|
-
|
|
6
|
-
from je_editor.pyside_ui.search_ui.search_text_box import SearchBox
|
|
7
|
-
from je_editor.pyside_ui.syntax.python_syntax import PythonHighlighter
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class CodeEditor(QPlainTextEdit):
|
|
11
|
-
|
|
12
|
-
def __init__(self):
|
|
13
|
-
super().__init__()
|
|
14
|
-
self.line_number = LineNumber(self)
|
|
15
|
-
self.blockCountChanged.connect(self.update_line_number_area_width)
|
|
16
|
-
self.updateRequest.connect(self.update_line_number_area)
|
|
17
|
-
self.update_line_number_area_width(0)
|
|
18
|
-
self.textChanged.connect(self.highlight_current_line)
|
|
19
|
-
self.setTabStopDistance(
|
|
20
|
-
QtGui.QFontMetricsF(self.font()).horizontalAdvance(' ') * 4
|
|
21
|
-
)
|
|
22
|
-
self.highlighter = PythonHighlighter(self.document())
|
|
23
|
-
self.highlight_current_line()
|
|
24
|
-
self.setLineWrapMode(self.LineWrapMode.NoWrap)
|
|
25
|
-
# Search Text
|
|
26
|
-
self.search_action = QAction("Search")
|
|
27
|
-
self.search_action.setShortcut("Ctrl+f")
|
|
28
|
-
self.search_action.triggered.connect(
|
|
29
|
-
self.start_search_dialog
|
|
30
|
-
)
|
|
31
|
-
self.addAction(self.search_action)
|
|
32
|
-
|
|
33
|
-
def start_search_dialog(self):
|
|
34
|
-
self.search_box = SearchBox()
|
|
35
|
-
self.search_box.search_back_button.clicked.connect(
|
|
36
|
-
self.find_back_text
|
|
37
|
-
)
|
|
38
|
-
self.search_box.search_next_button.clicked.connect(
|
|
39
|
-
self.find_next_text
|
|
40
|
-
)
|
|
41
|
-
self.search_box.show()
|
|
42
|
-
|
|
43
|
-
def find_next_text(self):
|
|
44
|
-
if self.search_box.isVisible():
|
|
45
|
-
text = self.search_box.search_input.text()
|
|
46
|
-
self.find(text)
|
|
47
|
-
|
|
48
|
-
def find_back_text(self):
|
|
49
|
-
if self.search_box.isVisible():
|
|
50
|
-
text = self.search_box.search_input.text()
|
|
51
|
-
self.find(text, QTextDocument.FindFlag.FindBackward)
|
|
52
|
-
|
|
53
|
-
def line_number_paint(self, event):
|
|
54
|
-
painter = QPainter(self.line_number)
|
|
55
|
-
painter.fillRect(event.rect(), QColor(51, 51, 77))
|
|
56
|
-
block = self.firstVisibleBlock()
|
|
57
|
-
block_number = block.blockNumber()
|
|
58
|
-
top = self.blockBoundingGeometry(block).translated(self.contentOffset()).top()
|
|
59
|
-
bottom = top + self.blockBoundingRect(block).height()
|
|
60
|
-
while block.isValid() and top <= event.rect().bottom():
|
|
61
|
-
if block.isVisible() and bottom >= event.rect().top():
|
|
62
|
-
number = str(block_number + 1)
|
|
63
|
-
painter.setPen(QColor(179, 179, 204))
|
|
64
|
-
painter.drawText(
|
|
65
|
-
0,
|
|
66
|
-
top,
|
|
67
|
-
self.line_number.width(),
|
|
68
|
-
self.fontMetrics().height(),
|
|
69
|
-
Qt.AlignmentFlag.AlignCenter,
|
|
70
|
-
number,
|
|
71
|
-
)
|
|
72
|
-
block = block.next()
|
|
73
|
-
top = bottom
|
|
74
|
-
bottom = top + self.blockBoundingRect(block).height()
|
|
75
|
-
block_number += 1
|
|
76
|
-
|
|
77
|
-
def line_number_width(self):
|
|
78
|
-
digits = len(str(self.blockCount()))
|
|
79
|
-
space = 10 * digits
|
|
80
|
-
return space
|
|
81
|
-
|
|
82
|
-
def update_line_number_area_width(self, value):
|
|
83
|
-
self.setViewportMargins(self.line_number_width(), 0, 0, 0)
|
|
84
|
-
|
|
85
|
-
def resizeEvent(self, event):
|
|
86
|
-
QPlainTextEdit.resizeEvent(self, event)
|
|
87
|
-
cr = self.contentsRect()
|
|
88
|
-
self.line_number.setGeometry(
|
|
89
|
-
QRect(cr.left(), cr.top(), self.line_number_width(), cr.height()),
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
def update_line_number_area(self, rect, dy):
|
|
93
|
-
if dy:
|
|
94
|
-
self.line_number.scroll(0, dy)
|
|
95
|
-
else:
|
|
96
|
-
self.line_number.update(
|
|
97
|
-
0,
|
|
98
|
-
rect.y(),
|
|
99
|
-
self.line_number.width(),
|
|
100
|
-
rect.height(),
|
|
101
|
-
)
|
|
102
|
-
if rect.contains(self.viewport().rect()):
|
|
103
|
-
self.update_line_number_area_width(0)
|
|
104
|
-
|
|
105
|
-
def highlight_current_line(self):
|
|
106
|
-
selections = []
|
|
107
|
-
if not self.isReadOnly():
|
|
108
|
-
formats = QTextCharFormat()
|
|
109
|
-
selection = QTextEdit.ExtraSelection()
|
|
110
|
-
selection.format = formats
|
|
111
|
-
color_of_the_line = QColor(92, 92, 138)
|
|
112
|
-
selection.cursor = self.textCursor()
|
|
113
|
-
selection.cursor.clearSelection()
|
|
114
|
-
selections.append(selection)
|
|
115
|
-
selection.format.setBackground(color_of_the_line)
|
|
116
|
-
selection.format.setProperty(QTextFormat.FullWidthSelection, True)
|
|
117
|
-
self.setExtraSelections(selections)
|
|
118
|
-
|
|
119
|
-
def keyPressEvent(self, event):
|
|
120
|
-
key_event = QKeyEvent(event)
|
|
121
|
-
if key_event.modifiers() and Qt.Modifier.SHIFT:
|
|
122
|
-
key = key_event.key()
|
|
123
|
-
if key == Qt.Key.Key_Enter or key == Qt.Key.Key_Return:
|
|
124
|
-
event.ignore()
|
|
125
|
-
else:
|
|
126
|
-
super().keyPressEvent(event)
|
|
127
|
-
else:
|
|
128
|
-
super().keyPressEvent(event)
|
|
129
|
-
self.highlight_current_line()
|
|
130
|
-
|
|
131
|
-
def mousePressEvent(self, event) -> None:
|
|
132
|
-
super().mousePressEvent(event)
|
|
133
|
-
self.highlight_current_line()
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
class LineNumber(QWidget):
|
|
137
|
-
|
|
138
|
-
def __init__(self, editor):
|
|
139
|
-
QWidget.__init__(self, parent=editor)
|
|
140
|
-
self.editor = editor
|
|
141
|
-
|
|
142
|
-
def paintEvent(self, event):
|
|
143
|
-
self.editor.line_number_paint(event)
|