src/eric7/QScintilla/Editor.py

Sun, 18 Feb 2024 17:31:14 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 18 Feb 2024 17:31:14 +0100
branch
server
changeset 10585
83e5a9a64543
parent 10583
2114cc7275e8
child 10587
670f234271d8
permissions
-rw-r--r--

Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.

92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1 # -*- coding: utf-8 -*-
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2
10439
21c28b0f9e41 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10431
diff changeset
3 # Copyright (c) 2002 - 2024 Detlev Offenbach <detlev@die-offenbachs.de>
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4 #
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6 """
7960
e8fc383322f7 Harmonized some user visible strings and changed the term 'eric6' to the more generic 'eric'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
7 Module implementing the editor component of the eric IDE.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8 """
7229
53054eb5b15a Removed obsolete "from __future__ import ..." statements.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7225
diff changeset
9
8539
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
10 import bisect
8488
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
11 import collections
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
12 import contextlib
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
13 import difflib
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
14 import enum
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
15 import os
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
16 import pathlib
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
17 import re
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
18
8258
82b608e352ec Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8245
diff changeset
19 import editorconfig
82b608e352ec Third Party packages
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8245
diff changeset
20
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
21 from PyQt6.Qsci import QsciMacro, QsciScintilla, QsciStyledText
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
22 from PyQt6.QtCore import (
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
23 QCryptographicHash,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
24 QDateTime,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
25 QDir,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
26 QEvent,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
27 QModelIndex,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
28 QPoint,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
29 QSize,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
30 Qt,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
31 QTimer,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
32 pyqtSignal,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
33 pyqtSlot,
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
34 )
10501
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
35 from PyQt6.QtGui import (
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
36 QAction,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
37 QActionGroup,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
38 QCursor,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
39 QFont,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
40 QPainter,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
41 QPalette,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
42 QPixmap,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
43 )
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
44 from PyQt6.QtPrintSupport import (
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
45 QAbstractPrintDialog,
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
46 QPrintDialog,
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
47 QPrinter,
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
48 QPrintPreviewDialog,
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
49 )
10501
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
50 from PyQt6.QtWidgets import (
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
51 QApplication,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
52 QDialog,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
53 QInputDialog,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
54 QLineEdit,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
55 QMenu,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
56 QToolTip,
234702836442 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10499
diff changeset
57 )
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
58
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9619
diff changeset
59 from eric7 import Globals, Preferences, Utilities
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
60 from eric7.CodeFormatting.BlackFormattingAction import BlackFormattingAction
9436
731d146193e2 Added an 'About Black' entry to the Code Formatting menus of the project sources browser and the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9432
diff changeset
61 from eric7.CodeFormatting.BlackUtilities import aboutBlack
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
62 from eric7.CodeFormatting.IsortFormattingAction import IsortFormattingAction
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
63 from eric7.CodeFormatting.IsortUtilities import aboutIsort
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
64 from eric7.EricGui import EricPixmapCache
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
65 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
66 from eric7.EricUtilities.EricCache import EricCache
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
67 from eric7.EricWidgets import EricFileDialog, EricMessageBox
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
68 from eric7.EricWidgets.EricApplication import ericApp
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
69 from eric7.Globals import recentNameBreakpointConditions
10561
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
70 from eric7.RemoteServerInterface import EricServerFileDialog
10388
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
71 from eric7.SystemUtilities import FileSystemUtilities, OSUtilities, PythonUtilities
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
72 from eric7.UI import PythonDisViewer
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
73 from eric7.Utilities import MouseUtilities
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
74
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
75 from . import Exporters, Lexers, TypingCompleters
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
76 from .EditorMarkerMap import EditorMarkerMap
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
77 from .QsciScintillaCompat import QsciScintillaCompat
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9465
diff changeset
78 from .SpellChecker import SpellChecker
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
79
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
80 EditorAutoCompletionListID = 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
81 TemplateCompletionListID = 2
8488
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
82 ReferencesListID = 3
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
83
10060
b946699e9e79 Corrected some issues related to unused global variables.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
84 ReferenceItem = collections.namedtuple( # noqa: U200
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
85 "ReferenceItem", ["modulePath", "codeLine", "line", "column"]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
86 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
87
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
88
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
89 class EditorIconId(enum.IntEnum):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
90 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
91 Class defining the completion icon IDs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
92 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
93
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
94 Class = 1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
95 ClassProtected = 2
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
96 ClassPrivate = 3
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
97 Method = 4
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
98 MethodProtected = 5
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
99 MethodPrivate = 6
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
100 Attribute = 7
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
101 AttributeProtected = 8
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
102 AttributePrivate = 9
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
103 Enum = 10
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
104 Keywords = 11
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
105 Module = 12
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
106
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
107 FromDocument = 99
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
108 TemplateImage = 100
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
109
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
110
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
111 class EditorWarningKind(enum.Enum):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
112 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
113 Class defining the kind of warnings supported by the Editor class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
114 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
115
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
116 Code = 1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
117 Python = 2
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
118 Style = 3
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
119 Info = 4
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
120 Error = 5
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
121
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
122
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
123 class Editor(QsciScintillaCompat):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
124 """
7960
e8fc383322f7 Harmonized some user visible strings and changed the term 'eric6' to the more generic 'eric'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
125 Class implementing the editor component of the eric IDE.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
126
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
127 @signal modificationStatusChanged(bool, QsciScintillaCompat) emitted when
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
128 the modification status has changed
501
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
129 @signal undoAvailable(bool) emitted to signal the undo availability
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
130 @signal redoAvailable(bool) emitted to signal the redo availability
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
131 @signal cursorChanged(str, int, int) emitted when the cursor position
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
132 was changed
2768
eab35f6e709f Added support to show the current class/method name in the combo boxes at the top of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2659
diff changeset
133 @signal cursorLineChanged(int) emitted when the cursor line was changed
501
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
134 @signal editorAboutToBeSaved(str) emitted before the editor is saved
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
135 @signal editorSaved(str) emitted after the editor has been saved
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
136 @signal editorRenamed(str) emitted after the editor got a new name
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
137 (i.e. after a 'Save As')
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
138 @signal captionChanged(str, QsciScintillaCompat) emitted when the caption
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
139 is updated. Typically due to a readOnly attribute change.
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
140 @signal breakpointToggled(QsciScintillaCompat) emitted when a breakpoint
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
141 is toggled
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
142 @signal bookmarkToggled(QsciScintillaCompat) emitted when a bookmark is
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
143 toggled
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
144 @signal syntaxerrorToggled(QsciScintillaCompat) emitted when a syntax error
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
145 was discovered
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
146 @signal autoCompletionAPIsAvailable(bool) emitted after the autocompletion
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
147 function has been configured
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
148 @signal coverageMarkersShown(bool) emitted after the coverage markers have
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
149 been shown or cleared
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
150 @signal taskMarkersUpdated(QsciScintillaCompat) emitted when the task
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
151 markers were updated
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
152 @signal changeMarkersUpdated(QsciScintillaCompat) emitted when the change
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
153 markers were updated
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
154 @signal showMenu(str, QMenu, QsciScintillaCompat) emitted when a menu is
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
155 about to be shown. The name of the menu, a reference to the menu and
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
156 a reference to the editor are given.
501
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
157 @signal languageChanged(str) emitted when the editors language was set. The
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
158 language is passed as a parameter.
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
159 @signal eolChanged(str) emitted when the editors eol type was set. The eol
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
160 string is passed as a parameter.
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
161 @signal encodingChanged(str) emitted when the editors encoding was set. The
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
162 encoding name is passed as a parameter.
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
163 @signal spellLanguageChanged(str) emitted when the editor spell check
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
164 language was set. The language is passed as a parameter.
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
165 @signal lastEditPositionAvailable() emitted when a last edit position is
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
166 available
1807
9898a95461f1 Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1768
diff changeset
167 @signal refreshed() emitted to signal a refresh of the editor contents
5416
16366120b523 Added an option to hide the format buttons bar, if formatting is not supported for the editor text type (only supported for HTML, Markdown and reStructured Text).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
168 @signal settingsRead() emitted to signal, that the settings have been read
16366120b523 Added an option to hide the format buttons bar, if formatting is not supported for the editor text type (only supported for HTML, Markdown and reStructured Text).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
169 and set
6932
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
170 @signal mouseDoubleClick(position, buttons) emitted to signal a mouse
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
171 double click somewhere in the editor area
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
172 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
173
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
174 modificationStatusChanged = pyqtSignal(bool, QsciScintillaCompat)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
175 undoAvailable = pyqtSignal(bool)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
176 redoAvailable = pyqtSignal(bool)
486
e4711a55e482 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 478
diff changeset
177 cursorChanged = pyqtSignal(str, int, int)
2768
eab35f6e709f Added support to show the current class/method name in the combo boxes at the top of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2659
diff changeset
178 cursorLineChanged = pyqtSignal(int)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
179 editorAboutToBeSaved = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
180 editorSaved = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
181 editorRenamed = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
182 captionChanged = pyqtSignal(str, QsciScintillaCompat)
486
e4711a55e482 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 478
diff changeset
183 breakpointToggled = pyqtSignal(QsciScintillaCompat)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
184 bookmarkToggled = pyqtSignal(QsciScintillaCompat)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
185 syntaxerrorToggled = pyqtSignal(QsciScintillaCompat)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
186 autoCompletionAPIsAvailable = pyqtSignal(bool)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
187 coverageMarkersShown = pyqtSignal(bool)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
188 taskMarkersUpdated = pyqtSignal(QsciScintillaCompat)
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
189 changeMarkersUpdated = pyqtSignal(QsciScintillaCompat)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
190 showMenu = pyqtSignal(str, QMenu, QsciScintillaCompat)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
191 languageChanged = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
192 eolChanged = pyqtSignal(str)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
193 encodingChanged = pyqtSignal(str)
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
194 spellLanguageChanged = pyqtSignal(str)
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
195 lastEditPositionAvailable = pyqtSignal()
1807
9898a95461f1 Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1768
diff changeset
196 refreshed = pyqtSignal()
5416
16366120b523 Added an option to hide the format buttons bar, if formatting is not supported for the editor text type (only supported for HTML, Markdown and reStructured Text).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
197 settingsRead = pyqtSignal()
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
198 mouseDoubleClick = pyqtSignal(QPoint, Qt.MouseButton)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
199
155
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
200 # Cooperation related definitions
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
201 Separator = "@@@"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
202
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
203 StartEditToken = "START_EDIT"
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
204 EndEditToken = "END_EDIT"
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
205 CancelEditToken = "CANCEL_EDIT"
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
206 RequestSyncToken = "REQUEST_SYNC"
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
207 SyncToken = "SYNC"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
208
6111
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
209 VcsConflictMarkerLineRegExpList = (
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
210 r"""^<<<<<<< .*?$""",
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
211 r"""^\|\|\|\|\|\|\| .*?$""",
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
212 r"""^=======.*?$""",
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
213 r"""^>>>>>>> .*?$""",
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
214 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
215
7969
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
216 EncloseChars = {
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
217 '"': '"',
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
218 "'": "'",
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
219 "(": "()",
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
220 ")": "()",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
221 "{": "{}", # __IGNORE_WARNING_M613__
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
222 "}": "{}", # __IGNORE_WARNING_M613__
7969
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
223 "[": "[]",
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
224 "]": "[]",
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
225 "<": "<>",
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
226 ">": "<>",
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
227 }
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
228
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
229 def __init__(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
230 self, dbs, fn="", vm=None, filetype="", editor=None, tv=None, parent=None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
231 ):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
232 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
233 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
234
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
235 @param dbs reference to the debug server object
8131
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
236 @type DebugServer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
237 @param fn name of the file to be opened. If it is None, a new (empty)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
238 editor is opened.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
239 @type str
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
240 @param vm reference to the view manager object
8131
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
241 @type ViewManager
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
242 @param filetype type of the source file
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
243 @type str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
244 @param editor reference to an Editor object, if this is a cloned view
8131
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
245 @type Editor
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
246 @param tv reference to the task viewer object
8131
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
247 @type TaskViewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
248 @param parent reference to the parent widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
249 @type QWidget
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7790
diff changeset
250 @exception OSError raised to indicate an issue accessing the file
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
251 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
252 super().__init__(parent)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
253 self.setAttribute(Qt.WidgetAttribute.WA_KeyCompression)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
254 self.setUtf8(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
255
8713
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8710
diff changeset
256 self.enableMultiCursorSupport()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
257
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
258 self.dbs = dbs
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
259 self.taskViewer = tv
9853
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
260 self.fileName = ""
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
261 self.vm = vm
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
262 self.filetype = filetype
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
263 self.filetypeByFlag = False
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
264 self.noName = ""
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
265 self.project = ericApp().getObject("Project")
9853
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
266 self.setFileName(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
267
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
268 self.__remotefsInterface = (
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
269 ericApp().getObject("EricServer").getServiceInterface("FileSystem")
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
270 )
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
271
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
272 # clear some variables
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
273 self.lastHighlight = None # remember the last highlighted line
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
274 self.lastErrorMarker = None # remember the last error line
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
275 self.lastCurrMarker = None # remember the last current line
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
276
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
277 self.breaks = {}
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
278 # key: marker handle,
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
279 # value: (lineno, condition, temporary,
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
280 # enabled, ignorecount)
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
281 self.bookmarks = []
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
282 # bookmarks are just a list of handles to the
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
283 # bookmark markers
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
284 self.syntaxerrors = {}
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
285 # key: marker handle
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
286 # value: list of (error message, error index)
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
287 self._warnings = {}
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
288 # key: marker handle
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
289 # value: list of (warning message, warning type)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
290 self.notcoveredMarkers = [] # just a list of marker handles
2391
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
291 self.showingNotcoveredMarkers = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
292
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
293 self.lexer_ = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
294 self.apiLanguage = ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
295
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
296 self.__loadEditorConfig()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
297
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
298 self.__lexerReset = False
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
299 self.completer = None
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
300 self.encoding = self.__getEditorConfig("DefaultEncoding")
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
301 self.lastModified = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
302 self.line = -1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
303 self.inReopenPrompt = False
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
304 # true if the prompt to reload a changed source is present
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
305 self.inFileRenamed = False
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
306 # true if we are propagating a rename action
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
307 self.inLanguageChanged = False
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
308 # true if we are propagating a language change
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
309 self.inEolChanged = False
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
310 # true if we are propagating an eol change
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
311 self.inEncodingChanged = False
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
312 # true if we are propagating an encoding change
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
313 self.inDragDrop = False
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
314 # true if we are in drop mode
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
315 self.inLinesChanged = False
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
316 # true if we are propagating a lines changed event
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
317 self.__hasTaskMarkers = False
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
318 # no task markers present
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
319
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
320 self.macros = {} # list of defined macros
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
321 self.curMacro = None
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
322 self.recording = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
323
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
324 self.acAPI = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
325
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
326 self.__lastEditPosition = None
3863
472eb955ff9c Corrected the annotations scrollbar fix because it caused seg faults for short files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3861
diff changeset
327 self.__annotationLines = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
328
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
329 self.__docstringGenerator = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
330
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
331 # list of clones
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
332 self.__clones = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
333
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
334 # clear QScintilla defined keyboard commands
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
335 # we do our own handling through the view manager
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
336 self.clearAlternateKeys()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
337 self.clearKeys()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
338
7393
e83e0ba6b90d Editor: moved the creation of the marker map object.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
339 self.__markerMap = EditorMarkerMap(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
340
155
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
341 # initialize the mark occurrences timer
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
342 self.__markOccurrencesTimer = QTimer(self)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
343 self.__markOccurrencesTimer.setSingleShot(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
344 self.__markOccurrencesTimer.setInterval(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
345 Preferences.getEditor("MarkOccurrencesTimeout")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
346 )
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
347 self.__markOccurrencesTimer.timeout.connect(self.__markOccurrences)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
348 self.__markedText = ""
4304
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
349 self.__searchIndicatorLines = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
350
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
351 # set the autosave attributes
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
352 self.__autosaveInterval = Preferences.getEditor("AutosaveIntervalSeconds")
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
353 self.__autosaveManuallyDisabled = False
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
354
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
355 # initialize the autosave timer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
356 self.__autosaveTimer = QTimer(self)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
357 self.__autosaveTimer.setObjectName("AutosaveTimer")
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
358 self.__autosaveTimer.setSingleShot(True)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
359 self.__autosaveTimer.timeout.connect(self.__autosave)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
360
155
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
361 # initialize some spellchecking stuff
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
362 self.spell = None
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
363 self.lastLine = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
364 self.lastIndex = 0
7347
1afdabb901dc Editor: fixed an omission
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7339
diff changeset
365 self.__inSpellLanguageChanged = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
366
155
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
367 # initialize some cooperation stuff
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
368 self.__isSyncing = False
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
369 self.__receivedWhileSyncing = []
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
370 self.__savedText = ""
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
371 self.__inSharedEdit = False
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
372 self.__isShared = False
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
373 self.__inRemoteSharedEdit = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
374
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
375 # connect signals before loading the text
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
376 self.modificationChanged.connect(self.__modificationChanged)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
377 self.cursorPositionChanged.connect(self.__cursorPositionChanged)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
378 self.modificationAttempted.connect(self.__modificationReadOnly)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
379
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
380 # define the margins markers
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
381 self.__changeMarkerSaved = self.markerDefine(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
382 self.__createChangeMarkerPixmap("OnlineChangeTraceMarkerSaved")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
383 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
384 self.__changeMarkerUnsaved = self.markerDefine(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
385 self.__createChangeMarkerPixmap("OnlineChangeTraceMarkerUnsaved")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
386 )
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
387 self.breakpoint = self.markerDefine(EricPixmapCache.getPixmap("break"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
388 self.cbreakpoint = self.markerDefine(EricPixmapCache.getPixmap("cBreak"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
389 self.tbreakpoint = self.markerDefine(EricPixmapCache.getPixmap("tBreak"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
390 self.tcbreakpoint = self.markerDefine(EricPixmapCache.getPixmap("tCBreak"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
391 self.dbreakpoint = self.markerDefine(EricPixmapCache.getPixmap("breakDisabled"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
392 self.bookmark = self.markerDefine(EricPixmapCache.getPixmap("bookmark16"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
393 self.syntaxerror = self.markerDefine(EricPixmapCache.getPixmap("syntaxError"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
394 self.notcovered = self.markerDefine(EricPixmapCache.getPixmap("notcovered"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
395 self.taskmarker = self.markerDefine(EricPixmapCache.getPixmap("task"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
396 self.warning = self.markerDefine(EricPixmapCache.getPixmap("warning"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
397
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
398 # define the line markers
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
399 if Preferences.getEditor("LineMarkersBackground"):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
400 self.currentline = self.markerDefine(QsciScintilla.MarkerSymbol.Background)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
401 self.errorline = self.markerDefine(QsciScintilla.MarkerSymbol.Background)
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
402 self.__setLineMarkerColours()
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
403 else:
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
404 self.currentline = self.markerDefine(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
405 EricPixmapCache.getPixmap("currentLineMarker")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
406 )
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
407 self.errorline = self.markerDefine(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
408 EricPixmapCache.getPixmap("errorLineMarker")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
409 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
410
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
411 self.breakpointMask = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
412 (1 << self.breakpoint)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
413 | (1 << self.cbreakpoint)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
414 | (1 << self.tbreakpoint)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
415 | (1 << self.tcbreakpoint)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
416 | (1 << self.dbreakpoint)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
417 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
418
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
419 self.changeMarkersMask = (1 << self.__changeMarkerSaved) | (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
420 1 << self.__changeMarkerUnsaved
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
421 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
422
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
423 # configure the margins
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
424 self.__setMarginsDisplay()
2640
dedcd4f987e0 Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2632
diff changeset
425 self.linesChanged.connect(self.__resizeLinenoMargin)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
426
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
427 self.marginClicked.connect(self.__marginClicked)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
428
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
429 # set the eol mode
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
430 self.__setEolMode()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
431
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
432 # set the text display
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
433 self.__setTextDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
434
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
435 # initialize the online syntax check timer
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
436 try:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
437 self.syntaxCheckService = ericApp().getObject("SyntaxCheckService")
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
438 self.syntaxCheckService.syntaxChecked.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
439 self.__processSyntaxCheckResult
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
440 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
441 self.syntaxCheckService.error.connect(self.__processSyntaxCheckError)
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
442 self.__initOnlineSyntaxCheck()
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
443 except KeyError:
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
444 self.syntaxCheckService = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
445
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
446 self.isResourcesFile = False
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
447 if editor is None:
4891
d6e8171d2c02 Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4814
diff changeset
448 if self.fileName:
9405
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9333
diff changeset
449 if not Utilities.MimeTypes.isTextFile(self.fileName):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9333
diff changeset
450 raise OSError()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9333
diff changeset
451
10388
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
452 if (
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
453 FileSystemUtilities.isPlainFileName(self.fileName)
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
454 and pathlib.Path(self.fileName).exists()
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
455 ):
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
456 fileSizeKB = pathlib.Path(self.fileName).stat().st_size // 1024
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
457 if fileSizeKB > Preferences.getEditor("RejectFilesize"):
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
458 EricMessageBox.warning(
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
459 None,
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
460 self.tr("Open File"),
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
461 self.tr(
9786
f94b530722af Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9758
diff changeset
462 "<p>The size of the file <b>{0}</b> is <b>{1} KB</b>"
f94b530722af Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9758
diff changeset
463 " and exceeds the configured limit of <b>{2} KB</b>."
f94b530722af Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9758
diff changeset
464 " It will not be opened!</p>"
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
465 ).format(
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
466 self.fileName,
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
467 fileSizeKB,
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
468 Preferences.getEditor("RejectFilesize"),
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
469 ),
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
470 )
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7790
diff changeset
471 raise OSError()
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
472 elif fileSizeKB > Preferences.getEditor("WarnFilesize"):
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
473 res = EricMessageBox.yesNo(
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
474 None,
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
475 self.tr("Open File"),
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
476 self.tr(
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
477 """<p>The size of the file <b>{0}</b>"""
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
478 """ is <b>{1} KB</b>."""
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
479 """ Do you really want to load it?</p>"""
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
480 ).format(self.fileName, fileSizeKB),
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
481 icon=EricMessageBox.Warning,
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
482 )
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
483 if not res:
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
484 raise OSError()
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
485
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
486 self.readFile(self.fileName, createIt=True)
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
487
10539
4274f189ff78 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10517
diff changeset
488 elif FileSystemUtilities.isRemoteFileName(self.fileName):
10561
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
489 self.readFile(self.fileName, createIt=True, isRemote=True)
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
490
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
491 self.__bindLexer(self.fileName)
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
492 self.__bindCompleter(self.fileName)
3579
eccd12461319 BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3576
diff changeset
493 self.checkSyntax()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
494 self.isResourcesFile = self.fileName.endswith(".qrc")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
495
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
496 self.__convertTabs()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
497
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
498 self.recolor()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
499 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
500 # clone the given editor
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
501 self.setDocument(editor.document())
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
502 self.breaks = editor.breaks
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
503 self.bookmarks = editor.bookmarks
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
504 self.syntaxerrors = editor.syntaxerrors
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
505 self.notcoveredMarkers = editor.notcoveredMarkers
2391
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
506 self.showingNotcoveredMarkers = editor.showingNotcoveredMarkers
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
507 self.isResourcesFile = editor.isResourcesFile
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
508 self.lastModified = editor.lastModified
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
509
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
510 self.addClone(editor)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
511 editor.addClone(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
512
832
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
513 self.gotoLine(1)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
514
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
515 # connect the mouse hover signals
10499
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
516 # mouse hover for the editor margins
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
517 self.SCN_DWELLSTART.connect(self.__marginHoverStart)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
518 self.SCN_DWELLEND.connect(self.__marginHoverEnd)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
519
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
520 # mouse hover help for the editor text
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
521 self.SCN_DWELLSTART.connect(self.__showMouseHoverHelp)
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
522 self.SCN_DWELLEND.connect(self.__cancelMouseHoverHelp)
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
523 self.__mouseHoverHelp = None
8581
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
524 self.__showingMouseHoverHelp = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
525
741
137cc6344b48 Fixed an issue in the Editor class introduced by the annotation job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 730
diff changeset
526 # set the text display again
137cc6344b48 Fixed an issue in the Editor class introduced by the annotation job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 730
diff changeset
527 self.__setTextDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
528
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
529 # set the auto-completion function
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
530 self.__acContext = True
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
531 self.__acText = ""
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
532 self.__acCompletions = set()
5932
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
533 self.__acCompletionsFinished = 0
8354
12ebd3934fef Renamed 'E5Utilities' to 'EricUtilities' and 'E5Network' to 'EricNetwork'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8344
diff changeset
534 self.__acCache = EricCache(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
535 size=Preferences.getEditor("AutoCompletionCacheSize")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
536 )
5909
21d90a3abc7c Added a timeout configuration value to the completions cache after which completions will be removed from the cache.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5907
diff changeset
537 self.__acCache.setMaximumCacheTime(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
538 Preferences.getEditor("AutoCompletionCacheTime")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
539 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
540 self.__acCacheEnabled = Preferences.getEditor("AutoCompletionCacheEnabled")
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
541 self.__acTimer = QTimer(self)
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
542 self.__acTimer.setSingleShot(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
543 self.__acTimer.setInterval(Preferences.getEditor("AutoCompletionTimeout"))
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
544 self.__acTimer.timeout.connect(self.__autoComplete)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
545
5932
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
546 self.__acWatchdog = QTimer(self)
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
547 self.__acWatchdog.setSingleShot(True)
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
548 self.__acWatchdog.setInterval(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
549 Preferences.getEditor("AutoCompletionWatchdogTime")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
550 )
5932
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
551 self.__acWatchdog.timeout.connect(self.autoCompleteQScintilla)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
552
6117
4cc6c171ecf6 Little performance improvement of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6116
diff changeset
553 self.userListActivated.connect(self.__completionListSelected)
6306
af71f34a0cfb Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6305
diff changeset
554 self.SCN_CHARADDED.connect(self.__charAdded)
af71f34a0cfb Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6305
diff changeset
555 self.SCN_AUTOCCANCELLED.connect(self.__autocompletionCancelled)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
556
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
557 self.__completionListHookFunctions = {}
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
558 self.__completionListAsyncHookFunctions = {}
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
559 self.__setAutoCompletion()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
560
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
561 # set the call-tips function
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
562 self.__ctHookFunctions = {}
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
563 self.__setCallTips()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
564
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
565 # set the mouse click handlers (fired on mouse release)
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
566 self.__mouseClickHandlers = {}
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
567 # dictionary with tuple of keyboard modifier and mouse button as key
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
568 # and tuple of plug-in name and function as value
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
569
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
570 sh = self.sizeHint()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
571 if sh.height() < 300:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
572 sh.setHeight(300)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
573 self.resize(sh)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
574
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
575 # Make sure tabbing through a QWorkspace works.
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
576 self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
577
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
578 self.__updateReadOnly(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
579
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
580 self.setWhatsThis(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
581 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
582 """<b>A Source Editor Window</b>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
583 """<p>This window is used to display and edit a source file."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
584 """ You can open as many of these as you like. The name of the"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
585 """ file is displayed in the window's titlebar.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
586 """<p>In order to set breakpoints just click in the space"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
587 """ between the line numbers and the fold markers. Via the"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
588 """ context menu of the margins they may be edited.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
589 """<p>In order to set bookmarks just Shift click in the space"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
590 """ between the line numbers and the fold markers.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
591 """<p>These actions can be reversed via the context menu.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
592 """<p>Ctrl clicking on a syntax error marker shows some info"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
593 """ about this error.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
594 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
595 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
596
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
597 # Set the editors size, if it is too big for the view manager.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
598 if self.vm is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
599 req = self.size()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
600 bnd = req.boundedTo(self.vm.size())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
601
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
602 if bnd.width() < req.width() or bnd.height() < req.height():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
603 self.resize(bnd)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
604
9070
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
605 # code coverage related attributes
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
606 self.__coverageFile = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
607
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
608 self.__initContextMenu()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
609 self.__initContextMenuMargins()
9643
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
610 self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
611 self.customContextMenuRequested.connect(self.__showContextMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
612
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
613 self.__checkEol()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
614 if editor is None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
615 self.__checkLanguage()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
616 self.__checkEncoding()
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
617 self.__checkSpellLanguage()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
618 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
619 # it's a clone
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
620 self.__languageChanged(editor.apiLanguage, propagate=False)
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
621 self.__encodingChanged(editor.encoding, propagate=False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
622 self.__spellLanguageChanged(editor.getSpellingLanguage(), propagate=False)
8106
81bf8fe10735 Editor: fixed an issue handling breakpoints (and other stuff) in a cloned editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8004
diff changeset
623 # link the warnings to the original editor
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
624 self._warnings = editor._warnings
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
625
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
626 self.setAcceptDrops(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
627
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
628 # breakpoint handling
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
629 self.breakpointModel = self.dbs.getBreakPointModel()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
630 self.__restoreBreakpoints()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
631 self.breakpointModel.rowsAboutToBeRemoved.connect(self.__deleteBreakPoints)
460
6a3899e91d76 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 448
diff changeset
632 self.breakpointModel.dataAboutToBeChanged.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
633 self.__breakPointDataAboutToBeChanged
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
634 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
635 self.breakpointModel.dataChanged.connect(self.__changeBreakPoints)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
636 self.breakpointModel.rowsInserted.connect(self.__addBreakPoints)
8344
7ce014e02cfb Editor: reactivated the connection to SCN_MODIFIED signal after PyQt6 was fixed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8334
diff changeset
637 self.SCN_MODIFIED.connect(self.__modified)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
638
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
639 # establish connection to some ViewManager action groups
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
640 self.addActions(self.vm.editorActGrp.actions())
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
641 self.addActions(self.vm.editActGrp.actions())
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
642 self.addActions(self.vm.copyActGrp.actions())
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
643 self.addActions(self.vm.viewActGrp.actions())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
644
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
645 # register images to be shown in autocompletion lists
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
646 self.__registerImages()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
647
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
648 # connect signals after loading the text
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
649 self.textChanged.connect(self.__textChanged)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
650
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
651 # initialize the online change trace timer
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
652 self.__initOnlineChangeTrace()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
653
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
654 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
655 self.fileName
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
656 and self.project.isOpen()
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
657 and self.project.isProjectCategory(self.fileName, "SOURCES")
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
658 ):
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
659 self.project.projectPropertiesChanged.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
660 self.__projectPropertiesChanged
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
661 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
662
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
663 self.grabGesture(Qt.GestureType.PinchGesture)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
664
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
665 self.SCN_ZOOM.connect(self.__markerMap.update)
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
666 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
667
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
668 def setFileName(self, name):
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
669 """
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
670 Public method to set the file name of the current file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
671
7306
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
672 @param name name of the current file
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
673 @type str
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
674 """
9853
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
675 renamed = self.fileName != name
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
676
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
677 oldFileName = self.fileName
7306
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
678 self.fileName = name
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
679
9853
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
680 if renamed:
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
681 self.vm.setEditorName(self, self.fileName)
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
682 self.vm.removeWatchedFilePath(oldFileName)
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
683 self.vm.addWatchedFilePath(self.fileName)
9853
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
684
7306
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
685 if self.fileName:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
686 self.__fileNameExtension = os.path.splitext(self.fileName)[1][1:].lower()
7306
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
687 else:
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
688 self.__fileNameExtension = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
689
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
690 def __registerImages(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
691 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
692 Private method to register images for autocompletion lists.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
693 """
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
694 # finale size of the completion images
8500
e7814dd19115 Changed the completion list icon sizes back to 22x22.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8498
diff changeset
695 imageSize = QSize(22, 22)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
696
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
697 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
698 EditorIconId.Class,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
699 EricPixmapCache.getPixmap("class", imageSize),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
700 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
701 self.registerImage(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
702 EditorIconId.ClassProtected,
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
703 EricPixmapCache.getPixmap("class_protected", imageSize),
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
704 )
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
705 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
706 EditorIconId.ClassPrivate,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
707 EricPixmapCache.getPixmap("class_private", imageSize),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
708 )
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
709 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
710 EditorIconId.Method,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
711 EricPixmapCache.getPixmap("method", imageSize),
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
712 )
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
713 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
714 EditorIconId.MethodProtected,
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
715 EricPixmapCache.getPixmap("method_protected", imageSize),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
716 )
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
717 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
718 EditorIconId.MethodPrivate,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
719 EricPixmapCache.getPixmap("method_private", imageSize),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
720 )
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
721 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
722 EditorIconId.Attribute,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
723 EricPixmapCache.getPixmap("attribute", imageSize),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
724 )
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
725 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
726 EditorIconId.AttributeProtected,
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
727 EricPixmapCache.getPixmap("attribute_protected", imageSize),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
728 )
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
729 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
730 EditorIconId.AttributePrivate,
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
731 EricPixmapCache.getPixmap("attribute_private", imageSize),
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
732 )
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
733 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
734 EditorIconId.Enum,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
735 EricPixmapCache.getPixmap("enum", imageSize),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
736 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
737 self.registerImage(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
738 EditorIconId.Keywords,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
739 EricPixmapCache.getPixmap("keywords", imageSize),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
740 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
741 self.registerImage(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
742 EditorIconId.Module,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
743 EricPixmapCache.getPixmap("module", imageSize),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
744 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
745
8487
153b7c3da034 Editor: fine tuned the size of the completion images.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8481
diff changeset
746 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
747 EditorIconId.FromDocument,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
748 EricPixmapCache.getPixmap("editor", imageSize),
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
749 )
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
750
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
751 self.registerImage(
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
752 EditorIconId.TemplateImage,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
753 EricPixmapCache.getPixmap("templateViewer", imageSize),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
754 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
755
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
756 def addClone(self, editor):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
757 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
758 Public method to add a clone to our list.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
759
6052
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
760 @param editor reference to the cloned editor
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
761 @type Editor
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
762 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
763 self.__clones.append(editor)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
764
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
765 editor.editorRenamed.connect(self.fileRenamed)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
766 editor.languageChanged.connect(self.languageChanged)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
767 editor.eolChanged.connect(self.__eolChanged)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
768 editor.encodingChanged.connect(self.__encodingChanged)
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
769 editor.spellLanguageChanged.connect(self.__spellLanguageChanged)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
770
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
771 def removeClone(self, editor):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
772 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
773 Public method to remove a clone from our list.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
774
6052
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
775 @param editor reference to the cloned editor
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
776 @type Editor
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
777 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
778 if editor in self.__clones:
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
779 editor.editorRenamed.disconnect(self.fileRenamed)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
780 editor.languageChanged.disconnect(self.languageChanged)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
781 editor.eolChanged.disconnect(self.__eolChanged)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
782 editor.encodingChanged.disconnect(self.__encodingChanged)
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
783 editor.spellLanguageChanged.disconnect(self.__spellLanguageChanged)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
784 self.__clones.remove(editor)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
785
6052
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
786 def isClone(self, editor):
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
787 """
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
788 Public method to test, if the given editor is a clone.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
789
6052
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
790 @param editor reference to the cloned editor
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
791 @type Editor
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
792 @return flag indicating a clone
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
793 @rtype bool
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
794 """
8b49d3e0b4c8 Extended the session to store/retrieve the split views and the order of the editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
795 return editor in self.__clones
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
796
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
797 def __bindName(self, line0):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
798 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
799 Private method to generate a dummy filename for binding a lexer.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
800
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
801 @param line0 first line of text to use in the generation process
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
802 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
803 @return dummy file name to be used for binding a lexer
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
804 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
805 """
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
806 bindName = ""
2221
f72f8b0478cb Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2219
diff changeset
807 line0 = line0.lower()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
808
2221
f72f8b0478cb Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2219
diff changeset
809 # check first line if it does not start with #!
f72f8b0478cb Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2219
diff changeset
810 if line0.startswith(("<html", "<!doctype html", "<?php")):
f72f8b0478cb Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2219
diff changeset
811 bindName = "dummy.html"
f72f8b0478cb Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2219
diff changeset
812 elif line0.startswith(("<?xml", "<!doctype")):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
813 bindName = "dummy.xml"
2221
f72f8b0478cb Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2219
diff changeset
814 elif line0.startswith("index: "):
f72f8b0478cb Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2219
diff changeset
815 bindName = "dummy.diff"
f72f8b0478cb Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2219
diff changeset
816 elif line0.startswith("\\documentclass"):
f72f8b0478cb Extended the first line checks to determine the file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2219
diff changeset
817 bindName = "dummy.tex"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
818
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
819 if not bindName and self.filetype:
6718
24a7a749e132 Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
820 # check filetype
24a7a749e132 Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
821 supportedLanguages = Lexers.getSupportedLanguages()
24a7a749e132 Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
822 if self.filetype in supportedLanguages:
24a7a749e132 Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
823 bindName = supportedLanguages[self.filetype][1]
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
824 elif self.filetype in ["Python", "Python3", "MicroPython"]:
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
825 bindName = "dummy.py"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
826
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
827 if not bindName and line0.startswith("#!"):
6718
24a7a749e132 Editor, MiniEditor: harmonized the lexer determination code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
828 # #! marker detection
8228
772103b14c18 Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
829 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
830 "python3" in line0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
831 or "python" in line0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
832 or "pypy3" in line0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
833 or "pypy" in line0
8228
772103b14c18 Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
834 ):
6073
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
835 bindName = "dummy.py"
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
836 self.filetype = "Python3"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
837 elif "/bash" in line0 or "/sh" in line0:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
838 bindName = "dummy.sh"
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
839 elif "ruby" in line0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
840 bindName = "dummy.rb"
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
841 self.filetype = "Ruby"
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
842 elif "perl" in line0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
843 bindName = "dummy.pl"
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
844 elif "lua" in line0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
845 bindName = "dummy.lua"
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
846 elif "dmd" in line0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
847 bindName = "dummy.d"
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
848 self.filetype = "D"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
849
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
850 if not bindName:
6073
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
851 # mode line detection: -*- mode: python -*-
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
852 match = re.search(r"mode[:=]\s*([-\w_.]+)", line0)
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
853 if match:
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
854 mode = match.group(1).lower()
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
855 if mode in ["python3", "pypy3"]:
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
856 bindName = "dummy.py"
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
857 self.filetype = "Python3"
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
858 elif mode == "ruby":
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
859 bindName = "dummy.rb"
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
860 self.filetype = "Ruby"
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
861 elif mode == "perl":
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
862 bindName = "dummy.pl"
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
863 elif mode == "lua":
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
864 bindName = "dummy.lua"
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
865 elif mode in ["dmd", "d"]:
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
866 bindName = "dummy.d"
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
867 self.filetype = "D"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
868
6073
a679240821cb Added file type detection base on the first line being a mode line (i.e. -*- mode: python -*-)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6059
diff changeset
869 if not bindName:
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
870 bindName = self.fileName
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
871
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
872 return bindName
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
873
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
874 def getMenu(self, menuName):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
875 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
876 Public method to get a reference to the main context menu or a submenu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
877
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
878 @param menuName name of the menu
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
879 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
880 @return reference to the requested menu or None
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
881 @rtype QMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
882 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
883 try:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
884 return self.__menus[menuName]
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
885 except KeyError:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
886 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
887
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
888 def hasMiniMenu(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
889 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
890 Public method to check the miniMenu flag.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
891
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
892 @return flag indicating a minimized context menu
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
893 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
894 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
895 return self.miniMenu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
896
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
897 def __initContextMenu(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
898 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
899 Private method used to setup the context menu.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
900 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
901 self.miniMenu = Preferences.getEditor("MiniContextMenu")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
902
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
903 self.menuActs = {}
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
904 self.menu = QMenu()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
905 self.__menus = {
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
906 "Main": self.menu,
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
907 }
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
908
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
909 self.languagesMenu = self.__initContextMenuLanguages()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
910 self.__menus["Languages"] = self.languagesMenu
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
911 if self.isResourcesFile:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
912 self.resourcesMenu = self.__initContextMenuResources()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
913 self.__menus["Resources"] = self.resourcesMenu
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
914 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
915 self.checksMenu = self.__initContextMenuChecks()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
916 self.menuShow = self.__initContextMenuShow()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
917 self.graphicsMenu = self.__initContextMenuGraphics()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
918 self.autocompletionMenu = self.__initContextMenuAutocompletion()
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
919 self.codeFormattingMenu = self.__initContextMenuFormatting()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
920 self.__menus["Checks"] = self.checksMenu
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
921 self.__menus["Show"] = self.menuShow
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
922 self.__menus["Graphics"] = self.graphicsMenu
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
923 self.__menus["Autocompletion"] = self.autocompletionMenu
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
924 self.__menus["Formatting"] = self.codeFormattingMenu
3583
3e8e0346d639 Re-fixed the recent editor issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3581
diff changeset
925 self.toolsMenu = self.__initContextMenuTools()
3e8e0346d639 Re-fixed the recent editor issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3581
diff changeset
926 self.__menus["Tools"] = self.toolsMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
927 self.eolMenu = self.__initContextMenuEol()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
928 self.__menus["Eol"] = self.eolMenu
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
929 self.encodingsMenu = self.__initContextMenuEncodings()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
930 self.__menus["Encodings"] = self.encodingsMenu
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
931 self.spellCheckMenu = self.__initContextMenuSpellCheck()
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
932 self.__menus["SpellCheck"] = self.spellCheckMenu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
933
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
934 self.menuActs["Undo"] = self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
935 EricPixmapCache.getIcon("editUndo"), self.tr("Undo"), self.undo
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
936 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
937 self.menuActs["Redo"] = self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
938 EricPixmapCache.getIcon("editRedo"), self.tr("Redo"), self.redo
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
939 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
940 self.menuActs["Revert"] = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
941 self.tr("Revert to last saved state"), self.revertToUnmodified
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
942 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
943 self.menu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
944 self.menuActs["Cut"] = self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
945 EricPixmapCache.getIcon("editCut"), self.tr("Cut"), self.cut
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
946 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
947 self.menuActs["Copy"] = self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
948 EricPixmapCache.getIcon("editCopy"), self.tr("Copy"), self.copy
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
949 )
6059
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
950 self.menuActs["Paste"] = self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
951 EricPixmapCache.getIcon("editPaste"), self.tr("Paste"), self.paste
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
952 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
953 if not self.miniMenu:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
954 self.menu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
955 self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
956 EricPixmapCache.getIcon("editIndent"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
957 self.tr("Indent"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
958 self.indentLineOrSelection,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
959 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
960 self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
961 EricPixmapCache.getIcon("editUnindent"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
962 self.tr("Unindent"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
963 self.unindentLineOrSelection,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
964 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
965 self.menuActs["Comment"] = self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
966 EricPixmapCache.getIcon("editComment"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
967 self.tr("Comment"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
968 self.commentLineOrSelection,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
969 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
970 self.menuActs["Uncomment"] = self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
971 EricPixmapCache.getIcon("editUncomment"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
972 self.tr("Uncomment"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
973 self.uncommentLineOrSelection,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
974 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
975 self.menu.addSeparator()
8000
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
976 self.menuActs["Docstring"] = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
977 self.tr("Generate Docstring"), self.__insertDocstring
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
978 )
8000
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
979 self.menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
980 self.menu.addAction(self.tr("Select to brace"), self.selectToMatchingBrace)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
981 self.menu.addAction(self.tr("Select all"), self.__selectAll)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
982 self.menu.addAction(self.tr("Deselect all"), self.__deselectAll)
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
983 self.menuActs["ExecuteSelection"] = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
984 self.tr("Execute Selection In Console"), self.__executeSelection
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
985 )
6059
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
986 else:
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
987 self.menuActs["ExecuteSelection"] = None
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
988 self.menu.addSeparator()
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
989 self.menu.addMenu(self.spellCheckMenu)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
990 self.menu.addSeparator()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
991 self.menuActs["Languages"] = self.menu.addMenu(self.languagesMenu)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
992 self.menuActs["Encodings"] = self.menu.addMenu(self.encodingsMenu)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
993 self.menuActs["Eol"] = self.menu.addMenu(self.eolMenu)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
994 self.menu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
995 self.menuActs["MonospacedFont"] = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
996 self.tr("Use Monospaced Font"), self.handleMonospacedEnable
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
997 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
998 self.menuActs["MonospacedFont"].setCheckable(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
999 self.menuActs["MonospacedFont"].setChecked(self.useMonospaced)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1000 self.menuActs["AutosaveEnable"] = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1001 self.tr("Autosave enabled"), self.__autosaveEnable
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1002 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1003 self.menuActs["AutosaveEnable"].setCheckable(True)
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
1004 self.menuActs["AutosaveEnable"].setChecked(self.__autosaveInterval > 0)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1005 self.menuActs["TypingAidsEnabled"] = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1006 self.tr("Typing aids enabled"), self.__toggleTypingAids
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1007 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1008 self.menuActs["TypingAidsEnabled"].setCheckable(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1009 self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None)
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
1010 self.menuActs["TypingAidsEnabled"].setChecked(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1011 self.completer is not None and self.completer.isEnabled()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1012 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1013 self.menuActs["AutoCompletionEnable"] = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1014 self.tr("Automatic Completion enabled"), self.__toggleAutoCompletionEnable
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1015 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1016 self.menuActs["AutoCompletionEnable"].setCheckable(True)
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
1017 self.menuActs["AutoCompletionEnable"].setChecked(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1018 self.autoCompletionThreshold() != -1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1019 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1020 if not self.isResourcesFile:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1021 self.menu.addMenu(self.autocompletionMenu)
4153
95b18307079f Corrected some auto-completion related terms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4142
diff changeset
1022 self.menuActs["calltip"] = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1023 self.tr("Calltip"), self.callTip
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1024 )
5907
c928af9fce32 Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
1025 self.menuActs["codeInfo"] = self.menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1026 self.tr("Code Info"), self.__showCodeInfo
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1027 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1028 self.menu.addSeparator()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1029 if self.isResourcesFile:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1030 self.menu.addMenu(self.resourcesMenu)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1031 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1032 self.menuActs["Check"] = self.menu.addMenu(self.checksMenu)
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1033 self.menuActs["Formatting"] = self.menu.addMenu(self.codeFormattingMenu)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1034 self.menuActs["Show"] = self.menu.addMenu(self.menuShow)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1035 self.menuActs["Diagrams"] = self.menu.addMenu(self.graphicsMenu)
3583
3e8e0346d639 Re-fixed the recent editor issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3581
diff changeset
1036 self.menu.addSeparator()
3e8e0346d639 Re-fixed the recent editor issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3581
diff changeset
1037 self.menuActs["Tools"] = self.menu.addMenu(self.toolsMenu)
3155
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
1038 self.menu.addSeparator()
3100
1c86bf655433 Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3095
diff changeset
1039 self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1040 EricPixmapCache.getIcon("documentNewView"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1041 self.tr("New Document View"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1042 self.__newView,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1043 )
3100
1c86bf655433 Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3095
diff changeset
1044 self.menuActs["NewSplit"] = self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1045 EricPixmapCache.getIcon("splitVertical"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1046 self.tr("New Document View (with new split)"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1047 self.__newViewNewSplit,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1048 )
3100
1c86bf655433 Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3095
diff changeset
1049 self.menuActs["NewSplit"].setEnabled(self.vm.canSplit())
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1050 self.menu.addSeparator()
3394
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1051 self.reopenEncodingMenu = self.__initContextMenuReopenWithEncoding()
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1052 self.menuActs["Reopen"] = self.menu.addMenu(self.reopenEncodingMenu)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1053 self.menuActs["Save"] = self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1054 EricPixmapCache.getIcon("fileSave"), self.tr("Save"), self.__contextSave
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1055 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1056 self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1057 EricPixmapCache.getIcon("fileSaveAs"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1058 self.tr("Save As..."),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1059 self.__contextSaveAs,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1060 )
10550
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
1061 self.menuActs["SaveAsRemote"] = self.menu.addAction(
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
1062 EricPixmapCache.getIcon("fileSaveAsRemote"),
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
1063 self.tr("Save as (Remote)..."),
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
1064 self.__contextSaveAsRemote,
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
1065 )
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
1066 self.menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1067 EricPixmapCache.getIcon("fileSaveCopy"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1068 self.tr("Save Copy..."),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1069 self.__contextSaveCopy,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1070 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1071
9643
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
1072 self.menu.aboutToShow.connect(self.__aboutToShowContextMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1073
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1074 self.spellingMenu = QMenu()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1075 self.__menus["Spelling"] = self.spellingMenu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1076
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 460
diff changeset
1077 self.spellingMenu.aboutToShow.connect(self.__showContextMenuSpelling)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1078 self.spellingMenu.triggered.connect(self.__contextMenuSpellingTriggered)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1079
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1080 def __initContextMenuAutocompletion(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1081 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1082 Private method used to setup the Checks context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1083
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1084 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1085 @rtype QMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1086 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1087 menu = QMenu(self.tr("Complete"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1088
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1089 self.menuActs["acDynamic"] = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1090 self.tr("Complete"), self.autoComplete
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1091 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1092 menu.addSeparator()
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
1093 self.menuActs["acClearCache"] = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1094 self.tr("Clear Completions Cache"), self.__clearCompletionsCache
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1095 )
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
1096 menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1097 menu.addAction(self.tr("Complete from Document"), self.autoCompleteFromDocument)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1098 self.menuActs["acAPI"] = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1099 self.tr("Complete from APIs"), self.autoCompleteFromAPIs
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1100 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1101 self.menuActs["acAPIDocument"] = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1102 self.tr("Complete from Document and APIs"), self.autoCompleteFromAll
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1103 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1104
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 460
diff changeset
1105 menu.aboutToShow.connect(self.__showContextMenuAutocompletion)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1106
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1107 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1108
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1109 def __initContextMenuChecks(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1110 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1111 Private method used to setup the Checks context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1112
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1113 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1114 @rtype QMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1115 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1116 menu = QMenu(self.tr("Check"))
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 460
diff changeset
1117 menu.aboutToShow.connect(self.__showContextMenuChecks)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1118 return menu
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1119
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1120 def __initContextMenuFormatting(self):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1121 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1122 Private method used to setup the Code Formatting context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1123
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1124 @return reference to the generated menu
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1125 @rtype QMenu
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1126 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1127 menu = QMenu(self.tr("Code Formatting"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1128
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1129 #######################################################################
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1130 ## Black related entries
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1131 #######################################################################
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1132
9436
731d146193e2 Added an 'About Black' entry to the Code Formatting menus of the project sources browser and the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9432
diff changeset
1133 act = menu.addAction(self.tr("Black"), aboutBlack)
731d146193e2 Added an 'About Black' entry to the Code Formatting menus of the project sources browser and the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9432
diff changeset
1134 font = act.font()
731d146193e2 Added an 'About Black' entry to the Code Formatting menus of the project sources browser and the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9432
diff changeset
1135 font.setBold(True)
731d146193e2 Added an 'About Black' entry to the Code Formatting menus of the project sources browser and the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9432
diff changeset
1136 act.setFont(font)
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1137 menu.addAction(
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1138 self.tr("Format Code"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1139 lambda: self.__performFormatWithBlack(BlackFormattingAction.Format),
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1140 )
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1141 menu.addAction(
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1142 self.tr("Check Formatting"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1143 lambda: self.__performFormatWithBlack(BlackFormattingAction.Check),
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1144 )
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1145 menu.addAction(
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1146 self.tr("Formatting Diff"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1147 lambda: self.__performFormatWithBlack(BlackFormattingAction.Diff),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1148 )
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1149 menu.addSeparator()
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1150
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1151 #######################################################################
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1152 ## isort related entries
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1153 #######################################################################
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1154
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1155 act = menu.addAction(self.tr("isort"), aboutIsort)
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1156 font = act.font()
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1157 font.setBold(True)
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1158 act.setFont(font)
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1159 menu.addAction(
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1160 self.tr("Sort Imports"),
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1161 lambda: self.__performImportSortingWithIsort(IsortFormattingAction.Sort),
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1162 )
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1163 menu.addAction(
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1164 self.tr("Imports Sorting Diff"),
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1165 lambda: self.__performImportSortingWithIsort(IsortFormattingAction.Diff),
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1166 )
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
1167 menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1168
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1169 menu.aboutToShow.connect(self.__showContextMenuFormatting)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1170
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1171 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1172
3155
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
1173 def __initContextMenuTools(self):
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
1174 """
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
1175 Private method used to setup the Tools context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1176
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1177 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1178 @rtype QMenu
3155
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
1179 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1180 menu = QMenu(self.tr("Tools"))
3155
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
1181 menu.aboutToShow.connect(self.__showContextMenuTools)
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
1182 return menu
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
1183
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1184 def __initContextMenuShow(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1185 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1186 Private method used to setup the Show context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1187
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1188 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1189 @rtype QMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1190 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1191 menu = QMenu(self.tr("Show"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1192
10574
622e59b51640 Implemented the profiling and code coverage interface of the dialogs to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10573
diff changeset
1193 self.codeMetricsAct = menu.addAction(
622e59b51640 Implemented the profiling and code coverage interface of the dialogs to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10573
diff changeset
1194 self.tr("Code metrics..."), self.__showCodeMetrics
622e59b51640 Implemented the profiling and code coverage interface of the dialogs to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10573
diff changeset
1195 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1196 self.coverageMenuAct = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1197 self.tr("Code coverage..."), self.__showCodeCoverage
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1198 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1199 self.coverageShowAnnotationMenuAct = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1200 self.tr("Show code coverage annotations"), self.codeCoverageShowAnnotations
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1201 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1202 self.coverageHideAnnotationMenuAct = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1203 self.tr("Hide code coverage annotations"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1204 self.__codeCoverageHideAnnotations,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1205 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1206 self.profileMenuAct = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1207 self.tr("Profile data..."), self.__showProfileData
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1208 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1209
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 460
diff changeset
1210 menu.aboutToShow.connect(self.__showContextMenuShow)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1211
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1212 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1213
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1214 def __initContextMenuGraphics(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1215 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1216 Private method used to setup the diagrams context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1217
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1218 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1219 @rtype QMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1220 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1221 menu = QMenu(self.tr("Diagrams"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1222
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1223 menu.addAction(self.tr("Class Diagram..."), self.__showClassDiagram)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1224 menu.addAction(self.tr("Package Diagram..."), self.__showPackageDiagram)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1225 menu.addAction(self.tr("Imports Diagram..."), self.__showImportsDiagram)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1226 self.applicationDiagramMenuAct = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1227 self.tr("Application Diagram..."), self.__showApplicationDiagram
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1228 )
2034
8de0fc1f7fef Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2031
diff changeset
1229 menu.addSeparator()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1230 menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1231 EricPixmapCache.getIcon("open"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1232 self.tr("Load Diagram..."),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1233 self.__loadDiagram,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1234 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1235
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 460
diff changeset
1236 menu.aboutToShow.connect(self.__showContextMenuGraphics)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1237
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1238 return menu
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1239
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1240 def __initContextMenuLanguages(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1241 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1242 Private method used to setup the Languages context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1243
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1244 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1245 @rtype QMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1246 """
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1247 menu = QMenu(self.tr("Languages"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1248
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1249 self.languagesActGrp = QActionGroup(self)
6210
f5b392aac28e Added a default 'Text Document' icon for the status bar file type field and the language selection menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6188
diff changeset
1250 self.noLanguageAct = menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1251 EricPixmapCache.getIcon("fileText"), self.tr("Text")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1252 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1253 self.noLanguageAct.setCheckable(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1254 self.noLanguageAct.setData("None")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1255 self.languagesActGrp.addAction(self.noLanguageAct)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1256 menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1257
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1258 self.supportedLanguages = {}
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1259 supportedLanguages = Lexers.getSupportedLanguages()
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10345
diff changeset
1260 for language in sorted(supportedLanguages):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1261 if language != "Guessed":
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1262 self.supportedLanguages[language] = supportedLanguages[language][:2]
2217
e80c74f2a25a Added some icons to the "Languages" and "End-of-Line Type" context menus of the editor and changed the status labels for programming language and end-of-line type of the main window to show an icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2216
diff changeset
1263 act = menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1264 EricPixmapCache.getIcon(supportedLanguages[language][2]),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1265 self.supportedLanguages[language][0],
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1266 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1267 act.setCheckable(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1268 act.setData(language)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1269 self.supportedLanguages[language].append(act)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1270 self.languagesActGrp.addAction(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1271
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1272 menu.addSeparator()
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1273 self.pygmentsAct = menu.addAction(self.tr("Guessed"))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1274 self.pygmentsAct.setCheckable(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1275 self.pygmentsAct.setData("Guessed")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1276 self.languagesActGrp.addAction(self.pygmentsAct)
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1277 self.pygmentsSelAct = menu.addAction(self.tr("Alternatives"))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1278 self.pygmentsSelAct.setData("Alternatives")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1279
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1280 menu.triggered.connect(self.__languageMenuTriggered)
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 460
diff changeset
1281 menu.aboutToShow.connect(self.__showContextMenuLanguages)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1282
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1283 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1284
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1285 def __initContextMenuEncodings(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1286 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1287 Private method used to setup the Encodings context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1288
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1289 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1290 @rtype QMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1291 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1292 self.supportedEncodings = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1293
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1294 menu = QMenu(self.tr("Encodings"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1295
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1296 self.encodingsActGrp = QActionGroup(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1297
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1298 for encoding in sorted(Utilities.supportedCodecs):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1299 act = menu.addAction(encoding)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1300 act.setCheckable(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1301 act.setData(encoding)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1302 self.supportedEncodings[encoding] = act
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1303 self.encodingsActGrp.addAction(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1304
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1305 menu.triggered.connect(self.__encodingsMenuTriggered)
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 460
diff changeset
1306 menu.aboutToShow.connect(self.__showContextMenuEncodings)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1307
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1308 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1309
3394
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1310 def __initContextMenuReopenWithEncoding(self):
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1311 """
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1312 Private method used to setup the Reopen With Encoding context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1313
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1314 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1315 @rtype QMenu
3394
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1316 """
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1317 menu = QMenu(self.tr("Re-Open With Encoding"))
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1318 menu.setIcon(EricPixmapCache.getIcon("open"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1319
3394
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1320 for encoding in sorted(Utilities.supportedCodecs):
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1321 act = menu.addAction(encoding)
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1322 act.setData(encoding)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1323
3394
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1324 menu.triggered.connect(self.__reopenWithEncodingMenuTriggered)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1325
3394
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
1326 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1327
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1328 def __initContextMenuEol(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1329 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1330 Private method to setup the eol context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1331
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1332 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1333 @rtype QMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1334 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1335 self.supportedEols = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1336
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1337 menu = QMenu(self.tr("End-of-Line Type"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1338
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1339 self.eolActGrp = QActionGroup(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1340
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1341 act = menu.addAction(EricPixmapCache.getIcon("eolLinux"), self.tr("Unix"))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1342 act.setCheckable(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1343 act.setData("\n")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1344 self.supportedEols["\n"] = act
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1345 self.eolActGrp.addAction(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1346
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1347 act = menu.addAction(EricPixmapCache.getIcon("eolWindows"), self.tr("Windows"))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1348 act.setCheckable(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1349 act.setData("\r\n")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1350 self.supportedEols["\r\n"] = act
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1351 self.eolActGrp.addAction(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1352
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1353 act = menu.addAction(EricPixmapCache.getIcon("eolMac"), self.tr("Macintosh"))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1354 act.setCheckable(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1355 act.setData("\r")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1356 self.supportedEols["\r"] = act
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1357 self.eolActGrp.addAction(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1358
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1359 menu.triggered.connect(self.__eolMenuTriggered)
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 460
diff changeset
1360 menu.aboutToShow.connect(self.__showContextMenuEol)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1361
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1362 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1363
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1364 def __initContextMenuSpellCheck(self):
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1365 """
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1366 Private method used to setup the spell checking context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1367
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1368 @return reference to the generated menu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1369 @rtype QMenu
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1370 """
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1371 menu = QMenu(self.tr("Spelling"))
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1372 menu.setIcon(EricPixmapCache.getIcon("spellchecking"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1373
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1374 self.spellLanguagesMenu = self.__initContextMenuSpellLanguages()
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1375 self.__menus["SpellLanguages"] = self.spellLanguagesMenu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1376
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1377 self.menuActs["SpellCheck"] = menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1378 EricPixmapCache.getIcon("spellchecking"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1379 self.tr("Check spelling..."),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1380 self.checkSpelling,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1381 )
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1382 self.menuActs["SpellCheckSelection"] = menu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
1383 EricPixmapCache.getIcon("spellchecking"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1384 self.tr("Check spelling of selection..."),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1385 self.__checkSpellingSelection,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1386 )
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1387 self.menuActs["SpellCheckRemove"] = menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1388 self.tr("Remove from dictionary"), self.__removeFromSpellingDictionary
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1389 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1390 self.menuActs["SpellCheckLanguages"] = menu.addMenu(self.spellLanguagesMenu)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1391
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1392 menu.aboutToShow.connect(self.__showContextMenuSpellCheck)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1393
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1394 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1395
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1396 def __initContextMenuSpellLanguages(self):
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1397 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1398 Private method to setup the spell checking languages context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1399
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1400 @return reference to the generated menu
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1401 @rtype QMenu
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1402 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1403 self.supportedSpellLanguages = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1404
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1405 menu = QMenu(self.tr("Spell Check Languages"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1406
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1407 self.spellLanguagesActGrp = QActionGroup(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1408
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1409 self.noSpellLanguageAct = menu.addAction(self.tr("No Language"))
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1410 self.noSpellLanguageAct.setCheckable(True)
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1411 self.noSpellLanguageAct.setData("")
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1412 self.spellLanguagesActGrp.addAction(self.noSpellLanguageAct)
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1413 menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1414
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1415 for language in sorted(SpellChecker.getAvailableLanguages()):
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1416 act = menu.addAction(language)
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1417 act.setCheckable(True)
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1418 act.setData(language)
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1419 self.supportedSpellLanguages[language] = act
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1420 self.spellLanguagesActGrp.addAction(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1421
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1422 menu.triggered.connect(self.__spellLanguagesMenuTriggered)
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1423 menu.aboutToShow.connect(self.__showContextMenuSpellLanguages)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1424
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1425 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1426
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1427 def __initContextMenuMargins(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1428 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
1429 Private method used to setup the context menu for the margins.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1430 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1431 self.marginMenuActs = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1432
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1433 # bookmark margin
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1434 self.bmMarginMenu = QMenu()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1435
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1436 self.bmMarginMenu.addAction(self.tr("Toggle bookmark"), self.menuToggleBookmark)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1437 self.marginMenuActs["NextBookmark"] = self.bmMarginMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1438 self.tr("Next bookmark"), self.nextBookmark
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1439 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1440 self.marginMenuActs["PreviousBookmark"] = self.bmMarginMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1441 self.tr("Previous bookmark"), self.previousBookmark
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1442 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1443 self.marginMenuActs["ClearBookmark"] = self.bmMarginMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1444 self.tr("Clear all bookmarks"), self.clearBookmarks
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1445 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1446
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6111
diff changeset
1447 self.bmMarginMenu.aboutToShow.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1448 lambda: self.__showContextMenuMargin(self.bmMarginMenu)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1449 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1450
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1451 # breakpoint margin
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1452 self.bpMarginMenu = QMenu()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1453
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1454 self.marginMenuActs["Breakpoint"] = self.bpMarginMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1455 self.tr("Toggle breakpoint"), self.menuToggleBreakpoint
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1456 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1457 self.marginMenuActs["TempBreakpoint"] = self.bpMarginMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1458 self.tr("Toggle temporary breakpoint"), self.__menuToggleTemporaryBreakpoint
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1459 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1460 self.marginMenuActs["EditBreakpoint"] = self.bpMarginMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1461 self.tr("Edit breakpoint..."), self.menuEditBreakpoint
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1462 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1463 self.marginMenuActs["EnableBreakpoint"] = self.bpMarginMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1464 self.tr("Enable breakpoint"), self.__menuToggleBreakpointEnabled
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1465 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1466 self.marginMenuActs["NextBreakpoint"] = self.bpMarginMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1467 self.tr("Next breakpoint"), self.menuNextBreakpoint
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1468 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1469 self.marginMenuActs["PreviousBreakpoint"] = self.bpMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1470 self.tr("Previous breakpoint"), self.menuPreviousBreakpoint
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1471 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1472 self.marginMenuActs["ClearBreakpoint"] = self.bpMarginMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1473 self.tr("Clear all breakpoints"), self.__menuClearBreakpoints
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1474 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1475
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6111
diff changeset
1476 self.bpMarginMenu.aboutToShow.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1477 lambda: self.__showContextMenuMargin(self.bpMarginMenu)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1478 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1479
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
1480 # fold margin
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
1481 self.foldMarginMenu = QMenu()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1482
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1483 self.marginMenuActs["ToggleAllFolds"] = self.foldMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1484 self.tr("Toggle all folds"), self.foldAll
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1485 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1486 self.marginMenuActs[
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1487 "ToggleAllFoldsAndChildren"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1488 ] = self.foldMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1489 self.tr("Toggle all folds (including children)"), lambda: self.foldAll(True)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1490 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1491 self.marginMenuActs["ToggleCurrentFold"] = self.foldMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1492 self.tr("Toggle current fold"), self.toggleCurrentFold
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1493 )
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
1494 self.foldMarginMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1495 self.marginMenuActs["ExpandChildren"] = self.foldMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1496 self.tr("Expand (including children)"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1497 self.__contextMenuExpandFoldWithChildren,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1498 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1499 self.marginMenuActs["CollapseChildren"] = self.foldMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1500 self.tr("Collapse (including children)"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1501 self.__contextMenuCollapseFoldWithChildren,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1502 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1503 self.foldMarginMenu.addSeparator()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1504 self.marginMenuActs["ClearAllFolds"] = self.foldMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1505 self.tr("Clear all folds"), self.clearFolds
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1506 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1507
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
1508 self.foldMarginMenu.aboutToShow.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1509 lambda: self.__showContextMenuMargin(self.foldMarginMenu)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1510 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1511
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1512 # indicator margin
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1513 self.indicMarginMenu = QMenu()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1514
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1515 self.marginMenuActs["GotoSyntaxError"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1516 self.tr("Goto syntax error"), self.gotoSyntaxError
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1517 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1518 self.marginMenuActs["ShowSyntaxError"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1519 self.tr("Show syntax error message"), self.__showSyntaxError
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1520 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1521 self.marginMenuActs["ClearSyntaxError"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1522 self.tr("Clear syntax error"), self.clearSyntaxError
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1523 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1524 self.indicMarginMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1525 self.marginMenuActs["NextWarningMarker"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1526 self.tr("Next warning"), self.nextWarning
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1527 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1528 self.marginMenuActs["PreviousWarningMarker"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1529 self.tr("Previous warning"), self.previousWarning
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1530 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1531 self.marginMenuActs["ShowWarning"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1532 self.tr("Show warning message"), self.__showWarning
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1533 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1534 self.marginMenuActs["ClearWarnings"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1535 self.tr("Clear warnings"), self.clearWarnings
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1536 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1537 self.indicMarginMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1538 self.marginMenuActs["NextCoverageMarker"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1539 self.tr("Next uncovered line"), self.nextUncovered
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1540 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1541 self.marginMenuActs["PreviousCoverageMarker"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1542 self.tr("Previous uncovered line"), self.previousUncovered
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1543 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1544 self.indicMarginMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1545 self.marginMenuActs["NextTaskMarker"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1546 self.tr("Next task"), self.nextTask
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1547 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1548 self.marginMenuActs["PreviousTaskMarker"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1549 self.tr("Previous task"), self.previousTask
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1550 )
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
1551 self.indicMarginMenu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1552 self.marginMenuActs["NextChangeMarker"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1553 self.tr("Next change"), self.nextChange
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1554 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1555 self.marginMenuActs["PreviousChangeMarker"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1556 self.tr("Previous change"), self.previousChange
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1557 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1558 self.marginMenuActs["ClearChangeMarkers"] = self.indicMarginMenu.addAction(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1559 self.tr("Clear changes"), self.__reinitOnlineChangeTrace
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1560 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1561
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6111
diff changeset
1562 self.indicMarginMenu.aboutToShow.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1563 lambda: self.__showContextMenuMargin(self.indicMarginMenu)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1564 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1565
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1566 def exportFile(self, exporterFormat):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1567 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1568 Public method to export the file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1569
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1570 @param exporterFormat format the file should be exported into
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1571 @type str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1572 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1573 if exporterFormat:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1574 exporter = Exporters.getExporter(exporterFormat, self)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1575 if exporter:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1576 exporter.exportSource()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1577 else:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
1578 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
1579 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1580 self.tr("Export source"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1581 self.tr(
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1582 """<p>No exporter available for the """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1583 """export format <b>{0}</b>. Aborting...</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1584 ).format(exporterFormat),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1585 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1586 else:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
1587 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
1588 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1589 self.tr("Export source"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1590 self.tr("""No export format given. Aborting..."""),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1591 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1592
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1593 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1594 def __showContextMenuLanguages(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1595 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1596 Private slot handling the aboutToShow signal of the languages context
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1597 menu.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1598 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1599 if self.apiLanguage.startswith("Pygments|"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1600 self.pygmentsSelAct.setText(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1601 self.tr("Alternatives ({0})").format(self.getLanguage(normalized=False))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1602 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1603 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1604 self.pygmentsSelAct.setText(self.tr("Alternatives"))
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
1605 self.showMenu.emit("Languages", self.languagesMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1606
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1607 def __selectPygmentsLexer(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1608 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1609 Private method to select a specific pygments lexer.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1610
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1611 @return name of the selected pygments lexer
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1612 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1613 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
1614 from pygments.lexers import get_all_lexers # __IGNORE_WARNING_I102__
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1615
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7575
diff changeset
1616 lexerList = sorted(lex[0] for lex in get_all_lexers())
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1617 try:
1295
b3db3070d104 Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1196
diff changeset
1618 lexerSel = lexerList.index(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1619 self.getLanguage(normalized=False, forPygments=True)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1620 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1621 except ValueError:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1622 lexerSel = 0
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
1623 lexerName, ok = QInputDialog.getItem(
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1624 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1625 self.tr("Pygments Lexer"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
1626 self.tr("Select the Pygments lexer to apply."),
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1627 lexerList,
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
1628 lexerSel,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1629 False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1630 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1631 if ok and lexerName:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1632 return lexerName
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1633 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1634 return ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1635
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1636 def __languageMenuTriggered(self, act):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1637 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1638 Private method to handle the selection of a lexer language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1639
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1640 @param act reference to the action that was triggered
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1641 @type QAction
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1642 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1643 if act == self.noLanguageAct:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1644 self.__resetLanguage()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1645 elif act == self.pygmentsAct:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1646 self.setLanguage("dummy.pygments")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1647 elif act == self.pygmentsSelAct:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1648 language = self.__selectPygmentsLexer()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1649 if language:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
1650 self.setLanguage("dummy.pygments", pyname=language)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1651 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1652 language = act.data()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1653 if language:
2219
031fae60d778 Fixed an issue in the editor causing switching the language between Python2 and Python3 to only work every second time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2217
diff changeset
1654 self.filetype = language
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1655 self.setLanguage(self.supportedLanguages[language][1])
3579
eccd12461319 BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3576
diff changeset
1656 self.checkSyntax()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1657
8004
38d359e2ded7 Editor: fixed the integration of docstring generator for newly created files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8002
diff changeset
1658 self.__docstringGenerator = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1659
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
1660 def __languageChanged(self, language, propagate=True):
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1661 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1662 Private method handling a change of a connected editor's language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1663
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1664 @param language language to be set
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1665 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1666 @param propagate flag indicating to propagate the change
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1667 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1668 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1669 if language == "":
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
1670 self.__resetLanguage(propagate=propagate)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1671 elif language == "Guessed":
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1672 self.setLanguage("dummy.pygments", propagate=propagate)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1673 elif language.startswith("Pygments|"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1674 pyname = language.split("|", 1)[1]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1675 self.setLanguage("dummy.pygments", pyname=pyname, propagate=propagate)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1676 else:
2219
031fae60d778 Fixed an issue in the editor causing switching the language between Python2 and Python3 to only work every second time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2217
diff changeset
1677 self.filetype = language
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1678 self.setLanguage(self.supportedLanguages[language][1], propagate=propagate)
3579
eccd12461319 BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3576
diff changeset
1679 self.checkSyntax()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1680
8004
38d359e2ded7 Editor: fixed the integration of docstring generator for newly created files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8002
diff changeset
1681 self.__docstringGenerator = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1682
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
1683 def __resetLanguage(self, propagate=True):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1684 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1685 Private method used to reset the language selection.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1686
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1687 @param propagate flag indicating to propagate the change
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1688 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1689 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1690 if self.lexer_ is not None and (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1691 self.lexer_.lexer() == "container" or self.lexer_.lexer() is None
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1692 ):
8507
2a22d0880d21 Added the capability to suppress syntax highlighting by associating the file type 'Text'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8506
diff changeset
1693 with contextlib.suppress(TypeError):
2a22d0880d21 Added the capability to suppress syntax highlighting by associating the file type 'Text'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8506
diff changeset
1694 self.SCN_STYLENEEDED.disconnect(self.__styleNeeded)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1695
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1696 self.apiLanguage = ""
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1697 self.lexer_ = None
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1698 self.__lexerReset = True
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1699 self.setLexer()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1700 if self.completer is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1701 self.completer.setEnabled(False)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1702 self.completer = None
3059
16c93928cfc5 A little fix to the editor context menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
1703 useMonospaced = self.useMonospaced
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1704 self.__setTextDisplay()
7490
ebd9ae25bb1c Editor: fixed a style issue when selecting no specific lexer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7393
diff changeset
1705 self.__setMarginsDisplay()
3059
16c93928cfc5 A little fix to the editor context menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
1706 self.setMonospaced(useMonospaced)
8507
2a22d0880d21 Added the capability to suppress syntax highlighting by associating the file type 'Text'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8506
diff changeset
1707 with contextlib.suppress(AttributeError):
2a22d0880d21 Added the capability to suppress syntax highlighting by associating the file type 'Text'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8506
diff changeset
1708 self.menuActs["MonospacedFont"].setChecked(self.useMonospaced)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1709
8004
38d359e2ded7 Editor: fixed the integration of docstring generator for newly created files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8002
diff changeset
1710 self.__docstringGenerator = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1711
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1712 if not self.inLanguageChanged and propagate:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1713 self.inLanguageChanged = True
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1714 self.languageChanged.emit(self.apiLanguage)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1715 self.inLanguageChanged = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1716
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1717 def setLanguage(self, filename, initTextDisplay=True, propagate=True, pyname=""):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1718 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1719 Public method to set a lexer language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1720
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1721 @param filename filename used to determine the associated lexer
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1722 language
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1723 @type str
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1724 @param initTextDisplay flag indicating an initialization of the text
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1725 display is required as well
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1726 @type bool
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1727 @param propagate flag indicating to propagate the change
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1728 @type bool
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1729 @param pyname name of the pygments lexer to use
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1730 @type str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1731 """
5969
584c21b6587a Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5967
diff changeset
1732 # clear all warning and syntax error markers
584c21b6587a Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5967
diff changeset
1733 self.clearSyntaxError()
584c21b6587a Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5967
diff changeset
1734 self.clearWarnings()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1735
3059
16c93928cfc5 A little fix to the editor context menu handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
1736 self.menuActs["MonospacedFont"].setChecked(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1737
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1738 self.__lexerReset = False
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
1739 self.__bindLexer(filename, pyname=pyname)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1740 self.__bindCompleter(filename)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1741 self.recolor()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1742 self.__checkLanguage()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1743
8004
38d359e2ded7 Editor: fixed the integration of docstring generator for newly created files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8002
diff changeset
1744 self.__docstringGenerator = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1745
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1746 # set the text display
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1747 if initTextDisplay:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1748 self.__setTextDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1749
5969
584c21b6587a Continued to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5967
diff changeset
1750 # set the auto-completion and call-tips function
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1751 self.__setAutoCompletion()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1752 self.__setCallTips()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1753
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1754 if not self.inLanguageChanged and propagate:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1755 self.inLanguageChanged = True
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1756 self.languageChanged.emit(self.apiLanguage)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1757 self.inLanguageChanged = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1758
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1759 def __checkLanguage(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1760 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1761 Private method to check the selected language of the language submenu.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1762 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1763 if self.apiLanguage == "":
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1764 self.noLanguageAct.setChecked(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1765 elif self.apiLanguage == "Guessed":
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1766 self.pygmentsAct.setChecked(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1767 elif self.apiLanguage.startswith("Pygments|"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1768 act = self.languagesActGrp.checkedAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1769 if act:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1770 act.setChecked(False)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1771 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1772 self.supportedLanguages[self.apiLanguage][2].setChecked(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1773
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1774 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1775 def projectLexerAssociationsChanged(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1776 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1777 Public slot to handle changes of the project lexer associations.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1778 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1779 self.setLanguage(self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1780
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1781 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1782 def __showContextMenuEncodings(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1783 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1784 Private slot handling the aboutToShow signal of the encodings context
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1785 menu.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1786 """
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
1787 self.showMenu.emit("Encodings", self.encodingsMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1788
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1789 def __encodingsMenuTriggered(self, act):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1790 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1791 Private method to handle the selection of an encoding.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1792
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1793 @param act reference to the action that was triggered
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1794 @type QAction
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1795 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1796 encoding = act.data()
3393
080ace4829b4 Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3341
diff changeset
1797 self.setModified(True)
429
dcc623c99907 Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 404
diff changeset
1798 self.__encodingChanged("{0}-selected".format(encoding))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1799
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1800 def __checkEncoding(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1801 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1802 Private method to check the selected encoding of the encodings submenu.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1803 """
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
1804 with contextlib.suppress(AttributeError, KeyError):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1805 (self.supportedEncodings[self.__normalizedEncoding()].setChecked(True))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1806
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1807 @pyqtSlot(str)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
1808 def __encodingChanged(self, encoding, propagate=True):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1809 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1810 Private slot to handle a change of the encoding.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1811
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1812 @param encoding changed encoding
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1813 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1814 @param propagate flag indicating to propagate the change
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1815 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1816 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1817 self.encoding = encoding
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1818 self.__checkEncoding()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1819
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1820 if not self.inEncodingChanged and propagate:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1821 self.inEncodingChanged = True
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1822 self.encodingChanged.emit(self.encoding)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1823 self.inEncodingChanged = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1824
3393
080ace4829b4 Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3341
diff changeset
1825 def __normalizedEncoding(self, encoding=""):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1826 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1827 Private method to calculate the normalized encoding string.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1828
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1829 @param encoding encoding to be normalized
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1830 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1831 @return normalized encoding
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1832 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1833 """
3393
080ace4829b4 Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3341
diff changeset
1834 if not encoding:
080ace4829b4 Extended QsciScintillaCompat to allow to set the modified status and made the selection of an encoding in the editor change the modified state.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3341
diff changeset
1835 encoding = self.encoding
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1836 return (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1837 encoding.replace("-default", "")
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1838 .replace("-guessed", "")
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1839 .replace("-selected", "")
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1840 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1841
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1842 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1843 def __showContextMenuEol(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1844 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1845 Private slot handling the aboutToShow signal of the eol context menu.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1846 """
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
1847 self.showMenu.emit("Eol", self.eolMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1848
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1849 def __eolMenuTriggered(self, act):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1850 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1851 Private method to handle the selection of an eol type.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1852
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1853 @param act reference to the action that was triggered
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
1854 @type QAction
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1855 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1856 eol = act.data()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1857 self.setEolModeByEolString(eol)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1858 self.convertEols(self.eolMode())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1859
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1860 def __checkEol(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1861 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1862 Private method to check the selected eol type of the eol submenu.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1863 """
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
1864 with contextlib.suppress(AttributeError, TypeError):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1865 self.supportedEols[self.getLineSeparator()].setChecked(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1866
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1867 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1868 def __eolChanged(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1869 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1870 Private slot to handle a change of the eol mode.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1871 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1872 self.__checkEol()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1873
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1874 if not self.inEolChanged:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1875 self.inEolChanged = True
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1876 eol = self.getLineSeparator()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1877 self.eolChanged.emit(eol)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1878 self.inEolChanged = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1879
10449
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1880 def convertEols(self, eolMode):
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1881 """
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1882 Public method to convert the end-of-line marker.
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1883
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1884 This variant of the method emits a signal to update the IDE after
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1885 the original method was called.
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1886
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1887 @param eolMode end-of-line mode
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1888 @type QsciScintilla.EolMode
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1889 """
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1890 super().convertEols(eolMode)
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1891 self.__eolChanged()
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1892
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1893 @pyqtSlot()
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1894 def __showContextMenuSpellCheck(self):
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1895 """
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1896 Private slot handling the aboutToShow signal of the spell check
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1897 context menu.
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1898 """
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1899 spellingAvailable = SpellChecker.isAvailable()
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1900 self.menuActs["SpellCheck"].setEnabled(spellingAvailable)
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1901 self.menuActs["SpellCheckSelection"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1902 spellingAvailable and self.hasSelectedText()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1903 )
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1904 self.menuActs["SpellCheckRemove"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1905 spellingAvailable and self.spellingMenuPos >= 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1906 )
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1907 self.menuActs["SpellCheckLanguages"].setEnabled(spellingAvailable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1908
8519
fd4722a8f782 Shortened the long editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8517
diff changeset
1909 self.showMenu.emit("SpellCheck", self.spellCheckMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1910
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1911 @pyqtSlot()
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1912 def __showContextMenuSpellLanguages(self):
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1913 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1914 Private slot handling the aboutToShow signal of the spell check
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1915 languages context menu.
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1916 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1917 self.showMenu.emit("SpellLanguage", self.spellLanguagesMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1918
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1919 def __spellLanguagesMenuTriggered(self, act):
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1920 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1921 Private method to handle the selection of a spell check language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1922
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1923 @param act reference to the action that was triggered
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1924 @type QAction
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1925 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1926 language = act.data()
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1927 self.__setSpellingLanguage(language)
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1928 self.spellLanguageChanged.emit(language)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1929
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1930 @pyqtSlot()
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1931 def __checkSpellLanguage(self):
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1932 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1933 Private slot to check the selected spell check language action.
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1934 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1935 language = self.getSpellingLanguage()
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
1936 with contextlib.suppress(AttributeError, KeyError):
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1937 self.supportedSpellLanguages[language].setChecked(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1938
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1939 @pyqtSlot(str)
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1940 def __spellLanguageChanged(self, language, propagate=True):
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1941 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1942 Private slot to handle a change of the spell check language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1943
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1944 @param language new spell check language
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1945 @type str
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1946 @param propagate flag indicating to propagate the change
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1947 @type bool
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1948 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1949 self.__setSpellingLanguage(language)
7339
5e4d36f56085 Editor.py: added a fix for an issue reported and submitted by Hans-Peter Jansen.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7335
diff changeset
1950 self.__checkSpellLanguage()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1951
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1952 if not self.__inSpellLanguageChanged and propagate:
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1953 self.__inSpellLanguageChanged = True
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1954 self.spellLanguageChanged.emit(language)
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
1955 self.__inSpellLanguageChanged = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1956
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
1957 def __bindLexer(self, filename, pyname=""):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1958 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1959 Private method to set the correct lexer depending on language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1960
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
1961 @param filename filename used to determine the associated lexer
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1962 language
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1963 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1964 @param pyname name of the pygments lexer to use
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
1965 @type str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1966 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1967 if self.lexer_ is not None and (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1968 self.lexer_.lexer() == "container" or self.lexer_.lexer() is None
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
1969 ):
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
1970 self.SCN_STYLENEEDED.disconnect(self.__styleNeeded)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1971
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
1972 language = ""
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
1973 if not self.filetype:
4227
8a39c8b968f4 Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4201
diff changeset
1974 if filename:
8a39c8b968f4 Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4201
diff changeset
1975 basename = os.path.basename(filename)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1976 if self.project.isOpen() and self.project.isProjectFile(filename):
4227
8a39c8b968f4 Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4201
diff changeset
1977 language = self.project.getEditorLexerAssoc(basename)
8a39c8b968f4 Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4201
diff changeset
1978 if not language:
8a39c8b968f4 Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4201
diff changeset
1979 language = Preferences.getEditorLexerAssoc(basename)
8507
2a22d0880d21 Added the capability to suppress syntax highlighting by associating the file type 'Text'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8506
diff changeset
1980 if language == "Text":
2a22d0880d21 Added the capability to suppress syntax highlighting by associating the file type 'Text'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8506
diff changeset
1981 # no highlighting for plain text files
2a22d0880d21 Added the capability to suppress syntax highlighting by associating the file type 'Text'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8506
diff changeset
1982 self.__resetLanguage()
2a22d0880d21 Added the capability to suppress syntax highlighting by associating the file type 'Text'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8506
diff changeset
1983 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1984
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
1985 if not language:
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
1986 bindName = self.__bindName(self.text(0))
4170
8bc578136279 Fixed an issue in the editor causing a traceback when setting a language for an empty editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4153
diff changeset
1987 if bindName:
8bc578136279 Fixed an issue in the editor causing a traceback when setting a language for an empty editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4153
diff changeset
1988 language = Preferences.getEditorLexerAssoc(bindName)
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
1989 if language == "Python":
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
1990 # correction for Python
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9619
diff changeset
1991 pyVer = PythonUtilities.determinePythonVersion(
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9619
diff changeset
1992 filename, self.text(0), self
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9619
diff changeset
1993 )
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
1994 language = "Python{0}".format(pyVer)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1995 if language in [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1996 "Python3",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1997 "MicroPython",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1998 "Cython",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
1999 "Ruby",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2000 "JavaScript",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2001 "YAML",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2002 "JSON",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2003 ]:
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2004 self.filetype = language
802
e8882d16384c Added a pyflakes checker function for Python 2 files and made some additional Python 2 related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 795
diff changeset
2005 else:
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2006 self.filetype = ""
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2007 else:
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2008 language = self.filetype
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2009
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2010 if language.startswith("Pygments|"):
7525
6d1f954947bc LexerPygments: fixed an issue loading styles and added some Pygments token types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7506
diff changeset
2011 pyname = language
7749
285855999b4e Configuration Dialog: optimized the display of the various configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7746
diff changeset
2012 self.filetype = language.split("|")[-1]
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2013 language = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2014
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2015 self.lexer_ = Lexers.getLexer(language, self, pyname=pyname)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2016 if self.lexer_ is None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2017 self.setLexer()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2018 self.apiLanguage = ""
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2019 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2020
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2021 if pyname:
7730
20b05e846148 Editor, MiniEditor: fixed an issue dealing with Pygments lexers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7690
diff changeset
2022 if pyname.startswith("Pygments|"):
20b05e846148 Editor, MiniEditor: fixed an issue dealing with Pygments lexers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7690
diff changeset
2023 self.apiLanguage = pyname
20b05e846148 Editor, MiniEditor: fixed an issue dealing with Pygments lexers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7690
diff changeset
2024 else:
20b05e846148 Editor, MiniEditor: fixed an issue dealing with Pygments lexers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7690
diff changeset
2025 self.apiLanguage = "Pygments|{0}".format(pyname)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2026 else:
9612
93b496cc3c88 Class Browsers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
2027 # Change API language for lexer where QScintilla reports
93b496cc3c88 Class Browsers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
2028 # an abbreviated name.
93b496cc3c88 Class Browsers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
2029 self.apiLanguage = self.lexer_.language()
93b496cc3c88 Class Browsers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
2030 if self.apiLanguage == "POV":
93b496cc3c88 Class Browsers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
2031 self.apiLanguage = "Povray"
93b496cc3c88 Class Browsers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
2032 elif self.apiLanguage == "PO":
93b496cc3c88 Class Browsers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
2033 self.apiLanguage = "Gettext"
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2034 self.setLexer(self.lexer_)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2035 self.__setMarginsDisplay()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2036 if self.lexer_.lexer() == "container" or self.lexer_.lexer() is None:
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
2037 self.SCN_STYLENEEDED.connect(self.__styleNeeded)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2038
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2039 # get the font for style 0 and set it as the default font
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
2040 key = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2041 "Scintilla/Guessed/style0/font"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2042 if pyname and pyname.startswith("Pygments|")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2043 else "Scintilla/{0}/style0/font".format(self.lexer_.language())
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
2044 )
8637
394377638256 Replaced the direct access to 'Preferences.Prefs.settings' with 'Preferences.getSettings()'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8607
diff changeset
2045 fdesc = Preferences.getSettings().value(key)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2046 if fdesc is not None:
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
2047 font = QFont([fdesc[0]], int(fdesc[1]))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2048 self.lexer_.setDefaultFont(font)
8637
394377638256 Replaced the direct access to 'Preferences.Prefs.settings' with 'Preferences.getSettings()'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8607
diff changeset
2049 self.lexer_.readSettings(Preferences.getSettings(), "Scintilla")
6858
9d962e654978 Corrected the SubstyledLexer.hasSubStyle() method to SubstyledLexer.hasSubstyle() to be consistent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
2050 if self.lexer_.hasSubstyles():
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6843
diff changeset
2051 self.lexer_.readSubstyles(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2052
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2053 # now set the lexer properties
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2054 self.lexer_.initProperties()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2055
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2056 # initialize the lexer APIs settings
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
2057 projectType = (
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
2058 self.project.getProjectType()
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
2059 if self.project.isOpen() and self.project.isProjectFile(filename)
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
2060 else ""
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
2061 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2062 api = self.vm.getAPIsManager().getAPIs(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2063 self.apiLanguage, projectType=projectType
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2064 )
4133
3d868439dddc Improved the handling of the various auto-completion actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4074
diff changeset
2065 if api is not None and not api.isEmpty():
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2066 self.lexer_.setAPIs(api.getQsciAPIs())
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2067 self.acAPI = True
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2068 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2069 self.acAPI = False
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
2070 self.autoCompletionAPIsAvailable.emit(self.acAPI)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2071
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
2072 self.__setAnnotationStyles()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2073
1566
0cb791cc631a Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1518
diff changeset
2074 self.lexer_.setDefaultColor(self.lexer_.color(0))
0cb791cc631a Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1518
diff changeset
2075 self.lexer_.setDefaultPaper(self.lexer_.paper(0))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2076
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2077 @pyqtSlot(int)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2078 def __styleNeeded(self, position):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2079 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2080 Private slot to handle the need for more styling.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2081
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2082 @param position end position, that needs styling
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2083 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2084 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2085 self.lexer_.styleText(self.getEndStyled(), position)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2086
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2087 def getLexer(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2088 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2089 Public method to retrieve a reference to the lexer object.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2090
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2091 @return the lexer object
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2092 @rtype Lexer
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2093 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2094 return self.lexer_
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2095
1295
b3db3070d104 Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1196
diff changeset
2096 def getLanguage(self, normalized=True, forPygments=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2097 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2098 Public method to retrieve the language of the editor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2099
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
2100 @param normalized flag indicating to normalize some Pygments
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2101 lexer names
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2102 @type bool
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
2103 @param forPygments flag indicating to normalize some lexer
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2104 names for Pygments
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2105 @type bool
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2106 @return language of the editor
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2107 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2108 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2109 if self.apiLanguage == "Guessed" or self.apiLanguage.startswith("Pygments|"):
812
240adf04a50e Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 811
diff changeset
2110 lang = self.lexer_.name()
10180
3a595df36c9a Simplified some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10142
diff changeset
2111 if normalized and lang in ("Python 2.x", "Python"):
812
240adf04a50e Fixed an issue where selecting a Pygments Python lexer disabled auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 811
diff changeset
2112 # adjust some Pygments lexer names
10180
3a595df36c9a Simplified some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10142
diff changeset
2113 lang = "Python3"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2114
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2115 else:
1295
b3db3070d104 Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1196
diff changeset
2116 lang = self.apiLanguage
10180
3a595df36c9a Simplified some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10142
diff changeset
2117 if forPygments and lang == "Python3":
1295
b3db3070d104 Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1196
diff changeset
2118 # adjust some names to Pygments lexer names
10180
3a595df36c9a Simplified some code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10142
diff changeset
2119 lang = "Python"
1295
b3db3070d104 Fixed an issue in the editor setting the correct language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1196
diff changeset
2120 return lang
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2121
5358
2584d0a08bf4 Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
2122 def getApiLanguage(self):
2584d0a08bf4 Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
2123 """
2584d0a08bf4 Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
2124 Public method to get the API language of the editor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2125
5358
2584d0a08bf4 Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
2126 @return API language
2584d0a08bf4 Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
2127 @rtype str
2584d0a08bf4 Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
2128 """
2584d0a08bf4 Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
2129 return self.apiLanguage
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2130
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2131 def __bindCompleter(self, filename):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2132 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2133 Private method to set the correct typing completer depending on language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2134
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2135 @param filename filename used to determine the associated typing
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2136 completer language
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2137 @type str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2138 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2139 if self.completer is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2140 self.completer.setEnabled(False)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2141 self.completer = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2142
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2143 filename = os.path.basename(filename)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2144 apiLanguage = Preferences.getEditorLexerAssoc(filename)
811
2ed99614dbf4 Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 802
diff changeset
2145 if apiLanguage == "":
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2146 pyVer = self.__getPyVersion()
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2147 if pyVer:
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2148 apiLanguage = "Python{0}".format(pyVer)
811
2ed99614dbf4 Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 802
diff changeset
2149 elif self.isRubyFile():
2ed99614dbf4 Fixed an issue with the editor not activating the correct typing completer in some situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 802
diff changeset
2150 apiLanguage = "Ruby"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2151
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2152 self.completer = TypingCompleters.getCompleter(apiLanguage, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2153
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2154 def getCompleter(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2155 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2156 Public method to retrieve a reference to the completer object.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2157
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2158 @return the completer object
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2159 @rtype CompleterBase
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2160 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2161 return self.completer
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2162
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2163 @pyqtSlot(bool)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2164 def __modificationChanged(self, m):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2165 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2166 Private slot to handle the modificationChanged signal.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2167
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2168 It emits the signal modificationStatusChanged with parameters
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2169 m and self.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2170
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2171 @param m modification status
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2172 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2173 """
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
2174 if not m:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
2175 self.recordModificationTime()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
2176 self.modificationStatusChanged.emit(m, self)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
2177 self.undoAvailable.emit(self.isUndoAvailable())
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
2178 self.redoAvailable.emit(self.isRedoAvailable())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2179
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2180 if not m:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2181 self.__autosaveTimer.stop()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2182
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2183 @pyqtSlot(int, int)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2184 def __cursorPositionChanged(self, line, index):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2185 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2186 Private slot to handle the cursorPositionChanged signal.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2187
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2188 It emits the signal cursorChanged with parameters fileName,
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2189 line and pos.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2190
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2191 @param line line number of the cursor
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2192 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2193 @param index position in line of the cursor
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2194 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2195 """
486
e4711a55e482 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 478
diff changeset
2196 self.cursorChanged.emit(self.fileName, line + 1, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2197
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2198 if Preferences.getEditor("MarkOccurrencesEnabled"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2199 self.__markOccurrencesTimer.start()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2200
2768
eab35f6e709f Added support to show the current class/method name in the combo boxes at the top of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2659
diff changeset
2201 if self.lastLine != line:
eab35f6e709f Added support to show the current class/method name in the combo boxes at the top of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2659
diff changeset
2202 self.cursorLineChanged.emit(line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2203
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2204 if self.spell is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2205 # do spell checking
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2206 doSpelling = True
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2207 if self.lastLine == line:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2208 start, end = self.getWordBoundaries(line, index, useWordChars=False)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2209 if start <= self.lastIndex and self.lastIndex <= end:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2210 doSpelling = False
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2211 if doSpelling:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2212 pos = self.positionFromLineIndex(self.lastLine, self.lastIndex)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2213 self.spell.checkWord(pos)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2214
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
2215 if self.lastLine != line:
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
2216 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2217
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2218 self.lastLine = line
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2219 self.lastIndex = index
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2220
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2221 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2222 def __modificationReadOnly(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2223 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2224 Private slot to handle the modificationAttempted signal.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2225 """
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
2226 EricMessageBox.warning(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
2227 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
2228 self.tr("Modification of Read Only file"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2229 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2230 """You are attempting to change a read only file. """
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2231 """Please save to a different file first."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2232 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2233 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2234
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2235 def setNoName(self, noName):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2236 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2237 Public method to set the display string for an unnamed editor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2238
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2239 @param noName display string for this unnamed editor
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2240 @type str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2241 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2242 self.noName = noName
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2243
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2244 def getNoName(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2245 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2246 Public method to get the display string for an unnamed editor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2247
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2248 @return display string for this unnamed editor
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2249 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2250 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2251 return self.noName
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2252
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2253 def getFileName(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2254 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2255 Public method to return the name of the file being displayed.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2256
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2257 @return filename of the displayed file
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2258 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2259 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2260 return self.fileName
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2261
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2262 def getFileType(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2263 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2264 Public method to return the type of the file being displayed.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2265
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2266 @return type of the displayed file
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2267 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2268 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2269 return self.filetype
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2270
795
917f1945355c Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
2271 def getFileTypeByFlag(self):
917f1945355c Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
2272 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2273 Public method to return the type of the file, if it was set by an
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2274 eflag: marker.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2275
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2276 @return type of the displayed file, if set by an eflag: marker or an
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2277 empty string
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2278 @rtype str
795
917f1945355c Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
2279 """
917f1945355c Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
2280 if self.filetypeByFlag:
917f1945355c Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
2281 return self.filetype
917f1945355c Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
2282 else:
917f1945355c Added a syntax checker function for Python 2 files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
2283 return ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2284
991
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2285 def determineFileType(self):
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2286 """
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2287 Public method to determine the file type using various tests.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2288
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2289 @return type of the displayed file or an empty string
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2290 @rtype str
991
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2291 """
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2292 ftype = self.filetype
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2293 if not ftype:
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2294 pyVer = self.__getPyVersion()
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2295 if pyVer:
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2296 ftype = "Python{0}".format(pyVer)
991
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2297 elif self.isRubyFile():
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2298 ftype = "Ruby"
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2299 else:
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2300 ftype = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2301
991
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2302 return ftype
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2303
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2304 def getEncoding(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2305 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2306 Public method to return the current encoding.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2307
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2308 @return current encoding
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2309 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2310 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2311 return self.encoding
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2312
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2313 def __getPyVersion(self):
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2314 """
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
2315 Private method to return the Python main version or 0 if it's
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2316 not a Python file at all.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2317
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2318 @return Python version or 0 if it's not a Python file
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2319 @rtype int
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2320 """
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9619
diff changeset
2321 return PythonUtilities.determinePythonVersion(self.fileName, self.text(0), self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2322
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2323 def isPyFile(self):
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2324 """
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2325 Public method to return a flag indicating a Python (2 or 3) file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2326
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2327 @return flag indicating a Python3 file
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2328 @rtype bool
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
2329 """
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
2330 return self.__getPyVersion() == 3
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2331
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2332 def isPy3File(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2333 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2334 Public method to return a flag indicating a Python3 file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2335
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2336 @return flag indicating a Python3 file
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2337 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2338 """
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
2339 return self.__getPyVersion() == 3
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2340
7164
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
2341 def isMicroPythonFile(self):
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
2342 """
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
2343 Public method to return a flag indicating a MicroPython file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2344
7164
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
2345 @return flag indicating a MicroPython file
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
2346 @rtype bool
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
2347 """
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
2348 if self.filetype == "MicroPython":
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
2349 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2350
7164
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
2351 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2352
8131
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
2353 def isCythonFile(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
2354 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
2355 Public method to return a flag indicating a Cython file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2356
8131
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
2357 @return flag indicating a Cython file
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
2358 @rtype bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
2359 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
2360 if self.filetype == "Cython":
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
2361 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2362
8131
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8106
diff changeset
2363 return False
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2364
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2365 def isRubyFile(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2366 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2367 Public method to return a flag indicating a Ruby file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2368
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2369 @return flag indicating a Ruby file
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2370 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2371 """
991
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2372 if self.filetype == "Ruby":
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2373 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2374
991
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2375 if self.filetype == "":
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2376 line0 = self.text(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2377 if line0.startswith("#!") and "ruby" in line0:
1758
e18f96b1714b A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1754
diff changeset
2378 self.filetype = "Ruby"
991
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2379 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2380
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2381 if bool(self.fileName) and os.path.splitext(self.fileName)[
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2382 1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2383 ] in self.dbs.getExtensions("Ruby"):
1758
e18f96b1714b A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1754
diff changeset
2384 self.filetype = "Ruby"
991
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2385 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2386
991
5ec5e707dfa5 Changed algorithm to determine the debugger backend type to be used by analysing a first line starting with '#!'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 989
diff changeset
2387 return False
3438
29717a5e8b97 Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3395
diff changeset
2388
29717a5e8b97 Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3395
diff changeset
2389 def isJavascriptFile(self):
29717a5e8b97 Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3395
diff changeset
2390 """
29717a5e8b97 Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3395
diff changeset
2391 Public method to return a flag indicating a Javascript file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2392
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2393 @return flag indicating a Javascript file
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2394 @rtype bool
3438
29717a5e8b97 Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3395
diff changeset
2395 """
29717a5e8b97 Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3395
diff changeset
2396 if self.filetype == "JavaScript":
29717a5e8b97 Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3395
diff changeset
2397 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2398
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8221
diff changeset
2399 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2400 self.filetype == ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2401 and self.fileName
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2402 and os.path.splitext(self.fileName)[1] == ".js"
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8221
diff changeset
2403 ):
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8221
diff changeset
2404 self.filetype = "JavaScript"
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8221
diff changeset
2405 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2406
3438
29717a5e8b97 Started improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3395
diff changeset
2407 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2408
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2409 def isProjectFile(self):
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2410 """
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2411 Public method to check, if the file of the editor belongs to the current
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2412 project.
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2413
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2414 @return flag indicating a project file
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2415 @rtype bool
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2416 """
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2417 return (
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2418 bool(self.fileName)
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2419 and self.project.isOpen()
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2420 and self.project.isProjectFile(self.fileName)
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2421 )
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
2422
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2423 def highlightVisible(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2424 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2425 Public method to make sure that the highlight is visible.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2426 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2427 if self.lastHighlight is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2428 lineno = self.markerLine(self.lastHighlight)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2429 self.ensureVisible(lineno + 1)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2430
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
2431 def highlight(self, line=None, error=False, syntaxError=False): # noqa: U100
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2432 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
2433 Public method to highlight [or de-highlight] a particular line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2434
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2435 @param line line number to highlight
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2436 @type int
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
2437 @param error flag indicating whether the error highlight should be
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2438 used
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2439 @type bool
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2440 @param syntaxError flag indicating a syntax error
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2441 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2442 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2443 if line is None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2444 self.lastHighlight = None
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2445 if self.lastErrorMarker is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2446 self.markerDeleteHandle(self.lastErrorMarker)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2447 self.lastErrorMarker = None
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2448 if self.lastCurrMarker is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2449 self.markerDeleteHandle(self.lastCurrMarker)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2450 self.lastCurrMarker = None
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2451 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2452 if error:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2453 if self.lastErrorMarker is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2454 self.markerDeleteHandle(self.lastErrorMarker)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2455 self.lastErrorMarker = self.markerAdd(line - 1, self.errorline)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2456 self.lastHighlight = self.lastErrorMarker
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2457 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2458 if self.lastCurrMarker is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2459 self.markerDeleteHandle(self.lastCurrMarker)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2460 self.lastCurrMarker = self.markerAdd(line - 1, self.currentline)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2461 self.lastHighlight = self.lastCurrMarker
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2462 self.setCursorPosition(line - 1, 0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2463
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2464 def getHighlightPosition(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2465 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2466 Public method to return the position of the highlight bar.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2467
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2468 @return line number of the highlight bar
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2469 @rtype int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2470 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2471 if self.lastHighlight is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2472 return self.markerLine(self.lastHighlight)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2473 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2474 return 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2475
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2476 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2477 ## Breakpoint handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2478 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2479
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2480 def __modified(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2481 self,
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
2482 pos, # noqa: U100
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2483 mtype,
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
2484 text, # noqa: U100
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
2485 length, # noqa: U100
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2486 linesAdded,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2487 line,
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
2488 foldNow, # noqa: U100
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
2489 foldPrev, # noqa: U100
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
2490 token, # noqa: U100
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
2491 annotationLinesAdded, # noqa: U100
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2492 ):
1928
adde55ed4ce5 Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1897
diff changeset
2493 """
adde55ed4ce5 Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1897
diff changeset
2494 Private method to handle changes of the number of lines.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2495
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2496 @param pos start position of change
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2497 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2498 @param mtype flags identifying the change
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2499 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2500 @param text text that is given to the Undo system
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2501 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2502 @param length length of the change
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2503 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2504 @param linesAdded number of added/deleted lines
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2505 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2506 @param line line number of a fold level or marker change
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2507 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2508 @param foldNow new fold level
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2509 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2510 @param foldPrev previous fold level
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2511 @type int
1928
adde55ed4ce5 Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1897
diff changeset
2512 @param token ???
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2513 @type int
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2514 @param annotationLinesAdded number of added/deleted annotation lines
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2515 @type int
1928
adde55ed4ce5 Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1897
diff changeset
2516 """
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2517 if mtype & (self.SC_MOD_INSERTTEXT | self.SC_MOD_DELETETEXT):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2518 # 1. set/reset the autosave timer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2519 if self.__autosaveInterval > 0:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2520 self.__autosaveTimer.start(self.__autosaveInterval * 1000)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2521
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2522 # 2. move breakpoints if a line was inserted or deleted
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2523 if linesAdded != 0 and self.breaks:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2524 bps = [] # list of breakpoints
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2525 for handle, (
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2526 ln,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2527 cond,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2528 temp,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2529 enabled,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2530 ignorecount,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2531 ) in self.breaks.items():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2532 line = self.markerLine(handle) + 1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2533 if ln != line:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2534 bps.append((ln, line))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2535 self.breaks[handle] = (line, cond, temp, enabled, ignorecount)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2536 self.inLinesChanged = True
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2537 for ln, line in sorted(bps, reverse=linesAdded > 0):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2538 index1 = self.breakpointModel.getBreakPointIndex(self.fileName, ln)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2539 index2 = self.breakpointModel.index(index1.row(), 1)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2540 self.breakpointModel.setData(index2, line)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
2541 self.inLinesChanged = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2542
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2543 def __restoreBreakpoints(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2544 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2545 Private method to restore the breakpoints.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2546 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2547 for handle in self.breaks:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2548 self.markerDeleteHandle(handle)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2549 self.__addBreakPoints(QModelIndex(), 0, self.breakpointModel.rowCount() - 1)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
2550 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2551
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2552 @pyqtSlot(QModelIndex, int, int)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2553 def __deleteBreakPoints(self, parentIndex, start, end):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2554 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2555 Private slot to delete breakpoints.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2556
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2557 @param parentIndex index of parent item
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2558 @type QModelIndex
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2559 @param start start row
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2560 @type int
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2561 @param end end row
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2562 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2563 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2564 for row in range(start, end + 1):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2565 index = self.breakpointModel.index(row, 0, parentIndex)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2566 fn, lineno = self.breakpointModel.getBreakPointByIndex(index)[0:2]
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2567 if fn == self.fileName:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2568 self.clearBreakpoint(lineno)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2569
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2570 @pyqtSlot(QModelIndex, QModelIndex)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2571 def __changeBreakPoints(self, startIndex, endIndex):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2572 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2573 Private slot to set changed breakpoints.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2574
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
2575 @param startIndex start index of the breakpoints being changed
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2576 @type QModelIndex
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
2577 @param endIndex end index of the breakpoints being changed
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2578 @type QModelIndex
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2579 """
1928
adde55ed4ce5 Fixed the breakpoint performance issue properly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1897
diff changeset
2580 if not self.inLinesChanged:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2581 self.__addBreakPoints(QModelIndex(), startIndex.row(), endIndex.row())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2582
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2583 @pyqtSlot(QModelIndex, QModelIndex)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2584 def __breakPointDataAboutToBeChanged(self, startIndex, endIndex):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2585 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
2586 Private slot to handle the dataAboutToBeChanged signal of the
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
2587 breakpoint model.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2588
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2589 @param startIndex start index of the rows to be changed
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2590 @type QModelIndex
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2591 @param endIndex end index of the rows to be changed
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2592 @type QModelIndex
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2593 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2594 self.__deleteBreakPoints(QModelIndex(), startIndex.row(), endIndex.row())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2595
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2596 @pyqtSlot(QModelIndex, int, int)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2597 def __addBreakPoints(self, parentIndex, start, end):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2598 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2599 Private slot to add breakpoints.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2600
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2601 @param parentIndex index of parent item
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2602 @type QModelIndex
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2603 @param start start row
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2604 @type int
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2605 @param end end row
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2606 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2607 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2608 for row in range(start, end + 1):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2609 index = self.breakpointModel.index(row, 0, parentIndex)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2610 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2611 fn,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2612 line,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2613 cond,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2614 temp,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2615 enabled,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2616 ignorecount,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2617 ) = self.breakpointModel.getBreakPointByIndex(index)[:6]
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2618 if fn == self.fileName:
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2619 self.newBreakpointWithProperties(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2620 line, (cond, temp, enabled, ignorecount)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2621 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2622
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2623 def clearBreakpoint(self, line):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2624 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2625 Public method to clear a breakpoint.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2626
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2627 Note: This doesn't clear the breakpoint in the debugger,
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2628 it just deletes it from the editor internal list of breakpoints.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2629
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2630 @param line line number of the breakpoint
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2631 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2632 """
1758
e18f96b1714b A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1754
diff changeset
2633 if self.inLinesChanged:
e18f96b1714b A few optimizations and a fix for a bug, that caused incorrect display of breakpoints in the editor margin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1754
diff changeset
2634 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2635
10517
aecd5a8c958c Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10501
diff changeset
2636 for handle in list(self.breaks):
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2637 if self.markerLine(handle) == line - 1:
10281
b3d6208d2f33 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10279
diff changeset
2638 del self.breaks[handle]
b3d6208d2f33 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10279
diff changeset
2639 self.markerDeleteHandle(handle)
b3d6208d2f33 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10279
diff changeset
2640 self.__markerMap.update()
b3d6208d2f33 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10279
diff changeset
2641 return
b3d6208d2f33 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10279
diff changeset
2642
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2643 def newBreakpointWithProperties(self, line, properties):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2644 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3583
diff changeset
2645 Public method to set a new breakpoint and its properties.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2646
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2647 @param line line number of the breakpoint
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2648 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2649 @param properties properties for the breakpoint
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2650 (condition, temporary flag, enabled flag, ignore count)
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2651 @type tuple of (str, bool, bool, int)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2652 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2653 if not properties[2]:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2654 marker = self.dbreakpoint
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2655 elif properties[0]:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2656 marker = properties[1] and self.tcbreakpoint or self.cbreakpoint
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2657 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2658 marker = properties[1] and self.tbreakpoint or self.breakpoint
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2659
1930
3ecd42f536fd Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1928
diff changeset
2660 if self.markersAtLine(line - 1) & self.breakpointMask == 0:
3ecd42f536fd Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1928
diff changeset
2661 handle = self.markerAdd(line - 1, marker)
3ecd42f536fd Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1928
diff changeset
2662 self.breaks[handle] = (line,) + properties
3ecd42f536fd Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1928
diff changeset
2663 self.breakpointToggled.emit(self)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
2664 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2665
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2666 def __toggleBreakpoint(self, line, temporary=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2667 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2668 Private method to toggle a breakpoint.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2669
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2670 @param line line number of the breakpoint
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2671 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2672 @param temporary flag indicating a temporary breakpoint
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2673 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2674 """
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2675 for handle in self.breaks:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2676 if self.markerLine(handle) == line - 1:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2677 # delete breakpoint or toggle it to the next state
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2678 index = self.breakpointModel.getBreakPointIndex(self.fileName, line)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2679 if Preferences.getDebugger(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2680 "ThreeStateBreakPoints"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2681 ) and not self.breakpointModel.isBreakPointTemporaryByIndex(index):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2682 self.breakpointModel.deleteBreakPointByIndex(index)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2683 self.__addBreakPoint(line, True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2684 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2685 self.breakpointModel.deleteBreakPointByIndex(index)
486
e4711a55e482 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 478
diff changeset
2686 self.breakpointToggled.emit(self)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2687 break
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2688 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2689 self.__addBreakPoint(line, temporary)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2690
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2691 def __addBreakPoint(self, line, temporary):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2692 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2693 Private method to add a new breakpoint.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2694
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2695 @param line line number of the breakpoint
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2696 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2697 @param temporary flag indicating a temporary breakpoint
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2698 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2699 """
5158
b85f06f38f21 Removed the breakpoint related stuff for Ruby files in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5051
diff changeset
2700 if self.fileName and self.isPyFile():
8539
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2701 linestarts = PythonDisViewer.linestarts(self.text())
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2702 if line not in linestarts:
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2703 if Preferences.getDebugger("IntelligentBreakpoints"):
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2704 # change line to the next one starting an instruction block
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2705 index = bisect.bisect(linestarts, line)
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2706 with contextlib.suppress(IndexError):
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2707 line = linestarts[index]
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2708 self.__toggleBreakpoint(line, temporary=temporary)
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2709 else:
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2710 EricMessageBox.warning(
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2711 self,
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2712 self.tr("Add Breakpoint"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2713 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2714 "No Python byte code will be created for the"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2715 " selected line. No break point will be set!"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2716 ),
8539
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2717 )
24daea9ad41b Editor: added code to move a breakpoint to a line actually creating some byte code (Python only).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8535
diff changeset
2718 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2719
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2720 self.breakpointModel.addBreakPoint(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2721 self.fileName, line, ("", temporary, True, 0)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2722 )
486
e4711a55e482 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 478
diff changeset
2723 self.breakpointToggled.emit(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2724
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2725 def __toggleBreakpointEnabled(self, line):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2726 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2727 Private method to toggle a breakpoints enabled status.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2728
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2729 @param line line number of the breakpoint
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2730 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2731 """
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2732 for handle in self.breaks:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2733 if self.markerLine(handle) == line - 1:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2734 index = self.breakpointModel.getBreakPointIndex(self.fileName, line)
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2735 self.breakpointModel.setBreakPointEnabledByIndex(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2736 index, not self.breaks[handle][3]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2737 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2738 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2739
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2740 def curLineHasBreakpoint(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2741 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2742 Public method to check for the presence of a breakpoint at the current
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2743 line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2744
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2745 @return flag indicating the presence of a breakpoint
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2746 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2747 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2748 line, _ = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2749 return self.markersAtLine(line) & self.breakpointMask != 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2750
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2751 def getBreakpointLines(self):
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2752 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2753 Public method to get the lines containing a breakpoint.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2754
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2755 @return list of lines containing a breakpoint
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2756 @rtype list of int
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2757 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2758 lines = []
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2759 line = -1
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2760 while True:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2761 line = self.markerFindNext(line + 1, self.breakpointMask)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2762 if line < 0:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2763 break
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2764 else:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2765 lines.append(line)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2766 return lines
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2767
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2768 def hasBreakpoints(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2769 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2770 Public method to check for the presence of breakpoints.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2771
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2772 @return flag indicating the presence of breakpoints
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2773 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2774 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2775 return len(self.breaks) > 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2776
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2777 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2778 def __menuToggleTemporaryBreakpoint(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2779 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2780 Private slot to handle the 'Toggle temporary breakpoint' context menu
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2781 action.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2782 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2783 if self.line < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2784 self.line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2785 self.line += 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2786 self.__toggleBreakpoint(self.line, 1)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2787 self.line = -1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2788
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2789 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2790 def menuToggleBreakpoint(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2791 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2792 Public slot to handle the 'Toggle breakpoint' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2793 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2794 if self.line < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2795 self.line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2796 self.line += 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2797 self.__toggleBreakpoint(self.line)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2798 self.line = -1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2799
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2800 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2801 def __menuToggleBreakpointEnabled(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2802 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2803 Private slot to handle the 'Enable/Disable breakpoint' context menu
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2804 action.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2805 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2806 if self.line < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2807 self.line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2808 self.line += 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2809 self.__toggleBreakpointEnabled(self.line)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2810 self.line = -1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2811
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2812 @pyqtSlot()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2813 def menuEditBreakpoint(self, line=None):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2814 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2815 Public slot to handle the 'Edit breakpoint' context menu action.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2816
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2817 @param line line number of the breakpoint to edit
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2818 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2819 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
2820 from eric7.Debugger.EditBreakpointDialog import EditBreakpointDialog
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
2821
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2822 if line is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2823 self.line = line - 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2824 if self.line < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2825 self.line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2826
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2827 for handle in self.breaks:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2828 if self.markerLine(handle) == self.line:
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2829 ln, cond, temp, enabled, ignorecount = self.breaks[handle]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2830 index = self.breakpointModel.getBreakPointIndex(self.fileName, ln)
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2831 if not index.isValid():
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2832 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2833
8524
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2834 # get recently used breakpoint conditions
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2835 rs = Preferences.Prefs.rsettings.value(recentNameBreakpointConditions)
8524
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2836 condHistory = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2837 Preferences.toList(rs)[: Preferences.getDebugger("RecentNumber")]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2838 if rs is not None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2839 else []
8524
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2840 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2841
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2842 dlg = EditBreakpointDialog(
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2843 (self.fileName, ln),
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2844 (cond, temp, enabled, ignorecount),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2845 condHistory,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2846 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2847 modal=True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2848 )
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
2849 if dlg.exec() == QDialog.DialogCode.Accepted:
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2850 cond, temp, enabled, ignorecount = dlg.getData()
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
2851 self.breakpointModel.setBreakPointByIndex(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2852 index, self.fileName, ln, (cond, temp, enabled, ignorecount)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2853 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2854
8524
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2855 if cond:
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2856 # save the recently used breakpoint condition
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2857 if cond in condHistory:
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2858 condHistory.remove(cond)
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2859 condHistory.insert(0, cond)
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2860 Preferences.Prefs.rsettings.setValue(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2861 recentNameBreakpointConditions, condHistory
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2862 )
8524
595547ab8d6f Debugger: added code to remember the list of recently used breakpoint conditions in the editor and the breakpoint viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8522
diff changeset
2863 Preferences.Prefs.rsettings.sync()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2864
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
2865 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2866
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2867 self.line = -1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2868
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2869 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2870 def menuNextBreakpoint(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2871 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2872 Public slot to handle the 'Next breakpoint' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2873 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2874 line, index = self.getCursorPosition()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2875 if line == self.lines() - 1:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2876 line = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2877 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2878 line += 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2879 bpline = self.markerFindNext(line, self.breakpointMask)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2880 if bpline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2881 # wrap around
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2882 bpline = self.markerFindNext(0, self.breakpointMask)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2883 if bpline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2884 self.setCursorPosition(bpline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2885 self.ensureLineVisible(bpline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2886
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2887 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2888 def menuPreviousBreakpoint(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2889 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2890 Public slot to handle the 'Previous breakpoint' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2891 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2892 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2893 if line == 0:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
2894 line = self.lines() - 1
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2895 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2896 line -= 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2897 bpline = self.markerFindPrevious(line, self.breakpointMask)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2898 if bpline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2899 # wrap around
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2900 bpline = self.markerFindPrevious(self.lines() - 1, self.breakpointMask)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2901 if bpline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2902 self.setCursorPosition(bpline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2903 self.ensureLineVisible(bpline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2904
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2905 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2906 def __menuClearBreakpoints(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2907 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2908 Private slot to handle the 'Clear all breakpoints' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2909 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2910 self.__clearBreakpoints(self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2911
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2912 def __clearBreakpoints(self, fileName):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2913 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2914 Private method to clear all breakpoints.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2915
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2916 @param fileName name of the file
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2917 @type str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2918 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2919 idxList = []
9786
f94b530722af Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9758
diff changeset
2920 for ln, _, _, _, _ in self.breaks.values():
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2921 index = self.breakpointModel.getBreakPointIndex(fileName, ln)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2922 if index.isValid():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2923 idxList.append(index)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2924 if idxList:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2925 self.breakpointModel.deleteBreakPoints(idxList)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2926
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2927 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2928 ## Bookmark handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
2929 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2930
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2931 def toggleBookmark(self, line):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2932 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2933 Public method to toggle a bookmark.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2934
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2935 @param line line number of the bookmark
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2936 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2937 """
10517
aecd5a8c958c Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10501
diff changeset
2938 for handle in self.bookmarks[:]:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2939 if self.markerLine(handle) == line - 1:
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
2940 self.bookmarks.remove(handle)
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
2941 self.markerDeleteHandle(handle)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2942 break
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2943 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2944 # set a new bookmark
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2945 handle = self.markerAdd(line - 1, self.bookmark)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2946 self.bookmarks.append(handle)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
2947 self.bookmarkToggled.emit(self)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
2948 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2949
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2950 def getBookmarks(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2951 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2952 Public method to retrieve the bookmarks.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2953
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2954 @return sorted list of all lines containing a bookmark
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2955 @rtype list of int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2956 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2957 bmlist = []
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2958 for handle in self.bookmarks:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2959 bmlist.append(self.markerLine(handle) + 1)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2960
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2961 bmlist.sort()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2962 return bmlist
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2963
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2964 def getBookmarkLines(self):
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2965 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2966 Public method to get the lines containing a bookmark.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2967
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2968 @return list of lines containing a bookmark
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2969 @rtype list of int
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2970 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2971 lines = []
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2972 line = -1
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2973 while True:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2974 line = self.markerFindNext(line + 1, 1 << self.bookmark)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2975 if line < 0:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2976 break
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2977 else:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2978 lines.append(line)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
2979 return lines
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2980
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2981 def hasBookmarks(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2982 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2983 Public method to check for the presence of bookmarks.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2984
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2985 @return flag indicating the presence of bookmarks
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
2986 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2987 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2988 return len(self.bookmarks) > 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
2989
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
2990 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2991 def menuToggleBookmark(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2992 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2993 Public slot to handle the 'Toggle bookmark' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2994 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2995 if self.line < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2996 self.line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2997 self.line += 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2998 self.toggleBookmark(self.line)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
2999 self.line = -1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3000
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3001 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3002 def nextBookmark(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3003 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3004 Public slot to handle the 'Next bookmark' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3005 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3006 line, index = self.getCursorPosition()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
3007 if line == self.lines() - 1:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3008 line = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3009 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3010 line += 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3011 bmline = self.markerFindNext(line, 1 << self.bookmark)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3012 if bmline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3013 # wrap around
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3014 bmline = self.markerFindNext(0, 1 << self.bookmark)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3015 if bmline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3016 self.setCursorPosition(bmline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3017 self.ensureLineVisible(bmline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3018
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3019 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3020 def previousBookmark(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3021 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3022 Public slot to handle the 'Previous bookmark' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3023 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3024 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3025 if line == 0:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
3026 line = self.lines() - 1
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3027 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3028 line -= 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3029 bmline = self.markerFindPrevious(line, 1 << self.bookmark)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3030 if bmline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3031 # wrap around
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3032 bmline = self.markerFindPrevious(self.lines() - 1, 1 << self.bookmark)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3033 if bmline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3034 self.setCursorPosition(bmline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3035 self.ensureLineVisible(bmline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3036
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3037 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3038 def clearBookmarks(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3039 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3040 Public slot to handle the 'Clear all bookmarks' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3041 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3042 for handle in self.bookmarks:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3043 self.markerDeleteHandle(handle)
8106
81bf8fe10735 Editor: fixed an issue handling breakpoints (and other stuff) in a cloned editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8004
diff changeset
3044 self.bookmarks.clear()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
3045 self.bookmarkToggled.emit(self)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
3046 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3047
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3048 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3049 ## Printing methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3050 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3051
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3052 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3053 def printFile(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3054 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3055 Public slot to print the text.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3056 """
2409
df3820f08247 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2391
diff changeset
3057 from .Printer import Printer
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3058
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
3059 printer = Printer(mode=QPrinter.PrinterMode.HighResolution)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
3060 sb = ericApp().getObject("UserInterface").statusBar()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3061 printDialog = QPrintDialog(printer, self)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3062 if self.hasSelectedText():
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
3063 printDialog.setOption(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3064 QAbstractPrintDialog.PrintDialogOption.PrintSelection, True
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3065 )
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
3066 if printDialog.exec() == QDialog.DialogCode.Accepted:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3067 sb.showMessage(self.tr("Printing..."))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3068 QApplication.processEvents()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3069 fn = self.getFileName()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3070 if fn is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3071 printer.setDocName(os.path.basename(fn))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3072 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3073 printer.setDocName(self.noName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3074 if printDialog.printRange() == QAbstractPrintDialog.PrintRange.Selection:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3075 # get the selection
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3076 fromLine, fromIndex, toLine, toIndex = self.getSelection()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3077 if toIndex == 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3078 toLine -= 1
8298
83ddb87b3bc1 Replaced some obsoleted methods of QPrinter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8277
diff changeset
3079 # QScintilla seems to print one line more than told
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
3080 res = printer.printRange(self, fromLine, toLine - 1)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3081 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3082 res = printer.printRange(self)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3083 if res:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3084 sb.showMessage(self.tr("Printing completed"), 2000)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3085 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3086 sb.showMessage(self.tr("Error while printing"), 2000)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3087 QApplication.processEvents()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3088 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3089 sb.showMessage(self.tr("Printing aborted"), 2000)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3090 QApplication.processEvents()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3091
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3092 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3093 def printPreviewFile(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3094 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3095 Public slot to show a print preview of the text.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3096 """
2409
df3820f08247 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2391
diff changeset
3097 from .Printer import Printer
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3098
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
3099 printer = Printer(mode=QPrinter.PrinterMode.HighResolution)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3100 fn = self.getFileName()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3101 if fn is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3102 printer.setDocName(os.path.basename(fn))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3103 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3104 printer.setDocName(self.noName)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3105 preview = QPrintPreviewDialog(printer, self)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
3106 preview.paintRequested.connect(self.__printPreview)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7749
diff changeset
3107 preview.exec()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3108
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3109 def __printPreview(self, printer):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3110 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3111 Private slot to generate a print preview.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3112
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3113 @param printer reference to the printer object
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3114 @type QScintilla.Printer.Printer
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3115 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3116 printer.printRange(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3117
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3118 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3119 ## Task handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3120 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3121
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3122 def getTaskLines(self):
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3123 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3124 Public method to get the lines containing a task.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3125
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3126 @return list of lines containing a task
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3127 @rtype list of int
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3128 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3129 lines = []
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3130 line = -1
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3131 while True:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3132 line = self.markerFindNext(line + 1, 1 << self.taskmarker)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3133 if line < 0:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3134 break
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3135 else:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3136 lines.append(line)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3137 return lines
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3138
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3139 def hasTaskMarkers(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3140 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3141 Public method to determine, if this editor contains any task markers.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3142
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3143 @return flag indicating the presence of task markers
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3144 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3145 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3146 return self.__hasTaskMarkers
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3147
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3148 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3149 def nextTask(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3150 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3151 Public slot to handle the 'Next task' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3152 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3153 line, index = self.getCursorPosition()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
3154 if line == self.lines() - 1:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3155 line = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3156 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3157 line += 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3158 taskline = self.markerFindNext(line, 1 << self.taskmarker)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3159 if taskline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3160 # wrap around
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3161 taskline = self.markerFindNext(0, 1 << self.taskmarker)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3162 if taskline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3163 self.setCursorPosition(taskline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3164 self.ensureLineVisible(taskline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3165
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3166 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3167 def previousTask(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3168 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3169 Public slot to handle the 'Previous task' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3170 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3171 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3172 if line == 0:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
3173 line = self.lines() - 1
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3174 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3175 line -= 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3176 taskline = self.markerFindPrevious(line, 1 << self.taskmarker)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3177 if taskline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3178 # wrap around
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3179 taskline = self.markerFindPrevious(self.lines() - 1, 1 << self.taskmarker)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3180 if taskline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3181 self.setCursorPosition(taskline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3182 self.ensureLineVisible(taskline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3183
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3184 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3185 def extractTasks(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3186 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3187 Public slot to extract all tasks.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3188 """
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
3189 from eric7.Tasks.Task import Task
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3190
1819
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3191 markers = {
7663
b4d5234f92e7 Tasks: added separate task categories for 'Test' and 'Documentation' tasks
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7637
diff changeset
3192 taskType: Preferences.getTasks(markersName).split()
b4d5234f92e7 Tasks: added separate task categories for 'Test' and 'Documentation' tasks
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7637
diff changeset
3193 for taskType, markersName in Task.TaskType2MarkersName.items()
1819
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3194 }
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3195 txtList = self.text().split(self.getLineSeparator())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3196
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3197 # clear all task markers and tasks
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3198 self.markerDeleteAll(self.taskmarker)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3199 self.taskViewer.clearFileTasks(self.fileName)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3200 self.__hasTaskMarkers = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3201
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3202 # now search tasks and record them
8220
006ee31b4835 Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
3203 for lineIndex, line in enumerate(txtList):
1819
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3204 shouldBreak = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3205
6493
b64d6d0b4175 TaskViewer, Editor: added code to mark a line as not containing a task with '__NO-TASK__'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6481
diff changeset
3206 if line.endswith("__NO-TASK__"):
b64d6d0b4175 TaskViewer, Editor: added code to mark a line as not containing a task with '__NO-TASK__'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6481
diff changeset
3207 # ignore potential task marker
b64d6d0b4175 TaskViewer, Editor: added code to mark a line as not containing a task with '__NO-TASK__'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6481
diff changeset
3208 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3209
1819
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3210 for taskType, taskMarkers in markers.items():
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3211 for taskMarker in taskMarkers:
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3212 index = line.find(taskMarker)
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3213 if index > -1:
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3214 task = line[index:]
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3215 self.markerAdd(lineIndex, self.taskmarker)
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3216 self.taskViewer.addFileTask(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3217 task, self.fileName, lineIndex + 1, taskType
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3218 )
1819
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3219 self.__hasTaskMarkers = True
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3220 shouldBreak = True
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3221 break
cfcfd617216a Changed the tasks handling to allow for more fine grained task designations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1807
diff changeset
3222 if shouldBreak:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3223 break
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
3224 self.taskMarkersUpdated.emit(self)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
3225 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3226
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3227 ###########################################################################
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3228 ## Change tracing methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3229 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3230
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
3231 def __createChangeMarkerPixmap(self, key, size=16):
2165
f89fc1162ffe Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2164
diff changeset
3232 """
f89fc1162ffe Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2164
diff changeset
3233 Private method to create a pixmap for the change markers.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3234
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3235 @param key key of the color to use
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3236 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3237 @param size size of the pixmap
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3238 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3239 @return create pixmap
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3240 @rtype QPixmap
2165
f89fc1162ffe Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2164
diff changeset
3241 """
f89fc1162ffe Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2164
diff changeset
3242 pixmap = QPixmap(size, size)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
3243 pixmap.fill(Qt.GlobalColor.transparent)
2165
f89fc1162ffe Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2164
diff changeset
3244 painter = QPainter(pixmap)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3245 painter.fillRect(size - 4, 0, 4, size, Preferences.getEditorColour(key))
2165
f89fc1162ffe Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2164
diff changeset
3246 painter.end()
f89fc1162ffe Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2164
diff changeset
3247 return pixmap
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3248
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3249 @pyqtSlot()
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3250 def __initOnlineChangeTrace(self):
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3251 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3252 Private slot to initialize the online change trace.
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3253 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3254 self.__hasChangeMarkers = False
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3255 self.__oldText = self.text()
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3256 self.__lastSavedText = self.text()
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3257 self.__onlineChangeTraceTimer = QTimer(self)
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3258 self.__onlineChangeTraceTimer.setSingleShot(True)
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3259 self.__onlineChangeTraceTimer.setInterval(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3260 Preferences.getEditor("OnlineChangeTraceInterval")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3261 )
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3262 self.__onlineChangeTraceTimer.timeout.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3263 self.__onlineChangeTraceTimerTimeout
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3264 )
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3265 self.textChanged.connect(self.__resetOnlineChangeTraceTimer)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3266
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3267 @pyqtSlot()
2189
5149cec53130 Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2165
diff changeset
3268 def __reinitOnlineChangeTrace(self):
5149cec53130 Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2165
diff changeset
3269 """
5149cec53130 Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2165
diff changeset
3270 Private slot to re-initialize the online change trace.
5149cec53130 Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2165
diff changeset
3271 """
5149cec53130 Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2165
diff changeset
3272 self.__oldText = self.text()
5149cec53130 Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2165
diff changeset
3273 self.__lastSavedText = self.text()
5149cec53130 Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2165
diff changeset
3274 self.__deleteAllChangeMarkers()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3275
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3276 def __resetOnlineChangeTraceTimer(self):
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3277 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3278 Private method to reset the online syntax check timer.
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3279 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3280 if Preferences.getEditor("OnlineChangeTrace"):
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3281 self.__onlineChangeTraceTimer.stop()
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3282 self.__onlineChangeTraceTimer.start()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3283
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3284 @pyqtSlot()
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3285 def __onlineChangeTraceTimerTimeout(self):
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3286 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3287 Private slot to mark added and changed lines.
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3288 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3289 self.__deleteAllChangeMarkers()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3290
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3291 # step 1: mark saved changes
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3292 oldL = self.__oldText.splitlines()
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3293 newL = self.__lastSavedText.splitlines()
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3294 matcher = difflib.SequenceMatcher(None, oldL, newL)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3295
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
3296 for token, _, _, j1, j2 in matcher.get_opcodes():
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3297 if token in ["insert", "replace"]:
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3298 for lineNo in range(j1, j2):
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3299 self.markerAdd(lineNo, self.__changeMarkerSaved)
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3300 self.__hasChangeMarkers = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3301
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3302 # step 2: mark unsaved changes
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3303 oldL = self.__lastSavedText.splitlines()
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3304 newL = self.text().splitlines()
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3305 matcher = difflib.SequenceMatcher(None, oldL, newL)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3306
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
3307 for token, _, _, j1, j2 in matcher.get_opcodes():
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3308 if token in ["insert", "replace"]:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3309 for lineNo in range(j1, j2):
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3310 self.markerAdd(lineNo, self.__changeMarkerUnsaved)
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3311 self.__hasChangeMarkers = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3312
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3313 if self.__hasChangeMarkers:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3314 self.changeMarkersUpdated.emit(self)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
3315 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3316
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3317 @pyqtSlot()
9790
6b14962d9d31 Prepared the editor to save non-local files and reset the change markers from external.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
3318 def resetOnlineChangeTraceInfo(self):
6b14962d9d31 Prepared the editor to save non-local files and reset the change markers from external.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
3319 """
6b14962d9d31 Prepared the editor to save non-local files and reset the change markers from external.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
3320 Public slot to reset the online change trace info.
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3321 """
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3322 self.__lastSavedText = self.text()
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3323 self.__deleteAllChangeMarkers()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3324
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3325 # mark saved changes
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3326 oldL = self.__oldText.splitlines()
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3327 newL = self.__lastSavedText.splitlines()
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3328 matcher = difflib.SequenceMatcher(None, oldL, newL)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3329
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6119
diff changeset
3330 for token, _, _, j1, j2 in matcher.get_opcodes():
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3331 if token in ["insert", "replace"]:
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3332 for lineNo in range(j1, j2):
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3333 self.markerAdd(lineNo, self.__changeMarkerSaved)
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3334 self.__hasChangeMarkers = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3335
2165
f89fc1162ffe Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2164
diff changeset
3336 if self.__hasChangeMarkers:
f89fc1162ffe Finalized the change tracing stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2164
diff changeset
3337 self.changeMarkersUpdated.emit(self)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
3338 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3339
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3340 @pyqtSlot()
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3341 def __deleteAllChangeMarkers(self):
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3342 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3343 Private slot to delete all change markers.
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3344 """
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3345 self.markerDeleteAll(self.__changeMarkerUnsaved)
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3346 self.markerDeleteAll(self.__changeMarkerSaved)
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3347 self.__hasChangeMarkers = False
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3348 self.changeMarkersUpdated.emit(self)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
3349 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3350
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
3351 def clearChangeMarkers(self):
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
3352 """
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
3353 Public method to clear all change markers.
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
3354 """
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
3355 self.__reinitOnlineChangeTrace()
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
3356
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3357 def getChangeLines(self):
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3358 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3359 Public method to get the lines containing a change.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3360
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3361 @return list of lines containing a change
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3362 @rtype list of int
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3363 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3364 lines = []
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3365 line = -1
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3366 while True:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3367 line = self.markerFindNext(line + 1, self.changeMarkersMask)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3368 if line < 0:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3369 break
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3370 else:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3371 lines.append(line)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
3372 return lines
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3373
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3374 def hasChangeMarkers(self):
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3375 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3376 Public method to determine, if this editor contains any change markers.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3377
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3378 @return flag indicating the presence of change markers
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3379 @rtype bool
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3380 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3381 return self.__hasChangeMarkers
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3382
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3383 @pyqtSlot()
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3384 def nextChange(self):
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3385 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3386 Public slot to handle the 'Next change' context menu action.
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3387 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3388 line, index = self.getCursorPosition()
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3389 if line == self.lines() - 1:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3390 line = 0
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3391 else:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3392 line += 1
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3393 changeline = self.markerFindNext(line, self.changeMarkersMask)
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3394 if changeline < 0:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3395 # wrap around
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3396 changeline = self.markerFindNext(0, self.changeMarkersMask)
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3397 if changeline >= 0:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3398 self.setCursorPosition(changeline, 0)
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3399 self.ensureLineVisible(changeline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3400
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3401 @pyqtSlot()
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3402 def previousChange(self):
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3403 """
6035
6cac9ce8ab15 Added an entry to delete all change markers to the marker margin context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6033
diff changeset
3404 Public slot to handle the 'Previous change' context menu action.
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3405 """
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3406 line, index = self.getCursorPosition()
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3407 if line == 0:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3408 line = self.lines() - 1
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3409 else:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3410 line -= 1
2164
d67b14a3f884 Improved the change tracing function by marking saved and unsaved changes differently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2163
diff changeset
3411 changeline = self.markerFindPrevious(line, self.changeMarkersMask)
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3412 if changeline < 0:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3413 # wrap around
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3414 changeline = self.markerFindPrevious(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3415 self.lines() - 1, self.changeMarkersMask
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3416 )
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3417 if changeline >= 0:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3418 self.setCursorPosition(changeline, 0)
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
3419 self.ensureLineVisible(changeline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3420
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3421 ###########################################################################
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3422 ## Flags handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3423 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3424
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3425 def __processFlags(self):
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3426 """
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3427 Private method to extract flags and process them.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3428
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3429 @return list of change flags
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3430 @rtype list of str
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3431 """
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3432 txt = self.text()
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3433 flags = Utilities.extractFlags(txt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3434
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
3435 changedFlags = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3436
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3437 # Flag 1: FileType
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3438 if "FileType" in flags:
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
3439 oldFiletype = self.filetype
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3440 if isinstance(flags["FileType"], str):
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3441 self.filetype = flags["FileType"]
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3442 self.filetypeByFlag = True
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
3443 if oldFiletype != self.filetype:
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
3444 changedFlags.append("FileType")
788
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3445 else:
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3446 if self.filetype != "" and self.filetypeByFlag:
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3447 self.filetype = ""
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3448 self.filetypeByFlag = False
5b1b59777460 Added a feature where flags can be given at the end of a source file. The only flag supported is 'FileType' to overwrite the filetype detection mechanism.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 777
diff changeset
3449 self.__bindName(txt.splitlines()[0])
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
3450 changedFlags.append("FileType")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3451
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
3452 return changedFlags
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3453
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3454 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3455 ## File handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3456 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3457
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3458 def checkDirty(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3459 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3460 Public method to check dirty status and open a message window.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3461
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3462 @return flag indicating successful reset of the dirty flag
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3463 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3464 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3465 if self.isModified():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3466 fn = self.fileName
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3467 if fn is None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3468 fn = self.noName
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
3469 res = EricMessageBox.okToClearData(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
3470 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
3471 self.tr("File Modified"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3472 self.tr("<p>The file <b>{0}</b> has unsaved changes.</p>").format(fn),
10585
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
3473 self.saveFile,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3474 )
549
fe99d46d56c8 Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 548
diff changeset
3475 if res:
fe99d46d56c8 Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 548
diff changeset
3476 self.vm.setEditorName(self, self.fileName)
fe99d46d56c8 Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 548
diff changeset
3477 return res
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3478
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3479 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3480
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3481 def revertToUnmodified(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3482 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3483 Public method to revert back to the last saved state.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3484 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3485 undo_ = True
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3486 while self.isModified():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3487 if undo_:
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
3488 # try undo first
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3489 if self.isUndoAvailable():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3490 self.undo()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3491 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3492 undo_ = False
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3493 else:
3621
15f23ed3f216 Fixed a few source code style issues found by the updated pe8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
3494 # try redo next
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3495 if self.isRedoAvailable():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3496 self.redo()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3497 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3498 break
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3499 # Couldn't find the unmodified state
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3500
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3501 def readFile(self, fn, createIt=False, encoding="", noempty=False, isRemote=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3502 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3503 Public method to read the text from a file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3504
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3505 @param fn filename to read from
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3506 @type str
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
3507 @param createIt flag indicating the creation of a new file, if the
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3508 given one doesn't exist (defaults to False)
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3509 @type bool (optional)
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3510 @param encoding encoding to be used to read the file (defaults to "")
3394
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
3511 (Note: this parameter overrides encoding detection)
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3512 @type str (optional)
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3513 @param noempty flag indicating to not set an empty text (defaults to False)
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3514 @type bool (optional)
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3515 @param isRemote flag indicating a remote file (defaults to False)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3516 @type bool (optional)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3517 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3518 if FileSystemUtilities.isPlainFileName(fn):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3519 self.__loadEditorConfig(fileName=fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3520
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3521 try:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
3522 with EricOverrideCursor():
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3523 if FileSystemUtilities.isRemoteFileName(fn) or isRemote:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3524 title = self.tr("Open Remote File")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3525 bText = self.__remotefsInterface.readFile(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3526 FileSystemUtilities.plainFileName(fn), create=True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3527 )
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3528 if encoding:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3529 txt, self.encoding = Utilities.decodeWithEncoding(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3530 bText, encoding
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3531 )
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3532 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3533 txt, self.encoding = Utilities.decode(bText)
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3534 else:
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3535 title = self.tr("Open File")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3536 if createIt and not os.path.exists(fn):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3537 with open(fn, "w"):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3538 pass
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3539 if encoding == "":
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3540 encoding = self.__getEditorConfig(
10561
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
3541 "DefaultEncoding", nodefault=True
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
3542 )
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3543 if encoding:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3544 txt, self.encoding = Utilities.readEncodedFileWithEncoding(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3545 fn, encoding
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3546 )
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3547 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3548 txt, self.encoding = Utilities.readEncodedFile(fn)
10050
3750abc45d5e Corrected some code style issues detected by the extended checkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9977
diff changeset
3549 except (OSError, UnicodeDecodeError) as why:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
3550 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
3551 self.vm,
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3552 title,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3553 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3554 "<p>The file <b>{0}</b> could not be opened.</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3555 "<p>Reason: {1}</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3556 ).format(fn, str(why)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3557 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3558 raise
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3559
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3560 if noempty and not bool(txt):
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3561 return
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
3562
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
3563 with EricOverrideCursor():
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3564 self.setText(txt)
10449
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
3565 self.setModified(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3566
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3567 # get eric specific flags
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3568 self.__processFlags()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3569
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3570 # perform automatic EOL conversion
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3571 if self.__getEditorConfig(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3572 "EOLMode", nodefault=True
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3573 ) or Preferences.getEditor("AutomaticEOLConversion"):
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3574 self.convertEols(self.eolMode())
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3575 else:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3576 fileEol = self.detectEolString(txt)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3577 self.setEolModeByEolString(fileEol)
10449
cc468bd2abdf Modified the EOL handling slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
3578 self.__eolChanged()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3579
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7759
diff changeset
3580 self.extractTasks()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3581
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3582 self.recordModificationTime(filename=fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3583
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3584 @pyqtSlot()
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
3585 def __convertTabs(self):
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
3586 """
10465
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3587 Private slot to automatically convert tabulators to spaces upon loading.
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
3588 """
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
3589 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3590 (not self.__getEditorConfig("TabForIndentation"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3591 and Preferences.getEditor("ConvertTabsOnLoad")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3592 and not (self.lexer_ and self.lexer_.alwaysKeepTabs())
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
3593 ):
10465
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3594 self.expandTabs()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3595
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3596 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3597 def expandTabs(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3598 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3599 Public slot to expand tabulators to spaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3600 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3601 txt = self.text()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3602 txtExpanded = txt.expandtabs(self.__getEditorConfig("TabWidth"))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3603 if txtExpanded != txt:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3604 self.beginUndoAction()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3605 self.setText(txtExpanded)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3606 self.endUndoAction()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3607
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10449
diff changeset
3608 self.setModified(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3609
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3610 def __removeTrailingWhitespace(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3611 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3612 Private method to remove trailing whitespace.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3613 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3614 searchRE = r"[ \t]+$" # whitespace at the end of a line
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3615
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3616 ok = self.findFirstTarget(searchRE, True, False, False, 0, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3617 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3618 while ok:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3619 self.replaceTarget("")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3620 ok = self.findNextTarget()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3621 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3622
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3623 def writeFile(self, fn, backup=True):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3624 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3625 Public method to write the text to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3626
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3627 @param fn filename to write to
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3628 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3629 @param backup flag indicating to save a backup
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3630 @type bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3631 @return flag indicating success
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3632 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3633 """
10561
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
3634 config = (
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
3635 None
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
3636 if self.fileName and fn == self.fileName
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
3637 else self.__loadEditorConfigObject(fn)
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
3638 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3639
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3640 eol = self.__getEditorConfig("EOLMode", nodefault=True, config=config)
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3641 if eol is not None:
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3642 self.convertEols(eol)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3643
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3644 if self.__getEditorConfig("StripTrailingWhitespace", config=config):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3645 self.__removeTrailingWhitespace()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3646
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3647 txt = self.text()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3648
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3649 if self.__getEditorConfig("InsertFinalNewline", config=config):
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3650 eol = self.getLineSeparator()
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3651 if eol:
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3652 if len(txt) >= len(eol):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3653 if txt[-len(eol) :] != eol:
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3654 txt += eol
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3655 else:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3656 txt += eol
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3657
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3658 # create a backup file, if the option is set
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3659 createBackup = backup and Preferences.getEditor("CreateBackupFile")
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3660 if createBackup and FileSystemUtilities.isPlainFileName(fn):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3661 if os.path.islink(fn):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3662 fn = os.path.realpath(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3663 bfn = "{0}~".format(fn)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3664 try:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3665 permissions = os.stat(fn).st_mode
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3666 perms_valid = True
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7790
diff changeset
3667 except OSError:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3668 # if there was an error, ignore it
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3669 perms_valid = False
8240
93b8a353c4bf Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8239
diff changeset
3670 with contextlib.suppress(OSError):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3671 os.remove(bfn)
8240
93b8a353c4bf Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8239
diff changeset
3672 with contextlib.suppress(OSError):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3673 os.rename(fn, bfn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3674
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3675 # now write text to the file fn
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3676 try:
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
3677 editorConfigEncoding = self.__getEditorConfig(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3678 "DefaultEncoding", nodefault=True, config=config
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3679 )
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3680 if FileSystemUtilities.isPlainFileName(fn):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3681 title = self.tr("Save File")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3682 self.encoding = Utilities.writeEncodedFile(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3683 fn, txt, self.encoding, forcedEncoding=editorConfigEncoding
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3684 )
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3685 if createBackup and perms_valid:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3686 os.chmod(fn, permissions)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3687 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3688 title = self.tr("Save Remote File")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3689 bText, self.encoding = Utilities.encode(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3690 txt, self.encoding, forcedEncoding=editorConfigEncoding
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3691 )
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3692 self.__remotefsInterface.writeFile(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3693 FileSystemUtilities.plainFileName(fn), bText, createBackup
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3694 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3695 return True
10050
3750abc45d5e Corrected some code style issues detected by the extended checkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9977
diff changeset
3696 except (OSError, UnicodeError, Utilities.CodingError) as why:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
3697 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
3698 self,
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3699 title,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3700 self.tr(
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9563
diff changeset
3701 "<p>The file <b>{0}</b> could not be saved.<br/>Reason: {1}</p>"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3702 ).format(fn, str(why)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3703 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3704 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3705
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3706 def __getSaveFileName(self, path=None, remote=False):
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3707 """
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3708 Private method to get the name of the file to be saved.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3709
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3710 @param path directory to save the file in (defaults to None)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3711 @type str (optional)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3712 @param remote flag indicating to save as a remote file (defaults to False)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3713 @type bool (optional)
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3714 @return file name
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3715 @rtype str
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3716 """
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3717 # save to project, if a project is loaded
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3718 if self.project.isOpen():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3719 if self.fileName and self.project.startswithProjectPath(self.fileName):
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3720 path = os.path.dirname(self.fileName)
8193
2aa8953a2145 Editor: little change to the "Save As" function to respect the path name of the file to be saved.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8169
diff changeset
3721 elif not self.fileName:
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3722 path = self.project.getProjectPath()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3723
4891
d6e8171d2c02 Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4814
diff changeset
3724 if not path and self.fileName:
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3725 path = os.path.dirname(self.fileName)
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3726 if not path:
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3727 if remote:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3728 path = ""
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3729 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3730 path = (
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
3731 Preferences.getMultiProject("Workspace") or OSUtilities.getHomeDir()
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3732 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3733
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3734 if self.fileName:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3735 filterPattern = "(*{0})".format(os.path.splitext(self.fileName)[1])
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
3736 for fileFilter in Lexers.getSaveFileFiltersList(True):
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
3737 if filterPattern in fileFilter:
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
3738 defaultFilter = fileFilter
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3739 break
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3740 else:
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3741 defaultFilter = Preferences.getEditor("DefaultSaveFilter")
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3742 else:
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3743 defaultFilter = Preferences.getEditor("DefaultSaveFilter")
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3744
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3745 if remote or FileSystemUtilities.isRemoteFileName(path):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3746 title = self.tr("Save Remote File")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3747 fn, selectedFilter = EricServerFileDialog.getSaveFileNameAndFilter(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3748 self,
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3749 title,
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3750 path,
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3751 Lexers.getSaveFileFiltersList(True, True),
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3752 defaultFilter,
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3753 )
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3754 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3755 title = self.tr("Save File")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3756 fn, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3757 self,
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3758 title,
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3759 path,
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3760 Lexers.getSaveFileFiltersList(True, True),
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3761 defaultFilter,
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3762 EricFileDialog.DontConfirmOverwrite,
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3763 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3764
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3765 if fn:
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3766 if fn.endswith("."):
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3767 fn = fn[:-1]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3768
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
3769 fpath = pathlib.Path(fn)
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
3770 if not fpath.suffix:
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3771 ex = selectedFilter.split("(*")[1].split(")")[0]
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3772 if ex:
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
3773 fpath = fpath.with_suffix(ex)
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3774 if (
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
3775 FileSystemUtilities.isRemoteFileName(str(fpath))
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
3776 and self.__remotefsInterface.exists(str(fpath))
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
3777 ) or (FileSystemUtilities.isPlainFileName(str(fpath)) and fpath.exists()):
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
3778 res = EricMessageBox.yesNo(
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3779 self,
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3780 title,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3781 self.tr(
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9563
diff changeset
3782 "<p>The file <b>{0}</b> already exists. Overwrite it?</p>"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3783 ).format(fpath),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3784 icon=EricMessageBox.Warning,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3785 )
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3786 if not res:
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3787 return ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3788
9199
831e08e94960 Fixed some pathlib related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9186
diff changeset
3789 return str(fpath)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3790
9199
831e08e94960 Fixed some pathlib related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9186
diff changeset
3791 return ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3792
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3793 def saveFileCopy(self, path=None):
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3794 """
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3795 Public method to save a copy of the file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3796
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3797 @param path directory to save the file in
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3798 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3799 @return flag indicating success
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3800 @rtype bool
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3801 """
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3802 fn = self.__getSaveFileName(path)
4411
15556f6b4b0f Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4405
diff changeset
3803 if not fn:
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3804 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3805
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3806 res = self.writeFile(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3807 if res and self.project.isOpen() and self.project.startswithProjectPath(fn):
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3808 # save to project, if a project is loaded
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8221
diff changeset
3809 self.project.appendFile(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3810
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3811 return res
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3812
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3813 def saveFile(self, saveas=False, path=None, remote=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3814 """
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3815 Public method to save the text to a file.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3816
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3817 @param saveas flag indicating a 'save as' action (defaults to False)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3818 @type bool (optional)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3819 @param path directory to save the file in (defaults to None)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3820 @type str (optional)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3821 @param remote flag indicating to save as a remote file (defaults to False)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3822 @type bool (optional)
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3823 @return flag indicating success
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3824 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3825 """
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3826 if not saveas and not self.isModified():
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3827 # do nothing if text was not changed
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
3828 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3829
10388
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
3830 if FileSystemUtilities.isDeviceFileName(self.fileName):
9853
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3831 return self.__saveDeviceFile(saveas=saveas)
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3832
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3833 newName = None
4891
d6e8171d2c02 Fixed an issue causing a crash with latest PyQt5 (5.6).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4814
diff changeset
3834 if saveas or self.fileName == "":
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3835 saveas = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3836
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3837 fn = self.__getSaveFileName(path=path, remote=remote)
4411
15556f6b4b0f Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4405
diff changeset
3838 if not fn:
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3839 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3840
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3841 newName = fn
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3842
825
9cdec3c5bc07 Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 812
diff changeset
3843 # save to project, if a project is loaded
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3844 if self.project.isOpen() and self.project.startswithProjectPath(fn):
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3845 editorConfigEol = self.__getEditorConfig(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3846 "EOLMode", nodefault=True, config=self.__loadEditorConfigObject(fn)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3847 )
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3848 if editorConfigEol is not None:
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3849 self.setEolMode(editorConfigEol)
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3850 else:
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
3851 self.setEolModeByEolString(self.project.getEolString())
825
9cdec3c5bc07 Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 812
diff changeset
3852 self.convertEols(self.eolMode())
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3853 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3854 fn = self.fileName
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3855
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
3856 self.editorAboutToBeSaved.emit(self.fileName)
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
3857 if self.__autosaveTimer.isActive():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
3858 self.__autosaveTimer.stop()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3859 if self.writeFile(fn):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3860 if saveas:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3861 self.__clearBreakpoints(self.fileName)
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3862 self.__loadEditorConfig(fileName=fn)
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
3863 self.setFileName(fn)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3864 self.setModified(False)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3865 self.setReadOnly(False)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3866 self.setWindowTitle(self.fileName)
789
c190cd71b097 Fixed an issue introduced by the latest change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 788
diff changeset
3867 # get eric specific flags
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
3868 changedFlags = self.__processFlags()
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
3869 if not self.__lexerReset and "FileType" in changedFlags:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3870 self.setLanguage(self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3871
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3872 if saveas:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3873 self.isResourcesFile = self.fileName.endswith(".qrc")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3874 self.__initContextMenu()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
3875 self.editorRenamed.emit(self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3876
825
9cdec3c5bc07 Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 812
diff changeset
3877 # save to project, if a project is loaded
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3878 if self.project.isOpen() and self.project.startswithProjectPath(fn):
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
3879 self.project.appendFile(fn)
825
9cdec3c5bc07 Merged "Save to Project" into "Save" and "Save As...".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 812
diff changeset
3880 self.addedToProject()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3881
3152
0845347fe512 Fixed an issue setting syntax style in a 'save as' operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3149
diff changeset
3882 self.setLanguage(self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3883
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3884 self.recordModificationTime()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3885 if newName is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3886 self.vm.addToRecentList(newName)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
3887 self.editorSaved.emit(self.fileName)
3579
eccd12461319 BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3576
diff changeset
3888 self.checkSyntax()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3889 self.extractTasks()
9790
6b14962d9d31 Prepared the editor to save non-local files and reset the change markers from external.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9786
diff changeset
3890 self.resetOnlineChangeTraceInfo()
4405
c110bcfaad81 Fixed an issue in the editor causing the encodings menu not being synchronized after a save operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4402
diff changeset
3891 self.__checkEncoding()
548
ac7af05dd54a Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 547
diff changeset
3892 return True
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3893 else:
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3894 self.recordModificationTime(filename=fn)
548
ac7af05dd54a Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 547
diff changeset
3895 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3896
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3897 def saveFileAs(self, path=None, remote=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3898 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3899 Public method to save a file with a new name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3900
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3901 @param path directory to save the file in (defaults to None)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3902 @type str (optional)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3903 @param remote flag indicating to save as a remote file (defaults to False)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3904 @type bool (optional)
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3905 @return tuple containing a success indicator and the name of the saved file
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3906 @rtype tuple of (bool, str)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3907 """
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3908 return self.saveFile(True, path=path, remote=remote)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3909
9853
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3910 def __saveDeviceFile(self, saveas=False):
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3911 """
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3912 Private method to save the text to a file on the connected device.
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3913
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3914 @param saveas flag indicating a 'save as' action (defaults to False)
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3915 @type bool (optional)
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3916 @return flag indicating success
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3917 @rtype bool
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3918 """
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3919 with contextlib.suppress(KeyError):
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3920 mpy = ericApp().getObject("MicroPython")
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3921 filemanager = mpy.getFileManager()
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3922 if saveas:
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3923 fn, ok = QInputDialog.getText(
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3924 self,
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3925 self.tr("Save File to Device"),
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3926 self.tr("Enter the complete device file path:"),
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3927 QLineEdit.EchoMode.Normal,
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3928 self.fileName,
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3929 )
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3930 if not ok or not fn:
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3931 # aborted
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3932 return False
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3933 else:
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3934 fn = self.fileName
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3935 # Convert the file name to device path separators ('/') and ensure,
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3936 # intermediate directories exist (creating them if necessary)
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3937 fn = fn.replace("\\", "/")
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3938 if "/" in fn:
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3939 dn = fn.rsplit("/", 1)[0]
10388
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
3940 filemanager.makedirs(FileSystemUtilities.plainFileName(dn))
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
3941 success = filemanager.writeFile(
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
3942 FileSystemUtilities.plainFileName(fn), self.text()
a34ce7f42e8b Made the code dealing with "device:" and "remote:" file names generally available in FileSystemUtilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10377
diff changeset
3943 )
9853
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3944 if success:
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3945 self.setFileName(fn)
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3946 self.setModified(False)
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3947 self.resetOnlineChangeTraceInfo()
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3948 return success
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3949
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3950 return False
080e060a0383 Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9790
diff changeset
3951
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3952 def handleRenamed(self, fn):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3953 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3954 Public method to handle the editorRenamed signal.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3955
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3956 @param fn filename to be set for the editor
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
3957 @type str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3958 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3959 self.__clearBreakpoints(fn)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3960
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
3961 self.setFileName(fn)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3962 self.setWindowTitle(self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3963
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
3964 self.__loadEditorConfig()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3965
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3966 if self.lexer_ is None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3967 self.setLanguage(self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3968
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
3969 self.recordModificationTime()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3970 self.vm.setEditorName(self, self.fileName)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3971 self.__updateReadOnly(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3972
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3973 @pyqtSlot(str)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3974 def fileRenamed(self, fn):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3975 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3976 Public slot to handle the editorRenamed signal.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3977
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3978 @param fn filename to be set for the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3979 @type str.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3980 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3981 self.handleRenamed(fn)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3982 if not self.inFileRenamed:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3983 self.inFileRenamed = True
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
3984 self.editorRenamed.emit(self.fileName)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3985 self.inFileRenamed = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3986
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3987 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3988 ## Utility methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
3989 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3990
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
3991 def ensureVisible(self, line, expand=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3992 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
3993 Public method to ensure, that the specified line is visible.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
3994
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3995 @param line line number to make visible
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
3996 @type int
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
3997 @param expand flag indicating to expand all folds
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
3998 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
3999 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
4000 self.ensureLineVisible(line - 1)
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
4001 if expand:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4002 self.SendScintilla(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4003 QsciScintilla.SCI_FOLDCHILDREN,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4004 line - 1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4005 QsciScintilla.SC_FOLDACTION_EXPAND,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4006 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4007
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
4008 def ensureVisibleTop(self, line, expand=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4009 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4010 Public method to ensure, that the specified line is visible at the top
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4011 of the editor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4012
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4013 @param line line number to make visible
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
4014 @type int
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
4015 @param expand flag indicating to expand all folds
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
4016 @type bool
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
4017 """
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
4018 self.ensureVisible(line)
1897
4c89af5a756f Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1831
diff changeset
4019 self.setFirstVisibleLine(line - 1)
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
4020 self.ensureCursorVisible()
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
4021 if expand:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4022 self.SendScintilla(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4023 QsciScintilla.SCI_FOLDCHILDREN,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4024 line - 1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4025 QsciScintilla.SC_FOLDACTION_EXPAND,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4026 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4027
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
4028 def __marginClicked(self, margin, line, modifiers): # noqa: U100
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4029 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4030 Private slot to handle the marginClicked signal.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4031
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4032 @param margin id of the clicked margin
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4033 @type int
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4034 @param line line number of the click
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4035 @type int
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4036 @param modifiers keyboard modifiers
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4037 @type Qt.KeyboardModifiers
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4038 """
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
4039 if margin == self.__bmMargin:
6735
31e263d49c04 Fixed some code style issues detected by the updated style checker (over-indented lines).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6718
diff changeset
4040 self.toggleBookmark(line + 1)
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
4041 elif margin == self.__bpMargin:
6735
31e263d49c04 Fixed some code style issues detected by the updated style checker (over-indented lines).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6718
diff changeset
4042 self.__toggleBreakpoint(line + 1)
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
4043 elif margin == self.__indicMargin:
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
4044 if self.markersAtLine(line) & (1 << self.syntaxerror):
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
4045 self.__showSyntaxError(line)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
4046 elif self.markersAtLine(line) & (1 << self.warning):
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
4047 self.__showWarning(line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4048
10499
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4049 @pyqtSlot(int, int, int)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4050 def __marginHoverStart(self, pos, x, y):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4051 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4052 Private slot showing the text of a syntax error or a warning marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4053
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4054 @param pos mouse position into the document
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4055 @type int
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4056 @param x x-value of mouse screen position
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4057 @type int
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4058 @param y y-value of mouse screen position
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4059 @type int
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4060 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4061 margin = self.__marginNumber(x)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4062 if margin == self.__indicMargin:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4063 # determine width of all margins; needed to calculate document line
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4064 width = 0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4065 for margin in range(5):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4066 width += self.marginWidth(margin)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4067
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4068 message = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4069 line = self.lineIndexFromPoint(QPoint(width + 1, y))[0]
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4070 if self.markersAtLine(line) & (1 << self.syntaxerror):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4071 for handle in self.syntaxerrors:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4072 if self.markerLine(handle) == line:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4073 message = "\n".join([e[0] for e in self.syntaxerrors[handle]])
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4074 break
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4075 elif self.markersAtLine(line) & (1 << self.warning):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4076 for handle in self._warnings:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4077 if self.markerLine(handle) == line:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4078 message = "\n".join([w[0] for w in self._warnings[handle]])
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4079 break
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4080
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4081 if message:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4082 QToolTip.showText(QCursor.pos(), message)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4083
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4084 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4085 def __marginHoverEnd(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4086 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4087 Private slot cancelling the display of syntax error or a warning marker text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4088 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4089 QToolTip.hideText()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
4090
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4091 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4092 def handleMonospacedEnable(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4093 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3583
diff changeset
4094 Public slot to handle the Use Monospaced Font context menu entry.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4095 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4096 if self.menuActs["MonospacedFont"].isChecked():
3087
fdbce259929f Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3069
diff changeset
4097 if not self.lexer_:
fdbce259929f Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3069
diff changeset
4098 self.setMonospaced(True)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4099 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4100 if self.lexer_:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4101 self.lexer_.readSettings(Preferences.getSettings(), "Scintilla")
6858
9d962e654978 Corrected the SubstyledLexer.hasSubStyle() method to SubstyledLexer.hasSubstyle() to be consistent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
4102 if self.lexer_.hasSubstyles():
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6843
diff changeset
4103 self.lexer_.readSubstyles(self)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4104 self.lexer_.initProperties()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4105 self.setMonospaced(False)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4106 self.__setMarginsDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4107
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4108 def getWordBoundaries(self, line, index, useWordChars=True, forCompletion=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4109 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4110 Public method to get the word boundaries at a position.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4111
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4112 @param line number of line to look at
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4113 @type int
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4114 @param index position to look at
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4115 @type int
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
4116 @param useWordChars flag indicating to use the wordCharacters
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4117 method (defaults to True)
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4118 @type bool (optional)
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4119 @param forCompletion flag indicating a modification for completions (defaults
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4120 to False)
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4121 @type bool (optional)
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
4122 @return tuple with start and end indexes of the word at the position
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4123 @rtype tuple of (int, int)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4124 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4125 wc = self.wordCharacters()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4126 if wc is None or not useWordChars:
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4127 pattern = r"\b[\w_]+\b"
6247
5c677a7f7d51 Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6210
diff changeset
4128 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4129 wc = re.sub(r"\w", "", wc)
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4130 pattern = r"\b[\w{0}]+\b".format(re.escape(wc))
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4131 if forCompletion:
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4132 pattern += "=?"
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
4133 rx = (
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
4134 re.compile(pattern)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4135 if self.caseSensitive()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4136 else re.compile(pattern, re.IGNORECASE)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4137 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4138
7775
4a1db75550bd Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7771
diff changeset
4139 text = self.text(line)
4a1db75550bd Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7771
diff changeset
4140 for match in rx.finditer(text):
4a1db75550bd Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7771
diff changeset
4141 start, end = match.span()
4a1db75550bd Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7771
diff changeset
4142 if start <= index <= end:
4a1db75550bd Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7771
diff changeset
4143 return (start, end)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4144
7783
36f66ce496bd Editor: fixed an issue introduced during the QRegExp change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7775
diff changeset
4145 return (index, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4146
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4147 def getWord(self, line, index, direction=0, useWordChars=True, forCompletion=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4148 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4149 Public method to get the word at a position.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4150
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4151 @param line number of line to look at
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4152 @type int
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4153 @param index position to look at
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4154 @type int
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4155 @param direction direction to look in (0 = whole word, 1 = left,
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4156 2 = right)
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4157 @type int
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
4158 @param useWordChars flag indicating to use the wordCharacters
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4159 method (defaults to True)
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4160 @type bool (optional)
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4161 @param forCompletion flag indicating a modification for completions (defaults
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4162 to False)
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4163 @type bool (optional)
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4164 @return the word at that position
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4165 @rtype str
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4166 """
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4167 start, end = self.getWordBoundaries(
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4168 line, index, useWordChars=useWordChars, forCompletion=forCompletion
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
4169 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4170 if direction == 1:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4171 end = index
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4172 elif direction == 2:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4173 start = index
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4174 if end > start:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4175 text = self.text(line)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4176 word = text[start:end]
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4177 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4178 word = ""
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4179 return word
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4180
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4181 def getWordLeft(self, line, index):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4182 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4183 Public method to get the word to the left of a position.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4184
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4185 @param line number of line to look at
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4186 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4187 @param index position to look at
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4188 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4189 @return the word to the left of that position
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4190 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4191 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4192 return self.getWord(line, index, 1)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4193
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4194 def getWordRight(self, line, index):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4195 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4196 Public method to get the word to the right of a position.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4197
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4198 @param line number of line to look at
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4199 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4200 @param index position to look at
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4201 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4202 @return the word to the right of that position
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4203 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4204 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4205 return self.getWord(line, index, 2)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4206
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4207 def getCurrentWord(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4208 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4209 Public method to get the word at the current position.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4210
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4211 @return the word at that current position
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4212 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4213 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4214 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4215 return self.getWord(line, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4216
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
4217 def getCurrentWordBoundaries(self):
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
4218 """
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
4219 Public method to get the word boundaries at the current position.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4220
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
4221 @return tuple with start and end indexes of the current word
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4222 @rtype tuple of (int, int)
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
4223 """
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
4224 line, index = self.getCursorPosition()
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
4225 return self.getWordBoundaries(line, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4226
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4227 def selectWord(self, line, index):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4228 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4229 Public method to select the word at a position.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4230
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4231 @param line number of line to look at
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4232 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4233 @param index position to look at
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4234 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4235 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4236 start, end = self.getWordBoundaries(line, index)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4237 self.setSelection(line, start, line, end)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4238
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4239 def selectCurrentWord(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4240 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4241 Public method to select the current word.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4242 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4243 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4244 self.selectWord(line, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4245
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4246 def __getCharacter(self, pos):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4247 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4248 Private method to get the character to the left of the current position
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4249 in the current line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4250
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4251 @param pos position to get character at
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4252 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4253 @return requested character or "", if there are no more and the next position
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4254 (i.e. pos - 1)
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4255 @rtype tuple of (str, int)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4256 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4257 if pos <= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4258 return "", pos
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4259
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4260 pos = self.positionBefore(pos)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4261 ch = self.charAt(pos)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4262
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4263 # Don't go past the end of the previous line
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4264 if ch in ("\n", "\r"):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4265 return "", pos
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4266
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4267 return ch, pos
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4268
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
4269 def getSearchText(self, selectionOnly=False):
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
4270 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4271 Public method to determine the selection or the current word for the
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4272 next search operation.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4273
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4274 @param selectionOnly flag indicating that only selected text should be
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4275 returned
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4276 @type bool
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4277 @return selection or current word
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4278 @rtype str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4279 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4280 if self.hasSelectedText():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4281 text = self.selectedText()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4282 if "\r" in text or "\n" in text:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4283 # the selection contains at least a newline, it is
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4284 # unlikely to be the expression to search for
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4285 return ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4286
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4287 return text
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4288
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4289 if not selectionOnly:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4290 # no selected text, determine the word at the current position
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4291 return self.getCurrentWord()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4292
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4293 return ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4294
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4295 def setSearchIndicator(self, startPos, indicLength):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4296 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4297 Public method to set a search indicator for the given range.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4298
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4299 @param startPos start position of the indicator
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4300 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4301 @param indicLength length of the indicator
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4302 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4303 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4304 self.setIndicatorRange(self.searchIndicator, startPos, indicLength)
4304
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4305 line = self.lineIndexFromPosition(startPos)[0]
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4306 if line not in self.__searchIndicatorLines:
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4307 self.__searchIndicatorLines.append(line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4308
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4309 def clearSearchIndicators(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4310 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4311 Public method to clear all search indicators.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4312 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4313 self.clearAllIndicators(self.searchIndicator)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4314 self.__markedText = ""
4304
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4315 self.__searchIndicatorLines = []
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4316 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4317
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4318 def highlightSearchSelection(self, startLine, startIndex, endLine, endIndex):
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4319 """
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4320 Public method to set a highlight for the selection at the start of a search.
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4321
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4322 @param startLine line of the selection start
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4323 @type int
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4324 @param startIndex index of the selection start
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4325 @type int
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4326 @param endLine line of the selection end
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4327 @type int
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4328 @param endIndex index of the selection end
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4329 @type int
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4330 """
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4331 self.setIndicator(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4332 self.searchSelectionIndicator, startLine, startIndex, endLine, endIndex
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4333 )
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4334
9977
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
4335 def getSearchSelectionHighlight(self):
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
4336 """
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
4337 Public method to get the start and end of the selection highlight.
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
4338
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
4339 @return tuple containing the start line and index and the end line and index
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
4340 @rtype tuple of (int, int, int, int)
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
4341 """
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
4342 return self.getIndicator(self.searchSelectionIndicator)
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
4343
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4344 def clearSearchSelectionHighlight(self):
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4345 """
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4346 Public method to clear all highlights.
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4347 """
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4348 self.clearAllIndicators(self.searchSelectionIndicator)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
4349
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4350 def __markOccurrences(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4351 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4352 Private method to mark all occurrences of the current word.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4353 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4354 word = self.getCurrentWord()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4355 if not word:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4356 self.clearSearchIndicators()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4357 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4358
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4359 if self.__markedText == word:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4360 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4361
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4362 self.clearSearchIndicators()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4363 ok = self.findFirstTarget(word, False, self.caseSensitive(), True, 0, 0)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4364 while ok:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4365 tgtPos, tgtLen = self.getFoundTarget()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4366 self.setSearchIndicator(tgtPos, tgtLen)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4367 ok = self.findNextTarget()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4368 self.__markedText = word
4304
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4369 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4370
4304
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4371 def getSearchIndicatorLines(self):
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4372 """
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4373 Public method to get the lines containing a search indicator.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4374
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4375 @return list of lines containing a search indicator
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4376 @rtype list of int
4304
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4377 """
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4378 return self.__searchIndicatorLines[:]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4379
4304
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4380 def updateMarkerMap(self):
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4381 """
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4382 Public method to initiate an update of the marker map.
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4383 """
f85965649066 Added the search markers to the marker map of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4302
diff changeset
4384 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4385
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4386 ###########################################################################
7525
6d1f954947bc LexerPygments: fixed an issue loading styles and added some Pygments token types.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7506
diff changeset
4387 ## Highlighting marker handling methods below
6932
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4388 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4389
6932
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4390 def setHighlight(self, startLine, startIndex, endLine, endIndex):
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4391 """
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4392 Public method to set a text highlight.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4393
6932
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4394 @param startLine line of the highlight start
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4395 @type int
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4396 @param startIndex index of the highlight start
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4397 @type int
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4398 @param endLine line of the highlight end
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4399 @type int
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4400 @param endIndex index of the highlight end
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4401 @type int
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4402 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4403 self.setIndicator(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4404 self.highlightIndicator, startLine, startIndex, endLine, endIndex
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4405 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4406
6932
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4407 def clearAllHighlights(self):
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4408 """
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4409 Public method to clear all highlights.
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4410 """
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4411 self.clearAllIndicators(self.highlightIndicator)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4412
6932
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4413 def clearHighlight(self, startLine, startIndex, endLine, endIndex):
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4414 """
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4415 Public method to clear a text highlight.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4416
6932
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4417 @param startLine line of the highlight start
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4418 @type int
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4419 @param startIndex index of the highlight start
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4420 @type int
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4421 @param endLine line of the highlight end
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4422 @type int
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4423 @param endIndex index of the highlight end
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4424 @type int
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4425 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4426 self.clearIndicator(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4427 self.highlightIndicator, startLine, startIndex, endLine, endIndex
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4428 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4429
6932
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
4430 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4431 ## Comment handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4432 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4433
2493
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4434 def __isCommentedLine(self, line, commentStr):
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4435 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4436 Private method to check, if the given line is a comment line as
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4437 produced by the configured comment rules.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4438
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4439 @param line text of the line to check
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4440 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4441 @param commentStr comment string to check against
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4442 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4443 @return flag indicating a commented line
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4444 @rtype bool
2493
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4445 """
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4446 if Preferences.getEditor("CommentColumn0"):
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4447 return line.startswith(commentStr)
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4448 else:
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4449 return line.strip().startswith(commentStr)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4450
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4451 @pyqtSlot()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4452 def toggleComment(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4453 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4454 Public slot to toggle a block or stream comment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4455
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4456 If the lexer supports a block comment, that is used for toggling the
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4457 comment. Otherwise a stream comment is used if that is supported. If
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4458 none of these are supported, the request is ignored silently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4459 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4460 if self.lexer_ is not None:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4461 if self.lexer_.canBlockComment():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4462 self.__toggleBlockComment()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4463 elif self.lexer_.canStreamComment():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4464 self.__toggleStreamComment()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4465
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4466 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4467 def __toggleBlockComment(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4468 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4469 Private slot to toggle the comment of a block.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4470
9331
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4471 If the editor contains selected text and the start line is not commented, it
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4472 will be commented. Otherwise the selection will be un-commented. In case there
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4473 is no selected text and the current line is not commented, it will be commented.
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4474 If is commented, the comment block will be removed.
1500
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4475 """
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4476 if self.lexer_ is None or not self.lexer_.canBlockComment():
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4477 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4478
1500
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4479 commentStr = self.lexer_.commentStr()
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4480 line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4481
9331
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4482 if self.hasSelectedText():
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4483 # Check if the selection starts with our comment string (i.e. was commented
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4484 # by our comment...() slots.
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4485 if self.__isCommentedLine(self.text(self.getSelection()[0]), commentStr):
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4486 self.uncommentLineOrSelection()
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4487 else:
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4488 self.commentLineOrSelection()
2493
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4489 elif not self.__isCommentedLine(self.text(line), commentStr):
9331
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4490 # No selected text and the current line does not start with our comment
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4491 # string, so comment the line.
1500
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4492 self.commentLineOrSelection()
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4493 else:
9331
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4494 # Uncomment the comment block containing the current line.
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4495 # 1. determine the start of the comment block
1500
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4496 begline = line
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4497 while begline > 0 and self.__isCommentedLine(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4498 self.text(begline - 1), commentStr
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
4499 ):
1588
dccffd13be8d Did some PEP-8 related corrections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1566
diff changeset
4500 begline -= 1
9331
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4501 # 2. determine the end of the comment block
1500
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4502 endline = line
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4503 lines = self.lines()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4504 while endline < lines and self.__isCommentedLine(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4505 self.text(endline + 1), commentStr
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
4506 ):
1588
dccffd13be8d Did some PEP-8 related corrections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1566
diff changeset
4507 endline += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4508
9331
1f8780a59a0d Changed the logic of the 'Toggle Comment' action to respect the current selection and only operate on the current line or comment block, if there is no selection present.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
4509 # 3. uncomment the determined block and reset the cursor position
1500
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4510 self.setSelection(begline, 0, endline, self.lineLength(endline))
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4511 self.uncommentLineOrSelection()
6ce6deb421cf Added an action to the editor to toggle block comments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1491
diff changeset
4512 self.setCursorPosition(line, index - len(commentStr))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4513
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4514 @pyqtSlot()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4515 def __commentLine(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4516 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4517 Private slot to comment the current line.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4518 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4519 if self.lexer_ is None or not self.lexer_.canBlockComment():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4520 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4521
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4522 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4523 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4524 if Preferences.getEditor("CommentColumn0"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4525 self.insertAt(self.lexer_.commentStr(), line, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4526 else:
8239
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4527 lineText = self.text(line)
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4528 pos = len(lineText.replace(lineText.lstrip(" \t"), ""))
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4529 self.insertAt(self.lexer_.commentStr(), line, pos)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4530 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4531
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4532 @pyqtSlot()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4533 def __uncommentLine(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4534 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4535 Private slot to uncomment the current line.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4536 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4537 if self.lexer_ is None or not self.lexer_.canBlockComment():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4538 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4539
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4540 commentStr = self.lexer_.commentStr()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4541 line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4542
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4543 # check if line starts with our comment string (i.e. was commented
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4544 # by our comment...() slots
2493
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4545 if not self.__isCommentedLine(self.text(line), commentStr):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4546 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4547
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4548 # now remove the comment string
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4549 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4550 if Preferences.getEditor("CommentColumn0"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4551 self.setSelection(line, 0, line, len(commentStr))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4552 else:
8239
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4553 lineText = self.text(line)
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4554 pos = len(lineText.replace(lineText.lstrip(" \t"), ""))
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4555 self.setSelection(line, pos, line, pos + len(commentStr))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4556 self.removeSelectedText()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4557 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4558
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4559 @pyqtSlot()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4560 def __commentSelection(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4561 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4562 Private slot to comment the current selection.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4563 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4564 if self.lexer_ is None or not self.lexer_.canBlockComment():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4565 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4566
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4567 if not self.hasSelectedText():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4568 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4569
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4570 commentStr = self.lexer_.commentStr()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4571
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4572 # get the selection boundaries
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4573 lineFrom, indexFrom, lineTo, indexTo = self.getSelection()
8235
78e6d29eb773 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8231
diff changeset
4574 endLine = lineTo if indexTo else lineTo - 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4575
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4576 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4577 # iterate over the lines
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4578 for line in range(lineFrom, endLine + 1):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4579 if Preferences.getEditor("CommentColumn0"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4580 self.insertAt(commentStr, line, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4581 else:
8239
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4582 lineText = self.text(line)
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4583 pos = len(lineText.replace(lineText.lstrip(" \t"), ""))
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4584 self.insertAt(commentStr, line, pos)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4585
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4586 # change the selection accordingly
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4587 self.setSelection(lineFrom, 0, endLine + 1, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4588 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4589
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4590 @pyqtSlot()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4591 def __uncommentSelection(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4592 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4593 Private slot to uncomment the current selection.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4594 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4595 if self.lexer_ is None or not self.lexer_.canBlockComment():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4596 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4597
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4598 if not self.hasSelectedText():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4599 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4600
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4601 commentStr = self.lexer_.commentStr()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4602
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4603 # get the selection boundaries
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4604 lineFrom, indexFrom, lineTo, indexTo = self.getSelection()
8235
78e6d29eb773 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8231
diff changeset
4605 endLine = lineTo if indexTo else lineTo - 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4606
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4607 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4608 # iterate over the lines
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
4609 for line in range(lineFrom, endLine + 1):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4610 # check if line starts with our comment string (i.e. was commented
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4611 # by our comment...() slots
2493
476f6016114d Fixed an issue with the uncomment and toggle comment functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2490
diff changeset
4612 if not self.__isCommentedLine(self.text(line), commentStr):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4613 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4614
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4615 if Preferences.getEditor("CommentColumn0"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4616 self.setSelection(line, 0, line, len(commentStr))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4617 else:
8239
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4618 lineText = self.text(line)
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4619 pos = len(lineText.replace(lineText.lstrip(" \t"), ""))
59a9a658618c Editor: fixed an issue causing wrong comment character insertion when indentation was done with a tab character (\t).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8235
diff changeset
4620 self.setSelection(line, pos, line, pos + len(commentStr))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4621 self.removeSelectedText()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4622
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4623 # adjust selection start
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4624 if line == lineFrom:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4625 indexFrom -= len(commentStr)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4626 if indexFrom < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4627 indexFrom = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4628
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4629 # adjust selection end
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4630 if line == lineTo:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4631 indexTo -= len(commentStr)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4632 if indexTo < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4633 indexTo = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4634
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4635 # change the selection accordingly
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4636 self.setSelection(lineFrom, indexFrom, lineTo, indexTo)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4637 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4638
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4639 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4640 def commentLineOrSelection(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4641 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4642 Public slot to comment the current line or current selection.
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4643
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4644 If the lexer supports a block comment, that is used for commenting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4645 Otherwise a stream comment is used if that is supported. If none of
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4646 these are supported, the request is ignored silently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4647 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4648 if self.lexer_ is not None:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4649 if self.lexer_.canBlockComment():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4650 if self.hasSelectedText():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4651 self.__commentSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4652 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4653 self.__commentLine()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4654 elif self.lexer_.canStreamComment():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4655 # delegate to the stream comment method
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4656 self.streamCommentLineOrSelection()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4657
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4658 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4659 def uncommentLineOrSelection(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4660 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4661 Public slot to uncomment the current line or current selection.
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4662
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4663 If the lexer supports a block comment, that is used for uncommenting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4664 Otherwise a stream comment is used if that is supported. If none of
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4665 these are supported, the request is ignored silently.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4666 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4667 if self.lexer_ is not None:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4668 if self.lexer_.canBlockComment():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4669 if self.hasSelectedText():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4670 self.__uncommentSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4671 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4672 self.__uncommentLine()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4673 elif self.lexer_.canStreamComment():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4674 # delegate to the stream uncomment method
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4675 self.streamUncommentLineOrSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4676
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4677 def __isStreamCommentedLine(self, line, streamCommentStr):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4678 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4679 Private method to check, if the line is commented by a stream comment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4680
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4681 @param line text of the line to check
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4682 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4683 @param streamCommentStr dictionary containing the stream comment start and
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4684 end strings
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4685 @type dict
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4686 @return flag indicating a stream commented line
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4687 @rtype bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4688 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4689 line = line.strip()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4690 return line.startswith(streamCommentStr["start"]) and line.endswith(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4691 streamCommentStr["end"]
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4692 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4693
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4694 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4695 def __toggleStreamComment(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4696 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4697 Private slot to toggle the comment of a block.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4698
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4699 If the editor contains selected text and the start line is not commented, it
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4700 will be commented. Otherwise the selection will be un-commented. In case there
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4701 is no selected text and the current line is not commented, it will be commented.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4702 If is commented, the comment block will be removed.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4703 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4704 if self.lexer_ is None or not self.lexer_.canStreamComment():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4705 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4706
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4707 streamCommentStr = self.lexer_.streamCommentStr()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4708 line, index = self.getCursorPosition()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4709
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4710 if self.hasSelectedText():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4711 # Check if the selection starts with a stream comment string.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4712 if self.text(self.getSelection()[0]).startswith(streamCommentStr["start"]):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4713 self.streamUncommentLineOrSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4714 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4715 self.streamCommentLineOrSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4716 elif self.__isStreamCommentedLine(self.text(line), streamCommentStr):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4717 # It is a stream commented line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4718 self.streamUncommentLineOrSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4719 elif self.text(line).lstrip(" \t").startswith(streamCommentStr["start"]):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4720 # The cursor is at the first line of a stream comment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4721 pos = len(self.text(line).replace(self.text(line).lstrip(" \t"), ""))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4722 endline = line
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4723 lines = self.lines()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4724 while endline < lines and not self.text(endline).rstrip().endswith(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4725 streamCommentStr["end"]
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4726 ):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4727 endline += 1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4728
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4729 # Uncomment the determined block and reset the cursor position
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4730 self.setSelection(line, pos, endline, self.lineLength(endline))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4731 self.uncommentLineOrSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4732 self.setCursorPosition(line, index - len(streamCommentStr["start"]))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4733 elif self.text(line).rstrip().endswith(streamCommentStr["end"]):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4734 # The cursor is at the last line of a stream comment.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4735 begline = line
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4736 while begline > 0 and not self.text(begline).lstrip(" \t").startswith(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4737 streamCommentStr["start"]
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4738 ):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4739 begline -= 1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4740 pos = len(self.text(begline).replace(self.text(begline).lstrip(" \t"), ""))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4741
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4742 # Uncomment the determined block and reset the cursor position
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4743 self.setSelection(begline, pos, line, self.lineLength(line))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4744 self.uncommentLineOrSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4745 self.setCursorPosition(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4746 line, min(index, self.lineLength(line) - len(self.getLineSeparator()))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4747 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4748 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4749 # No selected text and the current line does not start with a stream comment
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4750 # string, so comment the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4751 self.streamCommentLineOrSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4752
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4753 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4754 def __streamCommentLine(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4755 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4756 Private slot to stream comment the current line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4757 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4758 if self.lexer_ is None or not self.lexer_.canStreamComment():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4759 return
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4760
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4761 streamCommentStr = self.lexer_.streamCommentStr()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4762 line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4763
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4764 self.beginUndoAction()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4765 self.insertAt(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4766 streamCommentStr["end"],
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4767 line,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4768 self.lineLength(line) - len(self.getLineSeparator()),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4769 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4770 self.insertAt(streamCommentStr["start"], line, 0)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4771 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4772
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4773 @pyqtSlot()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4774 def __streamCommentSelection(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4775 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4776 Private slot to comment the current selection.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4777 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4778 if self.lexer_ is None or not self.lexer_.canStreamComment():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4779 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4780
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4781 if not self.hasSelectedText():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4782 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4783
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4784 streamCommentStr = self.lexer_.streamCommentStr()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4785
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4786 # get the selection boundaries
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4787 lineFrom, indexFrom, lineTo, indexTo = self.getSelection()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4788 if indexTo == 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4789 endLine = lineTo - 1
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4790 endIndex = self.lineLength(endLine) - len(self.getLineSeparator())
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4791 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4792 endLine = lineTo
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4793 endIndex = indexTo
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4794
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4795 self.beginUndoAction()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4796 self.insertAt(streamCommentStr["end"], endLine, endIndex)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4797 self.insertAt(streamCommentStr["start"], lineFrom, indexFrom)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4798
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4799 # change the selection accordingly
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4800 if indexTo > 0:
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4801 indexTo += len(streamCommentStr["end"])
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4802 if lineFrom == endLine:
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4803 indexTo += len(streamCommentStr["start"])
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4804 self.setSelection(lineFrom, indexFrom, lineTo, indexTo)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4805 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4806
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4807 @pyqtSlot()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4808 def __streamUncommentLine(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4809 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4810 Private slot to stream uncomment the current line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4811 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4812 if self.lexer_ is None or not self.lexer_.canStreamComment():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4813 return
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4814
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4815 streamCommentStr = self.lexer_.streamCommentStr()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4816 line, index = self.getCursorPosition()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4817
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4818 # check if line starts and ends with the stream comment strings
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4819 if not self.__isStreamCommentedLine(self.text(line), streamCommentStr):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4820 return
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4821
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4822 self.beginUndoAction()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4823 # 1. remove comment end string
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4824 self.setSelection(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4825 line,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4826 self.lineLength(line)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4827 - len(self.getLineSeparator())
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4828 - len(streamCommentStr["end"]),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4829 line,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4830 self.lineLength(line) - len(self.getLineSeparator()),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4831 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4832 self.removeSelectedText()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4833
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4834 # 2. remove comment start string
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4835 lineText = self.text(line)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4836 pos = len(lineText.replace(lineText.lstrip(" \t"), ""))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4837 self.setSelection(line, pos, line, pos + len(streamCommentStr["start"]))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4838 self.removeSelectedText()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4839 self.endUndoAction()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4840
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4841 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4842 def __streamUncommentSelection(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4843 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4844 Private slot to stream uncomment the current selection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4845 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4846 if self.lexer_ is None or not self.lexer_.canStreamComment():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4847 return
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4848
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4849 if not self.hasSelectedText():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4850 return
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4851
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4852 streamCommentStr = self.lexer_.streamCommentStr()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4853
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4854 # get the selection boundaries
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4855 lineFrom, indexFrom, lineTo, indexTo = self.getSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4856 if indexTo == 0:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4857 endLine = lineTo - 1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4858 endIndex = self.lineLength(endLine) - len(self.getLineSeparator())
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4859 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4860 endLine = lineTo
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4861 endIndex = indexTo
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4862
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4863 self.beginUndoAction()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4864 self.setSelection(lineFrom, indexFrom, endLine, endIndex)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4865 selTxt = self.selectedText()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4866 if selTxt.endswith(streamCommentStr["end"]):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4867 self.setSelection(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4868 endLine, endIndex - len(streamCommentStr["end"]), endLine, endIndex
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4869 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4870 self.removeSelectedText()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4871
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4872 # modify selection end accordingly
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4873 if indexTo > 0:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4874 indexTo -= len(streamCommentStr["end"])
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4875 if selTxt.startswith(streamCommentStr["start"]):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4876 self.setSelection(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4877 lineFrom,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4878 indexFrom,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4879 lineFrom,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4880 indexFrom + len(streamCommentStr["start"]),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4881 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4882 self.removeSelectedText()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4883
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4884 # modify selection end accordingly
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4885 if lineFrom == lineTo and indexTo > 0:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4886 indexTo -= len(streamCommentStr["start"])
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4887 self.endUndoAction()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4888
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4889 # now set the new selection
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4890 self.setSelection(lineFrom, indexFrom, lineTo, indexTo)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4891
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4892 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4893 def streamCommentLineOrSelection(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4894 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4895 Public slot to stream comment the current line or current selection.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4896 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4897 if self.hasSelectedText():
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4898 self.__streamCommentSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4899 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4900 self.__streamCommentLine()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4901
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4902 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4903 def streamUncommentLineOrSelection(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4904 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4905 Public slot to stream uncomment the current line or current selection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4906 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4907 if self.hasSelectedText():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4908 self.__streamUncommentSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4909 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4910 self.__streamUncommentLine()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4911
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4912 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4913 def __boxCommentLine(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4914 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4915 Private slot to box comment the current line.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4916 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4917 if self.lexer_ is None or not self.lexer_.canBoxComment():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4918 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4919
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4920 boxCommentStr = self.lexer_.boxCommentStr()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4921 line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4922
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4923 eol = self.getLineSeparator()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4924 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4925 self.insertAt(eol, line, self.lineLength(line))
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4926 self.insertAt(boxCommentStr["end"], line + 1, 0)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4927 self.insertAt(boxCommentStr["middle"], line, 0)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4928 self.insertAt(eol, line, 0)
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4929 self.insertAt(boxCommentStr["start"], line, 0)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4930 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4931
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4932 @pyqtSlot()
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4933 def __boxCommentSelection(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4934 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4935 Private slot to box comment the current selection.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4936 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4937 if self.lexer_ is None or not self.lexer_.canBoxComment():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4938 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4939
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4940 if not self.hasSelectedText():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4941 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4942
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4943 boxCommentStr = self.lexer_.boxCommentStr()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4944
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4945 # get the selection boundaries
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4946 lineFrom, indexFrom, lineTo, indexTo = self.getSelection()
8235
78e6d29eb773 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8231
diff changeset
4947 endLine = lineTo if indexTo else lineTo - 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4948
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4949 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4950 # iterate over the lines
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4951 for line in range(lineFrom, endLine + 1):
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4952 self.insertAt(boxCommentStr["middle"], line, 0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4953
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4954 # now do the comments before and after the selection
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4955 eol = self.getLineSeparator()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4956 self.insertAt(eol, endLine, self.lineLength(endLine))
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4957 self.insertAt(boxCommentStr["end"], endLine + 1, 0)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4958 self.insertAt(eol, lineFrom, 0)
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4959 self.insertAt(boxCommentStr["start"], lineFrom, 0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4960
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4961 # change the selection accordingly
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4962 self.setSelection(lineFrom, 0, endLine + 3, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4963 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4964
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
4965 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4966 def boxCommentLineOrSelection(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4967 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4968 Public slot to box comment the current line or current selection.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4969 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4970 if self.hasSelectedText():
10376
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4971 self.__boxCommentSelection()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4972 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
4973 self.__boxCommentLine()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4974
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4975 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4976 ## Indentation handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
4977 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4978
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
4979 def __indentLine(self, indent=True):
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
4980 """
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
4981 Private method to indent or unindent the current line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4982
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4983 @param indent flag indicating an indent operation
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4984 <br />If the flag is true, an indent operation is performed.
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4985 Otherwise the current line is unindented.
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
4986 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4987 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4988 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4989 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4990 if indent:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4991 self.indent(line)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4992 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4993 self.unindent(line)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4994 self.endUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4995 if indent:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4996 self.setCursorPosition(line, index + self.indentationWidth())
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4997 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
4998 self.setCursorPosition(line, index - self.indentationWidth())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
4999
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
5000 def __indentSelection(self, indent=True):
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
5001 """
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
5002 Private method to indent or unindent the current selection.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5003
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5004 @param indent flag indicating an indent operation
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5005 <br />If the flag is true, an indent operation is performed.
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5006 Otherwise the current line is unindented.
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5007 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5008 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5009 if not self.hasSelectedText():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5010 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5011
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5012 # get the selection
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5013 lineFrom, indexFrom, lineTo, indexTo = self.getSelection()
8235
78e6d29eb773 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8231
diff changeset
5014 endLine = lineTo if indexTo else lineTo - 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5015
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5016 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5017 # iterate over the lines
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5018 for line in range(lineFrom, endLine + 1):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5019 if indent:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5020 self.indent(line)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5021 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5022 self.unindent(line)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5023 self.endUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5024 if indent:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5025 if indexTo == 0:
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5026 self.setSelection(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5027 lineFrom, indexFrom + self.indentationWidth(), lineTo, 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5028 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5029 else:
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5030 self.setSelection(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5031 lineFrom,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5032 indexFrom + self.indentationWidth(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5033 lineTo,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5034 indexTo + self.indentationWidth(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5035 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5036 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5037 indexStart = indexFrom - self.indentationWidth()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5038 if indexStart < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5039 indexStart = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5040 indexEnd = indexTo - self.indentationWidth()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5041 if indexEnd < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5042 indexEnd = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5043 self.setSelection(lineFrom, indexStart, lineTo, indexEnd)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5044
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5045 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5046 def indentLineOrSelection(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5047 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
5048 Public slot to indent the current line or current selection.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5049 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5050 if self.hasSelectedText():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5051 self.__indentSelection(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5052 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5053 self.__indentLine(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5054
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5055 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5056 def unindentLineOrSelection(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5057 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5058 Public slot to unindent the current line or current selection.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5059 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5060 if self.hasSelectedText():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5061 self.__indentSelection(False)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5062 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5063 self.__indentLine(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5064
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5065 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5066 def smartIndentLineOrSelection(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5067 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5068 Public slot to indent current line smartly.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5069 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5070 if self.hasSelectedText():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5071 if self.lexer_ and self.lexer_.hasSmartIndent():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5072 self.lexer_.smartIndentSelection(self)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5073 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5074 self.__indentSelection(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5075 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5076 if self.lexer_ and self.lexer_.hasSmartIndent():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5077 self.lexer_.smartIndentLine(self)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5078 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5079 self.__indentLine(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5080
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5081 def gotoLine(self, line, pos=1, firstVisible=False, expand=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5082 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5083 Public method to jump to the beginning of a line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5084
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5085 @param line line number to go to
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5086 @type int
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
5087 @param pos position in line to go to
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5088 @type int
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
5089 @param firstVisible flag indicating to make the line the first
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5090 visible line
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5091 @type bool
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
5092 @param expand flag indicating to expand all folds
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5093 @type bool
832
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
5094 """
eb5ff61f927b Added a checker for PEP 8 compliance.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 826
diff changeset
5095 self.setCursorPosition(line - 1, pos - 1)
1897
4c89af5a756f Little improvement to the editor assembly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1831
diff changeset
5096 if firstVisible:
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5097 self.ensureVisibleTop(line, expand)
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5098 else:
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
5099 self.ensureVisible(line, expand)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5100
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5101 @pyqtSlot()
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5102 def __textChanged(self):
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5103 """
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5104 Private slot to handle a change of the editor text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5105
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5106 This slot defers the handling to the next time the event loop
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5107 is run in order to ensure, that cursor position has been updated
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5108 by the underlying Scintilla editor.
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5109 """
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5110 QTimer.singleShot(0, self.__saveLastEditPosition)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5111
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5112 @pyqtSlot()
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5113 def __saveLastEditPosition(self):
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5114 """
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5115 Private slot to record the last edit position.
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5116 """
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5117 self.__lastEditPosition = self.getCursorPosition()
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5118 self.lastEditPositionAvailable.emit()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5119
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5120 def isLastEditPositionAvailable(self):
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5121 """
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5122 Public method to check, if a last edit position is available.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5123
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5124 @return flag indicating availability
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5125 @rtype bool
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5126 """
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5127 return self.__lastEditPosition is not None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5128
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5129 def gotoLastEditPosition(self):
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5130 """
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5131 Public method to move the cursor to the last edit position.
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5132 """
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5133 self.setCursorPosition(*self.__lastEditPosition)
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5134 self.ensureVisible(self.__lastEditPosition[0])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5135
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5136 def gotoMethodClass(self, goUp=False):
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5137 """
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5138 Public method to go to the next Python method or class definition.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5139
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5140 @param goUp flag indicating the move direction
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5141 @type bool
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5142 """
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
5143 if self.isPyFile() or self.isRubyFile():
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5144 lineNo = self.getCursorPosition()[0]
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5145 line = self.text(lineNo)
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5146 if line.strip().startswith(("class ", "def ", "module ")):
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5147 if goUp:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5148 lineNo -= 1
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5149 else:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5150 lineNo += 1
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5151 while True:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5152 if goUp and lineNo < 0:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5153 self.setCursorPosition(0, 0)
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5154 self.ensureVisible(0)
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5155 return
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5156 elif not goUp and lineNo == self.lines():
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5157 lineNo = self.lines() - 1
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5158 self.setCursorPosition(lineNo, self.lineLength(lineNo))
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5159 self.ensureVisible(lineNo)
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5160 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5161
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5162 line = self.text(lineNo)
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5163 if line.strip().startswith(("class ", "def ", "module ")):
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5164 # try 'def ' first because it occurs more often
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5165 first = line.find("def ")
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5166 if first > -1:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5167 first += 4
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5168 else:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5169 first = line.find("class ")
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5170 if first > -1:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5171 first += 6
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5172 else:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5173 first = line.find("module ") + 7
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5174 match = re.search("[:(]", line)
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5175 if match:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5176 end = match.start()
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5177 else:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5178 end = self.lineLength(lineNo) - 1
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5179 self.setSelection(lineNo, first, lineNo, end)
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5180 self.ensureVisible(lineNo)
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5181 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5182
1169
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5183 if goUp:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5184 lineNo -= 1
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5185 else:
36a3bb21e6e6 Added editor actions to go to the last edit location and to the previous or next Python or Ruby class or method definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
5186 lineNo += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5187
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5188 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5189 ## Setup methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5190 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5191
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5192 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5193 def readSettings(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5194 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5195 Public slot to read the settings into our lexer.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5196 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5197 # read the lexer settings and reinit the properties
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5198 if self.lexer_ is not None:
8637
394377638256 Replaced the direct access to 'Preferences.Prefs.settings' with 'Preferences.getSettings()'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8607
diff changeset
5199 self.lexer_.readSettings(Preferences.getSettings(), "Scintilla")
6858
9d962e654978 Corrected the SubstyledLexer.hasSubStyle() method to SubstyledLexer.hasSubstyle() to be consistent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6845
diff changeset
5200 if self.lexer_.hasSubstyles():
6845
4680adb641e0 Lexer: implemented basic support for sub-styles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6843
diff changeset
5201 self.lexer_.readSubstyles(self)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5202 self.lexer_.initProperties()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5203
1566
0cb791cc631a Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1518
diff changeset
5204 self.lexer_.setDefaultColor(self.lexer_.color(0))
0cb791cc631a Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1518
diff changeset
5205 self.lexer_.setDefaultPaper(self.lexer_.paper(0))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5206
4227
8a39c8b968f4 Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4201
diff changeset
5207 self.__bindLexer(self.fileName)
8a39c8b968f4 Fixed an issue with the API auto-prepare function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4201
diff changeset
5208 self.recolor()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5209
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5210 # read the typing completer settings
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5211 if self.completer is not None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5212 self.completer.readSettings()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5213
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5214 # set the line marker colours or pixmap
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5215 if Preferences.getEditor("LineMarkersBackground"):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5216 self.markerDefine(QsciScintilla.MarkerSymbol.Background, self.currentline)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5217 self.markerDefine(QsciScintilla.MarkerSymbol.Background, self.errorline)
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5218 self.__setLineMarkerColours()
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5219 else:
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5220 self.markerDefine(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
5221 EricPixmapCache.getPixmap("currentLineMarker"), self.currentline
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5222 )
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5223 self.markerDefine(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
5224 EricPixmapCache.getPixmap("errorLineMarker"), self.errorline
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5225 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5226
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5227 # set the text display
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5228 self.__setTextDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5229
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5230 # set margin 0 and 2 configuration
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5231 self.__setMarginsDisplay()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5232
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5233 # set the auto-completion function
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5234 self.__acCache.setSize(Preferences.getEditor("AutoCompletionCacheSize"))
5909
21d90a3abc7c Added a timeout configuration value to the completions cache after which completions will be removed from the cache.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5907
diff changeset
5235 self.__acCache.setMaximumCacheTime(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5236 Preferences.getEditor("AutoCompletionCacheTime")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5237 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5238 self.__acCacheEnabled = Preferences.getEditor("AutoCompletionCacheEnabled")
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5239 acTimeout = Preferences.getEditor("AutoCompletionTimeout")
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5240 if acTimeout != self.__acTimer.interval:
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5241 self.__acTimer.setInterval(acTimeout)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5242 self.__setAutoCompletion()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5243
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5244 # set the calltips function
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5245 self.__setCallTips()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5246
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5247 # set the autosave flags
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
5248 self.__autosaveInterval = Preferences.getEditor("AutosaveIntervalSeconds")
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
5249 if self.__autosaveInterval == 0:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
5250 self.__autosaveTimer.stop()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
5251 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
5252 if self.isModified():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
5253 self.__autosaveTimer.start(self.__autosaveInterval * 1000)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5254
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5255 if Preferences.getEditor("MiniContextMenu") != self.miniMenu:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5256 # regenerate context menu
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5257 self.__initContextMenu()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5258 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5259 # set checked context menu items
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
5260 self.menuActs["AutoCompletionEnable"].setChecked(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5261 self.autoCompletionThreshold() != -1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5262 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5263 self.menuActs["MonospacedFont"].setChecked(self.useMonospaced)
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
5264 self.menuActs["AutosaveEnable"].setChecked(
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
5265 self.__autosaveInterval > 0 and not self.__autosaveManuallyDisabled
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5266 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5267
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5268 # regenerate the margins context menu(s)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5269 self.__initContextMenuMargins()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5270
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5271 if Preferences.getEditor("MarkOccurrencesEnabled"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5272 self.__markOccurrencesTimer.setInterval(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5273 Preferences.getEditor("MarkOccurrencesTimeout")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5274 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5275 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5276 self.__markOccurrencesTimer.stop()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5277 self.clearSearchIndicators()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5278
1353
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
5279 if Preferences.getEditor("OnlineSyntaxCheck"):
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
5280 self.__onlineSyntaxCheckTimer.setInterval(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5281 Preferences.getEditor("OnlineSyntaxCheckInterval") * 1000
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5282 )
1353
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
5283 else:
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
5284 self.__onlineSyntaxCheckTimer.stop()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5285
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
5286 if Preferences.getEditor("OnlineChangeTrace"):
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
5287 self.__onlineChangeTraceTimer.setInterval(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5288 Preferences.getEditor("OnlineChangeTraceInterval")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5289 )
2162
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
5290 else:
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
5291 self.__onlineChangeTraceTimer.stop()
4627e6ea7b6b Added capability to mark changed lines and to navigate between them to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2084
diff changeset
5292 self.__deleteAllChangeMarkers()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5293 self.markerDefine(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5294 self.__createChangeMarkerPixmap("OnlineChangeTraceMarkerUnsaved"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5295 self.__changeMarkerUnsaved,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5296 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5297 self.markerDefine(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5298 self.__createChangeMarkerPixmap("OnlineChangeTraceMarkerSaved"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5299 self.__changeMarkerSaved,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5300 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5301
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
5302 # refresh the annotations display
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
5303 self.__refreshAnnotations()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5304
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5305 self.__markerMap.setMapPosition(Preferences.getEditor("ShowMarkerMapOnRight"))
3341
7c015811fc4d Finished implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3329
diff changeset
5306 self.__markerMap.initColors()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5307
8471
e1f001ffdce4 Editor: fixed an issue causing in endless loop when a split editor was shown and editor settings (or any other) was changed. Should fix issue397 as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8441
diff changeset
5308 self.setLanguage(self.fileName, propagate=False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5309
5416
16366120b523 Added an option to hide the format buttons bar, if formatting is not supported for the editor text type (only supported for HTML, Markdown and reStructured Text).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
5310 self.settingsRead.emit()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5311
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5312 def __setLineMarkerColours(self):
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5313 """
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5314 Private method to set the line marker colours.
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5315 """
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5316 self.setMarkerForegroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5317 Preferences.getEditorColour("CurrentMarker"), self.currentline
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5318 )
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5319 self.setMarkerBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5320 Preferences.getEditorColour("CurrentMarker"), self.currentline
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5321 )
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5322 self.setMarkerForegroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5323 Preferences.getEditorColour("ErrorMarker"), self.errorline
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5324 )
5733
aed3e558407f Reintroduced the highlighting of current instruction line and the error line using colored background. It is configurable whether to use these backgrounds or the arrows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5706
diff changeset
5325 self.setMarkerBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5326 Preferences.getEditorColour("ErrorMarker"), self.errorline
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5327 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5328
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5329 def __setMarginsDisplay(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5330 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5331 Private method to configure margins 0 and 2.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5332 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5333 # set the settings for all margins
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5334 self.setMarginsFont(Preferences.getEditorOtherFonts("MarginsFont"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5335 self.setMarginsForegroundColor(Preferences.getEditorColour("MarginsForeground"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5336 self.setMarginsBackgroundColor(Preferences.getEditorColour("MarginsBackground"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5337
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5338 # reset standard margins settings
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5339 for margin in range(5):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5340 self.setMarginLineNumbers(margin, False)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5341 self.setMarginMarkerMask(margin, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5342 self.setMarginWidth(margin, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5343 self.setMarginSensitivity(margin, False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5344
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5345 # set marker margin(s) settings
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5346 self.__bmMargin = 0
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5347 self.__linenoMargin = 1
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5348 self.__bpMargin = 2
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5349 self.__foldMargin = 3
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5350 self.__indicMargin = 4
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5351
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5352 marginBmMask = 1 << self.bookmark
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5353 self.setMarginWidth(self.__bmMargin, 16)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5354 self.setMarginSensitivity(self.__bmMargin, True)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5355 self.setMarginMarkerMask(self.__bmMargin, marginBmMask)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5356
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5357 marginBpMask = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5358 (1 << self.breakpoint)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5359 | (1 << self.cbreakpoint)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5360 | (1 << self.tbreakpoint)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5361 | (1 << self.tcbreakpoint)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5362 | (1 << self.dbreakpoint)
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5363 )
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5364 self.setMarginWidth(self.__bpMargin, 16)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5365 self.setMarginSensitivity(self.__bpMargin, True)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5366 self.setMarginMarkerMask(self.__bpMargin, marginBpMask)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5367
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5368 marginIndicMask = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5369 (1 << self.syntaxerror)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5370 | (1 << self.notcovered)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5371 | (1 << self.taskmarker)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5372 | (1 << self.warning)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5373 | (1 << self.__changeMarkerUnsaved)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5374 | (1 << self.__changeMarkerSaved)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5375 | (1 << self.currentline)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5376 | (1 << self.errorline)
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5377 )
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5378 self.setMarginWidth(self.__indicMargin, 16)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5379 self.setMarginSensitivity(self.__indicMargin, True)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
5380 self.setMarginMarkerMask(self.__indicMargin, marginIndicMask)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5381
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5382 # set linenumber margin settings
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5383 linenoMargin = Preferences.getEditor("LinenoMargin")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5384 self.setMarginLineNumbers(self.__linenoMargin, linenoMargin)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5385 if linenoMargin:
2640
dedcd4f987e0 Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2632
diff changeset
5386 self.__resizeLinenoMargin()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5387 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5388 self.setMarginWidth(self.__linenoMargin, 0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5389
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5390 # set folding margin settings
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5391 if Preferences.getEditor("FoldingMargin"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5392 self.setMarginWidth(self.__foldMargin, 16)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5393 folding = Preferences.getEditor("FoldingStyle")
342
360c4eb76d6c Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
5394 self.setFolding(folding, self.__foldMargin)
360c4eb76d6c Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
5395 self.setFoldMarginColors(
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
5396 Preferences.getEditorColour("FoldmarginBackground"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5397 Preferences.getEditorColour("FoldmarginBackground"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5398 )
342
360c4eb76d6c Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
5399 self.setFoldMarkersColors(
360c4eb76d6c Added capability to configure the colors of the foldmarkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 253
diff changeset
5400 Preferences.getEditorColour("FoldMarkersForeground"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5401 Preferences.getEditorColour("FoldMarkersBackground"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5402 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5403 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5404 self.setMarginWidth(self.__foldMargin, 0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5405 self.setFolding(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5406 QsciScintilla.FoldStyle.NoFoldStyle.value, self.__foldMargin
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5407 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5408
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5409 @pyqtSlot()
2640
dedcd4f987e0 Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2632
diff changeset
5410 def __resizeLinenoMargin(self):
dedcd4f987e0 Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2632
diff changeset
5411 """
dedcd4f987e0 Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2632
diff changeset
5412 Private slot to resize the line numbers margin.
dedcd4f987e0 Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2632
diff changeset
5413 """
dedcd4f987e0 Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2632
diff changeset
5414 linenoMargin = Preferences.getEditor("LinenoMargin")
dedcd4f987e0 Changed the line numbers margin to adjust themselves to the size needed (Editor, Mini Editor, Shell).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2632
diff changeset
5415 if linenoMargin:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5416 self.setMarginWidth(self.__linenoMargin, "8" * (len(str(self.lines())) + 1))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5417
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5418 def __setTabAndIndent(self):
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5419 """
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5420 Private method to set indentation size and style and tab width.
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5421 """
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5422 self.setTabWidth(self.__getEditorConfig("TabWidth"))
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5423 self.setIndentationWidth(self.__getEditorConfig("IndentWidth"))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5424 if self.lexer_ and self.lexer_.alwaysKeepTabs():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5425 self.setIndentationsUseTabs(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5426 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5427 self.setIndentationsUseTabs(self.__getEditorConfig("TabForIndentation"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5428
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5429 def __setTextDisplay(self):
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5430 """
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5431 Private method to configure the text display.
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5432 """
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5433 self.__setTabAndIndent()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5434
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5435 self.setTabIndents(Preferences.getEditor("TabIndents"))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5436 self.setBackspaceUnindents(Preferences.getEditor("TabIndents"))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5437 self.setIndentationGuides(Preferences.getEditor("IndentationGuides"))
4176
4c09d3d75768 Added capability to configure the indentation guides colors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4170
diff changeset
5438 self.setIndentationGuidesBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5439 Preferences.getEditorColour("IndentationGuidesBackground")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5440 )
4176
4c09d3d75768 Added capability to configure the indentation guides colors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4170
diff changeset
5441 self.setIndentationGuidesForegroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5442 Preferences.getEditorColour("IndentationGuidesForeground")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5443 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5444 if Preferences.getEditor("ShowWhitespace"):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5445 self.setWhitespaceVisibility(QsciScintilla.WhitespaceVisibility.WsVisible)
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
5446 with contextlib.suppress(AttributeError):
939
10d3a201cd27 Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 938
diff changeset
5447 self.setWhitespaceForegroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5448 Preferences.getEditorColour("WhitespaceForeground")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5449 )
939
10d3a201cd27 Added configuration options for visible whitespace (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 938
diff changeset
5450 self.setWhitespaceBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5451 Preferences.getEditorColour("WhitespaceBackground")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5452 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5453 self.setWhitespaceSize(Preferences.getEditor("WhitespaceSize"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5454 else:
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5455 self.setWhitespaceVisibility(QsciScintilla.WhitespaceVisibility.WsInvisible)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5456 self.setEolVisibility(Preferences.getEditor("ShowEOL"))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5457 self.setAutoIndent(Preferences.getEditor("AutoIndentation"))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5458 if Preferences.getEditor("BraceHighlighting"):
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5459 self.setBraceMatching(QsciScintilla.BraceMatch.SloppyBraceMatch)
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5460 else:
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5461 self.setBraceMatching(QsciScintilla.BraceMatch.NoBraceMatch)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5462 self.setMatchedBraceForegroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5463 Preferences.getEditorColour("MatchingBrace")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5464 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5465 self.setMatchedBraceBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5466 Preferences.getEditorColour("MatchingBraceBack")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5467 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5468 self.setUnmatchedBraceForegroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5469 Preferences.getEditorColour("NonmatchingBrace")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5470 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5471 self.setUnmatchedBraceBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5472 Preferences.getEditorColour("NonmatchingBraceBack")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5473 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5474 if Preferences.getEditor("CustomSelectionColours"):
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
5475 self.setSelectionBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5476 Preferences.getEditorColour("SelectionBackground")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5477 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5478 else:
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
5479 self.setSelectionBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5480 QApplication.palette().color(QPalette.ColorRole.Highlight)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5481 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5482 if Preferences.getEditor("ColourizeSelText"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5483 self.resetSelectionForegroundColor()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5484 elif Preferences.getEditor("CustomSelectionColours"):
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
5485 self.setSelectionForegroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5486 Preferences.getEditorColour("SelectionForeground")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5487 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5488 else:
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
5489 self.setSelectionForegroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5490 QApplication.palette().color(QPalette.ColorRole.HighlightedText)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5491 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5492 self.setSelectionToEol(Preferences.getEditor("ExtendSelectionToEol"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5493 self.setCaretForegroundColor(Preferences.getEditorColour("CaretForeground"))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5494 self.setCaretLineBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5495 Preferences.getEditorColour("CaretLineBackground")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5496 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5497 self.setCaretLineVisible(Preferences.getEditor("CaretLineVisible"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5498 self.setCaretLineAlwaysVisible(Preferences.getEditor("CaretLineAlwaysVisible"))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5499 self.caretWidth = Preferences.getEditor("CaretWidth")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5500 self.setCaretWidth(self.caretWidth)
6843
5e1afd1577b9 Editor: added these capabilities
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6842
diff changeset
5501 self.caretLineFrameWidth = Preferences.getEditor("CaretLineFrameWidth")
7746
12d5e1e6abd1 QScintilla: pushed required QScintilla version to 2.11.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7730
diff changeset
5502 self.setCaretLineFrameWidth(self.caretLineFrameWidth)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5503 self.useMonospaced = Preferences.getEditor("UseMonospacedFont")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5504 self.setMonospaced(self.useMonospaced)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5505 edgeMode = Preferences.getEditor("EdgeMode")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5506 edge = QsciScintilla.EdgeMode(edgeMode)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5507 self.setEdgeMode(edge)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5508 if edgeMode:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5509 self.setEdgeColumn(Preferences.getEditor("EdgeColumn"))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5510 self.setEdgeColor(Preferences.getEditorColour("Edge"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5511
2262
2371836c3c45 Made some more adjustments for QScintilla 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2261
diff changeset
5512 wrapVisualFlag = Preferences.getEditor("WrapVisualFlag")
2371836c3c45 Made some more adjustments for QScintilla 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2261
diff changeset
5513 self.setWrapMode(Preferences.getEditor("WrapLongLinesMode"))
2371836c3c45 Made some more adjustments for QScintilla 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2261
diff changeset
5514 self.setWrapVisualFlags(wrapVisualFlag, wrapVisualFlag)
6842
c83dcb7c6147 Editor, MiniEditor: added capability to configure the subline indentation for wrapped lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6809
diff changeset
5515 self.setWrapIndentMode(Preferences.getEditor("WrapIndentMode"))
6843
5e1afd1577b9 Editor: added these capabilities
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6842
diff changeset
5516 self.setWrapStartIndent(Preferences.getEditor("WrapStartIndent"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5517
230
2cde09c26384 Added code to configure the zoom factor a file is opened with.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 206
diff changeset
5518 self.zoomTo(Preferences.getEditor("ZoomFactor"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5519
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5520 self.searchIndicator = QsciScintilla.INDIC_CONTAINER
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
5521 self.indicatorDefine(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5522 self.searchIndicator,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5523 QsciScintilla.INDIC_BOX,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5524 Preferences.getEditorColour("SearchMarkers"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5525 )
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5526 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5527 not Preferences.getEditor("SearchMarkersEnabled")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5528 and not Preferences.getEditor("QuickSearchMarkersEnabled")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5529 and not Preferences.getEditor("MarkOccurrencesEnabled")
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5530 ):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5531 self.clearAllIndicators(self.searchIndicator)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5532
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5533 self.spellingIndicator = QsciScintilla.INDIC_CONTAINER + 1
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5534 self.indicatorDefine(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5535 self.spellingIndicator,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5536 QsciScintilla.INDIC_SQUIGGLE,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5537 Preferences.getEditorColour("SpellingMarkers"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5538 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5539 self.__setSpelling()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5540
6932
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
5541 self.highlightIndicator = QsciScintilla.INDIC_CONTAINER + 2
8a3df4c6ac9a Continued implementing the Python AST Viewer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6930
diff changeset
5542 self.indicatorDefine(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5543 self.highlightIndicator,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5544 QsciScintilla.INDIC_FULLBOX,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5545 Preferences.getEditorColour("HighlightMarker"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5546 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5547
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
5548 self.searchSelectionIndicator = QsciScintilla.INDIC_CONTAINER + 3
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
5549 self.indicatorDefine(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
5550 self.searchSelectionIndicator,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
5551 QsciScintilla.INDIC_FULLBOX,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
5552 Preferences.getEditorColour("SearchSelectionMarker"),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
5553 )
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9926
diff changeset
5554
404
44a541bea034 Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 342
diff changeset
5555 self.setCursorFlashTime(QApplication.cursorFlashTime())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5556
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
5557 with contextlib.suppress(AttributeError):
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
5558 if Preferences.getEditor("AnnotationsEnabled"):
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5559 self.setAnnotationDisplay(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5560 QsciScintilla.AnnotationDisplay.AnnotationBoxed
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5561 )
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
5562 else:
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5563 self.setAnnotationDisplay(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5564 QsciScintilla.AnnotationDisplay.AnnotationHidden
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5565 )
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
5566 self.__setAnnotationStyles()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5567
1566
0cb791cc631a Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1518
diff changeset
5568 if Preferences.getEditor("OverrideEditAreaColours"):
0cb791cc631a Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1518
diff changeset
5569 self.setColor(Preferences.getEditorColour("EditAreaForeground"))
0cb791cc631a Fixed the issue where a non matching background was shown in the editor for lines below the end of the text, if a lexer with a non-standard background was set.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1518
diff changeset
5570 self.setPaper(Preferences.getEditorColour("EditAreaBackground"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5571
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5572 self.setVirtualSpaceOptions(Preferences.getEditor("VirtualSpaceOptions"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5573
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
5574 if Preferences.getEditor("MouseHoverHelp"):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5575 self.SendScintilla(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5576 QsciScintilla.SCI_SETMOUSEDWELLTIME,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5577 Preferences.getEditor("MouseHoverTimeout"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5578 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5579 else:
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5580 self.SendScintilla(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5581 QsciScintilla.SCI_SETMOUSEDWELLTIME, QsciScintilla.SC_TIME_FOREVER
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5582 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5583
10257
904c71a0e37f Modified some preferences default values to better reflect common user expectations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10244
diff changeset
5584 self.setRectangularSelectionModifier(
904c71a0e37f Modified some preferences default values to better reflect common user expectations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10244
diff changeset
5585 Preferences.getEditor("RectangularSelectionModifier")
904c71a0e37f Modified some preferences default values to better reflect common user expectations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10244
diff changeset
5586 )
904c71a0e37f Modified some preferences default values to better reflect common user expectations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10244
diff changeset
5587
8165
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8158
diff changeset
5588 # to avoid errors due to line endings by pasting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8158
diff changeset
5589 self.SendScintilla(QsciScintilla.SCI_SETPASTECONVERTENDINGS, True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5590
10244
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10188
diff changeset
5591 self.setPrintColorMode(Preferences.getEditor("PrintColorMode"))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10188
diff changeset
5592
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
5593 self.__markerMap.setEnabled(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5594
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5595 def __setEolMode(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5596 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5597 Private method to configure the eol mode of the editor.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5598 """
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5599 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5600 self.fileName
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5601 and self.project.isOpen()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5602 and self.project.isProjectFile(self.fileName)
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5603 ):
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5604 eolMode = self.__getEditorConfig("EOLMode", nodefault=True)
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
5605 if eolMode is None:
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5606 eolStr = self.project.getEolString()
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5607 self.setEolModeByEolString(eolStr)
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5608 else:
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
5609 self.setEolMode(eolMode)
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
5610 else:
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
5611 eolMode = self.__getEditorConfig("EOLMode")
253
3ccdf551bde7 Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 252
diff changeset
5612 self.setEolMode(eolMode)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5613 self.__eolChanged()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5614
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5615 def __setAutoCompletion(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5616 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5617 Private method to configure the autocompletion function.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5618 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5619 if self.lexer_:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5620 self.setAutoCompletionFillupsEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5621 Preferences.getEditor("AutoCompletionFillups")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5622 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5623 self.setAutoCompletionCaseSensitivity(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5624 Preferences.getEditor("AutoCompletionCaseSensitivity")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5625 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5626 self.setAutoCompletionReplaceWord(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5627 Preferences.getEditor("AutoCompletionReplaceWord")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5628 )
6306
af71f34a0cfb Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6305
diff changeset
5629 self.setAutoCompletionThreshold(0)
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
5630 if Preferences.getEditor("AutoCompletionShowSingle"):
971
1243c600ba57 Added a compatibilitiy fix for QScintilla 2.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 954
diff changeset
5631 self.setAutoCompletionUseSingle(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5632 QsciScintilla.AutoCompletionUseSingle.AcusAlways
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5633 )
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
5634 else:
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
5635 self.setAutoCompletionUseSingle(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5636 QsciScintilla.AutoCompletionUseSingle.AcusNever
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5637 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5638 autoCompletionSource = Preferences.getEditor("AutoCompletionSource")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5639 if autoCompletionSource == QsciScintilla.AutoCompletionSource.AcsDocument:
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5640 self.setAutoCompletionSource(QsciScintilla.AutoCompletionSource.AcsDocument)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5641 elif autoCompletionSource == QsciScintilla.AutoCompletionSource.AcsAPIs:
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5642 self.setAutoCompletionSource(QsciScintilla.AutoCompletionSource.AcsAPIs)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5643 else:
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5644 self.setAutoCompletionSource(QsciScintilla.AutoCompletionSource.AcsAll)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5645
8481
02865597d820 QsciScintillaCompat: fixed an issue causing completion lists to go off-screen.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8471
diff changeset
5646 self.setAutoCompletionWidgetSize(
02865597d820 QsciScintillaCompat: fixed an issue causing completion lists to go off-screen.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8471
diff changeset
5647 Preferences.getEditor("AutoCompletionMaxChars"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5648 Preferences.getEditor("AutoCompletionMaxLines"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5649 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5650
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5651 def __setCallTips(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5652 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5653 Private method to configure the calltips function.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5654 """
4201
2a9316cb3fad Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4176
diff changeset
5655 self.setCallTipsBackgroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5656 Preferences.getEditorColour("CallTipsBackground")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5657 )
7536
861e46f99d65 Editor, Shell: added configuration option for the calltips foreground and highlight color.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
5658 self.setCallTipsForegroundColor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5659 Preferences.getEditorColour("CallTipsForeground")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5660 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5661 self.setCallTipsHighlightColor(Preferences.getEditorColour("CallTipsHighlight"))
4201
2a9316cb3fad Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4176
diff changeset
5662 self.setCallTipsVisible(Preferences.getEditor("CallTipsVisible"))
2a9316cb3fad Fixed an issue causing wrong display of manually invoked calltips when auto-caltips were disabled.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4176
diff changeset
5663 calltipsStyle = Preferences.getEditor("CallTipsStyle")
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
5664 with contextlib.suppress(AttributeError):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5665 self.setCallTipsPosition(Preferences.getEditor("CallTipsPosition"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5666
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5667 if Preferences.getEditor("CallTipsEnabled"):
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5668 if calltipsStyle == QsciScintilla.CallTipsStyle.CallTipsNoContext:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5669 self.setCallTipsStyle(QsciScintilla.CallTipsStyle.CallTipsNoContext)
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5670 elif (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5671 calltipsStyle
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5672 == QsciScintilla.CallTipsStyle.CallTipsNoAutoCompletionContext
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5673 ):
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5674 self.setCallTipsStyle(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5675 QsciScintilla.CallTipsStyle.CallTipsNoAutoCompletionContext
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5676 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5677 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5678 self.setCallTipsStyle(QsciScintilla.CallTipsStyle.CallTipsContext)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5679 else:
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5680 self.setCallTipsStyle(QsciScintilla.CallTipsStyle.CallTipsNone)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5681
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5682 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5683 ## Autocompletion handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5684 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5685
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5686 def canAutoCompleteFromAPIs(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5687 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5688 Public method to check for API availablity.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5689
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5690 @return flag indicating autocompletion from APIs is available
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5691 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5692 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5693 return self.acAPI
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5694
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5695 def autoCompleteQScintilla(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5696 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5697 Public method to perform an autocompletion using QScintilla methods.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5698 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5699 self.__acText = " " # Prevent long running ACs to add results
5932
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
5700 self.__acWatchdog.stop()
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
5701 if self.__acCompletions:
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
5702 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5703
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5704 acs = Preferences.getEditor("AutoCompletionSource")
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5705 if acs == QsciScintilla.AutoCompletionSource.AcsDocument:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5706 self.autoCompleteFromDocument()
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5707 elif acs == QsciScintilla.AutoCompletionSource.AcsAPIs:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5708 self.autoCompleteFromAPIs()
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5709 elif acs == QsciScintilla.AutoCompletionSource.AcsAll:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5710 self.autoCompleteFromAll()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5711 else:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
5712 EricMessageBox.information(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
5713 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
5714 self.tr("Autocompletion"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
5715 self.tr(
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
5716 """Autocompletion is not available because"""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5717 """ there is no autocompletion source set."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5718 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5719 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5720
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5721 def setAutoCompletionEnabled(self, enable):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5722 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5723 Public method to enable/disable autocompletion.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5724
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5725 @param enable flag indicating the desired autocompletion status
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5726 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5727 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5728 if enable:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5729 autoCompletionSource = Preferences.getEditor("AutoCompletionSource")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5730 if autoCompletionSource == QsciScintilla.AutoCompletionSource.AcsDocument:
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5731 self.setAutoCompletionSource(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5732 QsciScintilla.AutoCompletionSource.AcsDocument
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5733 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5734 elif autoCompletionSource == QsciScintilla.AutoCompletionSource.AcsAPIs:
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5735 self.setAutoCompletionSource(QsciScintilla.AutoCompletionSource.AcsAPIs)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5736 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5737 self.setAutoCompletionSource(QsciScintilla.AutoCompletionSource.AcsAll)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5738
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5739 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5740 def __toggleAutoCompletionEnable(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5741 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5742 Private slot to handle the Enable Autocompletion context menu entry.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5743 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5744 if self.menuActs["AutoCompletionEnable"].isChecked():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5745 self.setAutoCompletionEnabled(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5746 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5747 self.setAutoCompletionEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5748
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5749 #################################################################
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5750 ## Support for autocompletion hook methods
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5751 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5752
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5753 @pyqtSlot(int)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5754 def __charAdded(self, charNumber):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5755 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3583
diff changeset
5756 Private slot called to handle the user entering a character.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5757
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5758 @param charNumber value of the character entered
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5759 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5760 """
6306
af71f34a0cfb Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6305
diff changeset
5761 char = chr(charNumber)
af71f34a0cfb Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6305
diff changeset
5762 # update code documentation viewer
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5763 if char == "(" and Preferences.getDocuViewer("ShowInfoOnOpenParenthesis"):
6306
af71f34a0cfb Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6305
diff changeset
5764 self.vm.showEditorInfo(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5765
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
5766 self.__delayedDocstringMenuPopup(self.getCursorPosition())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5767
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5768 if self.isListActive():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5769 if self.__isStartChar(char):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5770 self.cancelList()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
5771 self.autoComplete(auto=True, context=True)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5772 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5773 elif char == "(":
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5774 self.cancelList()
6030
63d1c50b637d Little fix for an auto-completion issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6025
diff changeset
5775 else:
63d1c50b637d Little fix for an auto-completion issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6025
diff changeset
5776 self.__acTimer.stop()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5777
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5778 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5779 self.callTipsStyle() != QsciScintilla.CallTipsStyle.CallTipsNone
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5780 and self.lexer_ is not None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5781 and chr(charNumber) in "()"
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5782 ):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5783 self.callTip()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5784
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5785 if not self.isCallTipActive():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5786 char = chr(charNumber)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5787 if self.__isStartChar(char):
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
5788 self.autoComplete(auto=True, context=True)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5789 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5790
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5791 line, col = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5792 txt = self.getWordLeft(line, col)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5793 if len(txt) >= Preferences.getEditor("AutoCompletionThreshold"):
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
5794 self.autoComplete(auto=True, context=False)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5795 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5796
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5797 def __isStartChar(self, ch):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5798 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5799 Private method to check, if a character is an autocompletion start
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
5800 character.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5801
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5802 @param ch character to be checked
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5803 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5804 @return flag indicating the result
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5805 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5806 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5807 if self.lexer_ is None:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5808 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5809
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5810 wseps = self.lexer_.autoCompletionWordSeparators()
8221
0572a215bd2f Applied some more code simplifications suggested by the new Simplify checker (Y110, Y111: use any() or all()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8220
diff changeset
5811 return any(wsep.endswith(ch) for wsep in wseps)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5812
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
5813 @pyqtSlot()
6033
967b3e3e5b4d Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6030
diff changeset
5814 def __autocompletionCancelled(self):
967b3e3e5b4d Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6030
diff changeset
5815 """
967b3e3e5b4d Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6030
diff changeset
5816 Private slot to handle the cancellation of an auto-completion list.
967b3e3e5b4d Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6030
diff changeset
5817 """
967b3e3e5b4d Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6030
diff changeset
5818 self.__acWatchdog.stop()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5819
6033
967b3e3e5b4d Fixed cancellation of auto-completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6030
diff changeset
5820 self.__acText = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5821
5881
13381dbbb81e Removed the pre 6.1.0 auto-completion and call-tip hook interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5736
diff changeset
5822 #################################################################
13381dbbb81e Removed the pre 6.1.0 auto-completion and call-tip hook interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5736
diff changeset
5823 ## auto-completion hook interfaces
13381dbbb81e Removed the pre 6.1.0 auto-completion and call-tip hook interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5736
diff changeset
5824 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5825
6247
5c677a7f7d51 Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6210
diff changeset
5826 def addCompletionListHook(self, key, func, asynchroneous=False):
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5827 """
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5828 Public method to set an auto-completion list provider.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5829
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5830 @param key name of the provider
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5831 @type str
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5832 @param func function providing completion list. func
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5833 should be a function taking a reference to the editor and
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5834 a boolean indicating to complete a context. It should return
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5835 the possible completions as a list of strings.
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5836 @type function(editor, bool) -> list of str in case async is False
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5837 and function(editor, bool, str) returning nothing in case async
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5838 is True
6247
5c677a7f7d51 Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6210
diff changeset
5839 @param asynchroneous flag indicating an asynchroneous function
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5840 @type bool
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5841 """
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5842 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5843 key in self.__completionListHookFunctions
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5844 or key in self.__completionListAsyncHookFunctions
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5845 ):
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5846 # it was already registered
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
5847 EricMessageBox.warning(
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5848 self,
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5849 self.tr("Auto-Completion Provider"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5850 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5851 """The completion list provider '{0}' was already"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5852 """ registered. Ignoring duplicate request."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5853 ).format(key),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5854 )
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5855 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5856
6247
5c677a7f7d51 Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6210
diff changeset
5857 if asynchroneous:
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5858 self.__completionListAsyncHookFunctions[key] = func
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5859 else:
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5860 self.__completionListHookFunctions[key] = func
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5861
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5862 def removeCompletionListHook(self, key):
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5863 """
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5864 Public method to remove a previously registered completion list
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5865 provider.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5866
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5867 @param key name of the provider
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5868 @type str
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5869 """
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5870 if key in self.__completionListHookFunctions:
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5871 del self.__completionListHookFunctions[key]
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5872 elif key in self.__completionListAsyncHookFunctions:
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5873 del self.__completionListAsyncHookFunctions[key]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5874
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5875 def getCompletionListHook(self, key):
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5876 """
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5877 Public method to get the registered completion list provider.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5878
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5879 @param key name of the provider
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5880 @type str
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5881 @return function providing completion list
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5882 @rtype function or None
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5883 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5884 return self.__completionListHookFunctions.get(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5885 key
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5886 ) or self.__completionListAsyncHookFunctions.get(key)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5887
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
5888 def autoComplete(self, auto=False, context=True):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5889 """
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5890 Public method to start auto-completion.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5891
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
5892 @param auto flag indicating a call from the __charAdded method
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5893 @type bool
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5894 @param context flag indicating to complete a context
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5895 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5896 """
6306
af71f34a0cfb Enable resizing of auto complete list box for also for QScintilla own completers.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6305
diff changeset
5897 if auto and not Preferences.getEditor("AutoCompletionEnabled"):
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5898 # auto-completion is disabled
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5899 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5900
6025
9dfb5a421a56 Little fix for the editor completion list handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5987
diff changeset
5901 if self.isListActive():
9dfb5a421a56 Little fix for the editor completion list handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5987
diff changeset
5902 self.cancelList()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5903
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5904 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5905 self.__completionListHookFunctions
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5906 or self.__completionListAsyncHookFunctions
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
5907 ):
6809
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5908 # Avoid delayed auto-completion after cursor repositioning
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5909 self.__acText = self.__getAcText()
5916
26a37798aa75 Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5913
diff changeset
5910 if auto and Preferences.getEditor("AutoCompletionTimeout"):
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5911 self.__acTimer.stop()
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5912 self.__acContext = context
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5913 self.__acTimer.start()
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
5914 else:
5916
26a37798aa75 Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5913
diff changeset
5915 self.__autoComplete(auto, context)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5916 elif not auto or (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5917 self.autoCompletionSource() != QsciScintilla.AutoCompletionSource.AcsNone
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
5918 ):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
5919 self.autoCompleteQScintilla()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5920
6809
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5921 def __getAcText(self):
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5922 """
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5923 Private method to get the text from cursor position for autocompleting.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5924
6809
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5925 @return text left of cursor position
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5926 @rtype str
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5927 """
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5928 line, col = self.getCursorPosition()
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5929 text = self.text(line)
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5930 try:
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
5931 acText = (
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
5932 self.getWordLeft(line, col - 1) + text[col - 1]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5933 if self.__isStartChar(text[col - 1])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5934 else self.getWordLeft(line, col)
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
5935 )
6809
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5936 except IndexError:
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5937 acText = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5938
6809
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5939 return acText
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5940
5916
26a37798aa75 Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5913
diff changeset
5941 def __autoComplete(self, auto=True, context=None):
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5942 """
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5943 Private method to start auto-completion via plug-ins.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5944
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
5945 @param auto flag indicating a call from the __charAdded method
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
5946 @type bool
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
5947 @param context flag indicating to complete a context
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5948 @type bool or None
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5949 """
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5950 self.__acCompletions.clear()
5932
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
5951 self.__acCompletionsFinished = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5952
5916
26a37798aa75 Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5913
diff changeset
5953 # Suppress empty completions
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5954 if auto and self.__acText == "":
5916
26a37798aa75 Suppress empty completions. No delay time if auto completion is requested by hotkey.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5913
diff changeset
5955 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5956
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
5957 completions = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5958 self.__acCache.get(self.__acText) if self.__acCacheEnabled else None
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
5959 )
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5960 if completions is not None:
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5961 # show list with cached entries
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5962 if self.isListActive():
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5963 self.cancelList()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5964
5890
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
5965 self.__showCompletionsList(completions)
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5966 else:
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5967 if context is None:
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5968 context = self.__acContext
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5969
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5970 for key in self.__completionListAsyncHookFunctions:
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5971 self.__completionListAsyncHookFunctions[key](
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5972 self, context, self.__acText
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5973 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5974
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5975 for key in self.__completionListHookFunctions:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5976 completions = self.__completionListHookFunctions[key](self, context)
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5977 self.completionsListReady(completions, self.__acText)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5978
5932
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
5979 if Preferences.getEditor("AutoCompletionScintillaOnFail"):
af9aa23e12ec Fallback option for using QScintilla if no auto completion found by plug-ins.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5919
diff changeset
5980 self.__acWatchdog.start()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5981
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5982 def completionsListReady(self, completions, acText):
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5983 """
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5984 Public method to show the completions determined by a completions
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5985 provider.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5986
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5987 @param completions list of possible completions
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
5988 @type list of str or set of str
5886
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5989 @param acText text to be completed
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5990 @type str
ba6d27371e25 Implemented support for asynchroneous completion lists in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5881
diff changeset
5991 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5992 currentWord = self.__getAcText() or " "
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
5993 # process the list only, if not already obsolete ...
6809
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5994 if acText != self.__acText or not self.__acText.endswith(currentWord):
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5995 # Suppress auto-completion done by QScintilla as fallback
d1048e6db7f5 Suppress auto-completions in various circumstances.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 6755
diff changeset
5996 self.__acWatchdog.stop()
5967
da72832f7c22 Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5935
diff changeset
5997 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
5998
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
5999 self.__acCompletions.update(set(completions))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6000
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6001 self.__acCompletionsFinished += 1
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6002 # Got all results from auto completer?
6498
674ac2051e8a Editor: fixed an issue related to auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6493
diff changeset
6003 if self.__acCompletionsFinished >= (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6004 len(self.__completionListAsyncHookFunctions)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6005 + len(self.__completionListHookFunctions)
6498
674ac2051e8a Editor: fixed an issue related to auto completion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6493
diff changeset
6006 ):
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6007 self.__acWatchdog.stop()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6008
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6009 # Autocomplete with QScintilla if no results present
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
6010 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6011 Preferences.getEditor("AutoCompletionScintillaOnFail")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6012 and not self.__acCompletions
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
6013 ):
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6014 self.autoCompleteQScintilla()
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6015 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6016
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6017 # ... or completions are not empty
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6018 if not bool(completions):
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6019 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6020
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6021 if self.isListActive():
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6022 self.cancelList()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6023
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6024 if self.__acCompletions:
6755
009812744917 Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6735
diff changeset
6025 if self.__acCacheEnabled:
009812744917 Editor: added an option to disable the caching of completion results.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6735
diff changeset
6026 self.__acCache.add(acText, set(self.__acCompletions))
5935
1fac1b80b440 Finetuning QScintilla fallback.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 5932
diff changeset
6027 self.__showCompletionsList(self.__acCompletions)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6028
5890
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6029 def __showCompletionsList(self, completions):
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6030 """
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6031 Private method to show the completions list.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6032
5890
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6033 @param completions completions to be shown
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6034 @type list of str or set of str
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6035 """
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
6036 acCompletions = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6037 sorted(completions, key=self.__replaceLeadingUnderscores)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6038 if Preferences.getEditor("AutoCompletionReversedList")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6039 else sorted(completions)
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
6040 )
5890
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6041 self.showUserList(EditorAutoCompletionListID, acCompletions)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6042
5890
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6043 def __replaceLeadingUnderscores(self, txt):
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6044 """
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6045 Private method to replace the first two underlines for invers sorting.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6046
5890
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6047 @param txt completion text
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6048 @type str
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6049 @return modified completion text
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6050 @rtype str
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6051 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6052 if txt.startswith("_"):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6053 return txt[:2].replace("_", "~") + txt[2:]
5890
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6054 else:
22ec89341f5e Made the completions list more intuitive when showing in 'reversed' order.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5888
diff changeset
6055 return txt
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6056
5888
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
6057 def __clearCompletionsCache(self):
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
6058 """
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
6059 Private method to clear the auto-completions cache.
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
6060 """
f23f3d2b7516 Added a cache for the already determined completion lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5887
diff changeset
6061 self.__acCache.clear()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6062
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6063 @pyqtSlot(int, str)
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
6064 def __completionListSelected(self, listId, txt):
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6065 """
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6066 Private slot to handle the selection from the completion list.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6067
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6068 @param listId the ID of the user list (should be 1 or 2)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6069 @type int
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6070 @param txt the selected text
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6071 @type str
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6072 """
8488
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
6073 # custom completions via plug-ins
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
6074 if listId == EditorAutoCompletionListID:
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6075 lst = txt.split()
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6076 if len(lst) > 1:
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6077 txt = lst[0]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6078
10344
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6079 self.beginUndoAction()
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6080 if Preferences.getEditor("AutoCompletionReplaceWord"):
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6081 self.selectCurrentWord()
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6082 self.removeSelectedText()
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6083 line, col = self.getCursorPosition()
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6084 else:
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6085 line, col = self.getCursorPosition()
10345
175e6f023126 Fixed an issue related to 'jedi' completions being inserted twice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10344
diff changeset
6086 wLeft = self.getWord(line, col, 1, forCompletion=True) # word left
10344
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6087 if not txt.startswith(wLeft):
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6088 self.selectCurrentWord()
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6089 self.removeSelectedText()
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6090 line, col = self.getCursorPosition()
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6091 elif wLeft:
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6092 txt = txt[len(wLeft) :]
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6093
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6094 if txt and txt[0] in "'\"":
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6095 # New in jedi 0.16: AC of dict keys
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6096 txt = txt[1:]
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6097 self.insert(txt)
2f2e3294186d Re-fixed the last issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10343
diff changeset
6098 self.endUndoAction()
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6099 self.setCursorPosition(line, col + len(txt))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6100
8488
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
6101 # template completions
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
6102 elif listId == TemplateCompletionListID:
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6103 self.__applyTemplate(txt, self.getLanguage())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6104
8488
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
6105 # 'goto reference' completions
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
6106 elif listId == ReferencesListID:
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
6107 with contextlib.suppress(ValueError, IndexError):
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
6108 index = self.__referencesList.index(txt)
8497
be6e6d321ba7 Editor: corrected the code dealing with 'Goto References'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8488
diff changeset
6109 filename, line, column = self.__referencesPositionsList[index]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6110 self.vm.openSourceFile(filename, lineno=line, pos=column, addNext=True)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6111
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6112 def canProvideDynamicAutoCompletion(self):
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6113 """
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6114 Public method to test the dynamic auto-completion availability.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6115
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6116 @return flag indicating the availability of dynamic auto-completion
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6117 @rtype bool
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6118 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6119 return (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6120 self.acAPI
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6121 or bool(self.__completionListHookFunctions)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6122 or bool(self.__completionListAsyncHookFunctions)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6123 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6124
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6125 #################################################################
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6126 ## call-tip hook interfaces
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6127 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6128
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6129 def addCallTipHook(self, key, func):
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6130 """
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6131 Public method to set a calltip provider.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6132
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6133 @param key name of the provider
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6134 @type str
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6135 @param func function providing calltips. func
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6136 should be a function taking a reference to the editor,
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6137 a position into the text and the amount of commas to the
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6138 left of the cursor. It should return the possible
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6139 calltips as a list of strings.
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6140 @type function(editor, int, int) -> list of str
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6141 """
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6142 if key in self.__ctHookFunctions:
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6143 # it was already registered
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
6144 EricMessageBox.warning(
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6145 self,
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6146 self.tr("Call-Tips Provider"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6147 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6148 """The call-tips provider '{0}' was already"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6149 """ registered. Ignoring duplicate request."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6150 ).format(key),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6151 )
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6152 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6153
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6154 self.__ctHookFunctions[key] = func
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6155
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6156 def removeCallTipHook(self, key):
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6157 """
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6158 Public method to remove a previously registered calltip provider.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6159
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6160 @param key name of the provider
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6161 @type str
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6162 """
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6163 if key in self.__ctHookFunctions:
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6164 del self.__ctHookFunctions[key]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6165
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6166 def getCallTipHook(self, key):
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6167 """
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6168 Public method to get the registered calltip provider.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6169
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6170 @param key name of the provider
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6171 @type str
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6172 @return function providing calltips
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6173 @rtype function or None
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6174 """
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6175 if key in self.__ctHookFunctions:
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6176 return self.__ctHookFunctions[key]
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6177 else:
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6178 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6179
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6180 def canProvideCallTipps(self):
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6181 """
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6182 Public method to test the calltips availability.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6183
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6184 @return flag indicating the availability of calltips
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6185 @rtype bool
5905
f31960634997 Continued implementing a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5900
diff changeset
6186 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6187 return self.acAPI or bool(self.__ctHookFunctions)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6188
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6189 def callTip(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6190 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6191 Public method to show calltips.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6192 """
5881
13381dbbb81e Removed the pre 6.1.0 auto-completion and call-tip hook interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5736
diff changeset
6193 if bool(self.__ctHookFunctions):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6194 self.__callTip()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6195 else:
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
6196 super().callTip()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6197
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6198 def __callTip(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6199 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6200 Private method to show call tips provided by a plugin.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6201 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6202 pos = self.currentPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6203
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6204 # move backward to the start of the current calltip working out
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6205 # which argument to highlight
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6206 commas = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6207 found = False
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6208 ch, pos = self.__getCharacter(pos)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6209 while ch:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6210 if ch == ",":
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6211 commas += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6212 elif ch == ")":
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6213 depth = 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6214
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6215 # ignore everything back to the start of the corresponding
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6216 # parenthesis
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6217 ch, pos = self.__getCharacter(pos)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6218 while ch:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6219 if ch == ")":
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6220 depth += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6221 elif ch == "(":
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6222 depth -= 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6223 if depth == 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6224 break
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
6225 ch, pos = self.__getCharacter(pos)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6226 elif ch == "(":
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6227 found = True
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6228 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6229
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6230 ch, pos = self.__getCharacter(pos)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6231
8581
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
6232 self.cancelCallTips()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6233
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6234 if not found:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6235 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6236
8231
377c24760c37 Editor: fixed an issue providing calltips if no calltip provider is installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8228
diff changeset
6237 callTips = []
4271
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6238 if self.__ctHookFunctions:
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6239 for key in self.__ctHookFunctions:
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6240 callTips.extend(self.__ctHookFunctions[key](self, pos, commas))
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6241 callTips = list(set(callTips))
480434472ac1 Added capability to the editor to ask multiple completion list and call-tip providers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4227
diff changeset
6242 callTips.sort()
8231
377c24760c37 Editor: fixed an issue providing calltips if no calltip provider is installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8228
diff changeset
6243 else:
377c24760c37 Editor: fixed an issue providing calltips if no calltip provider is installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8228
diff changeset
6244 # try QScintilla calltips
377c24760c37 Editor: fixed an issue providing calltips if no calltip provider is installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8228
diff changeset
6245 super().callTip()
377c24760c37 Editor: fixed an issue providing calltips if no calltip provider is installed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8228
diff changeset
6246 return
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6247 if len(callTips) == 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6248 if Preferences.getEditor("CallTipsScintillaOnFail"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6249 # try QScintilla calltips
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
6250 super().callTip()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6251 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6252
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6253 ctshift = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6254 for ct in callTips:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6255 shift = ct.index("(")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6256 if ctshift < shift:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6257 ctshift = shift
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6258
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6259 cv = self.callTipsVisible()
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
6260 ct = (
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6261 # this is just a safe guard
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
6262 self._encodeString("\n".join(callTips[:cv]))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6263 if cv > 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6264 else
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6265 # until here and unindent below
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
6266 self._encodeString("\n".join(callTips))
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8258
diff changeset
6267 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6268
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6269 self.SendScintilla(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6270 QsciScintilla.SCI_CALLTIPSHOW,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6271 self.__adjustedCallTipPosition(ctshift, pos),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6272 ct,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6273 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6274 if b"\n" in ct:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6275 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6276
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6277 # Highlight the current argument
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6278 if commas == 0:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6279 astart = ct.find(b"(")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6280 else:
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6281 astart = ct.find(b",")
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6282 commas -= 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6283 while astart != -1 and commas > 0:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6284 astart = ct.find(b",", astart + 1)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6285 commas -= 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6286
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6287 if astart == -1:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6288 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6289
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6290 depth = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6291 for aend in range(astart + 1, len(ct)):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6292 ch = ct[aend : aend + 1]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6293
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6294 if ch == b"," and depth == 0:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6295 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6296 elif ch == b"(":
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6297 depth += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6298 elif ch == b")":
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6299 if depth == 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6300 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6301
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6302 depth -= 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6303
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6304 if astart != aend:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6305 self.SendScintilla(QsciScintilla.SCI_CALLTIPSETHLT, astart + 1, aend)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6306
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6307 def __adjustedCallTipPosition(self, ctshift, pos):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6308 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6309 Private method to calculate an adjusted position for showing calltips.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6310
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6311 @param ctshift amount the calltip shall be shifted
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6312 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6313 @param pos position into the text
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6314 @type int
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6315 @return new position for the calltip
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6316 @rtype int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6317 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6318 ct = pos
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6319 if ctshift:
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
6320 ctmin = self.SendScintilla(
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
6321 QsciScintilla.SCI_POSITIONFROMLINE,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6322 self.SendScintilla(QsciScintilla.SCI_LINEFROMPOSITION, ct),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6323 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6324 if ct - ctshift < ctmin:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6325 ct = ctmin
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6326 else:
8217
385f60c94548 Applied some more code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8205
diff changeset
6327 ct -= ctshift
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6328 return ct
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6329
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6330 #################################################################
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5897
diff changeset
6331 ## Methods needed by the code documentation viewer
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5897
diff changeset
6332 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6333
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6334 @pyqtSlot()
5907
c928af9fce32 Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
6335 def __showCodeInfo(self):
c928af9fce32 Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
6336 """
c928af9fce32 Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
6337 Private slot to handle the context menu action to show code info.
c928af9fce32 Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
6338 """
c928af9fce32 Added some code info actions to the editor context menu and the Edit main menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5905
diff changeset
6339 self.vm.showEditorInfo(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6340
5900
cd90bfdc1247 Started to implement a viewer for source code documentation extracted by providers to be implemented by plug-ins (like rope and jedi).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5897
diff changeset
6341 #################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6342 ## Methods needed by the context menu
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6343 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6344
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6345 def __marginNumber(self, xPos):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6346 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6347 Private method to calculate the margin number based on a x position.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6348
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6349 @param xPos x position
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6350 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6351 @return margin number (integer, -1 for no margin)
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6352 @rtype int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6353 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6354 width = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6355 for margin in range(5):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6356 width += self.marginWidth(margin)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6357 if xPos <= width:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6358 return margin
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6359 return -1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6360
9643
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6361 @pyqtSlot(QPoint)
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6362 def __showContextMenu(self, pos):
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6363 """
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6364 Private slot to show a context menu.
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6365
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6366 @param pos position for the context menu
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6367 @type QPoint
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6368 """
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6369 if self.__marginNumber(pos.x()) == -1:
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6370 self.spellingMenuPos = self.positionFromPoint(pos)
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
6371 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6372 self.spellingMenuPos >= 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6373 and self.spell is not None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6374 and self.hasIndicator(self.spellingIndicator, self.spellingMenuPos)
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
6375 ):
9643
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6376 self.spellingMenu.popup(self.mapToGlobal(pos))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6377 else:
9643
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6378 self.menu.popup(self.mapToGlobal(pos))
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6379 else:
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6380 self.line = self.lineAt(pos)
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6381 if self.__marginNumber(pos.x()) in [self.__bmMargin, self.__linenoMargin]:
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6382 self.bmMarginMenu.popup(self.mapToGlobal(pos))
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6383 elif self.__marginNumber(pos.x()) == self.__bpMargin:
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6384 self.bpMarginMenu.popup(self.mapToGlobal(pos))
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6385 elif self.__marginNumber(pos.x()) == self.__indicMargin:
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6386 self.indicMarginMenu.popup(self.mapToGlobal(pos))
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6387 elif self.__marginNumber(pos.x()) == self.__foldMargin:
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6388 self.foldMarginMenu.popup(self.mapToGlobal(pos))
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6389
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6390 @pyqtSlot()
9643
10839ab864e0 Changed the use of QContextMenuEvent because it is obsolete as of Qt 6.4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
6391 def __aboutToShowContextMenu(self):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6392 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6393 Private slot handling the aboutToShow signal of the context menu.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6394 """
3395
7e923cf9918f Made the reopen with encoding editor context menu react upon file modification status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3394
diff changeset
6395 self.menuActs["Reopen"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6396 not self.isModified() and bool(self.fileName)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6397 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6398 self.menuActs["Save"].setEnabled(self.isModified())
10550
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6399 self.menuActs["SaveAsRemote"].setEnabled(
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6400 ericApp().getObject("EricServer").isServerConnected()
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6401 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6402 self.menuActs["Undo"].setEnabled(self.isUndoAvailable())
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6403 self.menuActs["Redo"].setEnabled(self.isRedoAvailable())
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6404 self.menuActs["Revert"].setEnabled(self.isModified())
6059
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
6405 self.menuActs["Cut"].setEnabled(self.hasSelectedText())
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
6406 self.menuActs["Copy"].setEnabled(self.hasSelectedText())
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
6407 if self.menuActs["ExecuteSelection"] is not None:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6408 self.menuActs["ExecuteSelection"].setEnabled(self.hasSelectedText())
6059
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
6409 self.menuActs["Paste"].setEnabled(self.canPaste())
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6410 if not self.isResourcesFile:
3446
5a670e55adbb Improved the way the Python variant of a source file is detected (thanks to Tobias Rzepka).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3441
diff changeset
6411 if self.fileName and self.isPyFile():
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6412 self.menuActs["Show"].setEnabled(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6413 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6414 self.menuActs["Show"].setEnabled(False)
10574
622e59b51640 Implemented the profiling and code coverage interface of the dialogs to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10573
diff changeset
6415 # TODO: disable that for server files
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6416 if self.fileName and (self.isPyFile() or self.isRubyFile()):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6417 self.menuActs["Diagrams"].setEnabled(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6418 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6419 self.menuActs["Diagrams"].setEnabled(False)
10574
622e59b51640 Implemented the profiling and code coverage interface of the dialogs to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10573
diff changeset
6420 # TODO: disable 'Check' and 'Code Formatting' for server files
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6421 if not self.miniMenu:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6422 if self.lexer_ is not None:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6423 self.menuActs["Comment"].setEnabled(self.lexer_.canBlockComment())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6424 self.menuActs["Uncomment"].setEnabled(self.lexer_.canBlockComment())
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6425 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6426 self.menuActs["Comment"].setEnabled(False)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6427 self.menuActs["Uncomment"].setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6428
8245
dce55f623991 Editor: fixed an issue related to using the 'mini menu'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
6429 cline = self.getCursorPosition()[0]
dce55f623991 Editor: fixed an issue related to using the 'mini menu'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
6430 line = self.text(cline)
dce55f623991 Editor: fixed an issue related to using the 'mini menu'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
6431 self.menuActs["Docstring"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6432 self.getDocstringGenerator().isFunctionStart(line)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6433 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6434
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6435 self.menuActs["TypingAidsEnabled"].setEnabled(self.completer is not None)
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
6436 self.menuActs["TypingAidsEnabled"].setChecked(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6437 self.completer is not None and self.completer.isEnabled()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6438 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6439
4718
9fcb469d81ae Fixed a few little issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
6440 if not self.isResourcesFile:
5897
ae17b1ae12bb Fixed an issue related to enabling the 'Calltips' action of the editor context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5894
diff changeset
6441 self.menuActs["calltip"].setEnabled(self.canProvideCallTipps())
5911
0c7bcba51391 Added functionality to enable the code info actions only, if the currently selected provider supports the editor language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5909
diff changeset
6442 self.menuActs["codeInfo"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6443 self.vm.isEditorInfoSupported(self.getLanguage())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6444 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6445
3087
fdbce259929f Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3069
diff changeset
6446 self.menuActs["MonospacedFont"].setEnabled(self.lexer_ is None)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6447
3100
1c86bf655433 Added icons to the editor context menu 'New View' entries and gave them better titles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3095
diff changeset
6448 splitOrientation = self.vm.getSplitOrientation()
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
6449 if splitOrientation == Qt.Orientation.Horizontal:
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
6450 self.menuActs["NewSplit"].setIcon(
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
6451 EricPixmapCache.getIcon("splitHorizontal")
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
6452 )
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
6453 else:
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
6454 self.menuActs["NewSplit"].setIcon(EricPixmapCache.getIcon("splitVertical"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6455
4376
7847a37ee71d Little enhancement to the editor context menu to enable the Tools submenu only, if it contains some entries (populated by plug-ins).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4304
diff changeset
6456 self.menuActs["Tools"].setEnabled(not self.toolsMenu.isEmpty())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6457
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
6458 self.showMenu.emit("Main", self.menu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6459
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6460 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6461 def __showContextMenuAutocompletion(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6462 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6463 Private slot called before the autocompletion menu is shown.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6464 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6465 self.menuActs["acDynamic"].setEnabled(self.canProvideDynamicAutoCompletion())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6466 self.menuActs["acClearCache"].setEnabled(self.canProvideDynamicAutoCompletion())
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6467 self.menuActs["acAPI"].setEnabled(self.acAPI)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6468 self.menuActs["acAPIDocument"].setEnabled(self.acAPI)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6469
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
6470 self.showMenu.emit("Autocompletion", self.autocompletionMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6471
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6472 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6473 def __showContextMenuShow(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6474 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6475 Private slot called before the show menu is shown.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6476 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6477 prEnable = False
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6478 coEnable = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6479
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6480 # first check if the file belongs to a project
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
6481 if self.project.isOpen() and self.project.isProjectCategory(
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
6482 self.fileName, "SOURCES"
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
6483 ):
252
05692e3d37bf Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
6484 fn = self.project.getMainScript(True)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6485 if fn is not None:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6486 prEnable = self.project.isPy3Project() and bool(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6487 Utilities.getProfileFileNames(fn)
9092
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
6488 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6489 coEnable = self.project.isPy3Project() and bool(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6490 Utilities.getCoverageFileNames(fn)
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
6491 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6492
6285
045dc4c38701 Corrected a typo in several files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6278
diff changeset
6493 # now check ourselves
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6494 fn = self.getFileName()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6495 if fn is not None:
10570
ae53b96eedbb Fixed an issue in the editor determining which entries to enable in the "Show" context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10517
diff changeset
6496 prEnable |= self.isPyFile() and bool(Utilities.getProfileFileName(fn))
ae53b96eedbb Fixed an issue in the editor determining which entries to enable in the "Show" context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10517
diff changeset
6497 coEnable |= self.isPyFile() and bool(Utilities.getCoverageFileName(fn))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6498
9070
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
6499 coEnable |= bool(self.__coverageFile)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6500
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6501 # now check for syntax errors
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6502 if self.hasSyntaxErrors():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6503 coEnable = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6504
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6505 self.profileMenuAct.setEnabled(prEnable)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6506 self.coverageMenuAct.setEnabled(coEnable)
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
6507 self.coverageShowAnnotationMenuAct.setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6508 coEnable and len(self.notcoveredMarkers) == 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6509 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6510 self.coverageHideAnnotationMenuAct.setEnabled(len(self.notcoveredMarkers) > 0)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6511
10574
622e59b51640 Implemented the profiling and code coverage interface of the dialogs to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10573
diff changeset
6512 # TODO: disable action in Radon plugin for server files
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
6513 self.showMenu.emit("Show", self.menuShow, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6514
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6515 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6516 def __showContextMenuGraphics(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6517 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6518 Private slot handling the aboutToShow signal of the diagrams context
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6519 menu.
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6520 """
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
6521 if self.project.isOpen() and self.project.isProjectCategory(
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
6522 self.fileName, "SOURCES"
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
6523 ):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6524 self.applicationDiagramMenuAct.setEnabled(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6525 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6526 self.applicationDiagramMenuAct.setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6527
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
6528 self.showMenu.emit("Graphics", self.graphicsMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6529
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6530 @pyqtSlot(QMenu)
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6531 def __showContextMenuMargin(self, menu):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6532 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6533 Private slot handling the aboutToShow signal of the margins context
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6534 menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6535
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6111
diff changeset
6536 @param menu reference to the menu to be shown
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6111
diff changeset
6537 @type QMenu
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6538 """
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6539 if menu is self.bpMarginMenu:
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6540 supportsDebugger = bool(self.fileName and self.isPyFile())
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6541 hasBreakpoints = bool(self.breaks)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6542 hasBreakpoint = bool(self.markersAtLine(self.line) & self.breakpointMask)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6543
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6544 self.marginMenuActs["Breakpoint"].setEnabled(supportsDebugger)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6545 self.marginMenuActs["TempBreakpoint"].setEnabled(supportsDebugger)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6546 self.marginMenuActs["NextBreakpoint"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6547 supportsDebugger and hasBreakpoints
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6548 )
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6549 self.marginMenuActs["PreviousBreakpoint"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6550 supportsDebugger and hasBreakpoints
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6551 )
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6552 self.marginMenuActs["ClearBreakpoint"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6553 supportsDebugger and hasBreakpoints
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6554 )
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6555 self.marginMenuActs["EditBreakpoint"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6556 supportsDebugger and hasBreakpoint
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6557 )
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6558 self.marginMenuActs["EnableBreakpoint"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6559 supportsDebugger and hasBreakpoint
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6560 )
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6561 if supportsDebugger:
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
6562 if self.markersAtLine(self.line) & (1 << self.dbreakpoint):
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
6563 self.marginMenuActs["EnableBreakpoint"].setText(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6564 self.tr("Enable breakpoint")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6565 )
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
6566 else:
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
6567 self.marginMenuActs["EnableBreakpoint"].setText(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6568 self.tr("Disable breakpoint")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6569 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6570
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6571 if menu is self.bmMarginMenu:
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6572 hasBookmarks = bool(self.bookmarks)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6573
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6574 self.marginMenuActs["NextBookmark"].setEnabled(hasBookmarks)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6575 self.marginMenuActs["PreviousBookmark"].setEnabled(hasBookmarks)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6576 self.marginMenuActs["ClearBookmark"].setEnabled(hasBookmarks)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6577
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6578 if menu is self.foldMarginMenu:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6579 isFoldHeader = bool(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6580 self.SendScintilla(QsciScintilla.SCI_GETFOLDLEVEL, self.line)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6581 & QsciScintilla.SC_FOLDLEVELHEADERFLAG
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6582 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6583
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6584 self.marginMenuActs["ExpandChildren"].setEnabled(isFoldHeader)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6585 self.marginMenuActs["CollapseChildren"].setEnabled(isFoldHeader)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6586
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6587 if menu is self.indicMarginMenu:
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6588 hasSyntaxErrors = bool(self.syntaxerrors)
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6589 hasWarnings = bool(self._warnings)
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6590 hasNotCoveredMarkers = bool(self.notcoveredMarkers)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6591
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6592 self.marginMenuActs["GotoSyntaxError"].setEnabled(hasSyntaxErrors)
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6593 self.marginMenuActs["ClearSyntaxError"].setEnabled(hasSyntaxErrors)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6594 if hasSyntaxErrors and self.markersAtLine(self.line) & (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6595 1 << self.syntaxerror
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
6596 ):
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6597 self.marginMenuActs["ShowSyntaxError"].setEnabled(True)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6598 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6599 self.marginMenuActs["ShowSyntaxError"].setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6600
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6601 self.marginMenuActs["NextWarningMarker"].setEnabled(hasWarnings)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6602 self.marginMenuActs["PreviousWarningMarker"].setEnabled(hasWarnings)
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6603 self.marginMenuActs["ClearWarnings"].setEnabled(hasWarnings)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6604 if hasWarnings and self.markersAtLine(self.line) & (1 << self.warning):
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6605 self.marginMenuActs["ShowWarning"].setEnabled(True)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6606 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6607 self.marginMenuActs["ShowWarning"].setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6608
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6609 self.marginMenuActs["NextCoverageMarker"].setEnabled(hasNotCoveredMarkers)
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6610 self.marginMenuActs["PreviousCoverageMarker"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6611 hasNotCoveredMarkers
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6612 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6613
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6614 self.marginMenuActs["PreviousTaskMarker"].setEnabled(self.__hasTaskMarkers)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6615 self.marginMenuActs["NextTaskMarker"].setEnabled(self.__hasTaskMarkers)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6616
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6617 self.marginMenuActs["PreviousChangeMarker"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6618 self.__hasChangeMarkers
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6619 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6620 self.marginMenuActs["NextChangeMarker"].setEnabled(self.__hasChangeMarkers)
6299
feb3cf2cbde3 Editor: removed the unified margins menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6297
diff changeset
6621 self.marginMenuActs["ClearChangeMarkers"].setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6622 self.__hasChangeMarkers
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6623 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6624
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6111
diff changeset
6625 self.showMenu.emit("Margin", menu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6626
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6627 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6628 def __showContextMenuChecks(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6629 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6630 Private slot handling the aboutToShow signal of the checks context
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6631 menu.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6632 """
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
6633 self.showMenu.emit("Checks", self.checksMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6634
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6635 @pyqtSlot()
3155
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
6636 def __showContextMenuTools(self):
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
6637 """
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
6638 Private slot handling the aboutToShow signal of the tools context
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
6639 menu.
7e10d00e27ca Added a 'Tools' submenu to be populated by plug-ins and updated the plug-in document.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3152
diff changeset
6640 """
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
6641 self.showMenu.emit("Tools", self.toolsMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6642
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6643 @pyqtSlot()
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
6644 def __showContextMenuFormatting(self):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
6645 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
6646 Private slot handling the aboutToShow signal of the code formatting context
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
6647 menu.
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
6648 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
6649 self.showMenu.emit("Formatting", self.codeFormattingMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6650
3394
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
6651 def __reopenWithEncodingMenuTriggered(self, act):
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
6652 """
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
6653 Private method to handle the rereading of the file with a selected
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
6654 encoding.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6655
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6656 @param act reference to the action that was triggered
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6657 @type QAction
3394
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
6658 """
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
6659 encoding = act.data()
d1d4d79b4f11 Added a context menu entry to reload a file with a given encoding.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3393
diff changeset
6660 self.readFile(self.fileName, encoding=encoding)
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
6661 self.__convertTabs()
4418
32f721a2fdc6 Fixed an issue in the editor causing the encodings menu not being synchronized after a re-open operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4411
diff changeset
6662 self.__checkEncoding()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6663
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6664 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6665 def __contextSave(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6666 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6667 Private slot handling the save context menu entry.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6668 """
548
ac7af05dd54a Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 547
diff changeset
6669 ok = self.saveFile()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6670 if ok:
548
ac7af05dd54a Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 547
diff changeset
6671 self.vm.setEditorName(self, self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6672
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6673 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6674 def __contextSaveAs(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6675 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6676 Private slot handling the save as context menu entry.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6677 """
559
ee695ebbd6e0 Fixed an issue introduced by the E5MessageBox job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 553
diff changeset
6678 ok = self.saveFileAs()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6679 if ok:
559
ee695ebbd6e0 Fixed an issue introduced by the E5MessageBox job.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 553
diff changeset
6680 self.vm.setEditorName(self, self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6681
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6682 @pyqtSlot()
10550
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6683 def __contextSaveAsRemote(self):
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6684 """
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6685 Private slot handling the save as (remote) context menu entry.
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6686 """
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6687 ok = self.saveFileAs(remote=True)
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6688 if ok:
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6689 self.vm.setEditorName(self, self.fileName)
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6690
fd862db1f936 Added an editor context menu action to save a file to an eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10546
diff changeset
6691 @pyqtSlot()
4402
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
6692 def __contextSaveCopy(self):
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
6693 """
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
6694 Private slot handling the save copy context menu entry.
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
6695 """
ad524553e765 Added capability to save a copy of the editor contents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4385
diff changeset
6696 self.saveFileCopy()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6697
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6698 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6699 def __contextClose(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6700 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6701 Private slot handling the close context menu entry.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6702 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6703 self.vm.closeEditor(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6704
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6705 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6706 def __newView(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6707 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6708 Private slot to create a new view to an open document.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6709 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6710 self.vm.newEditorView(self.fileName, self, self.filetype)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6711
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6712 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6713 def __newViewNewSplit(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6714 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6715 Private slot to create a new view to an open document.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6716 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6717 self.vm.addSplit()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6718 self.vm.newEditorView(self.fileName, self, self.filetype)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6719
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6720 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6721 def __selectAll(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6722 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6723 Private slot handling the select all context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6724 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6725 self.selectAll(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6726
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6727 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6728 def __deselectAll(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6729 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6730 Private slot handling the deselect all context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6731 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6732 self.selectAll(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6733
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6734 @pyqtSlot()
478
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6735 def joinLines(self):
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6736 """
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6737 Public slot to join the current line with the next one.
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6738 """
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6739 curLine = self.getCursorPosition()[0]
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6740 if curLine == self.lines() - 1:
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6741 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6742
478
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6743 line0Text = self.text(curLine)
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6744 line1Text = self.text(curLine + 1)
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6745 if line1Text in ["", "\r", "\n", "\r\n"]:
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6746 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6747
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6748 if line0Text.rstrip("\r\n\\ \t").endswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6749 ("'", '"')
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6750 ) and line1Text.lstrip().startswith(("'", '"')):
2994
5ae1349b8fb4 A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2980
diff changeset
6751 # merging multi line strings
5ae1349b8fb4 A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2980
diff changeset
6752 startChars = "\r\n\\ \t'\""
5ae1349b8fb4 A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2980
diff changeset
6753 endChars = " \t'\""
5ae1349b8fb4 A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2980
diff changeset
6754 else:
5ae1349b8fb4 A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2980
diff changeset
6755 startChars = "\r\n\\ \t"
5ae1349b8fb4 A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2980
diff changeset
6756 endChars = " \t"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6757
478
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6758 # determine start index
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6759 startIndex = len(line0Text)
2994
5ae1349b8fb4 A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2980
diff changeset
6760 while startIndex > 0 and line0Text[startIndex - 1] in startChars:
478
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6761 startIndex -= 1
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6762 if startIndex == 0:
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6763 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6764
478
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6765 # determine end index
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6766 endIndex = 0
2994
5ae1349b8fb4 A little enhancement to the editors line joining function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2980
diff changeset
6767 while line1Text[endIndex] in endChars:
478
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6768 endIndex += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6769
478
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6770 self.setSelection(curLine, startIndex, curLine + 1, endIndex)
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6771 self.beginUndoAction()
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6772 self.removeSelectedText()
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6773 self.insertAt(" ", curLine, startIndex)
e7d778ea21d6 Added an editor action to join the current line with the next one.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 461
diff changeset
6774 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6775
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6776 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6777 def shortenEmptyLines(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6778 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6779 Public slot to compress lines consisting solely of whitespace
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6780 characters.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6781 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6782 searchRE = r"^[ \t]+$"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6783
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6784 ok = self.findFirstTarget(searchRE, True, False, False, 0, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6785 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6786 while ok:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6787 self.replaceTarget("")
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6788 ok = self.findNextTarget()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6789 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6790
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6791 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6792 def __autosaveEnable(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6793 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6794 Private slot handling the autosave enable context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6795 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6796 if self.menuActs["AutosaveEnable"].isChecked():
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6797 self.__autosaveManuallyDisabled = False
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6798 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6799 self.__autosaveManuallyDisabled = True
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6800
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6801 def __shouldAutosave(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6802 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6803 Private method to check the autosave flags.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6804
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6805 @return flag indicating this editor should be saved
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
6806 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6807 """
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
6808 return (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6809 bool(self.fileName)
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6810 and not self.__autosaveManuallyDisabled
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6811 and not self.isReadOnly()
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6812 and self.isModified()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6813 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6814
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6815 def __autosave(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6816 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6817 Private slot to save the contents of the editor automatically.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6818
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6819 It is only saved by the autosave timer after an initial save (i.e. it already
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6820 has a name).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6821 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6822 if self.__shouldAutosave():
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
6823 self.saveFile()
2571
e6bb19eb87ea Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2526
diff changeset
6824
3579
eccd12461319 BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3576
diff changeset
6825 def checkSyntax(self):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6826 """
3581
03b351be4436 Einige kleinere Korrekturen.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3579
diff changeset
6827 Public method to perform an automatic syntax check of the file.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6828 """
7164
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
6829 fileType = self.filetype
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
6830 if fileType == "MicroPython":
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
6831 # adjustment for MicroPython
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6996
diff changeset
6832 fileType = "Python3"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6833
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
6834 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6835 self.syntaxCheckService is None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6836 or fileType not in self.syntaxCheckService.getLanguages()
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
6837 ):
2571
e6bb19eb87ea Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2526
diff changeset
6838 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6839
10499
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10474
diff changeset
6840 if Preferences.getEditor("OnlineSyntaxCheck"):
9926
6222ddc7e1bd Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9925
diff changeset
6841 self.__onlineSyntaxCheckTimer.stop()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6842
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6843 if self.isPy3File():
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6844 additionalBuiltins = (
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6845 self.project.getData("CHECKERSPARMS", "SyntaxChecker", {}).get(
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6846 "AdditionalBuiltins", []
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6847 )
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6848 if self.isProjectFile()
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6849 else Preferences.getFlakes("AdditionalBuiltins")
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6850 )
3241
957673fc463a Interface for adding different languages to the syntax check, background service
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3177
diff changeset
6851 self.syntaxCheckService.syntaxCheck(
9925
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6852 fileType,
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6853 self.fileName or "(Unnamed)",
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6854 self.text(),
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6855 additionalBuiltins,
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6856 )
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6857 else:
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6858 self.syntaxCheckService.syntaxCheck(
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6859 fileType,
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6860 self.fileName or "(Unnamed)",
a267ac36dd69 Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
6861 self.text(),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6862 )
2571
e6bb19eb87ea Fixes for autocodecheck with pyflakes and update of py2flakes to 0.6.1.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2526
diff changeset
6863
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6864 @pyqtSlot(str, str)
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6865 def __processSyntaxCheckError(self, fn, msg):
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6866 """
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6867 Private slot to report an error message of a syntax check.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6868
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6869 @param fn filename of the file
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6870 @type str
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6871 @param msg error message
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6872 @type str
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6873 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6874 if fn != self.fileName and (bool(self.fileName) or fn != "(Unnamed)"):
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6875 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6876
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6877 self.clearSyntaxError()
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6878 self.clearFlakesWarnings()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6879
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6880 self.toggleWarning(0, 0, True, msg)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6881
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6882 self.updateVerticalScrollBar()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6883
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6884 @pyqtSlot(str, dict)
4503
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6885 def __processSyntaxCheckResult(self, fn, problems):
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6886 """
d68dcbe1deb3 Improved the syntax checker, code style checker and indentation checker interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4498
diff changeset
6887 Private slot to report the resulting messages of a syntax check.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6888
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6889 @param fn filename of the checked file
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6890 @type str
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
6891 @param problems dictionary with the keys 'error' and 'warnings' which
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
6892 hold a list containing details about the error/ warnings
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
6893 (file name, line number, column, codestring (only at syntax
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6894 errors), the message)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6895 @type dict
3173
1fb284abe46e Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
6896 """
1fb284abe46e Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
6897 # Check if it's the requested file, otherwise ignore signal
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6898 if fn != self.fileName and (bool(self.fileName) or fn != "(Unnamed)"):
3173
1fb284abe46e Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
6899 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6900
3173
1fb284abe46e Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
6901 self.clearSyntaxError()
1fb284abe46e Interface to add user-defined services, e.g. in plugins. Auto syntax check working. Little cleanup.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3145
diff changeset
6902 self.clearFlakesWarnings()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6903
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6904 error = problems.get("error")
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
6905 if error:
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
6906 _fn, lineno, col, code, msg = error
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
6907 self.toggleSyntaxError(lineno, col, True, msg)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6908
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6909 for _fn, lineno, col, _code, msg in problems.get("py_warnings", []):
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
6910 self.toggleWarning(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
6911 lineno, col, True, msg, warningType=EditorWarningKind.Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
6912 )
10188
0f873791d67e Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10180
diff changeset
6913
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6914 for _fn, lineno, col, _code, msg in problems.get("warnings", []):
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
6915 self.toggleWarning(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
6916 lineno, col, True, msg, warningType=EditorWarningKind.Code
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
6917 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6918
4433
7ab862396a8a Workaround for missing lines at vertical scroll bar caused by annotations.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 4418
diff changeset
6919 self.updateVerticalScrollBar()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6920
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
6921 @pyqtSlot()
1353
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6922 def __initOnlineSyntaxCheck(self):
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6923 """
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6924 Private slot to initialize the online syntax check.
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6925 """
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6926 self.__onlineSyntaxCheckTimer = QTimer(self)
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6927 self.__onlineSyntaxCheckTimer.setSingleShot(True)
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6928 self.__onlineSyntaxCheckTimer.setInterval(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6929 Preferences.getEditor("OnlineSyntaxCheckInterval") * 1000
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6930 )
3579
eccd12461319 BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3576
diff changeset
6931 self.__onlineSyntaxCheckTimer.timeout.connect(self.checkSyntax)
1353
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6932 self.textChanged.connect(self.__resetOnlineSyntaxCheckTimer)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6933
1353
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6934 def __resetOnlineSyntaxCheckTimer(self):
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6935 """
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6936 Private method to reset the online syntax check timer.
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6937 """
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6938 if Preferences.getEditor("OnlineSyntaxCheck"):
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6939 self.__onlineSyntaxCheckTimer.stop()
e1c0af081a8e Added a syntax check while typing function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1308
diff changeset
6940 self.__onlineSyntaxCheckTimer.start()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6941
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6942 def __showCodeMetrics(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6943 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6944 Private method to handle the code metrics context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6945 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
6946 from eric7.DataViews.CodeMetricsDialog import CodeMetricsDialog
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
6947
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6948 if not self.checkDirty():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6949 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6950
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6951 self.codemetrics = CodeMetricsDialog()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6952 self.codemetrics.show()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6953 self.codemetrics.start(self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6954
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6955 def __getCodeCoverageFile(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6956 """
5051
3586ebd9fac8 Updated coverage.py to version 4.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4917
diff changeset
6957 Private method to get the file name of the file containing coverage
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
6958 info.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6959
9092
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
6960 @return file name of the coverage file
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
6961 @rtype str
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
6962 """
9535
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
6963 files = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6964
9070
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
6965 if bool(self.__coverageFile):
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
6966 # return the path of a previously used coverage file
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
6967 return self.__coverageFile
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6968
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6969 # first check if the file belongs to a project and there is
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6970 # a project coverage file
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
6971 if self.project.isOpen() and self.project.isProjectCategory(
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
6972 self.fileName, "SOURCES"
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
6973 ):
9092
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
6974 pfn = self.project.getMainScript(True)
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
6975 if pfn is not None:
9535
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
6976 files.extend(
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
6977 [f for f in Utilities.getCoverageFileNames(pfn) if f not in files]
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
6978 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6979
6285
045dc4c38701 Corrected a typo in several files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6278
diff changeset
6980 # now check, if there are coverage files belonging to ourselves
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6981 fn = self.getFileName()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6982 if fn is not None:
9535
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
6983 files.extend(
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
6984 [f for f in Utilities.getCoverageFileNames(fn) if f not in files]
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
6985 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6986
9092
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
6987 files = list(files)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6988 if files:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6989 if len(files) > 1:
9092
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
6990 cfn, ok = QInputDialog.getItem(
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6991 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
6992 self.tr("Code Coverage"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
6993 self.tr("Please select a coverage file"),
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6994 files,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6995 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6996 False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
6997 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
6998 if not ok:
6891
93f82da09f22 Fixed some code style issues detected by the new 'return' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6858
diff changeset
6999 return ""
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7000 else:
9092
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
7001 cfn = files[0]
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
7002 else:
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
7003 cfn = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7004
9092
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
7005 return cfn
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7006
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7007 def __showCodeCoverage(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7008 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7009 Private method to handle the code coverage context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7010 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
7011 from eric7.DataViews.PyCoverageDialog import PyCoverageDialog
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
7012
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7013 fn = self.__getCodeCoverageFile()
9070
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
7014 self.__coverageFile = fn
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7015 if fn:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7016 self.codecoverage = PyCoverageDialog()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7017 self.codecoverage.show()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7018 self.codecoverage.start(fn, self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7019
2391
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7020 def refreshCoverageAnnotations(self):
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7021 """
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7022 Public method to refresh the code coverage annotations.
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7023 """
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7024 if self.showingNotcoveredMarkers:
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7025 self.codeCoverageShowAnnotations(silent=True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7026
9070
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
7027 def codeCoverageShowAnnotations(self, silent=False, coverageFile=None):
2163
2b02339f52bf Enhanced the code coverage dialog functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2162
diff changeset
7028 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7029 Public method to handle the show code coverage annotations context
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7030 menu action.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7031
9070
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
7032 @param silent flag indicating to not show any dialog (defaults to
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
7033 False)
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
7034 @type bool (optional)
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
7035 @param coverageFile path of the file containing the code coverage data
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
7036 (defaults to None)
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
7037 @type str (optional)
2391
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7038 """
9690
2dc33116df50 Debug Client - Python
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
7039 from coverage import Coverage # __IGNORE_WARNING_I102__
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
7040
2391
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7041 self.__codeCoverageHideAnnotations()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7042
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7043 fn = coverageFile if bool(coverageFile) else self.__getCodeCoverageFile()
9070
eab09a1ab8ce Implemented the "Show Coverage" functionality and corrected the coverage related code in UnittestRunner.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
7044 self.__coverageFile = fn
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7045
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7046 if fn:
10575
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7047 if FileSystemUtilities.isRemoteFileName(fn):
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
7048 coverageInterface = (
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
7049 ericApp().getObject("EricServer").getServiceInterface("Coverage")
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
7050 )
10575
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7051 ok, error = coverageInterface.loadCoverageData(fn)
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7052 if not ok and not silent:
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7053 EricMessageBox.critical(
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7054 self,
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7055 self.tr("Load Coverage Data"),
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7056 self.tr(
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7057 "<p>The coverage data could not be loaded from file"
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7058 " <b>{0}</b>.</p><p>Reason: {1}</p>"
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7059 ).format(self.cfn, error),
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7060 )
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7061 return
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7062 missing = coverageInterface.analyzeFile(self.fileName)[3]
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7063 else:
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7064 cover = Coverage(data_file=fn)
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7065 cover.load()
abde60847db6 Adapted the editors 'Show coverage annotations' functionality to the eric-ide server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10574
diff changeset
7066 missing = cover.analysis2(self.fileName)[3]
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7067 if missing:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7068 for line in missing:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7069 handle = self.markerAdd(line - 1, self.notcovered)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7070 self.notcoveredMarkers.append(handle)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
7071 self.coverageMarkersShown.emit(True)
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
7072 self.__markerMap.update()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7073 else:
2391
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7074 if not silent:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7075 EricMessageBox.information(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
7076 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7077 self.tr("Show Code Coverage Annotations"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7078 self.tr("""All lines have been covered."""),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7079 )
2391
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7080 self.showingNotcoveredMarkers = True
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7081 else:
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7082 if not silent:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7083 EricMessageBox.warning(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
7084 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7085 self.tr("Show Code Coverage Annotations"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7086 self.tr("""There is no coverage file available."""),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7087 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7088
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7089 def __codeCoverageHideAnnotations(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7090 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7091 Private method to handle the hide code coverage annotations context
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7092 menu action.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7093 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7094 for handle in self.notcoveredMarkers:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7095 self.markerDeleteHandle(handle)
8106
81bf8fe10735 Editor: fixed an issue handling breakpoints (and other stuff) in a cloned editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8004
diff changeset
7096 self.notcoveredMarkers.clear()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
7097 self.coverageMarkersShown.emit(False)
2391
f9a6a512bc1e Added functionality to refresh the coverage markers of an editor if such are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
7098 self.showingNotcoveredMarkers = False
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
7099 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7100
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7101 def getCoverageLines(self):
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7102 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7103 Public method to get the lines containing a coverage marker.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7104
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7105 @return list of lines containing a coverage marker
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7106 @rtype list of int
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7107 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7108 lines = []
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7109 line = -1
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7110 while True:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7111 line = self.markerFindNext(line + 1, 1 << self.notcovered)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7112 if line < 0:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7113 break
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7114 else:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7115 lines.append(line)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7116 return lines
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7117
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7118 def hasCoverageMarkers(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7119 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7120 Public method to test, if there are coverage markers.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7121
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7122 @return flag indicating the presence of coverage markers
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7123 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7124 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7125 return len(self.notcoveredMarkers) > 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7126
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7127 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7128 def nextUncovered(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7129 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7130 Public slot to handle the 'Next uncovered' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7131 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7132 line, index = self.getCursorPosition()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
7133 if line == self.lines() - 1:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7134 line = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7135 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7136 line += 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7137 ucline = self.markerFindNext(line, 1 << self.notcovered)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7138 if ucline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7139 # wrap around
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7140 ucline = self.markerFindNext(0, 1 << self.notcovered)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7141 if ucline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7142 self.setCursorPosition(ucline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7143 self.ensureLineVisible(ucline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7144
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7145 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7146 def previousUncovered(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7147 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7148 Public slot to handle the 'Previous uncovered' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7149 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7150 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7151 if line == 0:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
7152 line = self.lines() - 1
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7153 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7154 line -= 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7155 ucline = self.markerFindPrevious(line, 1 << self.notcovered)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7156 if ucline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7157 # wrap around
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7158 ucline = self.markerFindPrevious(self.lines() - 1, 1 << self.notcovered)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7159 if ucline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7160 self.setCursorPosition(ucline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7161 self.ensureLineVisible(ucline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7162
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7163 def __showProfileData(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7164 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7165 Private method to handle the show profile data context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7166 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
7167 from eric7.DataViews.PyProfileDialog import PyProfileDialog
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
7168
9535
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
7169 files = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7170
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7171 # first check if the file belongs to a project and there is
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7172 # a project profile file
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
7173 if self.project.isOpen() and self.project.isProjectCategory(
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
7174 self.fileName, "SOURCES"
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
7175 ):
252
05692e3d37bf Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
7176 fn = self.project.getMainScript(True)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7177 if fn is not None:
9535
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
7178 files.extend(
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
7179 [f for f in Utilities.getProfileFileNames(fn) if f not in files]
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
7180 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7181
6285
045dc4c38701 Corrected a typo in several files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6278
diff changeset
7182 # now check, if there are profile files belonging to ourselves
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7183 fn = self.getFileName()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7184 if fn is not None:
9535
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
7185 files.extend(
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
7186 [f for f in Utilities.getProfileFileNames(fn) if f not in files]
8b5402794fb6 Fixed an issue in ProjectSourcesBrowser.py and Editor.py causing profile or coverage data not to be shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
7187 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7188
9092
043848f65726 Changed logic creating the coverage and profile data file names.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9072
diff changeset
7189 files = list(files)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7190 if files:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7191 if len(files) > 1:
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
7192 fn, ok = QInputDialog.getItem(
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7193 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7194 self.tr("Profile Data"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7195 self.tr("Please select a profile file"),
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7196 files,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7197 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7198 False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7199 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7200 if not ok:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7201 return
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7202 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7203 fn = files[0]
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7204 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7205 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7206
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7207 self.profiledata = PyProfileDialog()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7208 self.profiledata.show()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7209 self.profiledata.start(fn, self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7210
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7211 def __lmBbookmarks(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7212 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7213 Private method to handle the 'LMB toggles bookmark' context menu
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7214 action.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7215 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7216 self.marginMenuActs["LMBbookmarks"].setChecked(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7217 self.marginMenuActs["LMBbreakpoints"].setChecked(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7218
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7219 def __lmBbreakpoints(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7220 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7221 Private method to handle the 'LMB toggles breakpoint' context menu
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7222 action.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7223 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7224 self.marginMenuActs["LMBbookmarks"].setChecked(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7225 self.marginMenuActs["LMBbreakpoints"].setChecked(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7226
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7227 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7228 ## Syntax error handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7229 ###########################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7230
10286
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7231 def toggleSyntaxError(self, line, index, setError, msg="", show=False):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7232 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7233 Public method to toggle a syntax error indicator.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7234
10286
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7235 @param line line number of the syntax error
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7236 @type int
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7237 @param index index number of the syntax error
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7238 @type int
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7239 @param setError flag indicating if the error marker should be
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7240 set or deleted
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7241 @type bool
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7242 @param msg error message
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7243 @type str
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7864
diff changeset
7244 @param show flag indicating to set the cursor to the error position
10286
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7245 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7246 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7247 if line == 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7248 line = 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7249 # hack to show a syntax error marker, if line is reported to be 0
10341
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7250
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7251 line = min(line, self.lines())
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7252 # Limit the line number to the ones we really have to ensure proper display
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7253 # of the error annotation.
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7254
10286
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7255 if setError:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7256 # set a new syntax error marker
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7257 markers = self.markersAtLine(line - 1)
3441
1b07f996e9ee Continued improving JavaScript support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3438
diff changeset
7258 index += self.indentation(line - 1)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7259 if not (markers & (1 << self.syntaxerror)):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7260 handle = self.markerAdd(line - 1, self.syntaxerror)
2904
1da821da961e Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2900
diff changeset
7261 self.syntaxerrors[handle] = [(msg, index)]
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
7262 self.syntaxerrorToggled.emit(self)
2904
1da821da961e Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2900
diff changeset
7263 else:
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7264 for handle in self.syntaxerrors:
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
7265 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7266 self.markerLine(handle) == line - 1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7267 and (msg, index) not in self.syntaxerrors[handle]
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
7268 ):
2904
1da821da961e Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2900
diff changeset
7269 self.syntaxerrors[handle].append((msg, index))
1da821da961e Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2900
diff changeset
7270 if show:
1da821da961e Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2900
diff changeset
7271 self.setCursorPosition(line - 1, index)
1da821da961e Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2900
diff changeset
7272 self.ensureLineVisible(line - 1)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7273 else:
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10345
diff changeset
7274 for handle in list(self.syntaxerrors):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7275 if self.markerLine(handle) == line - 1:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7276 del self.syntaxerrors[handle]
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7277 self.markerDeleteHandle(handle)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
7278 self.syntaxerrorToggled.emit(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7279
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7280 self.__setAnnotation(line - 1)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
7281 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7282
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7283 def getSyntaxErrorLines(self):
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7284 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7285 Public method to get the lines containing a syntax error.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7286
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7287 @return list of lines containing a syntax error
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7288 @rtype list of int
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7289 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7290 lines = []
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7291 line = -1
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7292 while True:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7293 line = self.markerFindNext(line + 1, 1 << self.syntaxerror)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7294 if line < 0:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7295 break
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7296 else:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7297 lines.append(line)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7298 return lines
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7299
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7300 def hasSyntaxErrors(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7301 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7302 Public method to check for the presence of syntax errors.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7303
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7304 @return flag indicating the presence of syntax errors
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7305 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7306 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7307 return len(self.syntaxerrors) > 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7308
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7309 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7310 def gotoSyntaxError(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7311 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7312 Public slot to handle the 'Goto syntax error' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7313 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7314 seline = self.markerFindNext(0, 1 << self.syntaxerror)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7315 if seline >= 0:
915
c1e052773c08 Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
7316 index = 0
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8193
diff changeset
7317 for handle in self.syntaxerrors:
915
c1e052773c08 Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
7318 if self.markerLine(handle) == seline:
2904
1da821da961e Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2900
diff changeset
7319 index = self.syntaxerrors[handle][0][1]
915
c1e052773c08 Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
7320 self.setCursorPosition(seline, index)
c1e052773c08 Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
7321 self.ensureLineVisible(seline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7322
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7323 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7324 def clearSyntaxError(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7325 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7326 Public slot to handle the 'Clear all syntax error' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7327 """
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10345
diff changeset
7328 for handle in list(self.syntaxerrors):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7329 line = self.markerLine(handle) + 1
915
c1e052773c08 Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
7330 self.toggleSyntaxError(line, 0, False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7331
8106
81bf8fe10735 Editor: fixed an issue handling breakpoints (and other stuff) in a cloned editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8004
diff changeset
7332 self.syntaxerrors.clear()
3149
e98100461710 Fixed an issue in the editor related to resetting a syntax error marker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3100
diff changeset
7333 self.syntaxerrorToggled.emit(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7334
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7335 @pyqtSlot()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
7336 def __showSyntaxError(self, line=-1):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7337 """
915
c1e052773c08 Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
7338 Private slot to handle the 'Show syntax error message'
c1e052773c08 Changed syntax check to report error position within the line.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
7339 context menu action.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7340
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7341 @param line line number to show the syntax error for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7342 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7343 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7344 if line == -1:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7345 line = self.line
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7346
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7347 for handle in self.syntaxerrors:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7348 if self.markerLine(handle) == line:
2904
1da821da961e Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2900
diff changeset
7349 errors = [e[0] for e in self.syntaxerrors[handle]]
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7350 EricMessageBox.critical(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7351 self, self.tr("Syntax Error"), "\n".join(errors)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7352 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7353 break
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7354 else:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7355 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
7356 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7357 self.tr("Syntax Error"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7358 self.tr("No syntax error message available."),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7359 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7360
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7361 ###########################################################################
6111
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7362 ## VCS conflict marker handling methods below
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7363 ###########################################################################
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7364
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7365 def getVcsConflictMarkerLines(self):
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7366 """
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7367 Public method to determine the lines containing a VCS conflict marker.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7368
6111
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7369 @return list of line numbers containg a VCS conflict marker
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7370 @rtype list of int
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7371 """
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7372 conflictMarkerLines = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7373
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7374 regExp = re.compile(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7375 "|".join(Editor.VcsConflictMarkerLineRegExpList), re.MULTILINE
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7376 )
6571
feb72cfc7807 Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6498
diff changeset
7377 matches = [m for m in regExp.finditer(self.text())]
feb72cfc7807 Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6498
diff changeset
7378 for match in matches:
feb72cfc7807 Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6498
diff changeset
7379 line, _ = self.lineIndexFromPosition(match.start())
feb72cfc7807 Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6498
diff changeset
7380 conflictMarkerLines.append(line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7381
6111
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7382 return conflictMarkerLines
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7383
6111
d38b38117d83 Added VCS conflict markers to the types shown on the marker map.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6105
diff changeset
7384 ###########################################################################
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7385 ## Warning handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7386 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7387
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
7388 def toggleWarning(
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7389 self,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7390 line,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7391 col, # noqa: U100
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7392 setWarning,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7393 msg="",
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7394 warningType=EditorWarningKind.Code,
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
7395 ):
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7396 """
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7397 Public method to toggle a warning indicator.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7398
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7399 Note: This method is used to set pyflakes and code style warnings.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7400
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7401 @param line line number of the warning
10286
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7402 @type int
3412
9364dab2d472 Plug-in docu updated, now the return values of the syntax checker is a dictionary
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3241
diff changeset
7403 @param col column of the warning
10286
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7404 @type int
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7405 @param setWarning flag indicating if the warning marker should be
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7406 set or deleted
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7407 @type bool
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7408 @param msg warning message
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7409 @type str
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7410 @param warningType type of warning message
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7411 @type EditorWarningKind
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7412 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7413 if line == 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7414 line = 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7415 # hack to show a warning marker, if line is reported to be 0
10341
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7416
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7417 line = min(line, self.lines())
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7418 # Limit the line number to the ones we really have to ensure proper display
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7419 # of the warning annotation.
3fdffd9cc21d Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10331
diff changeset
7420
10286
612ce5e79d08 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10282
diff changeset
7421 if setWarning:
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7422 # set/amend a new warning marker
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7423 warn = (msg, warningType)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7424 markers = self.markersAtLine(line - 1)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7425 if not (markers & (1 << self.warning)):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7426 handle = self.markerAdd(line - 1, self.warning)
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7427 self._warnings[handle] = [warn]
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
7428 self.syntaxerrorToggled.emit(self)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
7429 # signal is also used for warnings
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7430 else:
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7431 for handle in self._warnings:
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
7432 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7433 self.markerLine(handle) == line - 1
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7434 and warn not in self._warnings[handle]
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
7435 ):
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7436 self._warnings[handle].append(warn)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7437 else:
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10345
diff changeset
7438 for handle in list(self._warnings):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7439 if self.markerLine(handle) == line - 1:
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7440 del self._warnings[handle]
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7441 self.markerDeleteHandle(handle)
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
7442 self.syntaxerrorToggled.emit(self)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
7443 # signal is also used for warnings
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7444
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7445 self.__setAnnotation(line - 1)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
7446 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7447
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7448 def getWarningLines(self):
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7449 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7450 Public method to get the lines containing a warning.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7451
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7452 @return list of lines containing a warning
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7453 @rtype list of int
3325
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7454 """
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7455 lines = []
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7456 line = -1
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7457 while True:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7458 line = self.markerFindNext(line + 1, 1 << self.warning)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7459 if line < 0:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7460 break
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7461 else:
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7462 lines.append(line)
d2d6dda86d32 Added methods to extract the line numbers of the various marker types to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3261
diff changeset
7463 return lines
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7464
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7465 def hasWarnings(self):
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7466 """
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7467 Public method to check for the presence of warnings.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7468
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7469 @return flag indicating the presence of warnings
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7470 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7471 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7472 return len(self._warnings) > 0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7474 @pyqtSlot()
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7475 def nextWarning(self):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7476 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7477 Public slot to handle the 'Next warning' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7478 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7479 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7480 if line == self.lines() - 1:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7481 line = 0
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7482 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7483 line += 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7484 fwline = self.markerFindNext(line, 1 << self.warning)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7485 if fwline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7486 # wrap around
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7487 fwline = self.markerFindNext(0, 1 << self.warning)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7488 if fwline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7489 self.setCursorPosition(fwline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7490 self.ensureLineVisible(fwline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7491
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7492 @pyqtSlot()
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7493 def previousWarning(self):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7494 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7495 Public slot to handle the 'Previous warning' context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7496 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7497 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7498 if line == 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7499 line = self.lines() - 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7500 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7501 line -= 1
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7502 fwline = self.markerFindPrevious(line, 1 << self.warning)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7503 if fwline < 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7504 # wrap around
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7505 fwline = self.markerFindPrevious(self.lines() - 1, 1 << self.warning)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7506 if fwline >= 0:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7507 self.setCursorPosition(fwline, 0)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7508 self.ensureLineVisible(fwline)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7509
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7510 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7511 def clearFlakesWarnings(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7512 """
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7513 Public slot to clear all pyflakes warnings.
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7514 """
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7515 self.__clearTypedWarning(EditorWarningKind.Code)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7516 self.__clearTypedWarning(EditorWarningKind.Python)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7517
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7518 @pyqtSlot()
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7519 def clearStyleWarnings(self):
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7520 """
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7521 Public slot to clear all style warnings.
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7522 """
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7523 self.__clearTypedWarning(EditorWarningKind.Style)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7524
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7525 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7526 def clearInfoWarnings(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7527 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7528 Public slot to clear all info warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7529 """
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7530 self.__clearTypedWarning(EditorWarningKind.Info)
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7531
10288
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7532 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7533 def clearErrorWarnings(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7534 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7535 Public slot to clear all error warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7536 """
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7537 self.__clearTypedWarning(EditorWarningKind.Error)
10288
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7538
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7539 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7540 def clearCodeWarnings(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7541 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7542 Public slot to clear all code warnings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7543 """
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7544 self.__clearTypedWarning(EditorWarningKind.Code)
10288
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7545
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7546 def __clearTypedWarning(self, warningKind):
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7547 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3583
diff changeset
7548 Private method to clear warnings of a specific kind.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7549
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7550 @param warningKind kind of warning to clear
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7551 @type EditorWarningKind
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7552 """
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10345
diff changeset
7553 for handle in list(self._warnings):
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7554 issues = []
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7555 for msg, warningType in self._warnings[handle]:
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7556 if warningType == warningKind:
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7557 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7558
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7559 issues.append((msg, warningType))
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7560
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7561 if issues:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7562 self._warnings[handle] = issues
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7563 self.__setAnnotation(self.markerLine(handle))
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7564 else:
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7565 del self._warnings[handle]
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7566 self.__setAnnotation(self.markerLine(handle))
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7567 self.markerDeleteHandle(handle)
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7568 self.syntaxerrorToggled.emit(self)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
7569 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7570
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7571 @pyqtSlot()
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7572 def clearWarnings(self):
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7573 """
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7574 Public slot to clear all warnings.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7575 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7576 for handle in self._warnings:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7577 self._warnings[handle] = []
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7578 self.__setAnnotation(self.markerLine(handle))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7579 self.markerDeleteHandle(handle)
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7580 self._warnings.clear()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
7581 self.syntaxerrorToggled.emit(self)
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
7582 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7583
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7584 @pyqtSlot()
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
7585 def __showWarning(self, line=-1):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7586 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7587 Private slot to handle the 'Show warning' context menu action.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7588
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7589 @param line line number to show the warning for
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7590 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7591 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7592 if line == -1:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7593 line = self.line
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7594
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7595 for handle in self._warnings:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7596 if self.markerLine(handle) == line:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7597 EricMessageBox.warning(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
7598 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7599 self.tr("Warning"),
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7600 "\n".join([w[0] for w in self._warnings[handle]]),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7601 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7602 break
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7603 else:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7604 EricMessageBox.warning(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7605 self, self.tr("Warning"), self.tr("No warning messages available.")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7606 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7607
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7608 ###########################################################################
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7609 ## Annotation handling methods below
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7610 ###########################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7611
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7612 @pyqtSlot()
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7613 def __setAnnotationStyles(self):
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7614 """
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7615 Private slot to define the style used by inline annotations.
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7616 """
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7617 if hasattr(QsciScintilla, "annotate"):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7618 self.annotationWarningStyle = QsciScintilla.STYLE_LASTPREDEFINED + 1
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7619 self.SendScintilla(
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7620 QsciScintilla.SCI_STYLESETFORE,
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7621 self.annotationWarningStyle,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7622 Preferences.getEditorColour("AnnotationsWarningForeground"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7623 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7624 self.SendScintilla(
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7625 QsciScintilla.SCI_STYLESETBACK,
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7626 self.annotationWarningStyle,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7627 Preferences.getEditorColour("AnnotationsWarningBackground"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7628 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7629
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7630 self.annotationErrorStyle = self.annotationWarningStyle + 1
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7631 self.SendScintilla(
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7632 QsciScintilla.SCI_STYLESETFORE,
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7633 self.annotationErrorStyle,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7634 Preferences.getEditorColour("AnnotationsErrorForeground"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7635 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7636 self.SendScintilla(
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7637 QsciScintilla.SCI_STYLESETBACK,
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7638 self.annotationErrorStyle,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7639 Preferences.getEditorColour("AnnotationsErrorBackground"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7640 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7641
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7642 self.annotationStyleStyle = self.annotationErrorStyle + 1
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7643 self.SendScintilla(
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7644 QsciScintilla.SCI_STYLESETFORE,
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7645 self.annotationStyleStyle,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7646 Preferences.getEditorColour("AnnotationsStyleForeground"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7647 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7648 self.SendScintilla(
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7649 QsciScintilla.SCI_STYLESETBACK,
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7650 self.annotationStyleStyle,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7651 Preferences.getEditorColour("AnnotationsStyleBackground"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7652 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7653
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7654 self.annotationInfoStyle = self.annotationStyleStyle + 1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7655 self.SendScintilla(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7656 QsciScintilla.SCI_STYLESETFORE,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7657 self.annotationInfoStyle,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7658 Preferences.getEditorColour("AnnotationsInfoForeground"),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7659 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7660 self.SendScintilla(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7661 QsciScintilla.SCI_STYLESETBACK,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7662 self.annotationInfoStyle,
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7663 Preferences.getEditorColour("AnnotationsInfoBackground"),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7664 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7665
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7666 def __setAnnotation(self, line):
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7667 """
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7668 Private method to set the annotations for the given line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7669
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7670 @param line number of the line that needs annotation
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7671 @type int
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7672 """
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7673 if hasattr(QsciScintilla, "annotate"):
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7674 warningAnnotations = []
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7675 errorAnnotations = []
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7676 styleAnnotations = []
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7677 infoAnnotations = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7678
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7679 # step 1: do warnings
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7680 for handle in self._warnings:
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7681 if self.markerLine(handle) == line:
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7682 for msg, warningType in self._warnings[handle]:
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7683 if warningType == EditorWarningKind.Info:
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7684 infoAnnotations.append(self.tr("Info: {0}").format(msg))
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7685 elif warningType == EditorWarningKind.Error:
10288
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7686 errorAnnotations.append(self.tr("Error: {0}").format(msg))
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7687 elif warningType == EditorWarningKind.Style:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7688 styleAnnotations.append(self.tr("Style: {0}").format(msg))
10474
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10473
diff changeset
7689 elif warningType == EditorWarningKind.Python:
10188
0f873791d67e Syntax Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10180
diff changeset
7690 warningAnnotations.append(msg)
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7691 else:
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7692 warningAnnotations.append(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7693 self.tr("Warning: {0}").format(msg)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7694 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7695
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7696 # step 2: do syntax errors
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8193
diff changeset
7697 for handle in self.syntaxerrors:
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7698 if self.markerLine(handle) == line:
2904
1da821da961e Changed editor code to allow multiple syntax error messages per line and changed PEP-8 dialog to show E901 errors as error instead of warning.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2900
diff changeset
7699 for msg, _ in self.syntaxerrors[handle]:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7700 errorAnnotations.append(self.tr("Error: {0}").format(msg))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7701
10288
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10286
diff changeset
7702 # step 3: assemble the annotation
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7703 annotations = []
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7704 if infoAnnotations:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7705 annotationInfoTxt = "\n".join(infoAnnotations)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7706 if styleAnnotations or warningAnnotations or errorAnnotations:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7707 annotationInfoTxt += "\n"
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7708 annotations.append(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7709 QsciStyledText(annotationInfoTxt, self.annotationInfoStyle)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7710 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7711
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
7712 if styleAnnotations:
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7713 annotationStyleTxt = "\n".join(styleAnnotations)
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
7714 if warningAnnotations or errorAnnotations:
2905
a1ae4b297bc0 Added capability to have different warning styles to the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2904
diff changeset
7715 annotationStyleTxt += "\n"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7716 annotations.append(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7717 QsciStyledText(annotationStyleTxt, self.annotationStyleStyle)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7718 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7719
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
7720 if warningAnnotations:
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7721 annotationWarningTxt = "\n".join(warningAnnotations)
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
7722 if errorAnnotations:
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7723 annotationWarningTxt += "\n"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7724 annotations.append(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7725 QsciStyledText(annotationWarningTxt, self.annotationWarningStyle)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7726 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7727
2959
86ad8854361b Corrected an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2955
diff changeset
7728 if errorAnnotations:
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7729 annotationErrorTxt = "\n".join(errorAnnotations)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7730 annotations.append(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7731 QsciStyledText(annotationErrorTxt, self.annotationErrorStyle)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7732 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7733
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7734 if annotations:
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7735 self.annotate(line, annotations)
726
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7736 else:
57d1efea16e0 Started implementing annotations support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 723
diff changeset
7737 self.clearAnnotations(line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7738
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7739 def __refreshAnnotations(self):
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7740 """
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7741 Private method to refresh the annotations.
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7742 """
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7743 if hasattr(QsciScintilla, "annotate"):
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7744 self.clearAnnotations()
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7745 for handle in self._warnings:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7746 line = self.markerLine(handle)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7747 self.__setAnnotation(line)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7748 for handle in self.syntaxerrors:
728
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7749 line = self.markerLine(handle)
3ee110082fb7 Finished implementing the display of annotations .
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 726
diff changeset
7750 self.__setAnnotation(line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7751
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7752 #################################################################
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7753 ## Fold handling methods
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7754 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7755
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7756 @pyqtSlot()
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7757 def toggleCurrentFold(self):
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7758 """
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7759 Public slot to toggle the fold containing the current line.
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7760 """
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7761 line, index = self.getCursorPosition()
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7762 self.foldLine(line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7763
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7764 def expandFoldWithChildren(self, line=-1):
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7765 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7766 Public method to expand the current fold including its children.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7767
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7768 @param line number of line to be expanded
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7769 @type int
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7770 """
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7771 if line == -1:
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7772 line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7773
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7774 self.SendScintilla(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7775 QsciScintilla.SCI_FOLDCHILDREN, line, QsciScintilla.SC_FOLDACTION_EXPAND
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7776 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7777
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7778 def collapseFoldWithChildren(self, line=-1):
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7779 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7780 Public method to collapse the current fold including its children.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7781
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7782 @param line number of line to be expanded
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7783 @type int
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7784 """
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7785 if line == -1:
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7786 line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7787
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7788 self.SendScintilla(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7789 QsciScintilla.SCI_FOLDCHILDREN, line, QsciScintilla.SC_FOLDACTION_CONTRACT
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7790 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7791
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7792 @pyqtSlot()
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7793 def __contextMenuExpandFoldWithChildren(self):
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7794 """
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7795 Private slot to handle the context menu expand with children action.
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7796 """
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7797 self.expandFoldWithChildren(self.line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7798
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7799 @pyqtSlot()
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7800 def __contextMenuCollapseFoldWithChildren(self):
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7801 """
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7802 Private slot to handle the context menu collapse with children action.
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7803 """
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7804 self.collapseFoldWithChildren(self.line)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7805
6297
85e20e9b4d55 Editor: added a context menu for the "fold" margin and improved the handling of folded lines when using "go to" functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6285
diff changeset
7806 #################################################################
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7807 ## Macro handling methods
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7808 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7809
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7810 def __getMacroName(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7811 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7812 Private method to select a macro name from the list of macros.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7813
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
7814 @return Tuple of macro name and a flag, indicating, if the user
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7815 pressed ok or canceled the operation.
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
7816 @rtype tuple of (str, bool)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7817 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7818 qs = []
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
7819 for s in self.macros:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7820 qs.append(s)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7821 qs.sort()
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
7822 return QInputDialog.getItem(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7823 self, self.tr("Macro Name"), self.tr("Select a macro name:"), qs, 0, False
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7824 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7825
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7826 def macroRun(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7827 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7828 Public method to execute a macro.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7829 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7830 name, ok = self.__getMacroName()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7831 if ok and name:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7832 self.macros[name].play()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7833
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7834 def macroDelete(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7835 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7836 Public method to delete a macro.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7837 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7838 name, ok = self.__getMacroName()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7839 if ok and name:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7840 del self.macros[name]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7841
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7842 def macroLoad(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7843 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7844 Public method to load a macro from a file.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7845 """
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9619
diff changeset
7846 configDir = Globals.getConfigDir()
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7847 fname = EricFileDialog.getOpenFileName(
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7848 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7849 self.tr("Load macro file"),
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7850 configDir,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7851 self.tr("Macro files (*.macro)"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7852 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7853
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7854 if not fname:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7855 return # user aborted
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7856
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7857 try:
7785
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7783
diff changeset
7858 with open(fname, "r", encoding="utf-8") as f:
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7783
diff changeset
7859 lines = f.readlines()
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7790
diff changeset
7860 except OSError:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7861 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
7862 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7863 self.tr("Error loading macro"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7864 self.tr("<p>The macro file <b>{0}</b> could not be read.</p>").format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7865 fname
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7866 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7867 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7868 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7869
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7870 if len(lines) != 2:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7871 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
7872 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7873 self.tr("Error loading macro"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7874 self.tr("<p>The macro file <b>{0}</b> is corrupt.</p>").format(fname),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7875 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7876 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7877
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7878 macro = QsciMacro(lines[1], self)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7879 self.macros[lines[0].strip()] = macro
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7880
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7881 def macroSave(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7882 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7883 Public method to save a macro to a file.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7884 """
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9619
diff changeset
7885 configDir = Globals.getConfigDir()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7886
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7887 name, ok = self.__getMacroName()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7888 if not ok or not name:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7889 return # user abort
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7890
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7891 fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7892 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7893 self.tr("Save macro file"),
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7894 configDir,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7895 self.tr("Macro files (*.macro)"),
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7896 "",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7897 EricFileDialog.DontConfirmOverwrite,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7898 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7899
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7900 if not fname:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7901 return # user aborted
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7902
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
7903 fpath = pathlib.Path(fname)
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
7904 if not fpath.suffix:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7905 ex = selectedFilter.split("(*")[1].split(")")[0]
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7906 if ex:
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
7907 fpath = fpath.with_suffix(ex)
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
7908 if fpath.exists():
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7909 res = EricMessageBox.yesNo(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
7910 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7911 self.tr("Save macro"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7912 self.tr(
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9563
diff changeset
7913 "<p>The macro file <b>{0}</b> already exists. Overwrite it?</p>"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7914 ).format(fpath),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7915 icon=EricMessageBox.Warning,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7916 )
546
c3e7bf5648be Continued replacing QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 542
diff changeset
7917 if not res:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7918 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7919
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7920 try:
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
7921 with fpath.open("w", encoding="utf-8") as f:
7785
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7783
diff changeset
7922 f.write("{0}{1}".format(name, "\n"))
9978016560ec Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7783
diff changeset
7923 f.write(self.macros[name].save())
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7790
diff changeset
7924 except OSError:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7925 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
7926 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7927 self.tr("Error saving macro"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7928 self.tr(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7929 "<p>The macro file <b>{0}</b> could not be written.</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7930 ).format(fpath),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7931 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7932 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7933
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7934 def macroRecordingStart(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7935 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7936 Public method to start macro recording.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7937 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7938 if self.recording:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7939 res = EricMessageBox.yesNo(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
7940 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7941 self.tr("Start Macro Recording"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7942 self.tr("Macro recording is already active. Start new?"),
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
7943 icon=EricMessageBox.Warning,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7944 yesDefault=True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7945 )
541
00e1a5d060c5 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 539
diff changeset
7946 if res:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7947 self.macroRecordingStop()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7948 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7949 return
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7950 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7951 self.recording = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7952
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7953 self.curMacro = QsciMacro(self)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7954 self.curMacro.startRecording()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7955
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7956 def macroRecordingStop(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7957 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7958 Public method to stop macro recording.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7959 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7960 if not self.recording:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7961 return # we are not recording
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7962
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7963 self.curMacro.endRecording()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7964 self.recording = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7965
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
7966 name, ok = QInputDialog.getText(
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7967 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7968 self.tr("Macro Recording"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
7969 self.tr("Enter name of the macro:"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7970 QLineEdit.EchoMode.Normal,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7971 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7972
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7973 if ok and name:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7974 self.macros[name] = self.curMacro
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7975
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7976 self.curMacro = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7977
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7978 #################################################################
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7979 ## Overwritten methods
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7980 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7981
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7982 def undo(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7983 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7984 Public method to undo the last recorded change.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7985 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
7986 super().undo()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
7987 self.undoAvailable.emit(self.isUndoAvailable())
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
7988 self.redoAvailable.emit(self.isRedoAvailable())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7989
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7990 def redo(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7991 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7992 Public method to redo the last recorded change.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7993 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
7994 super().redo()
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
7995 self.undoAvailable.emit(self.isUndoAvailable())
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
7996 self.redoAvailable.emit(self.isRedoAvailable())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
7997
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
7998 def close(self):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
7999 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8000 Public method called when the window gets closed.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8001
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8002 This overwritten method redirects the action to our
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8003 ViewManager.closeEditor, which in turn calls our closeIt
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8004 method.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8005
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8006 @return flag indicating a successful close of the editor
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8007 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8008 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8009 return self.vm.closeEditor(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8010
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8011 def closeIt(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8012 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8013 Public method called by the viewmanager to finally get rid of us.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8014 """
1930
3ecd42f536fd Fixed an issue related to breakpoints and cloned editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1928
diff changeset
8015 if Preferences.getEditor("ClearBreaksOnClose") and not self.__clones:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8016 self.__menuClearBreakpoints()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8017
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8018 for clone in self.__clones[:]:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8019 self.removeClone(clone)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8020 clone.removeClone(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8021
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8022 self.breakpointModel.rowsAboutToBeRemoved.disconnect(self.__deleteBreakPoints)
460
6a3899e91d76 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 448
diff changeset
8023 self.breakpointModel.dataAboutToBeChanged.disconnect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8024 self.__breakPointDataAboutToBeChanged
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8025 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8026 self.breakpointModel.dataChanged.disconnect(self.__changeBreakPoints)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8027 self.breakpointModel.rowsInserted.disconnect(self.__addBreakPoints)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8028
3972
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
8029 if self.syntaxCheckService is not None:
efc9c803ebdc Fixed an issue related to handling an inactive syntax checker in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3971
diff changeset
8030 self.syntaxCheckService.syntaxChecked.disconnect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8031 self.__processSyntaxCheckResult
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8032 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8033 self.syntaxCheckService.error.disconnect(self.__processSyntaxCheckError)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8034
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8035 if self.spell:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8036 self.spell.stopIncrementalCheck()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8037
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
8038 with contextlib.suppress(TypeError):
507
23652b3a0533 Fixed an issue with not connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 502
diff changeset
8039 self.project.projectPropertiesChanged.disconnect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8040 self.__projectPropertiesChanged
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8041 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8042
1406
e2f1634cceed Fixed an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1373
diff changeset
8043 if self.fileName:
e2f1634cceed Fixed an issue in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1373
diff changeset
8044 self.taskViewer.clearFileTasks(self.fileName, True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8045
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8046 super().close()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8047
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8048 def keyPressEvent(self, ev):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8049 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3583
diff changeset
8050 Protected method to handle the user input a key at a time.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8051
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8052 @param ev key event
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8053 @type QKeyEvent
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8054 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8055
7969
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8056 def encloseSelectedText(encString):
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8057 """
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8058 Local function to enclose the current selection with some
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8059 characters.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8060
7969
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8061 @param encString string to use to enclose the selection
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8062 (one or two characters)
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8063 @type str
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8064 """
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8065 startChar = encString[0]
8235
78e6d29eb773 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8231
diff changeset
8066 endChar = encString[1] if len(encString) == 2 else startChar
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8067
7969
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8068 sline, sindex, eline, eindex = self.getSelection()
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8069 replaceText = startChar + self.selectedText() + endChar
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8070 self.beginUndoAction()
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8071 self.replaceSelectedText(replaceText)
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8072 self.endUndoAction()
62eff8b34a8d Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7960
diff changeset
8073 self.setSelection(sline, sindex + 1, eline, eindex + 1)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8074
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8075 txt = ev.text()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8076
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8077 # See it is text to insert.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8078 if len(txt) and txt >= " ":
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8079 if self.hasSelectedText() and txt in Editor.EncloseChars:
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8221
diff changeset
8080 encloseSelectedText(Editor.EncloseChars[txt])
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8221
diff changeset
8081 ev.accept()
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8221
diff changeset
8082 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8083
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8084 super().keyPressEvent(ev)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8085 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8086 ev.ignore()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8087
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8088 def focusInEvent(self, event):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8089 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8090 Protected method called when the editor receives focus.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8091
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8092 This method checks for modifications of the current file and
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8093 rereads it upon request. The cursor is placed at the current position
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8094 assuming, that it is in the vicinity of the old position after the
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8095 reread.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8096
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8097 @param event the event object
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8098 @type QFocusEvent
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8099 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8100 self.recolor()
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8101
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8102 self.vm.editActGrp.setEnabled(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8103 self.vm.editorActGrp.setEnabled(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8104 self.vm.copyActGrp.setEnabled(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8105 self.vm.viewActGrp.setEnabled(True)
128
13e96bd0f5a5 Fixed an issue with handling the focus and (de-)activation of actions as it changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 115
diff changeset
8106 self.vm.searchActGrp.setEnabled(True)
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8107
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
8108 with contextlib.suppress(AttributeError):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8109 self.setCaretWidth(self.caretWidth)
10561
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8110 if not self.dbs.isDebugging:
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8111 self.__updateReadOnly(False)
404
44a541bea034 Added code to adjust the cursor flash time of the editor to the global settings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 342
diff changeset
8112 self.setCursorFlashTime(QApplication.cursorFlashTime())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8113
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8114 if (
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8115 self.fileName
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8116 and FileSystemUtilities.isRemoteFileName(self.fileName)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8117 and not self.inReopenPrompt
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8118 ):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8119 self.inReopenPrompt = True
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8120 self.checkRereadFile()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8121 self.inReopenPrompt = False
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8122
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8123 super().focusInEvent(event)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8124
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8125 def focusOutEvent(self, event):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8126 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3583
diff changeset
8127 Protected method called when the editor loses focus.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8128
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8129 @param event the event object
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8130 @type QFocusEvent
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8131 """
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8132 if (
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8133 Preferences.getEditor("AutosaveOnFocusLost")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8134 and self.__shouldAutosave()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8135 and not self.inReopenPrompt
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8136 ):
10307
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
8137 self.saveFile()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10288
diff changeset
8138
7276
25c93adb5de9 Editor: backed out changes of changeset 3ead033becb8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7267
diff changeset
8139 self.vm.editorActGrp.setEnabled(False)
25c93adb5de9 Editor: backed out changes of changeset 3ead033becb8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7267
diff changeset
8140 self.setCaretWidth(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8141
8581
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
8142 self.cancelCallTips()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8143
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8144 super().focusOutEvent(event)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8145
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8146 def changeEvent(self, evt):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8147 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8148 Protected method called to process an event.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8149
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8150 This implements special handling for the events showMaximized,
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8151 showMinimized and showNormal. The windows caption is shortened
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8152 for the minimized mode and reset to the full filename for the
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8153 other modes. This is to make the editor windows work nicer
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8154 with the QWorkspace.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8155
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8156 @param evt the event, that was generated
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8157 @type QEvent
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8158 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8159 if evt.type() == QEvent.Type.WindowStateChange and bool(self.fileName):
8441
371cbc55badd Fixed some issues related to non-existing flags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8439
diff changeset
8160 cap = (
371cbc55badd Fixed some issues related to non-existing flags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8439
diff changeset
8161 os.path.basename(self.fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8162 if self.windowState() == Qt.WindowState.WindowMinimized
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8163 else self.fileName
8441
371cbc55badd Fixed some issues related to non-existing flags.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8439
diff changeset
8164 )
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8165 if self.checkReadOnly():
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8166 cap = self.tr("{0} (ro)").format(cap)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8167 self.setWindowTitle(cap)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8168
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8169 super().changeEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8170
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8171 def mousePressEvent(self, event):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8172 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8173 Protected method to handle the mouse press event.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8174
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8175 @param event the mouse press event
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8176 @type QMouseEvent
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8177 """
8710
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
8178 if event.button() == Qt.MouseButton.XButton1:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
8179 self.undo()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
8180 event.accept()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
8181 elif event.button() == Qt.MouseButton.XButton2:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
8182 self.redo()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
8183 event.accept()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8184 elif event.button() == Qt.MouseButton.LeftButton and bool(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8185 event.modifiers()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8186 & (Qt.KeyboardModifier.MetaModifier | Qt.KeyboardModifier.AltModifier)
8713
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8710
diff changeset
8187 ):
8766
77a85cb69d47 Fixed a backward compatibility issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8761
diff changeset
8188 line, index = self.lineIndexFromPoint(event.position().toPoint())
8713
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8710
diff changeset
8189 self.addCursor(line, index)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8710
diff changeset
8190 event.accept()
8710
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
8191 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
8192 self.vm.eventFilter(self, event)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
8193 super().mousePressEvent(event)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8194
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
8195 def mouseDoubleClickEvent(self, evt):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
8196 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
8197 Protected method to handle mouse double click events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8198
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
8199 @param evt reference to the mouse event
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
8200 @type QMouseEvent
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
8201 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8202 super().mouseDoubleClickEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8203
9408
e993c39097d3 Modified the double click event handling in the editor to prevent propagation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9405
diff changeset
8204 # accept all double click events even if not handled by QScintilla
e993c39097d3 Modified the double click event handling in the editor to prevent propagation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9405
diff changeset
8205 evt.accept()
e993c39097d3 Modified the double click event handling in the editor to prevent propagation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9405
diff changeset
8206
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
8207 self.mouseDoubleClick.emit(evt.position().toPoint(), evt.buttons())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8208
1507
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8209 def wheelEvent(self, evt):
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8210 """
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8211 Protected method to handle wheel events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8212
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8213 @param evt reference to the wheel event
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8214 @type QWheelEvent
1507
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8215 """
7198
684261ef2165 Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
8216 delta = evt.angleDelta().y()
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
8217 if evt.modifiers() & Qt.KeyboardModifier.ControlModifier:
3778
0c5bc18da740 Added more changes to make eric6 usable with PyQt4 as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
8218 if delta < 0:
1507
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8219 self.zoomOut()
6081
7ea61bd1aa23 Fixed handling of mouse wheel events for mive with a wheel supporting horizontal tilting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6073
diff changeset
8220 elif delta > 0:
1507
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8221 self.zoomIn()
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8222 evt.accept()
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8223 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8224
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
8225 if evt.modifiers() & Qt.KeyboardModifier.ShiftModifier:
3778
0c5bc18da740 Added more changes to make eric6 usable with PyQt4 as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
8226 if delta < 0:
1507
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8227 self.gotoMethodClass(False)
6081
7ea61bd1aa23 Fixed handling of mouse wheel events for mive with a wheel supporting horizontal tilting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6073
diff changeset
8228 elif delta > 0:
1507
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8229 self.gotoMethodClass(True)
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8230 evt.accept()
9225700cbff5 - added capability to zoom by Ctrl + Mouse Wheel to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1500
diff changeset
8231 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8232
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8233 super().wheelEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8234
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8235 def event(self, evt):
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8236 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3583
diff changeset
8237 Public method handling events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8238
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8239 @param evt reference to the event
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8240 @type QEvent
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8241 @return flag indicating, if the event was handled
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8242 @rtype bool
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8243 """
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
8244 if evt.type() == QEvent.Type.Gesture:
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8245 self.gestureEvent(evt)
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8246 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8247
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8248 return super().event(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8249
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8250 def gestureEvent(self, evt):
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8251 """
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8252 Protected method handling gesture events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8253
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8254 @param evt reference to the gesture event
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8255 @type QGestureEvent
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8256 """
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
8257 pinch = evt.gesture(Qt.GestureType.PinchGesture)
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8258 if pinch:
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
8259 if pinch.state() == Qt.GestureState.GestureStarted:
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8260 zoom = (self.getZoom() + 10) / 10.0
5631
d0beabfaad42 Fixed the pinch gesture behavior.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
8261 pinch.setTotalScaleFactor(zoom)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
8262 elif pinch.state() == Qt.GestureState.GestureUpdated:
5631
d0beabfaad42 Fixed the pinch gesture behavior.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
8263 zoom = int(pinch.totalScaleFactor() * 10) - 10
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8264 if zoom <= -9:
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8265 zoom = -9
5631
d0beabfaad42 Fixed the pinch gesture behavior.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
8266 pinch.setTotalScaleFactor(0.1)
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8267 elif zoom >= 20:
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8268 zoom = 20
5631
d0beabfaad42 Fixed the pinch gesture behavior.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
8269 pinch.setTotalScaleFactor(3.0)
1518
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8270 self.zoomTo(zoom)
e6e21910210d Added capability to zoom by a pinch gesture to the editor, the shell, the terminal, the web browser and various graphics related windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
8271 evt.accept()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8272
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8273 def resizeEvent(self, evt):
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8274 """
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8275 Protected method handling resize events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8276
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8277 @param evt reference to the resize event
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8278 @type QResizeEvent
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8279 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8280 super().resizeEvent(evt)
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8281 self.__markerMap.calculateGeometry()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8282
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8283 def viewportEvent(self, evt):
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8284 """
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8285 Protected method handling event of the viewport.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8286
7864
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8287 @param evt reference to the event
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8288 @type QEvent
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8289 @return flag indiating that the event was handled
431e6816c60c Editor, MiniEditor: added code to enclose the current selection by entering " or ' characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7836
diff changeset
8290 @rtype bool
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8291 """
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
8292 with contextlib.suppress(AttributeError):
7546
bf5f777260a6 Editor: fixed an issue in handling viewport events.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7543
diff changeset
8293 self.__markerMap.calculateGeometry()
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8294 return super().viewportEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8295
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
8296 def __updateReadOnly(self, bForce=True):
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
8297 """
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
8298 Private method to update the readOnly information for this editor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8299
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8300 If bForce is True, then updates everything regardless if
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8301 the attributes have actually changed, such as during
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8302 initialization time. A signal is emitted after the
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8303 caption change.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8304
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8305 @param bForce True to force change, False to only update and emit
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8306 signal if there was an attribute change.
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8307 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8308 """
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
8309 if self.fileName == "" or FileSystemUtilities.isDeviceFileName(self.fileName):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8310 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8311
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8312 readOnly = self.checkReadOnly()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8313 if not bForce and (readOnly == self.isReadOnly()):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8314 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8315
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8316 cap = self.fileName
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8317 if readOnly:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8318 cap = self.tr("{0} (ro)".format(cap))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8319 self.setReadOnly(readOnly)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8320 self.setWindowTitle(cap)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
8321 self.captionChanged.emit(cap, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8322
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8323 def checkReadOnly(self):
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8324 """
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8325 Public method to check the 'read only' state.
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8326
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8327 @return flag indicate a 'read only' state
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8328 @rtype bool
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8329 """
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8330 return (
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8331 (
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8332 FileSystemUtilities.isPlainFileName(self.fileName)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8333 and not os.access(self.fileName, os.W_OK)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8334 )
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8335 or (
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8336 FileSystemUtilities.isRemoteFileName(self.fileName)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8337 and not self.__remotefsInterface.access(
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
8338 FileSystemUtilities.plainFileName(self.fileName), "write"
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
8339 )
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8340 )
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8341 or self.isReadOnly()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8342 )
9758
6d24ab9c0404 Modified Editor and view managers to be usable with files loaded from a connected device and (potentially) remote files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9690
diff changeset
8343
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
8344 @pyqtSlot()
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8345 def checkRereadFile(self):
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8346 """
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8347 Public slot to check, if the file needs to be re-read, and refresh it if
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8348 needed.
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8349 """
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8350 if self.checkModificationTime():
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8351 if Preferences.getEditor("AutoReopen") and not self.isModified():
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8352 self.__refresh()
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8353 else:
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8354 msg = self.tr(
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8355 """<p>The file <b>{0}</b> has been changed while it"""
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8356 """ was opened in eric. Reread it?</p>"""
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8357 ).format(self.fileName)
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8358 yesDefault = True
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8359 if self.isModified():
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8360 msg += self.tr(
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8361 """<br><b>Warning:</b> You will lose"""
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8362 """ your changes upon reopening it."""
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8363 )
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8364 yesDefault = False
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8365 res = EricMessageBox.yesNo(
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8366 self,
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8367 self.tr("File changed"),
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8368 msg,
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8369 icon=EricMessageBox.Warning,
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8370 yesDefault=yesDefault,
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8371 )
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8372 if res:
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8373 self.__refresh()
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8374 else:
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8375 # do not prompt for this change again...
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8376 self.recordModificationTime()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8377
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8378 @pyqtSlot()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8379 def recordModificationTime(self, filename=""):
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8380 """
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8381 Public slot to record the modification time of our file.
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8382
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8383 @param filename name of the file to record the modification tome for
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8384 (defaults to "")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8385 @type str (optional)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8386 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8387 if not filename:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8388 filename = self.fileName
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8389
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8390 if filename:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8391 if FileSystemUtilities.isRemoteFileName(filename):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8392 filename = FileSystemUtilities.plainFileName(filename)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8393 if self.__remotefsInterface.exists(filename):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8394 mtime = self.__remotefsInterface.stat(
10561
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8395 FileSystemUtilities.plainFileName(filename), ["st_mtime"]
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8396 )["st_mtime"]
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8397 self.lastModified = mtime if mtime is not None else 0
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8398 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8399 self.lastModified = 0
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8400 elif pathlib.Path(filename).exists():
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8401 self.lastModified = pathlib.Path(filename).stat().st_mtime
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8402 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8403 self.lastModified = 0
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8404
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8405 else:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8406 self.lastModified = 0
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8407
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8408 def checkModificationTime(self, filename=""):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8409 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8410 Public method to check, if the modification time of the file is different
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8411 from the recorded one.
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8412
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8413 @param filename name of the file to check against (defaults to "")
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8414 @type str (optional)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8415 @return flag indicating that the file modification time is different. For
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8416 non-existent files a 'False' value will be reported.
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8417 @rtype bool
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8418 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8419 if not filename:
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8420 filename = self.fileName
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8421
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8422 if filename:
10561
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8423 if (
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8424 FileSystemUtilities.isRemoteFileName(filename)
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8425 and not self.dbs.isDebugging
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8426 ):
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8427 plainFilename = FileSystemUtilities.plainFileName(filename)
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8428 if self.__remotefsInterface.exists(plainFilename):
10576
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
8429 mtime = self.__remotefsInterface.stat(plainFilename, ["st_mtime"])[
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
8430 "st_mtime"
0cf5ebf17411 Adapted the Code Metrics dialog to support remote files and directories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10575
diff changeset
8431 ]
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8432 return mtime != self.lastModified
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8433
10561
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8434 elif (
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8435 FileSystemUtilities.isPlainFileName(filename)
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8436 and pathlib.Path(filename).exists()
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8437 ):
be23a662d709 Implemented (most) of the eric-ide server debugging functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10550
diff changeset
8438 return pathlib.Path(filename).stat().st_mtime != self.lastModified
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8439
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8440 return False
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8441
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8442 @pyqtSlot()
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8443 def __refresh(self):
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8444 """
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
8445 Private slot to refresh the editor contents.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8446 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8447 # save cursor position
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8448 cline, cindex = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8449
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8450 # save bookmarks and breakpoints and clear them
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8451 bmlist = self.getBookmarks()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8452 self.clearBookmarks()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8453
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8454 # clear syntax error markers
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8455 self.clearSyntaxError()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8456
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8457 # clear flakes warning markers
3062
9de9373da5bb Extended the editor warning messages handling and refactored the names of warning handling methods to reflect their more general use.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3059
diff changeset
8458 self.clearWarnings()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8459
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8460 # clear breakpoint markers
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
8461 for handle in self.breaks:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8462 self.markerDeleteHandle(handle)
8106
81bf8fe10735 Editor: fixed an issue handling breakpoints (and other stuff) in a cloned editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8004
diff changeset
8463 self.breaks.clear()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8464
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8465 # reread the file
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8466 try:
10377
9f6ffcd1db54 Changed the code determining if a refresh of the editor is needed by delegating it to a file system watcher.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10376
diff changeset
8467 self.readFile(self.fileName, noempty=True)
7836
2f0d208b8137 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7790
diff changeset
8468 except OSError:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8469 # do not prompt for this change again...
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8470 self.lastModified = QDateTime.currentDateTime()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8471 self.setModified(False)
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
8472 self.__convertTabs()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8473
2189
5149cec53130 Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2165
diff changeset
8474 # re-initialize the online change tracer
5149cec53130 Fixed an issue in the editor related to not re-initializing the online change tracer after a file has been refreshed (reread after an external change).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2165
diff changeset
8475 self.__reinitOnlineChangeTrace()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8476
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8477 # reset cursor position
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8478 self.setCursorPosition(cline, cindex)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8479 self.ensureCursorVisible()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8480
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8481 # reset bookmarks and breakpoints to their old position
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8482 if bmlist:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8483 for bm in bmlist:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8484 self.toggleBookmark(bm)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8485 self.__restoreBreakpoints()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8486
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
8487 self.editorSaved.emit(self.fileName)
3579
eccd12461319 BackgroundService: Restart of the client in different situations handled.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3576
diff changeset
8488 self.checkSyntax()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8489
3329
1ee38e29ed4f Continued implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3327
diff changeset
8490 self.__markerMap.update()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8491
1807
9898a95461f1 Added a signal to the editor showing a refresh has happend and connected the editor assembly to it.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1768
diff changeset
8492 self.refreshed.emit()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8493
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8494 def setMonospaced(self, on):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8495 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8496 Public method to set/reset a monospaced font.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8497
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8498 @param on flag to indicate usage of a monospace font
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8499 @type bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8500 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8501 if on:
3087
fdbce259929f Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3069
diff changeset
8502 if not self.lexer_:
fdbce259929f Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3069
diff changeset
8503 f = Preferences.getEditorOtherFonts("MonospacedFont")
fdbce259929f Changed the handling of the monospace font usage in the editor, mini editor and shell.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3069
diff changeset
8504 self.monospacedStyles(f)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8505 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8506 if not self.lexer_:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8507 self.clearStyles()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8508 self.__setMarginsDisplay()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8509 self.setFont(Preferences.getEditorOtherFonts("DefaultFont"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8510
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8511 self.useMonospaced = on
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8512
3095
72938a6d5047 Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3087
diff changeset
8513 def clearStyles(self):
72938a6d5047 Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3087
diff changeset
8514 """
72938a6d5047 Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3087
diff changeset
8515 Public method to set the styles according the selected Qt style
72938a6d5047 Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3087
diff changeset
8516 or the selected editor colours.
72938a6d5047 Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3087
diff changeset
8517 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8518 super().clearStyles()
3095
72938a6d5047 Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3087
diff changeset
8519 if Preferences.getEditor("OverrideEditAreaColours"):
72938a6d5047 Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3087
diff changeset
8520 self.setColor(Preferences.getEditorColour("EditAreaForeground"))
72938a6d5047 Fixed a bug preventing overriding the editor foreground and background colors, when a lexer was set to None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3087
diff changeset
8521 self.setPaper(Preferences.getEditorColour("EditAreaBackground"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8522
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8523 #################################################################
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8524 ## Drag and Drop Support
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8525 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8526
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8527 def dragEnterEvent(self, event):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8528 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8529 Protected method to handle the drag enter event.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8530
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8531 @param event the drag enter event
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8532 @type QDragEnterEvent
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8533 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8534 self.inDragDrop = event.mimeData().hasUrls()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8535 if self.inDragDrop:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8536 event.acceptProposedAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8537 else:
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8538 super().dragEnterEvent(event)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8539
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8540 def dragMoveEvent(self, event):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8541 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8542 Protected method to handle the drag move event.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8543
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8544 @param event the drag move event
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8545 @type QDragMoveEvent
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8546 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8547 if self.inDragDrop:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8548 event.accept()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8549 else:
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8550 super().dragMoveEvent(event)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8551
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8552 def dragLeaveEvent(self, event):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8553 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8554 Protected method to handle the drag leave event.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8555
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8556 @param event the drag leave event
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8557 @type QDragLeaveEvent
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8558 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8559 if self.inDragDrop:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8560 self.inDragDrop = False
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8561 event.accept()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8562 else:
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8563 super().dragLeaveEvent(event)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8564
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8565 def dropEvent(self, event):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8566 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8567 Protected method to handle the drop event.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8568
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8569 @param event the drop event
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8570 @type QDropEvent
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8571 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8572 if event.mimeData().hasUrls():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8573 for url in event.mimeData().urls():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8574 fname = url.toLocalFile()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8575 if fname:
9152
8a68afaf1ba2 Started replacing the use of "QFileInfo()" with Python equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9092
diff changeset
8576 if not pathlib.Path(fname).is_dir():
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8577 self.vm.openSourceFile(fname)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8578 else:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
8579 EricMessageBox.information(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
8580 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8581 self.tr("Drop Error"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8582 self.tr("""<p><b>{0}</b> is not a file.</p>""").format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8583 fname
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8584 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8585 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8586 event.acceptProposedAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8587 else:
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8588 super().dropEvent(event)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8589
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8590 self.inDragDrop = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8591
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8592 #################################################################
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8593 ## Support for Qt resources files
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8594 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8595
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8596 def __initContextMenuResources(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8597 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8598 Private method used to setup the Resources context sub menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8599
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8600 @return reference to the generated menu
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8601 @rtype QMenu
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8602 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8603 menu = QMenu(self.tr("Resources"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8604
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8605 menu.addAction(self.tr("Add file..."), self.__addFileResource)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8606 menu.addAction(self.tr("Add files..."), self.__addFileResources)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8607 menu.addAction(self.tr("Add aliased file..."), self.__addFileAliasResource)
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
8608 menu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8609 self.tr("Add localized resource..."), self.__addLocalizedResource
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8610 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8611 menu.addSeparator()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8612 menu.addAction(self.tr("Add resource frame"), self.__addResourceFrame)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8613
461
34528aaedf1c Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 460
diff changeset
8614 menu.aboutToShow.connect(self.__showContextMenuResources)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8615
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8616 return menu
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8617
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
8618 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8619 def __showContextMenuResources(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8620 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8621 Private slot handling the aboutToShow signal of the resources context
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8622 menu.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8623 """
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
8624 self.showMenu.emit("Resources", self.resourcesMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8625
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8626 def __addFileResource(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8627 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8628 Private method to handle the Add file context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8629 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8630 dirStr = os.path.dirname(self.fileName)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
8631 file = EricFileDialog.getOpenFileName(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8632 self, self.tr("Add file resource"), dirStr, ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8633 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8634 if file:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8635 relFile = QDir(dirStr).relativeFilePath(file)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8636 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8637 self.insert(" <file>{0}</file>\n".format(relFile))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8638 self.setCursorPosition(line + 1, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8639
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8640 def __addFileResources(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8641 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8642 Private method to handle the Add files context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8643 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8644 dirStr = os.path.dirname(self.fileName)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
8645 files = EricFileDialog.getOpenFileNames(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8646 self, self.tr("Add file resources"), dirStr, ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8647 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8648 if files:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8649 myDir = QDir(dirStr)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8650 filesText = ""
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8651 for file in files:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8652 relFile = myDir.relativeFilePath(file)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8653 filesText += " <file>{0}</file>\n".format(relFile)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8654 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8655 self.insert(filesText)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8656 self.setCursorPosition(line + len(files), index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8657
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8658 def __addFileAliasResource(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8659 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8660 Private method to handle the Add aliased file context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8661 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8662 dirStr = os.path.dirname(self.fileName)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
8663 file = EricFileDialog.getOpenFileName(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8664 self, self.tr("Add aliased file resource"), dirStr, ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8665 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8666 if file:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8667 relFile = QDir(dirStr).relativeFilePath(file)
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 559
diff changeset
8668 alias, ok = QInputDialog.getText(
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8669 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8670 self.tr("Add aliased file resource"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8671 self.tr("Alias for file <b>{0}</b>:").format(relFile),
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
8672 QLineEdit.EchoMode.Normal,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8673 relFile,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8674 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8675 if ok and alias:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8676 line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8677 self.insert(' <file alias="{1}">{0}</file>\n'.format(relFile, alias))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8678 self.setCursorPosition(line + 1, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8679
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8680 def __addLocalizedResource(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8681 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8682 Private method to handle the Add localized resource context menu
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8683 action.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8684 """
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
8685 from eric7.Project.AddLanguageDialog import AddLanguageDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8686
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8687 dlg = AddLanguageDialog(self)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
8688 if dlg.exec() == QDialog.DialogCode.Accepted:
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8689 lang = dlg.getSelectedLanguage()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8690 line, index = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8691 self.insert('<qresource lang="{0}">\n</qresource>\n'.format(lang))
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8692 self.setCursorPosition(line + 2, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8693
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8694 def __addResourceFrame(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8695 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8696 Private method to handle the Add resource frame context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8697 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8698 line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8699 self.insert(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8700 "<!DOCTYPE RCC>\n"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8701 '<RCC version="1.0">\n'
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8702 "<qresource>\n"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8703 "</qresource>\n"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8704 "</RCC>\n"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8705 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8706 self.setCursorPosition(line + 5, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8707
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8708 #################################################################
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8709 ## Support for diagrams below
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8710 #################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8711
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8712 def __showClassDiagram(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8713 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8714 Private method to handle the Class Diagram context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8715 """
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
8716 from eric7.Graphics.UMLDialog import UMLDialog, UMLDialogType
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8717
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8718 if not self.checkDirty():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8719 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8720
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8721 self.classDiagram = UMLDialog(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8722 UMLDialogType.CLASS_DIAGRAM,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8723 self.project,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8724 self.fileName,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8725 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8726 noAttrs=False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8727 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8728 self.classDiagram.show()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8729
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8730 def __showPackageDiagram(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8731 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8732 Private method to handle the Package Diagram context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8733 """
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
8734 from eric7.Graphics.UMLDialog import UMLDialog, UMLDialogType
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8735
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8736 if not self.checkDirty():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8737 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8738
10583
2114cc7275e8 Adapted the UML Class diagram and the Package diagram to support the 'eric-ide' server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10576
diff changeset
8739 if FileSystemUtilities.isRemoteFileName(self.fileName):
10585
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8740 package = (
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8741 self.fileName
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8742 if self.__remotefsInterface.isdir(self.fileName)
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8743 else self.__remotefsInterface.dirname(self.fileName)
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8744 )
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8745 else:
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8746 package = (
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8747 self.fileName
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8748 if os.path.isdir(self.fileName)
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8749 else os.path.dirname(self.fileName)
83e5a9a64543 Improved the remote file system interface to work with 'eric-ide' servers with a different OS than the IDE computer and adapted the code accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10583
diff changeset
8750 )
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
8751 res = EricMessageBox.yesNo(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
8752 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8753 self.tr("Package Diagram"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8754 self.tr("""Include class attributes?"""),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8755 yesDefault=True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8756 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8757 self.packageDiagram = UMLDialog(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8758 UMLDialogType.PACKAGE_DIAGRAM, self.project, package, self, noAttrs=not res
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8759 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8760 self.packageDiagram.show()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8761
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8762 def __showImportsDiagram(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8763 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8764 Private method to handle the Imports Diagram context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8765 """
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
8766 from eric7.Graphics.UMLDialog import UMLDialog, UMLDialogType
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8767
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8768 if not self.checkDirty():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8769 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8770
8277
ea734702ae94 UML Diagrams
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8276
diff changeset
8771 package = os.path.dirname(self.fileName)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
8772 res = EricMessageBox.yesNo(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
8773 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8774 self.tr("Imports Diagram"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8775 self.tr("""Include imports from external modules?"""),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8776 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8777 self.importsDiagram = UMLDialog(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8778 UMLDialogType.IMPORTS_DIAGRAM,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8779 self.project,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8780 package,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8781 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8782 showExternalImports=res,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8783 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8784 self.importsDiagram.show()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8785
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8786 def __showApplicationDiagram(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8787 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8788 Private method to handle the Imports Diagram context menu action.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8789 """
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
8790 from eric7.Graphics.UMLDialog import UMLDialog, UMLDialogType
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8791
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
8792 res = EricMessageBox.yesNo(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
8793 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8794 self.tr("Application Diagram"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
8795 self.tr("""Include module names?"""),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8796 yesDefault=True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8797 )
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8798 self.applicationDiagram = UMLDialog(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8799 UMLDialogType.APPLICATION_DIAGRAM, self.project, self, noModules=not res
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8800 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8801 self.applicationDiagram.show()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8802
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
8803 @pyqtSlot()
2034
8de0fc1f7fef Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2031
diff changeset
8804 def __loadDiagram(self):
8de0fc1f7fef Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2031
diff changeset
8805 """
8de0fc1f7fef Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2031
diff changeset
8806 Private slot to load a diagram from file.
8de0fc1f7fef Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2031
diff changeset
8807 """
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
8808 from eric7.Graphics.UMLDialog import UMLDialog, UMLDialogType
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8809
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8810 self.loadedDiagram = UMLDialog(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8811 UMLDialogType.NO_DIAGRAM, self.project, parent=self
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8812 )
2034
8de0fc1f7fef Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2031
diff changeset
8813 if self.loadedDiagram.load():
8de0fc1f7fef Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2031
diff changeset
8814 self.loadedDiagram.show(fromFile=True)
8de0fc1f7fef Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2031
diff changeset
8815 else:
8de0fc1f7fef Implemented functions to load UML graphics from disc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2031
diff changeset
8816 self.loadedDiagram = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8817
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8818 #######################################################################
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8819 ## Typing aids related methods below
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8820 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8821
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
8822 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8823 def __toggleTypingAids(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8824 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8825 Private slot to toggle the typing aids.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8826 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8827 if self.menuActs["TypingAidsEnabled"].isChecked():
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8828 self.completer.setEnabled(True)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8829 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8830 self.completer.setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8831
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8832 #######################################################################
6059
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
8833 ## Auto-completing templates
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8834 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8835
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8836 def editorCommand(self, cmd):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8837 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8838 Public method to perform a simple editor command.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8839
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8840 @param cmd the scintilla command to be performed
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8841 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8842 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8843 if cmd == QsciScintilla.SCI_TAB:
6426
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8844 try:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
8845 templateViewer = ericApp().getObject("TemplateViewer")
6426
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8846 except KeyError:
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8847 # template viewer is not active
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8848 templateViewer = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8849
6426
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8850 if templateViewer is not None:
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8851 line, index = self.getCursorPosition()
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8852 tmplName = self.getWordLeft(line, index)
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8853 if tmplName:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8854 if templateViewer.hasTemplate(tmplName, self.getLanguage()):
6426
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8855 self.__applyTemplate(tmplName, self.getLanguage())
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8856 return
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8857 else:
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8858 templateNames = templateViewer.getTemplateNames(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8859 tmplName, self.getLanguage()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8860 )
6426
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8861 if len(templateNames) == 1:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8862 self.__applyTemplate(templateNames[0], self.getLanguage())
6426
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8863 return
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8864 elif len(templateNames) > 1:
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8865 self.showUserList(
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8866 TemplateCompletionListID,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8867 [
10473
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10465
diff changeset
8868 "{0}?{1:d}".format(t, EditorIconId.TemplateImage)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8869 for t in templateNames
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8870 ],
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8871 )
6426
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8872 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8873
8165
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8158
diff changeset
8874 elif cmd == QsciScintilla.SCI_DELETEBACK:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8158
diff changeset
8875 line, index = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8876 text = self.text(line)[index - 1 : index + 1]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8877 matchingPairs = ["()", "[]", "{}", "<>", "''", '""']
8169
139bd30c52c2 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8165
diff changeset
8878 # __IGNORE_WARNING_M613__
8165
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8158
diff changeset
8879 if text in matchingPairs:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8158
diff changeset
8880 self.delete()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8881
9333
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8882 elif (
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8883 cmd in (QsciScintilla.SCI_LOWERCASE, QsciScintilla.SCI_UPPERCASE)
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8884 and self.hasSelectedText()
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8885 ):
9619
7033f25b1462 Corrected an issue keeping the current selection when converting to upper-/lowercase (see issue452, part2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9612
diff changeset
8886 startLine, startIndex, endLine, endIndex = self.getSelection()
9333
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8887 selectedText = self.selectedText()
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8888 replacementText = (
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8889 selectedText.upper()
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8890 if cmd == QsciScintilla.SCI_UPPERCASE
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8891 else selectedText.lower()
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8892 )
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8893 self.replaceSelectedText(replacementText)
9432
e2445fa08533 Corrected an issue causing a wrong selection after "Convert selection to uppercase/lowercase" (see issue452).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
8894 self.setSelection(startLine, startIndex, endLine, endIndex)
9333
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8895 return
b0541ec21e51 Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9331
diff changeset
8896
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
8897 super().editorCommand(cmd)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8898
1002
1151d1ea562a Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 994
diff changeset
8899 def __applyTemplate(self, templateName, language):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8900 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8901 Private method to apply a template by name.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8902
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8903 @param templateName name of the template to apply
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8904 @type str
1002
1151d1ea562a Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 994
diff changeset
8905 @param language name of the language (group) to get the template
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8906 from
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8907 @type str
1002
1151d1ea562a Enhanced the autocompletion of templates to observe the language of the current file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 994
diff changeset
8908 """
6426
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8909 try:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
8910 templateViewer = ericApp().getObject("TemplateViewer")
6426
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8911 except KeyError:
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8912 # template viewer is not active
f072dd2edb0f UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6306
diff changeset
8913 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8914
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
8915 if templateViewer.hasTemplate(templateName, language):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8916 self.extendSelectionWordLeft()
10069
435cc5875135 Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10060
diff changeset
8917 templateViewer.applyNamedTemplate(templateName, language)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8918
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8919 #######################################################################
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8920 ## Project related methods
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8921 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8922
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
8923 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8924 def __projectPropertiesChanged(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8925 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8926 Private slot to handle changes of the project properties.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8927 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8928 if self.spell:
252
05692e3d37bf Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
8929 pwl, pel = self.project.getProjectDictionaries()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8930 self.__setSpellingLanguage(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8931 self.project.getProjectSpellLanguage(), pwl=pwl, pel=pel
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8932 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8933
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
8934 editorConfigEol = self.__getEditorConfig("EOLMode", nodefault=True)
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
8935 if editorConfigEol is not None:
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
8936 self.setEolMode(editorConfigEol)
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
8937 else:
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
8938 self.setEolModeByEolString(self.project.getEolString())
253
3ccdf551bde7 Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 252
diff changeset
8939 self.convertEols(self.eolMode())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8940
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8941 def addedToProject(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8942 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8943 Public method to signal, that this editor has been added to a project.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8944 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8945 if self.spell:
252
05692e3d37bf Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
8946 pwl, pel = self.project.getProjectDictionaries()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8947 self.__setSpellingLanguage(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8948 self.project.getProjectSpellLanguage(), pwl=pwl, pel=pel
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8949 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8950
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8951 self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8952
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
8953 @pyqtSlot()
1754
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8954 def projectOpened(self):
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8955 """
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8956 Public slot to handle the opening of a project.
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8957 """
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
8958 if self.fileName and self.project.isProjectCategory(self.fileName, "SOURCES"):
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
8959 self.project.projectPropertiesChanged.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8960 self.__projectPropertiesChanged
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8961 )
1754
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8962 self.setSpellingForProject()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8963
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
8964 @pyqtSlot()
1754
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8965 def projectClosed(self):
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8966 """
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8967 Public slot to handle the closing of a project.
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8968 """
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
8969 with contextlib.suppress(TypeError):
1754
4e2f87d03546 Fixed an issue in the editor caused by double connecting to a signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1723
diff changeset
8970 self.project.projectPropertiesChanged.disconnect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8971 self.__projectPropertiesChanged
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8972 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8973
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8974 #######################################################################
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
8975 ## Spell checking related methods
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8976 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8977
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
8978 def getSpellingLanguage(self):
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
8979 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
8980 Public method to get the current spelling language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8981
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
8982 @return current spelling language
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
8983 @rtype str
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
8984 """
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
8985 if self.spell:
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
8986 return self.spell.getLanguage()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8987
7310
460a332dcc56 Editor: added a context menu to select spell check language.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7306
diff changeset
8988 return ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8989
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
8990 def __setSpellingLanguage(self, language, pwl="", pel=""):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
8991 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
8992 Private method to set the spell checking language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
8993
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8994 @param language spell checking language to be set
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8995 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8996 @param pwl name of the personal/project word list
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8997 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8998 @param pel name of the personal/project exclude list
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
8999 @type str
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9000 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9001 if self.spell and self.spell.getLanguage() != language:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
9002 self.spell.setLanguage(language, pwl=pwl, pel=pel)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9003 self.spell.checkDocumentIncrementally()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9004
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9005 def __setSpelling(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9006 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9007 Private method to initialize the spell checking functionality.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9008 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9009 if Preferences.getEditor("SpellCheckingEnabled"):
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9010 self.__spellCheckStringsOnly = Preferences.getEditor(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9011 "SpellCheckStringsOnly"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9012 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9013 if self.spell is None:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9014 self.spell = SpellChecker(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9015 self, self.spellingIndicator, checkRegion=self.isSpellCheckRegion
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9016 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9017 self.setSpellingForProject()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9018 self.spell.setMinimumWordSize(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9019 Preferences.getEditor("SpellCheckingMinWordSize")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9020 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9021
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9022 self.setAutoSpellChecking()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9023 else:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9024 self.spell = None
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9025 self.clearAllIndicators(self.spellingIndicator)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9026
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9027 def setSpellingForProject(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9028 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9029 Public method to set the spell checking options for files belonging
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9030 to the current project.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9031 """
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
9032 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9033 self.fileName
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9034 and self.project.isOpen()
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
9035 and self.project.isProjectCategory(self.fileName, "SOURCES")
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
9036 ):
252
05692e3d37bf Some code cleanup in Editor.py.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
9037 pwl, pel = self.project.getProjectDictionaries()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9038 self.__setSpellingLanguage(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9039 self.project.getProjectSpellLanguage(), pwl=pwl, pel=pel
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9040 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9041
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9042 def setAutoSpellChecking(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9043 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9044 Public method to set the automatic spell checking.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9045 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9046 if Preferences.getEditor("AutoSpellCheckingEnabled"):
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
9047 with contextlib.suppress(TypeError):
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9048 self.SCN_CHARADDED.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9049 self.__spellCharAdded, Qt.ConnectionType.UniqueConnection
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9050 )
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9051 self.spell.checkDocumentIncrementally()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9052 else:
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8240
diff changeset
9053 with contextlib.suppress(TypeError):
542
26a79c19993c Fixed a signal/slot issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 541
diff changeset
9054 self.SCN_CHARADDED.disconnect(self.__spellCharAdded)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9055 self.clearAllIndicators(self.spellingIndicator)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9056
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9057 def isSpellCheckRegion(self, pos):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9058 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9059 Public method to check, if the given position is within a region, that
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9060 should be spell checked.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9061
7306
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9062 For files with a configured full text file extension all regions will
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9063 be regarded as to be checked. Depending on configuration, all unknown
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9064 files (i.e. those without a file extension) will be checked fully as
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9065 well.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9066
7306
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9067 @param pos position to be checked
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9068 @type int
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9069 @return flag indicating pos is in a spell check region
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9070 @rtype bool
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9071 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9072 if self.__spellCheckStringsOnly:
7306
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9073 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9074 self.__fileNameExtension
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9075 in Preferences.getEditor("FullSpellCheckExtensions")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9076 ) or (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9077 not self.__fileNameExtension
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9078 and Preferences.getEditor("FullSpellCheckUnknown")
7306
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9079 ):
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9080 return True
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9081 else:
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9082 style = self.styleAt(pos)
7cb88e04e4c0 Editor:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7293
diff changeset
9083 if self.lexer_ is not None:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9084 return self.lexer_.isCommentStyle(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9085 style
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9086 ) or self.lexer_.isStringStyle(style)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9087
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9088 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9089
1768
8a04ce23e083 Fixed another issue with a multi-connected signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1762
diff changeset
9090 @pyqtSlot(int)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9091 def __spellCharAdded(self, charNumber):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9092 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3583
diff changeset
9093 Private slot called to handle the user entering a character.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9094
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9095 @param charNumber value of the character entered
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9096 @type int
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9097 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9098 if self.spell:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9099 if not chr(charNumber).isalnum():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9100 self.spell.checkWord(self.positionBefore(self.currentPosition()), True)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9101 elif self.hasIndicator(self.spellingIndicator, self.currentPosition()):
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9102 self.spell.checkWord(self.currentPosition())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9103
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9104 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9105 def checkSpelling(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9106 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9107 Public slot to perform an interactive spell check of the document.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9108 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
9109 from .SpellCheckingDialog import SpellCheckingDialog
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
9110
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9111 if self.spell:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9112 cline, cindex = self.getCursorPosition()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9113 dlg = SpellCheckingDialog(self.spell, 0, self.length(), self)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7749
diff changeset
9114 dlg.exec()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9115 self.setCursorPosition(cline, cindex)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9116 if Preferences.getEditor("AutoSpellCheckingEnabled"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9117 self.spell.checkDocumentIncrementally()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9118
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9119 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9120 def __checkSpellingSelection(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9121 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9122 Private slot to spell check the current selection.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9123 """
2409
df3820f08247 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2391
diff changeset
9124 from .SpellCheckingDialog import SpellCheckingDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9125
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9126 sline, sindex, eline, eindex = self.getSelection()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9127 startPos = self.positionFromLineIndex(sline, sindex)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9128 endPos = self.positionFromLineIndex(eline, eindex)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9129 dlg = SpellCheckingDialog(self.spell, startPos, endPos, self)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7749
diff changeset
9130 dlg.exec()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9131
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9132 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9133 def __checkSpellingWord(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9134 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9135 Private slot to check the word below the spelling context menu.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9136 """
2409
df3820f08247 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2391
diff changeset
9137 from .SpellCheckingDialog import SpellCheckingDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9138
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9139 line, index = self.lineIndexFromPosition(self.spellingMenuPos)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9140 wordStart, wordEnd = self.getWordBoundaries(line, index)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9141 wordStartPos = self.positionFromLineIndex(line, wordStart)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9142 wordEndPos = self.positionFromLineIndex(line, wordEnd)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9143 dlg = SpellCheckingDialog(self.spell, wordStartPos, wordEndPos, self)
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7749
diff changeset
9144 dlg.exec()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9145
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9146 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9147 def __showContextMenuSpelling(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9148 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9149 Private slot to set up the spelling menu before it is shown.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9150 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9151 self.spellingMenu.clear()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9152 self.spellingSuggActs = []
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9153 line, index = self.lineIndexFromPosition(self.spellingMenuPos)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9154 word = self.getWord(line, index)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9155 suggestions = self.spell.getSuggestions(word)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9156 for suggestion in suggestions[:5]:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9157 self.spellingSuggActs.append(self.spellingMenu.addAction(suggestion))
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9158 if suggestions:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9159 self.spellingMenu.addSeparator()
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9160 self.spellingMenu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
9161 EricPixmapCache.getIcon("spellchecking"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9162 self.tr("Check spelling..."),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9163 self.__checkSpellingWord,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9164 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
9165 self.spellingMenu.addAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9166 self.tr("Add to dictionary"), self.__addToSpellingDictionary
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9167 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9168 self.spellingMenu.addAction(self.tr("Ignore All"), self.__ignoreSpellingAlways)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9169
3327
1338767b5315 Started implementing support for a marker map in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3325
diff changeset
9170 self.showMenu.emit("Spelling", self.spellingMenu, self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9171
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9172 @pyqtSlot(QAction)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9173 def __contextMenuSpellingTriggered(self, action):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9174 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9175 Private slot to handle the selection of a suggestion of the spelling
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9176 context menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9177
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9178 @param action reference to the action that was selected
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9179 @type QAction
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9180 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9181 if action in self.spellingSuggActs:
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9182 replacement = action.text()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9183 line, index = self.lineIndexFromPosition(self.spellingMenuPos)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9184 wordStart, wordEnd = self.getWordBoundaries(line, index)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9185 self.setSelection(line, wordStart, line, wordEnd)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9186 self.beginUndoAction()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9187 self.removeSelectedText()
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9188 self.insert(replacement)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9189 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9190
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9191 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9192 def __addToSpellingDictionary(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9193 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9194 Private slot to add the word below the spelling context menu to the
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9195 dictionary.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9196 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9197 line, index = self.lineIndexFromPosition(self.spellingMenuPos)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9198 word = self.getWord(line, index)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9199 self.spell.add(word)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9200
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9201 wordStart, wordEnd = self.getWordBoundaries(line, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9202 self.clearIndicator(self.spellingIndicator, line, wordStart, line, wordEnd)
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9203 if Preferences.getEditor("AutoSpellCheckingEnabled"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9204 self.spell.checkDocumentIncrementally()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9205
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9206 @pyqtSlot()
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9207 def __removeFromSpellingDictionary(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9208 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9209 Private slot to remove the word below the context menu to the
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9210 dictionary.
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9211 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9212 line, index = self.lineIndexFromPosition(self.spellingMenuPos)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9213 word = self.getWord(line, index)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9214 self.spell.remove(word)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9215
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9216 if Preferences.getEditor("AutoSpellCheckingEnabled"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9217 self.spell.checkDocumentIncrementally()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9218
92
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9219 def __ignoreSpellingAlways(self):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9220 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9221 Private to always ignore the word below the spelling context menu.
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9222 """
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9223 line, index = self.lineIndexFromPosition(self.spellingMenuPos)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9224 word = self.getWord(line, index)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9225 self.spell.ignoreAlways(word)
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9226 if Preferences.getEditor("AutoSpellCheckingEnabled"):
30ffedc3e418 Refined the flakes integration code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 88
diff changeset
9227 self.spell.checkDocumentIncrementally()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9228
155
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
9229 #######################################################################
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
9230 ## Cooperation related methods
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
9231 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9232
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9233 def getSharingStatus(self):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9234 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9235 Public method to get some share status info.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9236
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9237 @return tuple indicating, if the editor is sharable, the sharing
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9238 status, if it is inside a locally initiated shared edit session
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9239 and if it is inside a remotely initiated shared edit session
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9240 @rtype tuple of (bool, bool, bool, bool)
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9241 """
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
9242 return (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9243 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9244 bool(self.fileName)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9245 and self.project.isOpen()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9246 and self.project.isProjectFile(self.fileName)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9247 ),
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
9248 self.__isShared,
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
9249 self.__inSharedEdit,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9250 self.__inRemoteSharedEdit,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9251 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9252
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9253 def shareConnected(self, connected):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9254 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9255 Public method to handle a change of the connected state.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9256
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9257 @param connected flag indicating the connected state
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9258 @type bool
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9259 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9260 if not connected:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9261 self.__inRemoteSharedEdit = False
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9262 self.setReadOnly(False)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9263 self.__updateReadOnly()
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
9264 self.cancelSharedEdit(send=False)
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9265 self.__isSyncing = False
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9266 self.__receivedWhileSyncing = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9267
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9268 def shareEditor(self, share):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9269 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9270 Public method to set the shared status of the editor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9271
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9272 @param share flag indicating the share status
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9273 @type bool
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9274 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9275 self.__isShared = share
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9276 if not share:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9277 self.shareConnected(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9278
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9279 @pyqtSlot()
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9280 def startSharedEdit(self):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9281 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9282 Public slot to start a shared edit session for the editor.
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9283 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9284 self.__inSharedEdit = True
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9285 self.__savedText = self.text()
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
9286 hashStr = str(
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9287 QCryptographicHash.hash(
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
9288 Utilities.encode(self.__savedText, self.encoding)[0],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9289 QCryptographicHash.Algorithm.Sha1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9290 ).toHex(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9291 encoding="utf-8",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9292 )
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
9293 self.__send(Editor.StartEditToken, hashStr)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9294
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9295 @pyqtSlot()
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9296 def sendSharedEdit(self):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9297 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9298 Public slot to end a shared edit session for the editor and
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9299 send the changes.
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9300 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9301 commands = self.__calculateChanges(self.__savedText, self.text())
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9302 self.__send(Editor.EndEditToken, commands)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9303 self.__inSharedEdit = False
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9304 self.__savedText = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9305
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
9306 def cancelSharedEdit(self, send=True):
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9307 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9308 Public method to cancel a shared edit session for the editor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9309
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9310 @param send flag indicating to send the CancelEdit command
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9311 @type bool
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9312 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9313 self.__inSharedEdit = False
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9314 self.__savedText = ""
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9315 if send:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9316 self.__send(Editor.CancelEditToken)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9317
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
9318 def __send(self, token, args=None):
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9319 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9320 Private method to send an editor command to remote editors.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9321
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9322 @param token command token
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9323 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9324 @param args arguments for the command
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9325 @type str
155
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
9326 """
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9327 if self.vm.isConnected():
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9328 msg = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9329 if token in (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9330 Editor.StartEditToken,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9331 Editor.EndEditToken,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9332 Editor.RequestSyncToken,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9333 Editor.SyncToken,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9334 ):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9335 msg = "{0}{1}{2}".format(token, Editor.Separator, args)
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9336 elif token == Editor.CancelEditToken:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9337 msg = "{0}{1}c".format(token, Editor.Separator)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9338
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9339 self.vm.send(self.fileName, msg)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9340
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9341 @pyqtSlot(str)
155
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
9342 def receive(self, command):
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
9343 """
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
9344 Public slot to handle received editor commands.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9345
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9346 @param command command string
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9347 @type str
155
375e3c884874 Added code to transmit selections to remote editors.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 128
diff changeset
9348 """
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9349 if self.__isShared:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9350 if self.__isSyncing and not command.startswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9351 Editor.SyncToken + Editor.Separator
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
9352 ):
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9353 self.__receivedWhileSyncing.append(command)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9354 else:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9355 self.__dispatchCommand(command)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9356
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9357 def __dispatchCommand(self, command):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9358 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9359 Private method to dispatch received commands.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9360
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9361 @param command command to be processed
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9362 @type str
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9363 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9364 token, argsString = command.split(Editor.Separator, 1)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9365 if token == Editor.StartEditToken:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9366 self.__processStartEditCommand(argsString)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9367 elif token == Editor.CancelEditToken:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9368 self.shareConnected(False)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9369 elif token == Editor.EndEditToken:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9370 self.__processEndEditCommand(argsString)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9371 elif token == Editor.RequestSyncToken:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9372 self.__processRequestSyncCommand(argsString)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9373 elif token == Editor.SyncToken:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9374 self.__processSyncCommand(argsString)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9375
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9376 @pyqtSlot(str)
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9377 def __processStartEditCommand(self, argsString):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9378 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
9379 Private slot to process a remote StartEdit command.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9380
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9381 @param argsString string containing the command parameters
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9382 @type str
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9383 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9384 if not self.__inSharedEdit and not self.__inRemoteSharedEdit:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9385 self.__inRemoteSharedEdit = True
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9386 self.setReadOnly(True)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9387 self.__updateReadOnly()
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
9388 hashStr = str(
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9389 QCryptographicHash.hash(
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
9390 Utilities.encode(self.text(), self.encoding)[0],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9391 QCryptographicHash.Algorithm.Sha1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9392 ).toHex(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9393 encoding="utf-8",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9394 )
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
9395 if hashStr != argsString:
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9396 # text is different to the remote site, request to sync it
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9397 self.__isSyncing = True
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9398 self.__send(Editor.RequestSyncToken, argsString)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9399
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9400 def __calculateChanges(self, old, new):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9401 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9402 Private method to determine change commands to convert old text into
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9403 new text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9404
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9405 @param old old text
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9406 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9407 @param new new text
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9408 @type str
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9409 @return commands to change old into new
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9410 @rtype str
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9411 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9412 oldL = old.splitlines()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9413 newL = new.splitlines()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9414 matcher = difflib.SequenceMatcher(None, oldL, newL)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9415
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9416 formatStr = "@@{0} {1} {2} {3}"
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9417 commands = []
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9418 for token, i1, i2, j1, j2 in matcher.get_opcodes():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9419 if token == "insert": # secok
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9420 commands.append(formatStr.format("i", j1, j2 - j1, -1))
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9421 commands.extend(newL[j1:j2])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9422 elif token == "delete": # secok
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9423 commands.append(formatStr.format("d", j1, i2 - i1, -1))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9424 elif token == "replace": # secok
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9425 commands.append(formatStr.format("r", j1, i2 - i1, j2 - j1))
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9426 commands.extend(newL[j1:j2])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9427
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9428 return "\n".join(commands) + "\n"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9429
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9430 @pyqtSlot(str)
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9431 def __processEndEditCommand(self, argsString):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9432 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
9433 Private slot to process a remote EndEdit command.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9434
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9435 @param argsString string containing the command parameters
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9436 @type str
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9437 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9438 commands = argsString.splitlines()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9439 sep = self.getLineSeparator()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9440 cur = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9441
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9442 self.setReadOnly(False)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9443 self.beginUndoAction()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9444 while commands:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9445 commandLine = commands.pop(0)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9446 if not commandLine.startswith("@@"):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9447 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9448
2526
a91cba8291b9 Minimum modifications to start Eric5 with Py2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2525
diff changeset
9449 args = commandLine.split()
a91cba8291b9 Minimum modifications to start Eric5 with Py2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2525
diff changeset
9450 command = args.pop(0)
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9451 pos, l1, l2 = [int(arg) for arg in args]
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9452 if command == "@@i":
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9453 txt = sep.join(commands[0:l1]) + sep
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9454 self.insertAt(txt, pos, 0)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9455 del commands[0:l1]
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9456 elif command == "@@d":
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9457 self.setSelection(pos, 0, pos + l1, 0)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9458 self.removeSelectedText()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9459 elif command == "@@r":
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9460 self.setSelection(pos, 0, pos + l1, 0)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9461 self.removeSelectedText()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9462 txt = sep.join(commands[0:l2]) + sep
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9463 self.insertAt(txt, pos, 0)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9464 del commands[0:l2]
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9465 self.endUndoAction()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9466 self.__updateReadOnly()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9467 self.__inRemoteSharedEdit = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9468
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9469 self.setCursorPosition(*cur)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9470
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9471 @pyqtSlot(str)
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9472 def __processRequestSyncCommand(self, argsString):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9473 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
9474 Private slot to process a remote RequestSync command.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9475
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9476 @param argsString string containing the command parameters
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9477 @type str
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9478 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9479 if self.__inSharedEdit:
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
9480 hashStr = str(
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9481 QCryptographicHash.hash(
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
9482 Utilities.encode(self.__savedText, self.encoding)[0],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9483 QCryptographicHash.Algorithm.Sha1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9484 ).toHex(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9485 encoding="utf-8",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9486 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9487
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
9488 if hashStr == argsString:
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9489 self.__send(Editor.SyncToken, self.__savedText)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9490
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9491 @pyqtSlot(str)
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9492 def __processSyncCommand(self, argsString):
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9493 """
2965
d133c7edd88a Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2959
diff changeset
9494 Private slot to process a remote Sync command.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9495
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9496 @param argsString string containing the command parameters
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9497 @type str
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9498 """
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9499 if self.__isSyncing:
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9500 cur = self.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9501
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9502 self.setReadOnly(False)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9503 self.beginUndoAction()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9504 self.selectAll()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9505 self.removeSelectedText()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9506 self.insertAt(argsString, 0, 0)
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9507 self.endUndoAction()
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9508 self.setReadOnly(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9509
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9510 self.setCursorPosition(*cur)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9511
158
6a561f87bc07 Added shared editor functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
9512 while self.__receivedWhileSyncing:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 939
diff changeset
9513 command = self.__receivedWhileSyncing.pop(0)
826
2e3e2055e715 Fixed a few PEP 8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 825
diff changeset
9514 self.__dispatchCommand(command)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9515
718
979d6e242404 Fixed an issue in the editor saving files without extension on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
9516 self.__isSyncing = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9517
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9518 #######################################################################
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9519 ## Special search related methods
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9520 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9521
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9522 @pyqtSlot()
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9523 def searchCurrentWordForward(self):
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9524 """
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9525 Public slot to search the current word forward.
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9526 """
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9527 self.__searchCurrentWord(forward=True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9528
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9529 @pyqtSlot()
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9530 def searchCurrentWordBackward(self):
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9531 """
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9532 Public slot to search the current word backward.
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9533 """
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9534 self.__searchCurrentWord(forward=False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9535
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9536 def __searchCurrentWord(self, forward=True):
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9537 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3583
diff changeset
9538 Private slot to search the next occurrence of the current word.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9539
10431
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9540 @param forward flag indicating the search direction
64157aeb0312 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10417
diff changeset
9541 @type bool
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9542 """
3069
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3067
diff changeset
9543 self.hideFindIndicator()
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9544 line, index = self.getCursorPosition()
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9545 word = self.getCurrentWord()
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9546 wordStart, wordEnd = self.getCurrentWordBoundaries()
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9547 wordStartPos = self.positionFromLineIndex(line, wordStart)
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9548 wordEndPos = self.positionFromLineIndex(line, wordEnd)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9549
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9550 regExp = re.compile(r"\b{0}\b".format(word))
8235
78e6d29eb773 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8231
diff changeset
9551 startPos = wordEndPos if forward else wordStartPos
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9552
2213
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9553 matches = [m for m in regExp.finditer(self.text())]
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9554 if matches:
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9555 if forward:
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9556 matchesAfter = [m for m in matches if m.start() >= startPos]
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9557 if matchesAfter:
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9558 match = matchesAfter[0]
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9559 else:
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9560 # wrap around
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9561 match = matches[0]
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9562 else:
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9563 matchesBefore = [m for m in matches if m.start() < startPos]
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9564 if matchesBefore:
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9565 match = matchesBefore[-1]
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9566 else:
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9567 # wrap around
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9568 match = matches[-1]
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9569 line, index = self.lineIndexFromPosition(match.start())
022f4ad3ed19 Added actions to search for the next/previous occurence of the current word (default shortcuts Ctrl+. and Ctrl+,).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2189
diff changeset
9570 self.setSelection(line, index + len(match.group(0)), line, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9571 self.showFindIndicator(line, index, line, index + len(match.group(0)))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9572
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9573 #######################################################################
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9574 ## Sort related methods
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9575 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9576
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9577 @pyqtSlot()
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9578 def sortLines(self):
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9579 """
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9580 Public slot to sort the lines spanned by a rectangular selection.
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9581 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
9582 from .SortOptionsDialog import SortOptionsDialog
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
9583
2590
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9584 if not self.selectionIsRectangle():
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9585 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9586
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9587 dlg = SortOptionsDialog()
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
9588 if dlg.exec() == QDialog.DialogCode.Accepted:
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9589 ascending, alnum, caseSensitive = dlg.getData()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9590 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9591 origStartLine,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9592 origStartIndex,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9593 origEndLine,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9594 origEndIndex,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9595 ) = self.getRectangularSelection()
2590
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9596 # convert to upper-left to lower-right
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9597 startLine = min(origStartLine, origEndLine)
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9598 startIndex = min(origStartIndex, origEndIndex)
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9599 endLine = max(origStartLine, origEndLine)
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9600 endIndex = max(origStartIndex, origEndIndex)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9601
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9602 # step 1: extract the text of the rectangular selection and
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9603 # the lines
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9604 selText = {}
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9605 txtLines = {}
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9606 for line in range(startLine, endLine + 1):
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9607 txtLines[line] = self.text(line)
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9608 txt = txtLines[line][startIndex:endIndex].strip()
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9609 if not alnum:
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9610 try:
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9611 txt = float(txt)
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9612 except ValueError:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
9613 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3011
diff changeset
9614 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
9615 self.tr("Sort Lines"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3169
diff changeset
9616 self.tr(
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2994
diff changeset
9617 """The selection contains illegal data for a"""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9618 """ numerical sort."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9619 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9620 )
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9621 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9622
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9623 if txt in selText:
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9624 selText[txt].append(line)
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9625 else:
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9626 selText[txt] = [line]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9627
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9628 # step 2: calculate the sort parameters
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9629 reverse = not ascending
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9630 if alnum and not caseSensitive:
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9631 keyFun = str.lower
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9632 else:
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9633 keyFun = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9634
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9635 # step 3: sort the lines
2590
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9636 eol = self.getLineSeparator()
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9637 lastWithEol = True
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9638 newLines = []
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10345
diff changeset
9639 for txt in sorted(selText, key=keyFun, reverse=reverse):
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9640 for line in selText[txt]:
2590
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9641 txt = txtLines[line]
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9642 if not txt.endswith(eol):
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9643 lastWithEol = False
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9644 txt += eol
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9645 newLines.append(txt)
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9646 if not lastWithEol:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9647 newLines[-1] = newLines[-1][: -len(eol)]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9648
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9649 # step 4: replace the lines by the sorted ones
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9650 self.setSelection(startLine, 0, endLine + 1, 0)
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9651 self.beginUndoAction()
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9652 self.replaceSelectedText("".join(newLines))
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9653 self.endUndoAction()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9654
2589
a51b0c113ed7 Added the capability to sort lines spanned by a rectangular selection based on the selected text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2517
diff changeset
9655 # step 5: reset the rectangular selection
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9656 self.setRectangularSelection(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9657 origStartLine, origStartIndex, origEndLine, origEndIndex
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9658 )
2590
abe9b3e04381 Finished the sort implementation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2589
diff changeset
9659 self.selectionChanged.emit()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9660
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9661 #######################################################################
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9662 ## Mouse click handler related methods
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9663 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9664
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9665 def mouseReleaseEvent(self, evt):
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9666 """
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9667 Protected method calling a registered mouse click handler function.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9668
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9669 @param evt event object
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9670 @type QMouseEvent
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9671 """
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9672 modifiers = evt.modifiers()
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9673 button = evt.button()
8376
43caa4cc9bd1 Modified the mouse click handler support code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
9674 key = (modifiers, button)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9675
4297
8ece10107224 Corrected the mouse release event handler of the editor to call the super class one first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4292
diff changeset
9676 self.vm.eventFilter(self, evt)
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8217
diff changeset
9677 super().mouseReleaseEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9678
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
9679 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9680 button != Qt.MouseButton.NoButton
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9681 and Preferences.getEditor("MouseClickHandlersEnabled")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9682 and key in self.__mouseClickHandlers
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7261
diff changeset
9683 ):
4297
8ece10107224 Corrected the mouse release event handler of the editor to call the super class one first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4292
diff changeset
9684 evt.accept()
4302
748f4945462b Changed the call to mouse click handlers in the editor to pass the calling editor as a parameter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4299
diff changeset
9685 self.__mouseClickHandlers[key][1](self)
8713
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8710
diff changeset
9686 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8710
diff changeset
9687 super().mouseReleaseEvent(evt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9688
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9689 def setMouseClickHandler(self, name, modifiers, button, function):
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9690 """
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9691 Public method to set a mouse click handler.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9692
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9693 @param name name of the plug-in (or 'internal') setting this handler
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9694 @type str
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9695 @param modifiers keyboard modifiers of the handler
4299
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9696 @type Qt.KeyboardModifiers or int
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9697 @param button mouse button of the handler
4299
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9698 @type Qt.MouseButton or int
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9699 @param function handler function
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9700 @type func
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9701 @return flag indicating success
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9702 @rtype bool
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9703 """
8376
43caa4cc9bd1 Modified the mouse click handler support code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
9704 if button and button != Qt.MouseButton.NoButton:
43caa4cc9bd1 Modified the mouse click handler support code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
9705 key = (modifiers, button)
4299
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9706 if key in self.__mouseClickHandlers:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
9707 EricMessageBox.warning(
4299
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9708 self,
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9709 self.tr("Register Mouse Click Handler"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9710 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9711 """A mouse click handler for "{0}" was already"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9712 """ registered by "{1}". Aborting request by"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9713 """ "{2}"..."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9714 ).format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9715 MouseUtilities.MouseButtonModifier2String(modifiers, button),
4299
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9716 self.__mouseClickHandlers[key][0],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9717 name,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9718 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9719 )
4299
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9720 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9721
4299
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9722 self.__mouseClickHandlers[key] = (name, function)
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9723 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9724
4299
93219cb8f66b Small ammendment to the mouse click handler functions of the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4297
diff changeset
9725 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9726
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9727 def getMouseClickHandler(self, modifiers, button):
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9728 """
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9729 Public method to get a registered mouse click handler.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9730
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9731 @param modifiers keyboard modifiers of the handler
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9732 @type Qt.KeyboardModifiers
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9733 @param button mouse button of the handler
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9734 @type Qt.MouseButton
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9735 @return plug-in name and registered function
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9736 @rtype tuple of str and func
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9737 """
8376
43caa4cc9bd1 Modified the mouse click handler support code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
9738 key = (modifiers, button)
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9739 if key in self.__mouseClickHandlers:
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9740 return self.__mouseClickHandlers[key]
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9741 else:
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9742 return ("", None)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9743
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9744 def getMouseClickHandlers(self, name):
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9745 """
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9746 Public method to get all registered mouse click handlers of
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9747 a plug-in.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9748
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9749 @param name name of the plug-in
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9750 @type str
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9751 @return registered mouse click handlers as list of modifiers,
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9752 mouse button and function
8376
43caa4cc9bd1 Modified the mouse click handler support code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
9753 @rtype list of tuple of (Qt.KeyboardModifiers, Qt.MouseButton, func)
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9754 """
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9755 lst = []
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9756 for key, value in self.__mouseClickHandlers.items():
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9757 if value[0] == name:
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9758 lst.append((key[0], key[1], value[1]))
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9759 return lst
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9760
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9761 def removeMouseClickHandler(self, modifiers, button):
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9762 """
4287
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9763 Public method to un-registered a mouse click handler.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9764
4287
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9765 @param modifiers keyboard modifiers of the handler
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9766 @type Qt.KeyboardModifiers
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9767 @param button mouse button of the handler
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9768 @type Qt.MouseButton
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9769 """
8376
43caa4cc9bd1 Modified the mouse click handler support code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
9770 key = (modifiers, button)
4287
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9771 if key in self.__mouseClickHandlers:
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9772 del self.__mouseClickHandlers[key]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9773
4286
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9774 def removeMouseClickHandlers(self, name):
255f56eb7f05 Started implementing support for mouse click handlers into the Editor. This can be used by plug-ins to implement function executed by a mouse click (e.g. goto definition upon Ctrl+Left Button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4283
diff changeset
9775 """
4287
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9776 Public method to un-registered all mouse click handlers of
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9777 a plug-in.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9778
4287
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9779 @param name name of the plug-in
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9780 @type str
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9781 """
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10345
diff changeset
9782 for key in list(self.__mouseClickHandlers):
4287
12274edd3050 Completed the mouse click handler support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4286
diff changeset
9783 if self.__mouseClickHandlers[key][0] == name:
10281
b3d6208d2f33 Fixed a few issues introduced by the recent change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10279
diff changeset
9784 del self.__mouseClickHandlers[key]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9785
8488
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
9786 def gotoReferenceHandler(self, referencesList):
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
9787 """
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
9788 Public method to handle a list of references to perform a goto.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9789
8488
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
9790 @param referencesList list of references for a 'goto' action
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
9791 @type ReferenceItem
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
9792 """
8497
be6e6d321ba7 Editor: corrected the code dealing with 'Goto References'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8488
diff changeset
9793 references = []
be6e6d321ba7 Editor: corrected the code dealing with 'Goto References'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8488
diff changeset
9794 referencePositions = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9795
8497
be6e6d321ba7 Editor: corrected the code dealing with 'Goto References'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8488
diff changeset
9796 for reference in referencesList:
8488
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
9797 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9798 reference.modulePath != self.getFileName()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9799 or self.getCursorPosition()[0] + 1 != reference.line
8488
b9168b90f830 Editor: added support for 'goto reference' via the mouse click handler.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8487
diff changeset
9800 ):
8498
3d3b31f16846 Editor: fine tuned the presentation of the 'goto references' list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8497
diff changeset
9801 if reference.modulePath == self.getFileName():
3d3b31f16846 Editor: fine tuned the presentation of the 'goto references' list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8497
diff changeset
9802 references.append(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9803 self.tr("{0:4d} {1}", "line number, source code").format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9804 reference.line, reference.codeLine.strip()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9805 )
8498
3d3b31f16846 Editor: fine tuned the presentation of the 'goto references' list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8497
diff changeset
9806 )
3d3b31f16846 Editor: fine tuned the presentation of the 'goto references' list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8497
diff changeset
9807 else:
3d3b31f16846 Editor: fine tuned the presentation of the 'goto references' list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8497
diff changeset
9808 references.append(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9809 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9810 "{0:4d} {1}\n => {2}",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9811 "line number, source code, file name",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9812 ).format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9813 reference.line,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9814 reference.codeLine.strip(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9815 self.project.getRelativePath(reference.modulePath),
8522
4f263b89a293 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8519
diff changeset
9816 )
8498
3d3b31f16846 Editor: fine tuned the presentation of the 'goto references' list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8497
diff changeset
9817 )
8497
be6e6d321ba7 Editor: corrected the code dealing with 'Goto References'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8488
diff changeset
9818 referencePositions.append(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9819 (reference.modulePath, reference.line, reference.column)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9820 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9821
8497
be6e6d321ba7 Editor: corrected the code dealing with 'Goto References'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8488
diff changeset
9822 if references:
8581
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
9823 if self.isCallTipActive():
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
9824 self.cancelCallTips()
8497
be6e6d321ba7 Editor: corrected the code dealing with 'Goto References'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8488
diff changeset
9825 self.__referencesList = references
be6e6d321ba7 Editor: corrected the code dealing with 'Goto References'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8488
diff changeset
9826 self.__referencesPositionsList = referencePositions
be6e6d321ba7 Editor: corrected the code dealing with 'Goto References'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8488
diff changeset
9827 self.showUserList(ReferencesListID, references)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9828
8376
43caa4cc9bd1 Modified the mouse click handler support code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
9829 #######################################################################
43caa4cc9bd1 Modified the mouse click handler support code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
9830 ## Methods implementing a Shell interface
43caa4cc9bd1 Modified the mouse click handler support code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
9831 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9832
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
9833 @pyqtSlot()
6059
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
9834 def __executeSelection(self):
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
9835 """
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
9836 Private slot to execute the selected text in the shell window.
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
9837 """
8f7c66c53c27 Added a context menu entry to "Execute Selection In Console".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6052
diff changeset
9838 txt = self.selectedText()
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
9839 ericApp().getObject("Shell").executeLines(txt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9840
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9841 #######################################################################
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9842 ## Methods implementing the interface to EditorConfig
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9843 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9844
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9845 def __loadEditorConfig(self, fileName=""):
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9846 """
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9847 Private method to load the EditorConfig properties.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9848
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9849 @param fileName name of the file
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9850 @type str
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9851 """
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9852 if not fileName:
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9853 fileName = self.fileName
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9854
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9855 self.__editorConfig = self.__loadEditorConfigObject(fileName)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9856
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9857 if fileName:
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9858 self.__setTabAndIndent()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9859
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9860 def __loadEditorConfigObject(self, fileName):
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9861 """
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9862 Private method to load the EditorConfig properties for the given
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9863 file name.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9864
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9865 @param fileName name of the file
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9866 @type str
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9867 @return EditorConfig dictionary
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9868 @rtype dict
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9869 """
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9870 editorConfig = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9871
10546
300487f5f517 eric-ide Server
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10539
diff changeset
9872 if fileName and FileSystemUtilities.isPlainFileName(fileName):
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9873 try:
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9874 editorConfig = editorconfig.get_properties(fileName)
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9875 except editorconfig.EditorConfigError:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8354
diff changeset
9876 EricMessageBox.warning(
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9877 self,
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9878 self.tr("EditorConfig Properties"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9879 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9880 """<p>The EditorConfig properties for file"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9881 """ <b>{0}</b> could not be loaded.</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9882 ).format(fileName),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9883 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9884
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9885 return editorConfig
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9886
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9887 def __getEditorConfig(self, option, nodefault=False, config=None):
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9888 """
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9889 Private method to get the requested option via EditorConfig.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9890
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9891 If there is no EditorConfig defined, the equivalent built-in option
6996
7d5a103bdb76 EditorConfig: updated to version 0.12.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6954
diff changeset
9892 will be used (Preferences.getEditor() ). The option must be given as
7d5a103bdb76 EditorConfig: updated to version 0.12.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6954
diff changeset
9893 the Preferences option key. The mapping to the EditorConfig option name
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9894 will be done within this method.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9895
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9896 @param option Preferences option key
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9897 @type str
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9898 @param nodefault flag indicating to not get the default value from
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9899 Preferences but return None instead
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9900 @type bool
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9901 @param config reference to an EditorConfig object or None
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9902 @type dict
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9903 @return value of requested setting or None if nothing was found and
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9904 nodefault parameter was True
10417
c6011e501282 Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10388
diff changeset
9905 @rtype Any
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9906 """
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9907 if config is None:
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9908 config = self.__editorConfig
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9909
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9910 try:
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9911 if option == "EOLMode":
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9912 value = config["end_of_line"]
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9913 if value == "lf":
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
9914 value = QsciScintilla.EolMode.EolUnix
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9915 elif value == "crlf":
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
9916 value = QsciScintilla.EolMode.EolWindows
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9917 elif value == "cr":
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8131
diff changeset
9918 value = QsciScintilla.EolMode.EolMac
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9919 else:
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9920 value = None
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9921 elif option == "DefaultEncoding":
6101
b854a825d483 Continued implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6099
diff changeset
9922 value = config["charset"]
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9923 elif option == "InsertFinalNewline":
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9619
diff changeset
9924 value = Globals.toBool(config["insert_final_newline"])
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9925 elif option == "StripTrailingWhitespace":
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9619
diff changeset
9926 value = Globals.toBool(config["trim_trailing_whitespace"])
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9927 elif option == "TabWidth":
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9928 value = int(config["tab_width"])
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9929 elif option == "IndentWidth":
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9930 value = config["indent_size"]
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9931 if value == "tab":
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9932 value = self.__getEditorConfig("TabWidth", config=config)
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9933 else:
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9934 value = int(value)
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9935 elif option == "TabForIndentation":
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9936 value = config["indent_style"] == "tab"
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9937 except KeyError:
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9938 value = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9939
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9940 if value is None and not nodefault:
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9941 # use Preferences in case of error
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9942 value = self.__getOverrideValue(option)
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9943 if value is None:
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9944 # no override
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9945 value = Preferences.getEditor(option)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9946
6099
a7fecbc392d7 Started implementing support for EditorConfig.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6092
diff changeset
9947 return value
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9948
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9949 def getEditorConfig(self, option):
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9950 """
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9951 Public method to get the requested option via EditorConfig.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9952
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9953 @param option Preferences option key
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9954 @type str
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9955 @return value of requested setting
10417
c6011e501282 Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10388
diff changeset
9956 @rtype Any
6105
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9957 """
cbd34d558bd9 Finished implementing support for EditorConfig for the IDE editor component and the standalone editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6101
diff changeset
9958 return self.__getEditorConfig(option)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9959
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9960 def __getOverrideValue(self, option):
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9961 """
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9962 Private method to get an override value for the current file type.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9963
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9964 @param option Preferences option key
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9965 @type str
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9966 @return override value; None in case nothing is defined
10417
c6011e501282 Modernized some code and converted Debug Client and Debugger source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10388
diff changeset
9967 @rtype Any
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9968 """
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9969 if option in ("TabWidth", "IndentWidth"):
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9970 overrides = Preferences.getEditor("TabIndentOverride")
7293
4738aac944e6 Editor: fixed an issue determining the tab and indentation width override.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7278
diff changeset
9971 language = self.filetype or self.apiLanguage
4738aac944e6 Editor: fixed an issue determining the tab and indentation width override.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7278
diff changeset
9972 if language in overrides:
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9973 if option == "TabWidth":
7293
4738aac944e6 Editor: fixed an issue determining the tab and indentation width override.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7278
diff changeset
9974 return overrides[language][0]
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9975 elif option == "IndentWidth":
7293
4738aac944e6 Editor: fixed an issue determining the tab and indentation width override.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7278
diff changeset
9976 return overrides[language][1]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9977
7278
1820a0344b62 Editor: added configuration option to set the tab and indentation width for each languages separately (as an override to the global ones).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7276
diff changeset
9978 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9979
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9980 #######################################################################
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9981 ## Methods implementing the docstring generator interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9982 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9983
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9984 def getDocstringGenerator(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9985 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9986 Public method to get a reference to the docstring generator.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9987
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9988 @return reference to the docstring generator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9989 @rtype BaseDocstringGenerator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9990 """
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
9991 from . import DocstringGenerator
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
9992
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9993 if self.__docstringGenerator is None:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9994 self.__docstringGenerator = DocstringGenerator.getDocstringGenerator(self)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9995
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
9996 return self.__docstringGenerator
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
9997
8000
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
9998 def insertDocstring(self):
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
9999 """
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
10000 Public method to generate and insert a docstring for the function under
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
10001 the cursor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10002
8000
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
10003 Note: This method is called via a keyboard shortcut or through the
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
10004 global 'Edit' menu.
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
10005 """
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
10006 generator = self.getDocstringGenerator()
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
10007 generator.insertDocstringFromShortcut(self.getCursorPosition())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10008
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10009 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10010 def __insertDocstring(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10011 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10012 Private slot to generate and insert a docstring for the function under
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10013 the cursor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10014 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10015 generator = self.getDocstringGenerator()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10016 generator.insertDocstring(self.getCursorPosition(), fromStart=True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10017
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10018 def __delayedDocstringMenuPopup(self, cursorPosition):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10019 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10020 Private method to test, if the user might want to insert a docstring.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10021
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10022 @param cursorPosition current cursor position (line and column)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10023 @type tuple of (int, int)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10024 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10025 if Preferences.getEditor(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10026 "DocstringAutoGenerate"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10027 ) and self.getDocstringGenerator().isDocstringIntro(cursorPosition):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10028 lineText2Cursor = self.text(cursorPosition[0])[: cursorPosition[1]]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10029
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10030 QTimer.singleShot(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10031 300, lambda: self.__popupDocstringMenu(lineText2Cursor, cursorPosition)
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10032 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10033
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10034 def __popupDocstringMenu(self, lastLineText, lastCursorPosition):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10035 """
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
10036 Private method to pop up a menu asking the user, if a docstring should be
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10037 inserted.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10038
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10039 @param lastLineText line contents when the delay timer was started
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10040 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10041 @param lastCursorPosition position of the cursor when the delay timer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10042 was started (line and index)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10043 @type tuple of (int, int)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10044 """
10331
c1a2ff7e3575 Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10307
diff changeset
10045 from .DocstringGenerator.BaseDocstringGenerator import DocstringMenuForEnterOnly
c1a2ff7e3575 Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10307
diff changeset
10046
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10047 cursorPosition = self.getCursorPosition()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10048 if lastCursorPosition != cursorPosition:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10049 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10050
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10051 if self.text(cursorPosition[0])[: cursorPosition[1]] != lastLineText:
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10052 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10053
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10054 generator = self.getDocstringGenerator()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10055 if generator.hasFunctionDefinition(cursorPosition):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10056 docstringMenu = DocstringMenuForEnterOnly(self)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10057 act = docstringMenu.addAction(
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
10058 EricPixmapCache.getIcon("fileText"),
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10059 self.tr("Generate Docstring"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10060 lambda: generator.insertDocstring(cursorPosition, fromStart=False),
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10061 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7969
diff changeset
10062 docstringMenu.setActiveAction(act)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10063 docstringMenu.popup(self.mapToGlobal(self.getGlobalCursorPosition()))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10064
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10065 #######################################################################
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10066 ## Methods implementing the mouse hover help interface
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10067 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10068
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10069 @pyqtSlot(int, int, int)
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10070 def __showMouseHoverHelp(self, pos, x, y):
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10071 """
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10072 Private slot showing code information about the symbol under the
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10073 cursor.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10074
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10075 @param pos mouse position into the document
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10076 @type int
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10077 @param x x-value of mouse screen position
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10078 @type int
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10079 @param y y-value of mouse screen position
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10080 @type int
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10081 """
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10082 if (
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10083 not self.isCallTipActive()
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10084 and not self.isListActive()
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10085 and not self.menu.isVisible()
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10086 and not self.spellingMenu.isVisible()
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10087 ):
8581
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10088 if self.__mouseHoverHelp is not None and pos > 0 and y > 0:
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10089 line, index = self.lineIndexFromPosition(pos)
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10090 if index > 0:
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10091 self.__mouseHoverHelp(self, line, index)
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10092 else:
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10093 self.__cancelMouseHoverHelp()
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10094 else:
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10095 self.__cancelMouseHoverHelp()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10096
10279
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10257
diff changeset
10097 @pyqtSlot()
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10098 def __cancelMouseHoverHelp(self):
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10099 """
8522
4f263b89a293 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8519
diff changeset
10100 Private slot cancelling the display of mouse hover help.
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10101 """
8581
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10102 if self.__showingMouseHoverHelp:
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10103 self.cancelCallTips()
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10104 self.__showingMouseHoverHelp = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10105
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10106 def registerMouseHoverHelpFunction(self, func):
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10107 """
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10108 Public method to register a mouse hover help function.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10109
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10110 Note: Only one plugin should provide this function. Otherwise
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10111 the last one wins.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10112
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10113 @param func function accepting a reference to the calling editor and
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10114 the line and column position (zero based each)
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10115 @type func
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10116 """
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10117 self.__mouseHoverHelp = func
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10118
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10119 def unregisterMouseHoverHelpFunction(self, func):
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10120 """
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10121 Public method to unregister a mouse hover help function.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10122
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10123 @param func function accepting a reference to the calling editor and
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10124 the line and column position (zero based each)
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10125 @type func
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10126 """
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10127 if self.__mouseHoverHelp is func:
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10128 self.__mouseHoverHelp = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10129
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10130 def showMouseHoverHelpData(self, line, index, data):
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10131 """
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10132 Public method to show the mouse hover help data.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10133
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10134 @param line line of mouse cursor position
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10135 @type int
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10136 @param index column of mouse cursor position
8515
7e7bebfb21e8 Editor: corrected the mouse hover help code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8507
diff changeset
10137 @type int
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10138 @param data information text to be shown
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10139 @type str
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10140 """
8607
80dd37c65e91 Editor: fine tuned the mouse hover help functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8581
diff changeset
10141 if data and self.hasFocus() and not self.isListActive():
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10142 pos = self.positionFromLineIndex(line, index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10143 self.SendScintilla(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10144 QsciScintilla.SCI_CALLTIPSHOW, pos, self._encodeString(data)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10145 )
8581
a6c893c8b7af Editor: some fine tuning in handling of mouse hover help and goto lists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8539
diff changeset
10146 self.__showingMouseHoverHelp = True
8506
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10147 else:
c64ee71cf27b Editor: prepared the editor to support mouse hover help.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8500
diff changeset
10148 self.__cancelMouseHoverHelp()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10149
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10150 #######################################################################
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10151 ## Methods implementing the code formatting interface
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10152 #######################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10153
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10154 def __performFormatWithBlack(self, action):
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10155 """
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10156 Private method to format the source code using the 'Black' tool.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10157
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10158 Following actions are supported.
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10159 <ul>
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10160 <li>BlackFormattingAction.Format - the code reformatting is performed</li>
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10161 <li>BlackFormattingAction.Check - a check is performed, if code formatting
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10162 is necessary</li>
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10163 <li>BlackFormattingAction.Diff - a unified diff of potential code formatting
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10164 changes is generated</li>
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10165 </ul>
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10166
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10167 @param action formatting operation to be performed
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10168 @type BlackFormattingAction
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10169 """
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
10170 from eric7.CodeFormatting.BlackConfigurationDialog import (
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
10171 BlackConfigurationDialog,
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
10172 )
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9408
diff changeset
10173 from eric7.CodeFormatting.BlackFormattingDialog import BlackFormattingDialog
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10174
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10175 if not self.isModified() or self.saveFile():
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10176 withProject = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10177 self.fileName
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10178 and self.project.isOpen()
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
10179 and self.project.isProjectCategory(self.fileName, "SOURCES")
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10180 )
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10181 dlg = BlackConfigurationDialog(withProject=withProject)
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10182 if dlg.exec() == QDialog.DialogCode.Accepted:
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10183 config = dlg.getConfiguration()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10184
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10185 formattingDialog = BlackFormattingDialog(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9214
diff changeset
10186 config, [self.fileName], project=self.project, action=action
9214
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10187 )
bd28e56047d7 Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
10188 formattingDialog.exec()
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10189
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10190 def __performImportSortingWithIsort(self, action):
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10191 """
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10192 Private method to sort the import statements using the 'isort' tool.
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10193
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10194 Following actions are supported.
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10195 <ul>
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10196 <li>IsortFormattingAction.Sort - the import statement sorting is performed</li>
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10197 <li>IsortFormattingAction.Check - a check is performed, if import statement
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10198 resorting is necessary</li>
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10199 <li>IsortFormattingAction.Diff - a unified diff of potential import statement
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10200 changes is generated</li>
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10201 </ul>
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10202
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10203 @param action sorting operation to be performed
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10204 @type IsortFormattingAction
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10205 """
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10206 from eric7.CodeFormatting.IsortConfigurationDialog import (
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10207 IsortConfigurationDialog,
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10208 )
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10209 from eric7.CodeFormatting.IsortFormattingDialog import IsortFormattingDialog
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10210
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10211 if not self.isModified() or self.saveFile():
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10212 withProject = (
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10213 self.fileName
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10214 and self.project.isOpen()
9517
d73c3a1e432b Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
10215 and self.project.isProjectCategory(self.fileName, "SOURCES")
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10216 )
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10217 dlg = IsortConfigurationDialog(withProject=withProject)
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10218 if dlg.exec() == QDialog.DialogCode.Accepted:
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10219 config = dlg.getConfiguration()
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10220
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10221 formattingDialog = IsortFormattingDialog(
9465
8a020c34dce2 Fine tuned the isort support so the configuration will default to project specific config files overwritten by data entered via the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
10222 config,
8a020c34dce2 Fine tuned the isort support so the configuration will default to project specific config files overwritten by data entered via the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
10223 [self.fileName],
8a020c34dce2 Fine tuned the isort support so the configuration will default to project specific config files overwritten by data entered via the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
10224 project=self.project if withProject else None,
8a020c34dce2 Fine tuned the isort support so the configuration will default to project specific config files overwritten by data entered via the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9453
diff changeset
10225 action=action,
9453
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10226 )
e5065dde905d Code Formatting
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9436
diff changeset
10227 formattingDialog.exec()

eric ide

mercurial