PluginAssistantEric.py

Tue, 20 Dec 2022 17:49:16 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 20 Dec 2022 17:49:16 +0100
branch
eric7
changeset 200
90c24865ba02
parent 198
b9fbbb1c3055
child 201
1770e4b702a9
permissions
-rw-r--r--

Resorted imports with isort.

2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
186
c228779ea15d Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
3 # Copyright (c) 2008 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Eric assistant plugin.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
200
90c24865ba02 Resorted imports with isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
12 from PyQt6.QtCore import QCoreApplication, QObject, QTranslator
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from AssistantEric.Assistant import AcsAPIs, AcsProject
200
90c24865ba02 Resorted imports with isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
15 from eric7 import Preferences
90c24865ba02 Resorted imports with isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 198
diff changeset
16 from eric7.EricWidgets.EricApplication import ericApp
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 # Start-Of-Header
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 name = "Assistant Eric Plugin"
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 autoactivate = True
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 deactivateable = True
198
b9fbbb1c3055 Adjusted some more code for eric7 22.12 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 196
diff changeset
23 version = "10.2.2"
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 className = "AssistantEricPlugin"
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 packageName = "AssistantEric"
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 shortDescription = "Alternative autocompletion and calltips provider."
163
842fce9b31ce Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
27 longDescription = (
842fce9b31ce Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
28 """This plugin implements an alternative autocompletion and"""
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """ calltips provider."""
163
842fce9b31ce Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
30 )
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 needsRestart = True
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 pyqtApi = 2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 # End-Of-Header
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 error = ""
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 assistantEricPluginObject = None
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
39
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 def createAutoCompletionPage(configDlg):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 Module function to create the autocompletion configuration page.
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
43
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
44 @param configDlg reference to the configuration dialog
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
45 @type ConfigurationWidget
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @return reference to the configuration page
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
47 @rtype QWidget
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 global assistantEricPluginObject
163
842fce9b31ce Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
50 from AssistantEric.ConfigurationPages.AutoCompletionEricPage import (
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
51 AutoCompletionEricPage,
163
842fce9b31ce Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
52 )
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
53
163
842fce9b31ce Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
54 return AutoCompletionEricPage(assistantEricPluginObject)
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
55
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
56
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 def createCallTipsPage(configDlg):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 Module function to create the calltips configuration page.
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
60
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
61 @param configDlg reference to the configuration dialog
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
62 @type ConfigurationWidget
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @return reference to the configuration page
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
64 @rtype QWidget
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 global assistantEricPluginObject
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
67 from AssistantEric.ConfigurationPages.CallTipsEricPage import CallTipsEricPage
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
68
163
842fce9b31ce Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 161
diff changeset
69 return CallTipsEricPage(assistantEricPluginObject)
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
70
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
71
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 def getConfigData():
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 Module function returning data as required by the configuration dialog.
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
75
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @return dictionary containing the relevant data
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
77 @rtype dict
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
157
877bef9abf89 Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
79 try:
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
80 usesDarkPalette = ericApp().usesDarkPalette()
157
877bef9abf89 Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
81 except AttributeError:
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
82 from PyQt6.QtGui import QPalette
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
83
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
84 palette = ericApp().palette()
173
ced7c270bf6b Changed the enum handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
85 lightness = palette.color(QPalette.ColorRole.Window).lightness()
157
877bef9abf89 Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 156
diff changeset
86 usesDarkPalette = lightness <= 128
177
25cb41783971 - applied some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
87 iconSuffix = "dark" if usesDarkPalette else "light"
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
88
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 return {
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
90 "ericAutoCompletionPage": [
97
6226cdaea3ad Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
91 QCoreApplication.translate("AssistantEricPlugin", "Eric"),
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
92 os.path.join(
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
93 "AssistantEric", "ConfigurationPages", "eric-{0}".format(iconSuffix)
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
94 ),
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
95 createAutoCompletionPage,
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
96 "1editorAutocompletionPage",
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
97 None,
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
98 ],
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
99 "ericCallTipsPage": [
97
6226cdaea3ad Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
100 QCoreApplication.translate("AssistantEricPlugin", "Eric"),
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
101 os.path.join(
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
102 "AssistantEric", "ConfigurationPages", "eric-{0}".format(iconSuffix)
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
103 ),
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
104 createCallTipsPage,
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
105 "1editorCalltipsPage",
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
106 None,
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
107 ],
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 }
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
110
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 def prepareUninstall():
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 Module function to prepare for an uninstallation.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 """
63
f8acb1de2200 Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
115 Preferences.Prefs.settings.remove(AssistantEricPlugin.PreferencesKey)
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
116
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
117
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 class AssistantEricPlugin(QObject):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 Class implementing the Eric assistant plugin.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 """
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
122
63
f8acb1de2200 Fixed a bug related to uninstalling the plug-in via the external plug-in uninstaller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
123 PreferencesKey = "AssistantEric"
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
124
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 def __init__(self, ui):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 Constructor
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
128
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
129 @param ui reference to the user interface object
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
130 @type UserInterface
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 QObject.__init__(self, ui)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 self.__ui = ui
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 self.__initialize()
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
135
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 self.__defaults = {
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
137 "AutoCompletionEnabled": False,
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
138 "AutoCompletionSource": AcsAPIs | AcsProject,
54
89d28458ff40 Added support for auto-completions and calltips for sources compiled from form files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
139 "AutoCompletionFollowHierarchy": False,
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
140 "CalltipsEnabled": False,
33
4d89fb0f8b0e Changed a settings variable from int to bool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 32
diff changeset
141 "CallTipsContextShown": True,
54
89d28458ff40 Added support for auto-completions and calltips for sources compiled from form files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
142 "CallTipsFollowHierarchy": False,
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 }
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
144
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 self.__translator = None
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 self.__loadTranslator()
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
147
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 def __initialize(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 Private slot to (re)initialize the plugin.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 self.__object = None
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
153
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 def __checkQSql(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 Private method to perform some checks on QSql.
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
157
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
158 @return flag indicating QSql is ok
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
159 @rtype bool
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 global error
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
162
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 try:
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
164 from PyQt6.QtSql import QSqlDatabase
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 except ImportError:
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
166 error = self.tr("PyQt6.QtSql is not available.")
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 return False
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
168
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 drivers = QSqlDatabase.drivers()
131
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
170 if "QSQLITE" not in drivers:
97
6226cdaea3ad Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
171 error = self.tr("The SQLite database driver is not available.")
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 return False
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
173
131
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
174 return True
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
175
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 def activate(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 Public method to activate this plugin.
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
179
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
180 @return tuple of None and activation status
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
181 @rtype bool
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 global error
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
184 error = "" # clear previous error
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
185
138
e5f860436ab9 Removed the outdated check for the correct eric version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
186 if not self.__checkQSql():
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 return None, False
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
188
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 global assistantEricPluginObject
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 assistantEricPluginObject = self
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
191
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 from AssistantEric.Assistant import Assistant
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
193
30
8f4d794d8ee0 Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
194 self.__object = Assistant(self, self.__ui)
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
195 ericApp().registerPluginObject("AssistantEric", self.__object)
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
196
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 self.__object.activate()
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
198
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 return None, True
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
200
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 def deactivate(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 Public method to deactivate this plugin.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 """
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
205 ericApp().unregisterPluginObject("AssistantEric")
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
206
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 self.__object.deactivate()
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
208
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 self.__initialize()
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
210
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 def __loadTranslator(self):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 Private method to load the translation file.
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 """
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 if self.__ui is not None:
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 loc = self.__ui.getLocale()
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 if loc and loc != "C":
84
67197c1f11eb Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 77
diff changeset
218 locale_dir = os.path.join(
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
219 os.path.dirname(__file__), "AssistantEric", "i18n"
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
220 )
17
8f33c2f5bfbd Did some string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
221 translation = "assistant_{0}".format(loc)
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 translator = QTranslator(None)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 loaded = translator.load(translation, locale_dir)
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 if loaded:
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 self.__translator = translator
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
226 ericApp().installTranslator(self.__translator)
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 else:
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
228 print(
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
229 "Warning: translation file '{0}' could not be"
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
230 " loaded.".format(translation)
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
231 )
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 print("Using default.")
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
233
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 def getPreferences(self, key):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 """
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
236 Public method to retrieve the various settings.
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
237
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 @param key the key of the value to get
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
239 @type str
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
240 @return value of the requested setting
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
241 @rtype Any
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 """
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
243 if key in [
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
244 "AutoCompletionEnabled",
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
245 "AutoCompletionFollowHierarchy",
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
246 "CalltipsEnabled",
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
247 "CallTipsContextShown",
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
248 "CallTipsFollowHierarchy",
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
249 ]:
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
250 return Preferences.toBool(
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
251 Preferences.Prefs.settings.value(
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
252 self.PreferencesKey + "/" + key, self.__defaults[key]
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
253 )
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
254 )
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 else:
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
256 return int(
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
257 Preferences.Prefs.settings.value(
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
258 self.PreferencesKey + "/" + key, self.__defaults[key]
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
259 )
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
260 )
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
261
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 def setPreferences(self, key, value):
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 """
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
264 Public method to store the various settings.
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
265
180
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
266 @param key the key of the setting to be set
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
267 @type str
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
268 @param value value to be set
89ff060ef0d9 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 177
diff changeset
269 @type Any
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 """
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
271 Preferences.Prefs.settings.setValue(self.PreferencesKey + "/" + key, value)
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
272
2
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 if key in ["AutoCompletionEnabled", "CalltipsEnabled"]:
89cbc07f4bf0 First commit after porting to Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 self.__object.setEnabled(key, value)
131
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
275
190
3104a5a3ea13 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
276
131
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
277 #
7d868e8e1cfb Added support for project type specific API configurations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 127
diff changeset
278 # eflag: noqa = M801

eric ide

mercurial