src/eric7/RemoteServerInterface/EricServerEditorConfigInterface.py

Mon, 24 Feb 2025 15:43:49 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 24 Feb 2025 15:43:49 +0100
branch
eric7
changeset 11148
15e30f0c76a8
parent 11090
f5f5f5803935
permissions
-rw-r--r--

Adjusted the code to the modified issue codes.

10774
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10776
diff changeset
3 # Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
10774
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Editor Config interface to the eric-ide server.
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import editorconfig
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt6.QtCore import QEventLoop, QObject
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from eric7.RemoteServer.EricRequestCategory import EricRequestCategory
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from eric7.SystemUtilities import FileSystemUtilities
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class EricServerEditorConfigInterface(QObject):
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Class implementing the Editor Config interface to the eric-ide server.
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, serverInterface):
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param serverInterface reference to the eric-ide server interface
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type EricServerInterface
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 super().__init__(parent=serverInterface)
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 self.__serverInterface = serverInterface
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 def loadEditorConfig(self, filename):
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 Public method to load the editor config for the given file.
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param filename name of the file to get the editor config for
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @type str
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @return dictionary containing the editor config data
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @rtype dict
10776
ec110553c5ab Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10774
diff changeset
42 @exception editorconfig.EditorConfigError raised to indicate an
ec110553c5ab Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10774
diff changeset
43 issue loading the editor config
10774
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 loop = QEventLoop()
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 ok = False
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 config = None
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 def callback(reply, params):
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 Function to handle the server reply
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 @param reply name of the server reply
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 @type str
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 @param params dictionary containing the reply data
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 @type dict
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 """
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 nonlocal ok, config
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 if reply == "LoadEditorConfig":
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 ok = params["ok"]
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 config = params["config"]
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 loop.quit()
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 if not self.__serverInterface.isServerConnected():
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 raise editorconfig.EditorConfigError(
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 "Not connected to an 'eric-ide' server."
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 )
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 else:
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.__serverInterface.sendJson(
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 category=EricRequestCategory.EditorConfig,
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 request="LoadEditorConfig",
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 params={"filename": FileSystemUtilities.plainFileName(filename)},
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 callback=callback,
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 )
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 loop.exec()
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 if not ok:
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 raise editorconfig.EditorConfigError()
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80
7f7ff7456904 Created a handler and interface for remote handling 'editor config' files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 return config

eric ide

mercurial