pyqt-code-editor 0.0.13__tar.gz → 0.0.14__tar.gz
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.
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/PKG-INFO +2 -2
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/__init__.py +1 -1
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/check.py +3 -2
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/file_link.py +11 -1
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/syntax_highlighters/languages/generic.py +21 -16
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/tabbed_editor.py +3 -1
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/readme.md +1 -1
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/COPYING +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyproject.toml +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/_settings.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/app.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/code_editors.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/languages/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/languages/generic.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/languages/markdown.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/languages/python.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/languages/text.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/editor_panel.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/find_in_files.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/jupyter_console.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/project_explorer.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/settings_panel.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/sigmund.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/workspace_explorer.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/auto_indent.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/auto_pair.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/base.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/comment.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/complete.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/execute.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/line_number.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/python_auto_indent.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/search_replace.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/shortcuts.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/smart_backspace_delete.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/symbols.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/theme.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/widgets/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/zoom.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/python_utils.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/signal_router.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/syntax_highlighters/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/syntax_highlighters/languages/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/syntax_highlighters/languages/python.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/syntax_highlighters/syntax_highlighter.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/themes.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/utils.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/watchdog.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/calltip_widget.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/completion_popup.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/dock.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/quick_open_dialog.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/quick_open_file_dialog.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/quick_symbol_dialog.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/search_replace_frame.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/tab_splitter.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/languages/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/languages/generic.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/languages/python.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/manager.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/process.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/__init__.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/codestral.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/jedi.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/ruff.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/sigmund.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/symbol.py +0 -0
- {pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/settings.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyqt_code_editor
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.14
|
|
4
4
|
Summary: Fully featured code-editor widgets for PyQt
|
|
5
5
|
Keywords: code editor,pyqt,ide
|
|
6
6
|
Author-email: Sebastiaan Mathôt <s.mathot@cogsci.nl>
|
|
@@ -28,7 +28,7 @@ Copyright 2025 Sebastiaan Mathôt
|
|
|
28
28
|
|
|
29
29
|
## About
|
|
30
30
|
|
|
31
|
-
Sigmund Analyst is a powerful code editor (also: Integrated Development Environment or IDE) focused on AI-assisted data analysis with Python
|
|
31
|
+
Sigmund Analyst is a powerful code editor (also: Integrated Development Environment or IDE) focused on AI-assisted data analysis with Python. It is composed of a set of powerful PyQt/ PySide widgets that can also be used in other applications.
|
|
32
32
|
|
|
33
33
|
Features:
|
|
34
34
|
|
|
@@ -79,10 +79,11 @@ class Check:
|
|
|
79
79
|
symbol = '➜'
|
|
80
80
|
else:
|
|
81
81
|
symbol = '❌'
|
|
82
|
-
description = '\n'.join(
|
|
82
|
+
description = '\n'.join({
|
|
83
83
|
str(annotation['code']) + ': ' + annotation['message']
|
|
84
|
+
if annotation['code'] else annotation['message']
|
|
84
85
|
for annotation in annotations
|
|
85
|
-
|
|
86
|
+
})
|
|
86
87
|
annotation = {
|
|
87
88
|
'type': 'check',
|
|
88
89
|
'text': f'{symbol}{line_number}',
|
|
@@ -165,7 +165,17 @@ class FileLink:
|
|
|
165
165
|
if reply == QMessageBox.Yes:
|
|
166
166
|
# Reload file
|
|
167
167
|
logger.info("Reloading file after external change.")
|
|
168
|
-
|
|
168
|
+
try:
|
|
169
|
+
self.open_file(changed_path,
|
|
170
|
+
encoding=self.code_editor_encoding)
|
|
171
|
+
except FileNotFoundError:
|
|
172
|
+
# When an open file is renamed, it may not exist anymore
|
|
173
|
+
old_path = self.code_editor_file_path
|
|
174
|
+
self.code_editor_file_path = None
|
|
175
|
+
self.file_name_changed.emit(self, old_path,
|
|
176
|
+
self.code_editor_file_path)
|
|
177
|
+
self.set_modified(True)
|
|
178
|
+
return
|
|
169
179
|
else:
|
|
170
180
|
logger.info("User chose not to reload. Re-watching file anyway.")
|
|
171
181
|
# Re-add the file to watcher so we keep listening for future changes
|
|
@@ -45,7 +45,8 @@ class SyntaxHighlighter(QSyntaxHighlighter):
|
|
|
45
45
|
for token_type, token_text in tokens:
|
|
46
46
|
length = len(token_text)
|
|
47
47
|
fmt = self._get_format(token_type)
|
|
48
|
-
|
|
48
|
+
if fmt:
|
|
49
|
+
self.setFormat(index, length, fmt)
|
|
49
50
|
index += length
|
|
50
51
|
|
|
51
52
|
|
|
@@ -56,21 +57,25 @@ class SyntaxHighlighter(QSyntaxHighlighter):
|
|
|
56
57
|
if token_type in self._token_formats:
|
|
57
58
|
return self._token_formats[token_type]
|
|
58
59
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
60
|
+
try:
|
|
61
|
+
style_defs = self._style.style_for_token(token_type)
|
|
62
|
+
except KeyError:
|
|
63
|
+
logger.error(f"style not found for token type {token_type}")
|
|
64
|
+
fmt = None
|
|
65
|
+
else:
|
|
66
|
+
fmt = QTextCharFormat()
|
|
67
|
+
if style_defs['color']:
|
|
68
|
+
color_str = style_defs['color']
|
|
69
|
+
fmt.setForeground(self._make_brush(color_str))
|
|
70
|
+
if style_defs['bgcolor']:
|
|
71
|
+
bg_color_str = style_defs['bgcolor']
|
|
72
|
+
fmt.setBackground(self._make_brush(bg_color_str))
|
|
73
|
+
if style_defs['bold']:
|
|
74
|
+
fmt.setFontWeight(QFont.Bold)
|
|
75
|
+
if style_defs['italic']:
|
|
76
|
+
fmt.setFontItalic(True)
|
|
77
|
+
if style_defs['underline']:
|
|
78
|
+
fmt.setUnderlineStyle(QTextCharFormat.SingleUnderline)
|
|
74
79
|
|
|
75
80
|
self._token_formats[token_type] = fmt
|
|
76
81
|
return fmt
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/tabbed_editor.py
RENAMED
|
@@ -235,10 +235,12 @@ class TabbedEditor(QTabWidget):
|
|
|
235
235
|
"""
|
|
236
236
|
from_language = utils.guess_language_from_path(from_path)
|
|
237
237
|
to_language = utils.guess_language_from_path(to_path)
|
|
238
|
+
index = self.indexOf(editor)
|
|
238
239
|
if from_language == to_language:
|
|
240
|
+
title = self._synonym(editor.code_editor_file_path)
|
|
241
|
+
self.setTabText(index, title)
|
|
239
242
|
return
|
|
240
243
|
logger.info(f'language changed from {from_language} to {to_language}')
|
|
241
|
-
index = self.indexOf(editor)
|
|
242
244
|
self.removeTab(index)
|
|
243
245
|
self.add_code_editor(to_path, index=index)
|
|
244
246
|
|
|
@@ -5,7 +5,7 @@ Copyright 2025 Sebastiaan Mathôt
|
|
|
5
5
|
|
|
6
6
|
## About
|
|
7
7
|
|
|
8
|
-
Sigmund Analyst is a powerful code editor (also: Integrated Development Environment or IDE) focused on AI-assisted data analysis with Python
|
|
8
|
+
Sigmund Analyst is a powerful code editor (also: Integrated Development Environment or IDE) focused on AI-assisted data analysis with Python. It is composed of a set of powerful PyQt/ PySide widgets that can also be used in other applications.
|
|
9
9
|
|
|
10
10
|
Features:
|
|
11
11
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/__init__.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/code_editors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/code_editors/languages/text.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/editor_panel.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/find_in_files.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/jupyter_console.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/project_explorer.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/components/settings_panel.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/python_auto_indent.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/search_replace.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/mixins/widgets/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/syntax_highlighters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/calltip_widget.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/completion_popup.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/quick_open_dialog.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/quick_symbol_dialog.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/search_replace_frame.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/widgets/tab_splitter.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/languages/__init__.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/languages/generic.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/languages/python.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/__init__.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/codestral.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/jedi.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/ruff.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/sigmund.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.13 → pyqt_code_editor-0.0.14}/pyqt_code_editor/worker/providers/symbol.py
RENAMED
|
File without changes
|
|
File without changes
|