forked from DerThorsten/orthos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_editor_json.py
89 lines (77 loc) · 3.28 KB
/
test_editor_json.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
"""
A basic example that show you how to create a basic python code editor widget,
from scratch.
Editor features:
- syntax highlighting
- code completion (using jedi)
- code folding
- auto indentation
- auto complete
- comments mode (ctrl+/)
- calltips mode
- linters (pyflakes and pep8) modes + display panel
- line number panel
- builtin search and replace panel
"""
import logging
logging.basicConfig()
# optionally, set the qt api to use (in ['pyqt4', 'pyqt5', 'pyside'])
# import os; os.environ['QT_API'] = 'pyside'
import sys
from pyqode.qt import QtWidgets
from pyqode.python.backend import server
from pyqode.core import api, modes, panels
from pyqode.json import modes as pymodes, panels as pypanels, widgets
#rom pyqode.json.modes import JsonSH
from pyqode.core.api import CodeEdit, ColorScheme
#from pyqode.json.panels import QuickDocPanel
class MyPythonCodeEdit(widgets.JSONCodeEdit):
def __init__(self):
super(MyPythonCodeEdit, self).__init__(color_scheme='monokai')
# starts the default pyqode.python server (which enable the jedi code
# completion worker).
self.backend.start(server.__file__)
# some other modes/panels require the analyser mode, the best is to
# install it first
#self.modes.append(pymodes.DocumentAnalyserMode())
#--- core panels
self.panels.append(panels.FoldingPanel())
self.panels.append(panels.LineNumberPanel())
self.panels.append(panels.CheckerPanel())
self.panels.append(panels.SearchAndReplacePanel(),
panels.SearchAndReplacePanel.Position.BOTTOM)
self.panels.append(panels.EncodingPanel(), api.Panel.Position.TOP)
# add a context menu separator between editor's
# builtin action and the python specific actions
self.add_separator()
#--- python specific panels
#self.panels.append(pypanels.QuickDocPanel(), api.Panel.Position.BOTTOM)
#--- core modes
self.modes.append(modes.CaretLineHighlighterMode())
self.modes.append(modes.CodeCompletionMode())
self.modes.append(modes.ExtendedSelectionMode())
self.modes.append(modes.FileWatcherMode())
self.modes.append(modes.OccurrencesHighlighterMode())
#self.modes.append(modes.RightMarginMode())
self.modes.append(modes.SmartBackSpaceMode())
self.modes.append(modes.SymbolMatcherMode())
self.modes.append(modes.ZoomMode())
#--- python specific modes
#self.modes.append(pymodes.CommentsMode())
#self.modes.append(pymodes.CalltipsMode())
#self.modes.append(pymodes.FrostedCheckerMode())
#self.modes.append(pymodes.PEP8CheckerMode())
#self.modes.append(pymodes.PyAutoCompleteMode())
#self.modes.append(pymodes.PyAutoIndentMode())
#self.modes.append(pymodes.PyIndenterMode())
#sh = self.modes.append(PythonSH(self.document()))
# change its color scheme (from pygments)
#sh.color_scheme = ColorScheme('monokai')
#self.panels.append(QuickDocPanel(), QuickDocPanel.Position.BOTTOM)
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
editor = MyPythonCodeEdit()
editor.file.open("base_settings.json")
window.setCentralWidget(editor)
window.show()
app.exec_()