PrEditor 0.4.0__py2.py3-none-any.whl → 0.6.0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of PrEditor might be problematic. Click here for more details.

@@ -67,8 +67,8 @@ class WorkboxMixin(object):
67
67
  def __exec_all__(self):
68
68
  raise NotImplementedError("Mixin method not overridden.")
69
69
 
70
- def __exec_selected__(self):
71
- txt = self.__selected_text__()
70
+ def __exec_selected__(self, truncate=True):
71
+ txt, line = self.__selected_text__()
72
72
 
73
73
  # Remove any leading white space shared across all lines
74
74
  txt = textwrap.dedent(txt)
@@ -76,8 +76,9 @@ class WorkboxMixin(object):
76
76
  # Get rid of pesky \r's
77
77
  txt = self.__unix_end_lines__(txt)
78
78
 
79
- # Make workbox line numbers match the workbox line numbers.
80
- line, _ = self.__cursor_position__()
79
+ # Make workbox line numbers match the workbox line numbers, by adding
80
+ # the appropriate number of newlines to mimic it's original position in
81
+ # the workbox.
81
82
  txt = '\n' * line + txt
82
83
 
83
84
  # execute the code
@@ -87,7 +88,10 @@ class WorkboxMixin(object):
87
88
  # If the selected code was a statement print the result of the statement.
88
89
  ret = repr(ret)
89
90
  self.__console__().startOutputLine()
90
- print(self.truncate_middle(ret, 100))
91
+ if truncate:
92
+ print(self.truncate_middle(ret, 100))
93
+ else:
94
+ print(ret)
91
95
 
92
96
  def __file_monitoring_enabled__(self):
93
97
  """Returns True if this workbox supports file monitoring.
@@ -183,8 +187,9 @@ class WorkboxMixin(object):
183
187
  def __save__(self):
184
188
  raise NotImplementedError("Mixin method not overridden.")
185
189
 
186
- def __selected_text__(self, start_of_line=False):
187
- """Returns selected text or the current line of text.
190
+ def __selected_text__(self, start_of_line=False, selectText=False):
191
+ """Returns selected text or the current line of text, plus the line
192
+ number of the begining of selection / cursor position.
188
193
 
189
194
  If text is selected, it is returned. If nothing is selected, returns the
190
195
  entire line of text the cursor is currently on.
@@ -192,6 +197,13 @@ class WorkboxMixin(object):
192
197
  Args:
193
198
  start_of_line (bool, optional): If text is selected, include any
194
199
  leading text from the first line of the selection.
200
+ selectText (bool): If expanding to the entire line from the cursor,
201
+ indicates whether to select that line of text
202
+
203
+ Returns:
204
+ str: The requested text
205
+ line (int): plus the line number of the beginning of selection / cursor
206
+ position.
195
207
  """
196
208
  raise NotImplementedError("Mixin method not overridden.")
197
209
 
@@ -343,15 +355,35 @@ class WorkboxMixin(object):
343
355
  __exec_selected__: If the user pressed Shift + Return or pressed the
344
356
  number pad enter key calling `__exec_selected__`.
345
357
  """
346
- if event.key() == Qt.Key_Enter or (
347
- event.key() == Qt.Key_Return and event.modifiers() == Qt.ShiftModifier
348
- ):
349
- # Number pad enter, or Shift + Return pressed, execute selected
350
- if run:
351
- self.__exec_selected__()
352
-
353
- if self.window().uiAutoPromptACT.isChecked():
354
- self.__console__().startInputLine()
355
- return '__exec_selected__'
356
358
 
357
- return False
359
+ # Number pad enter, or Shift + Return pressed, execute selected
360
+ # Ctrl+ Shift+Return pressed, execute selected without truncating output
361
+ if run:
362
+ # self.__exec_selected__()
363
+ # Collect what was pressed
364
+ key = event.key()
365
+ modifiers = event.modifiers()
366
+
367
+ # Determine which relevant combos are pressed
368
+ ret = key == Qt.Key_Return
369
+ enter = key == Qt.Key_Enter
370
+ shift = modifiers == Qt.ShiftModifier
371
+ ctrlShift = modifiers == Qt.ControlModifier | Qt.ShiftModifier
372
+
373
+ # Determine which actions to take
374
+ evalTrunc = enter or (ret and shift)
375
+ evalNoTrunc = ret and ctrlShift
376
+
377
+ if evalTrunc:
378
+ # Execute with truncation
379
+ self.window().execSelected()
380
+ elif evalNoTrunc:
381
+ # Execute without truncation
382
+ self.window().execSelected(truncate=False)
383
+
384
+ if evalTrunc or evalNoTrunc:
385
+ if self.window().uiAutoPromptACT.isChecked():
386
+ self.__console__().startInputLine()
387
+ return '__exec_selected__'
388
+ else:
389
+ return False
@@ -32,6 +32,12 @@ class WorkboxTextEdit(WorkboxMixin, QTextEdit):
32
32
  highlight.setLanguage('Python')
33
33
  self.uiCodeHighlighter = highlight
34
34
 
35
+ def __auto_complete_enabled__(self):
36
+ pass
37
+
38
+ def __set_auto_complete_enabled__(self, state):
39
+ pass
40
+
35
41
  def __copy_indents_as_spaces__(self):
36
42
  """When copying code, should it convert leading tabs to spaces?"""
37
43
  return False
@@ -93,12 +99,25 @@ class WorkboxTextEdit(WorkboxMixin, QTextEdit):
93
99
  super(WorkboxTextEdit, self).__set_text__(text)
94
100
  self.setPlainText(text)
95
101
 
96
- def __selected_text__(self, start_of_line=False):
102
+ def __selected_text__(self, start_of_line=False, selectText=False):
97
103
  cursor = self.textCursor()
98
104
 
105
+ # Get starting line number. Must set the cursor's position to the start of the
106
+ # selection, otherwise we may instead get the ending line number.
107
+ tempCursor = self.textCursor()
108
+ tempCursor.setPosition(tempCursor.selectionStart())
109
+ line = tempCursor.block().firstLineNumber()
110
+
99
111
  # If no selection, return the current line
100
112
  if cursor.selection().isEmpty():
101
- return cursor.block().text()
113
+ text = cursor.block().text()
114
+
115
+ selectText = self.window().uiSelectTextACT.isChecked() or selectText
116
+ if selectText:
117
+ cursor.select(QTextCursor.LineUnderCursor)
118
+ self.setTextCursor(cursor)
119
+
120
+ return text, line
102
121
 
103
122
  # Otherwise return the selected text
104
123
  if start_of_line:
@@ -106,9 +125,10 @@ class WorkboxTextEdit(WorkboxMixin, QTextEdit):
106
125
  sc.setPosition(cursor.selectionStart())
107
126
  sc.movePosition(cursor.StartOfLine, sc.MoveAnchor)
108
127
  sc.setPosition(cursor.selectionEnd(), sc.KeepAnchor)
109
- return sc.selection().toPlainText()
110
128
 
111
- return self.textCursor().selection().toPlainText()
129
+ return sc.selection().toPlainText(), line
130
+
131
+ return self.textCursor().selection().toPlainText(), line
112
132
 
113
133
  def keyPressEvent(self, event):
114
134
  if self.process_shortcut(event):
@@ -37,6 +37,8 @@ class WorkboxWidget(WorkboxMixin, DocumentEditor):
37
37
  self.setLanguage('Python')
38
38
  # Default to unix newlines
39
39
  self.setEolMode(self.EolUnix)
40
+ if hasattr(self.window(), "setWorkboxFontBasedOnConsole"):
41
+ self.window().setWorkboxFontBasedOnConsole()
40
42
 
41
43
  def __auto_complete_enabled__(self):
42
44
  return self.autoCompletionSource() == self.AcsAll
@@ -142,19 +144,26 @@ class WorkboxWidget(WorkboxMixin, DocumentEditor):
142
144
  def __save__(self):
143
145
  self.save()
144
146
 
145
- def __selected_text__(self, start_of_line=False):
147
+ def __selected_text__(self, start_of_line=False, selectText=False):
146
148
  line, s, end, e = self.getSelection()
147
149
  if line == -1:
148
150
  # Nothing is selected, return the current line of text
149
151
  line, index = self.getCursorPosition()
150
152
  txt = self.text(line)
153
+
154
+ lineLength = len(self.text(line).rstrip())
155
+ selectText = self.window().uiSelectTextACT.isChecked() or selectText
156
+
157
+ if selectText:
158
+ self.setSelection(line, 0, line, lineLength)
159
+
151
160
  elif start_of_line:
152
161
  ss = self.positionFromLineIndex(line, 0)
153
162
  ee = self.positionFromLineIndex(end, e)
154
163
  txt = self.text(ss, ee)
155
164
  else:
156
165
  txt = self.selectedText()
157
- return self.regex.split(txt)[0]
166
+ return self.regex.split(txt)[0], line
158
167
 
159
168
  def __tab_width__(self):
160
169
  return self.tabWidth()
@@ -194,12 +203,25 @@ class WorkboxWidget(WorkboxMixin, DocumentEditor):
194
203
  fle.write(cls.__unix_end_lines__(txt))
195
204
 
196
205
  def keyPressEvent(self, event):
206
+ """Check for certain keyboard shortcuts, and handle them as needed,
207
+ otherwise pass the keyPress to the superclass.
208
+
209
+ NOTE! We handle the "shift+return" shortcut here, rather than the
210
+ QAction's shortcut, because the workbox will always intercept that
211
+ shortcut. So, we handle it here, and call the main window's
212
+ execSelected, which ultimately calls this workbox's __exec_selected__.
213
+
214
+ Also note, it would make sense to have ctrl+Enter also execute without
215
+ truncation, but no modifiers are registered when Enter is pressed (unlike
216
+ when Return is pressed), so this combination is not detectable.
217
+ """
197
218
  if self._software == 'softimage':
198
219
  DocumentEditor.keyPressEvent(self, event)
199
220
  else:
200
221
  if self.process_shortcut(event):
201
222
  return
202
223
  else:
224
+ # Send regular keystroke
203
225
  DocumentEditor.keyPressEvent(self, event)
204
226
 
205
227
  def initShortcuts(self):
@@ -21,8 +21,9 @@ from functools import partial
21
21
 
22
22
  import six
23
23
  from PyQt5.Qsci import QsciScintilla
24
+ from PyQt5.QtCore import QTextCodec
24
25
  from Qt import QtCompat
25
- from Qt.QtCore import Property, QFile, QPoint, Qt, QTextCodec, Signal
26
+ from Qt.QtCore import Property, QFile, QPoint, Qt, Signal
26
27
  from Qt.QtGui import QColor, QFont, QFontMetrics, QIcon
27
28
  from Qt.QtWidgets import (
28
29
  QAction,
@@ -331,7 +332,6 @@ class DocumentEditor(QsciScintilla):
331
332
 
332
333
  # Do not toggle comments on the last line if it contains no selection
333
334
  if line != endLine or endCol:
334
-
335
335
  if doWhich == "Comment":
336
336
  self.setCursorPosition(line, indent)
337
337
  self.insert(commentSpace)
@@ -431,7 +431,7 @@ class DocumentEditor(QsciScintilla):
431
431
  line, index = None, None
432
432
  if not self.hasSelectedText():
433
433
  line, index = self.getCursorPosition()
434
- self.setSelection(line, 0, line, self.lineLength(line) - 2)
434
+ self.setSelection(line, 0, line, self.lineLength(line))
435
435
  return line, index
436
436
 
437
437
  def copy(self):
preditor/version.py CHANGED
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
2
  # file generated by setuptools_scm
3
3
  # don't change, don't track in version control
4
- version = '0.4.0'
5
- version_tuple = (0, 4, 0)
4
+ version = '0.6.0'
5
+ version_tuple = (0, 6, 0)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: PrEditor
3
- Version: 0.4.0
3
+ Version: 0.6.0
4
4
  Summary: A python REPL and Editor and console based on Qt.
5
5
  Home-page: https://github.com/blurstudio/PrEditor.git
6
6
  Author: Blur Studio
@@ -20,25 +20,26 @@ Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
22
  Requires-Dist: Qt.py
23
- Requires-Dist: configparser >=4.0.2
24
- Requires-Dist: future >=0.18.2
25
- Requires-Dist: python-redmine >=2.1.1
26
- Requires-Dist: signalslot >=0.1.2
27
- Requires-Dist: importlib-metadata >=4.8.3 ; python_version >= "3.6"
23
+ Requires-Dist: configparser>=4.0.2
24
+ Requires-Dist: future>=0.18.2
25
+ Requires-Dist: python-redmine>=2.1.1
26
+ Requires-Dist: signalslot>=0.1.2
27
+ Requires-Dist: importlib-metadata>=4.8.3; python_version >= "3.6"
28
28
  Provides-Extra: cli
29
- Requires-Dist: click >=7.1.2 ; extra == 'cli'
30
- Requires-Dist: click-default-group ; extra == 'cli'
29
+ Requires-Dist: click>=7.1.2; extra == "cli"
30
+ Requires-Dist: click-default-group; extra == "cli"
31
31
  Provides-Extra: dev
32
- Requires-Dist: black ; extra == 'dev'
33
- Requires-Dist: covdefaults ; extra == 'dev'
34
- Requires-Dist: coverage ; extra == 'dev'
35
- Requires-Dist: flake8 ; extra == 'dev'
36
- Requires-Dist: flake8-bugbear ; extra == 'dev'
37
- Requires-Dist: pep8-naming ; extra == 'dev'
38
- Requires-Dist: pytest ; extra == 'dev'
39
- Requires-Dist: tox ; extra == 'dev'
32
+ Requires-Dist: black; extra == "dev"
33
+ Requires-Dist: covdefaults; extra == "dev"
34
+ Requires-Dist: coverage; extra == "dev"
35
+ Requires-Dist: flake8; extra == "dev"
36
+ Requires-Dist: flake8-bugbear; extra == "dev"
37
+ Requires-Dist: pep8-naming; extra == "dev"
38
+ Requires-Dist: pytest; extra == "dev"
39
+ Requires-Dist: tox; extra == "dev"
40
40
  Provides-Extra: shortcut
41
- Requires-Dist: casement >=0.1.0 ; (platform_system == "Windows") and extra == 'shortcut'
41
+ Requires-Dist: casement>=0.1.0; platform_system == "Windows" and extra == "shortcut"
42
+ Dynamic: license-file
42
43
 
43
44
  # PrEditor
44
45
 
@@ -1,4 +1,4 @@
1
- preditor/__init__.py,sha256=JlIK0Gp7g7DsKbyt1c5PMD9-3EyeE7q7wv1sJmhrlYc,10585
1
+ preditor/__init__.py,sha256=MDcjs6rNu92NDVu-fH3sZWgLtVKnWqDojREeIFU6fII,10735
2
2
  preditor/__main__.py,sha256=boRVSmxX6eF8EkzbePtCZbzdcaPseqVae4RPPLp3U1A,449
3
3
  preditor/about_module.py,sha256=KIvCxZrMLhm5TR6lYskM4Y9VctJ0QtSQD5Nu8Ip1CGY,5267
4
4
  preditor/cli.py,sha256=kyVr0V43KYSMLIEWXH54CA0ByFmPcpbFF-8cli6PVow,5300
@@ -11,7 +11,7 @@ preditor/plugins.py,sha256=W3DfdDEE5DtEXOXioEyIe4tuIVV1V-RLcV8LoZJWpWU,1916
11
11
  preditor/prefs.py,sha256=BPtSsdv2yuiRpIaqEml9fxlVYKHNfqQ77hp5YIQRDBg,2172
12
12
  preditor/settings.py,sha256=DV9_DbJorEnhdIvW15E7h7PswlQUsy0UlA8bXUYN0og,2206
13
13
  preditor/streamhandler_helper.py,sha256=kiU6T9WqJ3JKTTKCa7IUU8brwK7zO5UUpEzLhEfKe44,1788
14
- preditor/version.py,sha256=LXsVgL30inwYURXgt8agwHpCAGkWqXpMAmFq8N7WB4Q,142
14
+ preditor/version.py,sha256=EkMSrLesUk3YwILml18un292fCmaA26avBUvLZyjx5Y,142
15
15
  preditor/weakref.py,sha256=b--KomFAHcMWr3DEAIN2j3XxRhjDWKw0WABXyn1nxDg,12177
16
16
  preditor/cores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  preditor/cores/core.py,sha256=ZXB4bts05DMQtc-dtkk81chIWNqYXImMuWCYuUHwLdA,2389
@@ -23,36 +23,38 @@ preditor/gui/__init__.py,sha256=vie2aDVpGjrDYxK1H2pTVIgFjIk6B8nNf6rWNwCVJ3Y,3132
23
23
  preditor/gui/app.py,sha256=RRiaDpUdWYoVkCFThMfsSSFG63jRt7LKx2QOx8lSdK4,5810
24
24
  preditor/gui/codehighlighter.py,sha256=fYrEi2qzKmZcTOCv3qRymGAqC7z4bRzO9IGa6cn-LF4,7199
25
25
  preditor/gui/completer.py,sha256=T6fl_4xGVjVtGNuR6ajD1ngjEhrKR6tZ9zPJDYoKn8E,7379
26
- preditor/gui/console.py,sha256=_5v4Vh_04wz1oqaxnZ8Rp818x3igz6Tumgo3-T7TCnA,30759
26
+ preditor/gui/console.py,sha256=jl-Sp65Qw6ZgZNxrKCkVI1jkryPbHjxx3fxDwRs1QAA,35712
27
27
  preditor/gui/dialog.py,sha256=Vw8Wflb2P3TngO8b-2suWP6JKHBVHdbGgYiRDKzYRlQ,7488
28
28
  preditor/gui/drag_tab_bar.py,sha256=5J-BSKQzS6_WuYxxGqmnUJr6AriTAvwfVK7Q3p7knrM,7933
29
- preditor/gui/editor_chooser.py,sha256=v82SPuxPgai3XiRWi9ypT0aRkbV6_IrbfBoAljM9pRY,1986
29
+ preditor/gui/editor_chooser.py,sha256=lv1eY0UJOulX1l-P-ZQEoneYz6BNX2VkXEbg3GUu1ag,1991
30
30
  preditor/gui/errordialog.py,sha256=FZzSykNtqgTZ-CKEsLFXfcw_k8zwx7g_aMaHbpnq2xI,3110
31
31
  preditor/gui/find_files.py,sha256=vh19jY571Z4E9IWSL4VyYcNJWYXzwxBHzBOzxWjI9QM,4223
32
32
  preditor/gui/level_buttons.py,sha256=yPFIWKc0bgKLrP2XHyBqNuvvTnXZqGdtN_p27jSb1Og,11925
33
33
  preditor/gui/logger_window_handler.py,sha256=VTNhaoFUnConE3NHj9KaDZlVoifix8xCbCuN5Ozjz0M,1482
34
- preditor/gui/loggerwindow.py,sha256=hSVNH36CL_zrHStNqfjN-uiXnMUYlWXt6an8meVfifE,47760
34
+ preditor/gui/loggerwindow.py,sha256=zOIzq12ffLF0xp3oChP0bc7KB_4BJ8kK5Oy0gQSGRuI,51303
35
35
  preditor/gui/newtabwidget.py,sha256=5aCWn9xAl5h1oZACqVuEsOAbzKTS2RegrLI41gROC8A,1971
36
36
  preditor/gui/redmine_login_dialog.py,sha256=cMPBuecSZD5yjycNkMwHa1AbdwgGoyHvX8anIvWjEFo,1893
37
- preditor/gui/set_text_editor_path_dialog.py,sha256=6mbHAXEVQhaWyg0N67f54aZpd5fp6puGWzeM0tPepiU,2251
38
- preditor/gui/status_label.py,sha256=UUSw2HSi5u8PA6W0pIeiaBN_LzrsJwb_AZAaGXQXBY8,2397
37
+ preditor/gui/set_text_editor_path_dialog.py,sha256=bTrYM0nU-pE2m8LIpeAUlmvP257wrcAvEdaoOURw9p8,2264
38
+ preditor/gui/status_label.py,sha256=SlNRmPc28S4E2OFVmErv0DmZstk4011Q_7uLp43SF0A,3320
39
+ preditor/gui/suggest_path_quotes_dialog.py,sha256=QUJf_9hs8wOO6bFOr8_Z2xnNhSA8TfKFMOzheUqUDnY,1822
39
40
  preditor/gui/window.py,sha256=bZAEKQDM6V4aew1nlSTPyq_tG-_IoSvyXHcZxrdFMaE,6924
40
- preditor/gui/workbox_mixin.py,sha256=4tUiOWRFc0tEOAAo9BDD3idlkfO6t4VCuL4tklYNnTY,12543
41
- preditor/gui/workbox_text_edit.py,sha256=fJY7eo1bpMyzLri5DfdVb2vad9znJjBvzLkY34T8gb4,3678
42
- preditor/gui/workboxwidget.py,sha256=1uGSPZv3GxmOAIsA4oTaiPUHl003Yp6IA_rXanIToC4,8966
41
+ preditor/gui/workbox_mixin.py,sha256=kUVHtK-flyux3PZ9GkOYnjCJMLRcZESFJXipsgNgI0U,13851
42
+ preditor/gui/workbox_text_edit.py,sha256=B_xObwwobKzpMuTmwkczTGW9cOem2oF8pZDezCqwPCo,4385
43
+ preditor/gui/workboxwidget.py,sha256=BDmV3tu5HaZPTpc_h8UtiAag-w7pEKUBNSkqAIz_7IU,10056
43
44
  preditor/gui/fuzzy_search/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
45
  preditor/gui/fuzzy_search/fuzzy_search.py,sha256=6npanW6aLmG_ezdHmpsKN7p2zwck_Qq6YUy9duCNN8Q,3595
45
- preditor/gui/group_tab_widget/__init__.py,sha256=KpQKkX_FyFQLy2UtBQcLoMuj0eRA7E_2-KXrTwPqA9k,12530
46
+ preditor/gui/group_tab_widget/__init__.py,sha256=rUvlURDiq2nncgEcGv5LvUNUVl3uLqJ_j4lQtZ8fMQE,12568
46
47
  preditor/gui/group_tab_widget/grouped_tab_menu.py,sha256=lopd3mjHJIE_5xLdlZL0ghuBzsYo36vO1OZE6L6tqbI,1288
47
48
  preditor/gui/group_tab_widget/grouped_tab_models.py,sha256=zlmbcv3JAC5BzjKpm4CM7Hobibm1T_3GjaPoWIQbXiQ,3970
48
- preditor/gui/group_tab_widget/grouped_tab_widget.py,sha256=EwzYVqhJaBaYS9tdd4FXUl-PxjplWtOi7f0t99De_bw,2803
49
+ preditor/gui/group_tab_widget/grouped_tab_widget.py,sha256=Z08LE8-ABakpM5Lk8cnntfjtdsmoR_T2ycgSEor7iY0,2928
49
50
  preditor/gui/group_tab_widget/one_tab_widget.py,sha256=PdZAXjmV9oTHakh8aFYRlLnfwcoT459vQWVKgpZZx4Y,1971
50
51
  preditor/gui/ui/editor_chooser.ui,sha256=cYSVHK0A4-zst6JyDkrBZK9qcAontbhV4Mmnw5ps72E,2736
51
52
  preditor/gui/ui/errordialog.ui,sha256=H1wJJVU1t7kbnYkzGtGa8SBVpKjesJG_0imdBkJaEUY,2034
52
53
  preditor/gui/ui/find_files.ui,sha256=8mdD3Vg3ofRMChdKntxiDHO3JXHQSKjjY6OLY_1W5lc,3328
53
- preditor/gui/ui/loggerwindow.ui,sha256=JVpvGWrnI4cQdX4DFwfsCMEnNh1iipc1Vxihcg8FJvU,30035
54
+ preditor/gui/ui/loggerwindow.ui,sha256=IGoeWPDI4Qym01mTkUR49MDhxpZBWYRHr7s746WfYkw,31528
54
55
  preditor/gui/ui/redmine_login_dialog.ui,sha256=PmGuJWvBcSDLya5UblFj5brwDH9VL2fJEveH-r5-nJ8,2911
55
- preditor/gui/ui/set_text_editor_path_dialog.ui,sha256=QoSorDlyfUoNSrHQRP1Yrls5az4TyUsTQw_qYOe_Ljc,4004
56
+ preditor/gui/ui/set_text_editor_path_dialog.ui,sha256=VLBpTvGneXAi9RX1dRd6oPwKoZhQ_m5HO1j1qXPhTxc,5201
57
+ preditor/gui/ui/suggest_path_quotes_dialog.ui,sha256=0hcr7kEFmmMVEp7vv18mDpvWZ0zOrojlkTLhIWCFKww,5923
56
58
  preditor/resource/environment_variables.html,sha256=-uWicgOkour-sxtY-crrjMiLMyJzAzshwUXKqSm6TmI,3134
57
59
  preditor/resource/error_mail.html,sha256=oCzynF3QSHi_Xg1wlmU5M5u1Q05mp7QV0ZtQ4e8KQDA,2400
58
60
  preditor/resource/error_mail_inline.html,sha256=ceZ8HReyTirMOX-xNgVB9kMO8QhpbHI4-WObFeOG9KY,4014
@@ -106,7 +108,7 @@ preditor/resource/lang/python.json,sha256=CXiQh0jcgd-OCrM-s9IF7s4o-g5WRA4vDaAyTR
106
108
  preditor/resource/stylesheet/Bright.css,sha256=wxzpkhcOC9GzALb0NYAMASnZmXEe9urZBniHNImwTc4,2186
107
109
  preditor/resource/stylesheet/Dark.css,sha256=l3n9Z89JNlVDWKDtMTlipQkSSVPSJXbKd0tOMWnx7PQ,5085
108
110
  preditor/scintilla/__init__.py,sha256=AoUc-fcp2D3F10FDFsp_ZzUr4zioDH0mvdubSF7sRG0,523
109
- preditor/scintilla/documenteditor.py,sha256=_dt4J1DcmGPbtujqXsaSz0Li00T6I9IEduaVKMRAQl0,77900
111
+ preditor/scintilla/documenteditor.py,sha256=6EfqJLcG2ZqzDUxvdtIrHyuVSF47goWpGrVEBMJN3pw,77919
110
112
  preditor/scintilla/finddialog.py,sha256=vcYPj74LbCy4KXdh0eJyOb8i31pJKgOZitKpgW4zhBM,2346
111
113
  preditor/scintilla/delayables/__init__.py,sha256=lj9tMc3IL2QeaN858Ixt_n7clJngbKqG2sk66vIcFcQ,275
112
114
  preditor/scintilla/delayables/smart_highlight.py,sha256=JRwGp-pVwx75zJ5NoJ8UuBg4-jK4eQfgD4eM4ZfDbGI,3502
@@ -147,9 +149,9 @@ preditor/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
149
  preditor/utils/cute.py,sha256=LfF8gXMAkkQAdo4mm6J9aVkDLwWZbE6prQ0moDbtCys,1045
148
150
  preditor/utils/stylesheets.py,sha256=EVWZNq3WnaRiyUPoYMKQo_dLEwbRyKu26b03I1JDA-s,1622
149
151
  preditor/utils/text_search.py,sha256=21kuSDTpLIPUcriB81WP1kWfzuDBuP13ZtHUtypP5jE,14218
150
- PrEditor-0.4.0.dist-info/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
151
- PrEditor-0.4.0.dist-info/METADATA,sha256=uWRRXD5RnLauKw3NobDW8znh1VsatdJXz5PAa0M9itQ,9277
152
- PrEditor-0.4.0.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
153
- PrEditor-0.4.0.dist-info/entry_points.txt,sha256=mpe0HFD_oIEBNPTJNyUEbmMV6Ivrp4EuYyZ34C5d_PU,519
154
- PrEditor-0.4.0.dist-info/top_level.txt,sha256=iX1_mrUOky_BQr2oG0l_MbEUYF6idyjiWSzu9z3irIw,9
155
- PrEditor-0.4.0.dist-info/RECORD,,
152
+ preditor-0.6.0.dist-info/licenses/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
153
+ preditor-0.6.0.dist-info/METADATA,sha256=od__v42wWO_m7_ZSETaUIOJvup_rF_7czhcVDbd__AA,9278
154
+ preditor-0.6.0.dist-info/WHEEL,sha256=joeZ_q2kZqPjVkNy_YbjGrynLS6bxmBj74YkvIORXVI,109
155
+ preditor-0.6.0.dist-info/entry_points.txt,sha256=mpe0HFD_oIEBNPTJNyUEbmMV6Ivrp4EuYyZ34C5d_PU,519
156
+ preditor-0.6.0.dist-info/top_level.txt,sha256=iX1_mrUOky_BQr2oG0l_MbEUYF6idyjiWSzu9z3irIw,9
157
+ preditor-0.6.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (80.4.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any