RefactoringRope/RefactoringServer.py

Thu, 30 Dec 2021 11:20:04 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 30 Dec 2021 11:20:04 +0100
branch
eric7
changeset 374
958f34e97952
parent 365
f740b50380df
child 383
a89b3f379703
permissions
-rw-r--r--

Updated copyright for 2022.

1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
374
958f34e97952 Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 365
diff changeset
3 # Copyright (c) 2010 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the refactoring interface to rope.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
11 import contextlib
50
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
12
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
13 from PyQt6.QtCore import pyqtSlot
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
14 from PyQt6.QtGui import QAction
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
15 from PyQt6.QtWidgets import QMenu, QApplication
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
16 from PyQt6.Qsci import QsciScintilla
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
18 from EricWidgets.EricApplication import ericApp
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
19 from EricWidgets import EricMessageBox
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
20 from EricGui.EricAction import EricAction
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
22 from EricNetwork.EricJsonServer import EricJsonServer
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
23
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
24 from .RopeProgressDialog import RopeProgressDialog
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
25
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
26 import Utilities
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
27 import Preferences
360
2b35968f3d02 Version 8.0.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 354
diff changeset
28 import Globals
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
30 from Preferences.Shortcuts import readShortcuts
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
31
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
33 class RefactoringServer(EricJsonServer):
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 Class implementing the refactoring interface to rope.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
31
0389d4a924cc Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
37 def __init__(self, plugin, parent=None):
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Constructor
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @param plugin reference to the plugin object
192
20950ed6b384 Extended the JsonServer to handle multiple clients simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 191
diff changeset
42 @type RefactoringRopePlugin
20950ed6b384 Extended the JsonServer to handle multiple clients simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 191
diff changeset
43 @param parent parent
20950ed6b384 Extended the JsonServer to handle multiple clients simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 191
diff changeset
44 @type QObject
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
46 super().__init__(
197
7046ac1bcb4b Continued implementing the distributed Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
47 "RefactoringServer", parent=parent)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.__plugin = plugin
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.__ui = parent
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
51 self.__vm = ericApp().getObject("ViewManager")
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
52 self.__ericProject = ericApp().getObject("Project")
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__projectpath = ''
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.__projectLanguage = ""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.__projectopen = False
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
56 self.__ropeConfig = {}
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
313
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
58 self.__mainMenu = None
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
59 self.__mainAct = None
313
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
60 self.__separatorAct = None
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
61
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
62 self.__progressDialog = None
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.__helpDialog = None
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
64 self.__historyDialog = None
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
65 self.__refactoringDialogs = {}
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
67 from .FileSystemCommands import EricFileSystemCommands
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
68 self.__fsCommands = EricFileSystemCommands(self.__ericProject)
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
69
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
70 self.__methodMapping = {
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
71 "Config": self.__setConfig,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
72 "Progress": self.__processProgress,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
73 "QueryReferencesResult": self.__queryReferencesResult,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
74 "QueryDefinitionResult": self.__queryDefinitionResult,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
75 "QueryImplementationsResult": self.__queryImplementationsResult,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
76 "SoaFinished": self.__soaFinished,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
77
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
78 "FileSystemCommand": self.__fsCommands.processFileSystemCommand,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
79
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
80 "ClientException": self.__processClientException,
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
81
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
82 "HistoryResult": self.__processHistoryResult,
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
83
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
84 "Changes": self.__processChanges,
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
85 }
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
194
5c297b473425 Some more refactorings of the code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
87 @pyqtSlot()
5c297b473425 Some more refactorings of the code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
88 def handleNewConnection(self):
5c297b473425 Some more refactorings of the code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
89 """
5c297b473425 Some more refactorings of the code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
90 Public slot for new incoming connections from a client.
5c297b473425 Some more refactorings of the code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
91 """
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
92 super().handleNewConnection()
194
5c297b473425 Some more refactorings of the code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
93
5c297b473425 Some more refactorings of the code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
94 self.sendJson("GetConfig", {})
5c297b473425 Some more refactorings of the code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
95
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
96 def activate(self):
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
97 """
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
98 Public method to activate the refactoring server.
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
99
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
100 This is performed when the rope plug-in is activated.
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
101 """
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
102 self.__initActions()
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
103 ericApp().registerPluginObject("RefactoringRope", self)
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
104 readShortcuts(pluginName="RefactoringRope")
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
105
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
106 self.__mainMenu = self.__initMenu()
313
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
107 projectToolsMenu = self.__ui.getMenu("project_tools")
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
108 if projectToolsMenu is not None:
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
109 insertBeforeAct = projectToolsMenu.actions()[0]
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
110 self.__mainAct = projectToolsMenu.insertMenu(
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
111 insertBeforeAct, self.__mainMenu)
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
112 self.__separatorAct = projectToolsMenu.insertSeparator(
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
113 insertBeforeAct)
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
114 else:
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
115 projectAct = self.__ui.getMenuBarAction("project")
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
116 actions = self.__ui.menuBar().actions()
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
117 insertBeforeAct = actions[actions.index(projectAct) + 1]
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
118 self.__mainAct = self.__ui.menuBar().insertMenu(
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
119 insertBeforeAct, self.__mainMenu)
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
120 self.__mainAct.setEnabled(False)
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
121
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
122 if ericApp().getObject("Project").isOpen():
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
123 self.projectOpened()
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
124
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
125 ericApp().getObject("Project").projectOpened.connect(
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
126 self.projectOpened)
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
127 ericApp().getObject("Project").projectPropertiesChanged.connect(
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
128 self.projectOpened)
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
129 ericApp().getObject("Project").projectClosed.connect(
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
130 self.projectClosed)
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
131 ericApp().getObject("Project").newProject.connect(
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
132 self.projectOpened)
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
133
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
134 def deactivate(self):
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
135 """
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
136 Public method to deactivate the refactoring server.
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
137 """
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
138 ericApp().unregisterPluginObject("RefactoringRope")
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
139
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
140 ericApp().getObject("Project").projectOpened.disconnect(
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
141 self.projectOpened)
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
142 ericApp().getObject("Project").projectPropertiesChanged.disconnect(
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
143 self.projectOpened)
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
144 ericApp().getObject("Project").projectClosed.disconnect(
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
145 self.projectClosed)
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
146 ericApp().getObject("Project").newProject.disconnect(
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
147 self.projectOpened)
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
148
313
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
149 projectToolsMenu = self.__ui.getMenu("project_tools")
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
150 if projectToolsMenu is not None:
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
151 projectToolsMenu.removeAction(self.__separatorAct)
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
152 projectToolsMenu.removeAction(self.__mainAct)
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
153 else:
327178d25538 RefactoringServer: changes to support changed eric6 menu structure as of eric6 19.06.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 309
diff changeset
154 self.__ui.menuBar().removeAction(self.__mainAct)
261
5e26389eebe1 RefactoringServer: fixed abug causing the refactoring client to enter an endless loop, when the plug-in is deactivated.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 251
diff changeset
155
275
45ac265bee4b RefactoringServer: fixed an issue during deactivation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 270
diff changeset
156 self.projectClosed()
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
157
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
158 def getMainWindow(self):
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
159 """
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
160 Public method to get a reference to the IDE main window.
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
161
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
162 @return reference to the IDE main window
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
163 @rtype UserInterface
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
164 """
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
165 return self.__ui
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
166
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
167 def __initActions(self):
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 """
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
169 Private method to define the refactoring actions.
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 self.actions = []
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
173 #####################################################
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
174 ## Rename refactoring actions
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
175 #####################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
176
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
177 self.refactoringRenameAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
178 self.tr('Rename'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
179 self.tr('&Rename'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
180 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
181 self, 'refactoring_rename')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
182 self.refactoringRenameAct.setStatusTip(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
183 'Rename the highlighted object'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
184 self.refactoringRenameAct.setWhatsThis(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
185 """<b>Rename</b>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
186 """<p>Rename the highlighted Python object.</p>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
187 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
188 self.refactoringRenameAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
189 self.__rename)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
190 self.actions.append(self.refactoringRenameAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
191
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
192 self.refactoringRenameLocalAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
193 self.tr('Local Rename'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
194 self.tr('&Local Rename'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
195 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
196 self, 'refactoring_rename_local')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
197 self.refactoringRenameLocalAct.setStatusTip(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
198 'Rename the highlighted object in the current module only'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
199 self.refactoringRenameLocalAct.setWhatsThis(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
200 """<b>Local Rename</b>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
201 """<p>Rename the highlighted Python object in the current"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
202 """ module only.</p>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
203 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
204 self.refactoringRenameLocalAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
205 self.__renameLocal)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
206 self.actions.append(self.refactoringRenameLocalAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
207
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
208 self.refactoringRenameModuleAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
209 self.tr('Rename Current Module'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
210 self.tr('Rename Current Module'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
211 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
212 self, 'refactoring_rename_module')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
213 self.refactoringRenameModuleAct.setStatusTip(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
214 'Rename the current module'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
215 self.refactoringRenameModuleAct.setWhatsThis(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
216 """<b>Rename Current Module</b>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
217 """<p>Rename the current module.</p>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
218 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
219 self.refactoringRenameModuleAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
220 self.__renameModule)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
221 self.actions.append(self.refactoringRenameModuleAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
222
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
223 self.refactoringChangeOccurrencesAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
224 self.tr('Change Occurrences'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
225 self.tr('Change &Occurrences'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
226 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
227 self, 'refactoring_change_occurrences')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
228 self.refactoringChangeOccurrencesAct.setStatusTip(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
229 'Change all occurrences in the local scope'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
230 self.refactoringChangeOccurrencesAct.setWhatsThis(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
231 """<b>Change Occurrences</b>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
232 """<p>Change all occurrences in the local scope.</p>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
233 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
234 self.refactoringChangeOccurrencesAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
235 self.__changeOccurrences)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
236 self.actions.append(self.refactoringChangeOccurrencesAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
237
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
238 #####################################################
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
239 ## Extract refactoring actions
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
240 #####################################################
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
241
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
242 self.refactoringExtractMethodAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
243 self.tr('Extract method'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
244 self.tr('Extract &Method'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
245 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
246 self, 'refactoring_extract_method')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
247 self.refactoringExtractMethodAct.setStatusTip(self.tr(
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
248 'Extract the highlighted area as a method'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
249 self.refactoringExtractMethodAct.setWhatsThis(self.tr(
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
250 """<b>Extract method</b>"""
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
251 """<p>Extract the highlighted area as a method or function.</p>"""
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
252 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
253 self.refactoringExtractMethodAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
254 self.__extractMethod)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
255 self.actions.append(self.refactoringExtractMethodAct)
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
256
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
257 self.refactoringExtractLocalVariableAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
258 self.tr('Extract local variable'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
259 self.tr('&Extract Local Variable'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
260 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
261 self, 'refactoring_extract_variable')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
262 self.refactoringExtractLocalVariableAct.setStatusTip(self.tr(
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
263 'Extract the highlighted area as a local variable'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
264 self.refactoringExtractLocalVariableAct.setWhatsThis(self.tr(
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
265 """<b>Extract local variable</b>"""
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
266 """<p>Extract the highlighted area as a local variable.</p>"""
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
267 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
268 self.refactoringExtractLocalVariableAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
269 self.__extractLocalVariable)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
270 self.actions.append(self.refactoringExtractLocalVariableAct)
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
271
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
272 #####################################################
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
273 ## Inline refactoring actions
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
274 #####################################################
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
275
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
276 self.refactoringInlineAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
277 self.tr('Inline'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
278 self.tr('&Inline'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
279 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
280 self, 'refactoring_inline')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
281 self.refactoringInlineAct.setStatusTip(self.tr(
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
282 'Inlines the selected local variable or method'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
283 self.refactoringInlineAct.setWhatsThis(self.tr(
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
284 """<b>Inline</b>"""
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
285 """<p>Inlines the selected local variable or method.</p>"""
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
286 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
287 self.refactoringInlineAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
288 self.__inline)
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
289 self.actions.append(self.refactoringInlineAct)
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
290
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
291 #####################################################
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
292 ## Move refactoring actions
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
293 #####################################################
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
294
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
295 self.refactoringMoveMethodAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
296 self.tr('Move method'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
297 self.tr('Mo&ve Method'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
298 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
299 self, 'refactoring_move_method')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
300 self.refactoringMoveMethodAct.setStatusTip(self.tr(
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
301 'Move the highlighted method to another class'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
302 self.refactoringMoveMethodAct.setWhatsThis(self.tr(
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
303 """<b>Move method</b>"""
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
304 """<p>Move the highlighted method to another class.</p>"""
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
305 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
306 self.refactoringMoveMethodAct.triggered.connect(
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
307 lambda: self.__move("move_method"))
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
308 self.actions.append(self.refactoringMoveMethodAct)
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
309
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
310 self.refactoringMoveModuleAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
311 self.tr('Move current module'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
312 self.tr('Move Current Module'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
313 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
314 self, 'refactoring_move_module')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
315 self.refactoringMoveModuleAct.setStatusTip(self.tr(
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
316 'Move the current module to another package'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
317 self.refactoringMoveModuleAct.setWhatsThis(self.tr(
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
318 """<b>Move current module</b>"""
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
319 """<p>Move the current module to another package.</p>"""
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
320 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
321 self.refactoringMoveModuleAct.triggered.connect(
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
322 lambda: self.__move("move_module"))
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
323 self.actions.append(self.refactoringMoveModuleAct)
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
324
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
325 #####################################################
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
326 ## Use function refactoring action
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
327 #####################################################
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
328
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
329 self.refactoringUseFunctionAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
330 self.tr('Use Function'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
331 self.tr('Use Function'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
332 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
333 self, 'refactoring_use_function')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
334 self.refactoringUseFunctionAct.setStatusTip(self.tr(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
335 'Use a function wherever possible.'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
336 self.refactoringUseFunctionAct.setWhatsThis(self.tr(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
337 """<b>Use function</b>"""
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
338 """<p>Tries to use a function wherever possible.</p>"""
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
339 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
340 self.refactoringUseFunctionAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
341 self.__useFunction)
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
342 self.actions.append(self.refactoringUseFunctionAct)
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
343
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
344 #####################################################
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
345 ## Introduce refactorings actions
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
346 #####################################################
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
347
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
348 self.refactoringIntroduceFactoryAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
349 self.tr('Introduce Factory Method'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
350 self.tr('Introduce &Factory Method'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
351 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
352 self, 'refactoring_introduce_factory_method')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
353 self.refactoringIntroduceFactoryAct.setStatusTip(self.tr(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
354 'Introduce a factory method or function'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
355 self.refactoringIntroduceFactoryAct.setWhatsThis(self.tr(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
356 """<b>Introduce Factory Method</b>"""
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
357 """<p>Introduce a factory method or function.</p>"""
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
358 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
359 self.refactoringIntroduceFactoryAct.triggered.connect(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
360 self.__introduceFactoryMethod)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
361 self.actions.append(self.refactoringIntroduceFactoryAct)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
362
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
363 self.refactoringIntroduceParameterAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
364 self.tr('Introduce Parameter'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
365 self.tr('Introduce &Parameter'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
366 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
367 self, 'refactoring_introduce_parameter_method')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
368 self.refactoringIntroduceParameterAct.setStatusTip(self.tr(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
369 'Introduce a parameter in a function'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
370 self.refactoringIntroduceParameterAct.setWhatsThis(self.tr(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
371 """<b>Introduce Parameter</b>"""
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
372 """<p>Introduce a parameter in a function.</p>"""
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
373 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
374 self.refactoringIntroduceParameterAct.triggered.connect(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
375 self.__introduceParameter)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
376 self.actions.append(self.refactoringIntroduceParameterAct)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
377
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
378 #####################################################
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
379 ## Import refactorings actions
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
380 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
381
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
382 self.refactoringImportsOrganizeAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
383 self.tr('Organize Imports'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
384 self.tr('&Organize Imports'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
385 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
386 self, 'refactoring_organize_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
387 self.refactoringImportsOrganizeAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
388 'Sort imports according to PEP-8'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
389 self.refactoringImportsOrganizeAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
390 """<b>Organize Imports</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
391 """<p>Sort imports according to PEP-8.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
392 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
393 self.refactoringImportsOrganizeAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
394 self.__importsOrganize)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
395 self.actions.append(self.refactoringImportsOrganizeAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
396
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
397 self.refactoringImportsStarExpandAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
398 self.tr('Expand Star Imports'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
399 self.tr('E&xpand Star Imports'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
400 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
401 self, 'refactoring_expand_star_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
402 self.refactoringImportsStarExpandAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
403 'Expand imports like "from xxx import *"'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
404 self.refactoringImportsStarExpandAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
405 """<b>Expand Star Imports</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
406 """<p>Expand imports like "from xxx import *".</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
407 """<p>Select the import to act on or none to do all."""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
408 """ Unused imports are deleted.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
409 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
410 self.refactoringImportsStarExpandAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
411 self.__importsExpandStar)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
412 self.actions.append(self.refactoringImportsStarExpandAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
413
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
414 self.refactoringImportsRelativeToAbsoluteAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
415 self.tr('Relative to Absolute'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
416 self.tr('Relative to &Absolute'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
417 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
418 self, 'refactoring_relative_to_absolute_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
419 self.refactoringImportsRelativeToAbsoluteAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
420 'Transform relative imports to absolute ones'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
421 self.refactoringImportsRelativeToAbsoluteAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
422 """<b>Relative to Absolute</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
423 """<p>Transform relative imports to absolute ones.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
424 """<p>Select the import to act on or none to do all."""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
425 """ Unused imports are deleted.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
426 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
427 self.refactoringImportsRelativeToAbsoluteAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
428 self.__importsRelativeToAbsolute)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
429 self.actions.append(self.refactoringImportsRelativeToAbsoluteAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
430
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
431 self.refactoringImportsFromsToImportsAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
432 self.tr('Froms to Imports'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
433 self.tr('Froms to &Imports'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
434 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
435 self, 'refactoring_froms_to_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
436 self.refactoringImportsFromsToImportsAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
437 'Transform From imports to plain imports'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
438 self.refactoringImportsFromsToImportsAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
439 """<b>Froms to Imports</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
440 """<p>Transform From imports to plain imports.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
441 """<p>Select the import to act on or none to do all."""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
442 """ Unused imports are deleted.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
443 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
444 self.refactoringImportsFromsToImportsAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
445 self.__importsFromToImport)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
446 self.actions.append(self.refactoringImportsFromsToImportsAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
447
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
448 self.refactoringImportsHandleLongAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
449 self.tr('Handle Long Imports'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
450 self.tr('Handle &Long Imports'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
451 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
452 self, 'refactoring_organize_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
453 self.refactoringImportsHandleLongAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
454 'Transform long import statements to look better'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
455 self.refactoringImportsHandleLongAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
456 """<b>Handle Long Imports</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
457 """<p>Transform long import statements to look better.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
458 """<p>Select the import to act on or none to do all."""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
459 """ Unused imports are deleted.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
460 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
461 self.refactoringImportsHandleLongAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
462 self.__importsHandleLong)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
463 self.actions.append(self.refactoringImportsHandleLongAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
464
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
465 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
466 ## Various refactorings actions
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
467 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
468
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
469 self.refactoringRestructureAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
470 self.tr('Restructure'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
471 self.tr('Res&tructure'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
472 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
473 self, 'refactoring_restructure')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
474 self.refactoringRestructureAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
475 'Restructure code'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
476 self.refactoringRestructureAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
477 """<b>Restructure</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
478 """<p>Restructure code. See "Rope Help" for examples.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
479 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
480 self.refactoringRestructureAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
481 self.__restructure)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
482 self.actions.append(self.refactoringRestructureAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
483
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
484 self.refactoringChangeSignatureAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
485 self.tr('Change Method Signature'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
486 self.tr('&Change Method Signature'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
487 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
488 self, 'refactoring_change_method_signature')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
489 self.refactoringChangeSignatureAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
490 'Change the signature of the selected method or function'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
491 self.refactoringChangeSignatureAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
492 """<b>Change Method Signature</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
493 """<p>Change the signature of the selected method"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
494 """ or function.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
495 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
496 self.refactoringChangeSignatureAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
497 self.__changeSignature)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
498 self.actions.append(self.refactoringChangeSignatureAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
499
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
500 self.refactoringInlineArgumentDefaultAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
501 self.tr('Inline Argument Default'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
502 self.tr('Inline &Argument Default'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
503 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
504 self, 'refactoring_inline_argument_default')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
505 self.refactoringInlineArgumentDefaultAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
506 'Inline a parameters default value'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
507 self.refactoringInlineArgumentDefaultAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
508 """<b>Inline Argument Default</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
509 """<p>Inline a parameters default value.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
510 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
511 self.refactoringInlineArgumentDefaultAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
512 self.__inlineArgumentDefault)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
513 self.actions.append(self.refactoringInlineArgumentDefaultAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
514
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
515 self.refactoringTransformModuleAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
516 self.tr('Transform Module to Package'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
517 self.tr('Transform Module to Package'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
518 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
519 self, 'refactoring_transform_module_to_package')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
520 self.refactoringTransformModuleAct.setStatusTip(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
521 'Transform the current module to a package'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
522 self.refactoringTransformModuleAct.setWhatsThis(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
523 """<b>Transform Module to Package</b>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
524 """<p>Transform the current module to a package.</p>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
525 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
526 self.refactoringTransformModuleAct.triggered.connect(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
527 self.__transformModuleToPackage)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
528 self.actions.append(self.refactoringTransformModuleAct)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
529
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
530 self.refactoringEncapsulateAttributeAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
531 self.tr('Encapsulate Attribute'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
532 self.tr('Encap&sulate Attribute'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
533 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
534 self, 'refactoring_encapsulate_attribute')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
535 self.refactoringEncapsulateAttributeAct.setStatusTip(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
536 'Generate a getter/setter for an attribute'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
537 self.refactoringEncapsulateAttributeAct.setWhatsThis(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
538 """<b>Encapsulate Attribute</b>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
539 """<p>Generate a getter/setter for an attribute and changes"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
540 """ its occurrences to use them.</p>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
541 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
542 self.refactoringEncapsulateAttributeAct.triggered.connect(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
543 self.__encapsulateAttribute)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
544 self.actions.append(self.refactoringEncapsulateAttributeAct)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
545
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
546 self.refactoringLocalVariableToAttributeAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
547 self.tr('Local Variable to Attribute'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
548 self.tr('Local Varia&ble to Attribute'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
549 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
550 self, 'refactoring_local_variable_to_attribute')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
551 self.refactoringLocalVariableToAttributeAct.setStatusTip(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
552 'Change a local variable to an attribute'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
553 self.refactoringLocalVariableToAttributeAct.setWhatsThis(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
554 """<b>Local Variable to Attribute</b>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
555 """<p>Change a local variable to an attribute.</p>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
556 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
557 self.refactoringLocalVariableToAttributeAct.triggered.connect(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
558 self.__convertLocalToAttribute)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
559 self.actions.append(self.refactoringLocalVariableToAttributeAct)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
560
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
561 self.refactoringMethodToMethodObjectAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
562 self.tr('Method To Method Object'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
563 self.tr('Method To Method Ob&ject'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
564 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
565 self, 'refactoring_method_to_methodobject')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
566 self.refactoringMethodToMethodObjectAct.setStatusTip(self.tr(
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
567 'Transform a function or a method to a method object'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
568 self.refactoringMethodToMethodObjectAct.setWhatsThis(self.tr(
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
569 """<b>Method To Method Object</b>"""
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
570 """<p>Transform a function or a method to a method object.</p>"""
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
571 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
572 self.refactoringMethodToMethodObjectAct.triggered.connect(
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
573 self.__methodToMethodObject)
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
574 self.actions.append(self.refactoringMethodToMethodObjectAct)
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
575
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
576 #####################################################
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
577 ## History actions
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
578 #####################################################
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
579
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
580 self.refactoringProjectHistoryAct = EricAction(
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
581 self.tr('Show Project History'),
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
582 self.tr('Show Project History...'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
583 0, 0,
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
584 self, 'refactoring_show_project_history')
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
585 self.refactoringProjectHistoryAct.setStatusTip(self.tr(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
586 'Show the refactoring history of the project'))
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
587 self.refactoringProjectHistoryAct.setWhatsThis(self.tr(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
588 """<b>Show Project History</b>"""
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
589 """<p>This opens a dialog to show the refactoring history of"""
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
590 """ the project.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
591 ))
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
592 self.refactoringProjectHistoryAct.triggered.connect(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
593 self.__showProjectHistory)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
594 self.actions.append(self.refactoringProjectHistoryAct)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
595
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
596 self.refactoringFileHistoryAct = EricAction(
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
597 self.tr('Show Current File History'),
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
598 self.tr('Show Current File History...'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
599 0, 0,
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
600 self, 'refactoring_show_file_history')
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
601 self.refactoringFileHistoryAct.setStatusTip(self.tr(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
602 'Show the refactoring history of the current file'))
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
603 self.refactoringFileHistoryAct.setWhatsThis(self.tr(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
604 """<b>Show Current File History</b>"""
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
605 """<p>This opens a dialog to show the refactoring history of"""
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
606 """ the current file.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
607 ))
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
608 self.refactoringFileHistoryAct.triggered.connect(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
609 self.__showFileHistory)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
610 self.actions.append(self.refactoringFileHistoryAct)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
611
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
612 self.refactoringClearHistoryAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
613 self.tr('Clear History'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
614 self.tr('Clear History'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
615 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
616 self, 'refactoring_clear_history')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
617 self.refactoringClearHistoryAct.setStatusTip(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
618 'Clear the refactoring history'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
619 self.refactoringClearHistoryAct.setWhatsThis(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
620 """<b>Clear History</b>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
621 """<p>Clears the refactoring history.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
622 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
623 self.refactoringClearHistoryAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
624 self.__clearHistory)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
625 self.actions.append(self.refactoringClearHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
626
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
627 #####################################################
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
628 ## Query actions
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
629 #####################################################
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
630
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
631 self.queryReferencesAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
632 self.tr('Find occurrences'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
633 self.tr('Find &Occurrences'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
634 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
635 self, 'refactoring_find_occurrences')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
636 self.queryReferencesAct.setStatusTip(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
637 'Find occurrences of the highlighted object'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
638 self.queryReferencesAct.setWhatsThis(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
639 """<b>Find occurrences</b>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
640 """<p>Find occurrences of the highlighted class, method,"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
641 """ function or variable.</p>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
642 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
643 self.queryReferencesAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
644 self.__queryReferences)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
645 self.actions.append(self.queryReferencesAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
646
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
647 self.queryDefinitionAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
648 self.tr('Find definition'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
649 self.tr('Find &Definition'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
650 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
651 self, 'refactoring_find_definition')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
652 self.queryDefinitionAct.setStatusTip(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
653 'Find definition of the highlighted item'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
654 self.queryDefinitionAct.setWhatsThis(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
655 """<b>Find definition</b>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
656 """<p>Find the definition of the highlighted class, method,"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
657 """ function or variable.</p>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
658 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
659 self.queryDefinitionAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
660 self.__queryDefinition)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
661 self.actions.append(self.queryDefinitionAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
662
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
663 self.queryImplementationsAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
664 self.tr('Find implementations'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
665 self.tr('Find &Implementations'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
666 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
667 self, 'refactoring_find_implementations')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
668 self.queryImplementationsAct.setStatusTip(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
669 'Find places where the selected method is overridden'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
670 self.queryImplementationsAct.setWhatsThis(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
671 """<b>Find implementations</b>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
672 """<p>Find places where the selected method is overridden.</p>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
673 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
674 self.queryImplementationsAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
675 self.__queryImplementations)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
676 self.actions.append(self.queryImplementationsAct)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
677
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
678 #####################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
679 ## Various actions
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
680 #####################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
681
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
682 self.refactoringEditConfigAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
683 self.tr('Configure Rope'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
684 self.tr('&Configure Rope'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
685 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
686 self, 'refactoring_edit_config')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
687 self.refactoringEditConfigAct.setStatusTip(self.tr(
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
688 'Open the rope configuration file'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
689 self.refactoringEditConfigAct.setWhatsThis(self.tr(
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
690 """<b>Configure Rope</b>"""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
691 """<p>Opens the rope configuration file in an editor.</p>"""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
692 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
693 self.refactoringEditConfigAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
694 self.__editConfig)
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
695 self.refactoringEditConfigAct.setMenuRole(QAction.MenuRole.NoRole)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
696 self.actions.append(self.refactoringEditConfigAct)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
698 self.refactoringHelpAct = EricAction(
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
699 self.tr('Rope Help'),
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
700 self.tr('Rope &Help'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
701 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
702 self, 'refactoring_help')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
703 self.refactoringHelpAct.setStatusTip(self.tr(
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
704 'Show help about the rope refactorings'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
705 self.refactoringHelpAct.setWhatsThis(self.tr(
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
706 """<b>Rope help</b>"""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
707 """<p>Show some help text about the rope refactorings.</p>"""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
708 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
709 self.refactoringHelpAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
710 self.__showRopeHelp)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
711 self.actions.append(self.refactoringHelpAct)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
712
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
713 self.refactoringAllSoaAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
714 self.tr('Analyse all modules'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
715 self.tr('&Analyse all modules'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
716 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
717 self, 'refactoring_analyze_all')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
718 self.refactoringAllSoaAct.setStatusTip(self.tr(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
719 'Perform static object analysis on all modules'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
720 self.refactoringAllSoaAct.setWhatsThis(self.tr(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
721 """<b>Analyse all modules</b>"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
722 """<p>Perform static object analysis (SOA) on all modules. """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
723 """This might be time consuming. Analysis of all modules """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
724 """should only be neccessary, if the project was created """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
725 """with the rope plugin disabled or if files were added.</p>"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
726 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
727 self.refactoringAllSoaAct.triggered.connect(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
728 self.__performSOA)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
729 self.actions.append(self.refactoringAllSoaAct)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
730
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
731 self.updateConfigAct = EricAction(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
732 self.tr('Update Configuration'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
733 self.tr('&Update Configuration'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
734 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
735 self, 'refactoring_update_configuration')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
736 self.updateConfigAct.setStatusTip(self.tr(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
737 'Generates a new configuration file overwriting the current one.'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
738 self.updateConfigAct.setWhatsThis(self.tr(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
739 """<b>Update Configuration</b>"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
740 """<p>Generates a new configuration file overwriting"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
741 """ the current one.</p>"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
742 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
743 self.updateConfigAct.triggered.connect(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
744 self.__updateConfig)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
745 self.actions.append(self.updateConfigAct)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
746
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
747 for act in self.actions:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
748 act.setEnabled(False)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
749
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
750 def __initMenu(self):
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
751 """
191
2af42804bca2 Did some code refactoring and removed backward compatability code for eric < 6.1.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
752 Private slot to initialize the refactoring menu.
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
753
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
754 @return the menu generated
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
755 @rtype QMenu
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
756 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
757 menu = QMenu(self.tr('&Refactoring'), self.__ui)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
758 menu.setTearOffEnabled(True)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
759
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
760 act = menu.addAction('rope', self.__ropeInfo)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
761 font = act.font()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
762 font.setBold(True)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
763 act.setFont(font)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
764 menu.addSeparator()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
765
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
766 smenu = menu.addMenu(self.tr("&Query"))
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
767 smenu.addAction(self.queryReferencesAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
768 smenu.addAction(self.queryDefinitionAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
769 smenu.addAction(self.queryImplementationsAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
770
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
771 smenu = menu.addMenu(self.tr("&Refactoring"))
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
772 smenu.addAction(self.refactoringRenameAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
773 smenu.addAction(self.refactoringRenameLocalAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
774 smenu.addAction(self.refactoringChangeOccurrencesAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
775 smenu.addSeparator()
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
776 smenu.addAction(self.refactoringExtractMethodAct)
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
777 smenu.addAction(self.refactoringMoveMethodAct)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
778 smenu.addSeparator()
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
779 smenu.addAction(self.refactoringInlineAct)
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
780 smenu.addSeparator()
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
781 smenu.addAction(self.refactoringExtractLocalVariableAct)
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
782 smenu.addSeparator()
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
783 smenu.addAction(self.refactoringUseFunctionAct)
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
784 smenu.addSeparator()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
785 smenu.addAction(self.refactoringChangeSignatureAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
786 smenu.addAction(self.refactoringInlineArgumentDefaultAct)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
787 smenu.addSeparator()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
788 smenu.addAction(self.refactoringRestructureAct)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
789 smenu.addSeparator()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
790 smenu.addAction(self.refactoringIntroduceFactoryAct)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
791 smenu.addAction(self.refactoringIntroduceParameterAct)
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
792 smenu.addAction(self.refactoringMethodToMethodObjectAct)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
793 smenu.addSeparator()
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
794 smenu.addAction(self.refactoringEncapsulateAttributeAct)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
795 smenu.addAction(self.refactoringLocalVariableToAttributeAct)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
796 smenu.addSeparator()
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
797 smenu.addAction(self.refactoringRenameModuleAct)
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
798 smenu.addAction(self.refactoringMoveModuleAct)
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
799 smenu.addAction(self.refactoringTransformModuleAct)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
800 smenu.addSeparator()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
801
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
802 imenu = smenu.addMenu(self.tr("Im&ports"))
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
803 imenu.addAction(self.refactoringImportsOrganizeAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
804 imenu.addAction(self.refactoringImportsStarExpandAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
805 imenu.addAction(self.refactoringImportsRelativeToAbsoluteAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
806 imenu.addAction(self.refactoringImportsFromsToImportsAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
807 imenu.addAction(self.refactoringImportsHandleLongAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
808
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
809 smenu.addSeparator()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
810
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
811 hmenu = smenu.addMenu(self.tr("History"))
31
0389d4a924cc Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
812 hmenu.aboutToShow.connect(self.__showRefactoringHistoryMenu)
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
813 hmenu.addAction(self.refactoringProjectHistoryAct)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
814 hmenu.addAction(self.refactoringFileHistoryAct)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
815 hmenu.addSeparator()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
816 hmenu.addAction(self.refactoringClearHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
817
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
818 smenu = menu.addMenu(self.tr("&Utilities"))
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
819 smenu.addAction(self.refactoringAllSoaAct)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
820 smenu.addSeparator()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
821 smenu.addAction(self.updateConfigAct)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
822
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823 menu.addSeparator()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
824 menu.addAction(self.refactoringEditConfigAct)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
825 menu.addAction(self.refactoringHelpAct)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
826
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 return menu
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
828
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
830 ## slots below implement general functionality
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
831 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
832
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
833 def __ropeInfo(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
834 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
835 Private slot to show some info about rope.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
836 """
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
837 if self.__ropeConfig:
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
838 EricMessageBox.about(
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
839 self.__ui,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
840 self.tr("About rope"),
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
841 self.tr("{0}\nVersion {1}\n\n{2}".format(
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
842 self.__ropeConfig["RopeInfo"],
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
843 self.__ropeConfig["RopeVersion"],
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
844 self.__ropeConfig["RopeCopyright"])))
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
845
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
846 def __showRefactoringHistoryMenu(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
847 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
848 Private slot called before the refactoring history menu is shown.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
849 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
850 aw = self.__vm.activeWindow()
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
851 enable = aw is not None and bool(aw.getFileName())
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
852
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
853 self.refactoringFileHistoryAct.setEnabled(enable)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
854
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
855 def handleRopeError(self, result):
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
856 """
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
857 Public method to handle a rope error.
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
858
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
859 @param result dictionary containing the error information
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
860 @type dict
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
861 @return flag indicating, that the error is to be ignored
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
862 @rtype bool
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
863 """
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
864 if "Error" not in result:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
865 return True
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
866
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
867 title = result.get("Title", self.tr("Rope Error"))
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
868
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
869 if result["Error"] == 'ModuleSyntaxError':
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
870 res = EricMessageBox.warning(
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
871 self.__ui, title,
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
872 self.tr("Rope error: {0}").format(
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
873 result["ErrorString"]),
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
874 EricMessageBox.Ok | EricMessageBox.Open)
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
875 if res == EricMessageBox.Open:
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
876 self.__vm.openSourceFile(
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
877 os.path.join(self.__ericProject.getProjectPath(),
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
878 result["ErrorFile"]),
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
879 result["ErrorLine"])
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
880 elif result["Error"] == "InterruptedTaskError":
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
881 return True
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
882 else:
251
4dcc73076100 Removed the Python3 only rope variant and introduced an extended error dialog showing a traceback for errors within the rope library.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
883 from .ErrorDialog import ErrorDialog
4dcc73076100 Removed the Python3 only rope variant and introduced an extended error dialog showing a traceback for errors within the rope library.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
884 ErrorDialog(
4dcc73076100 Removed the Python3 only rope variant and introduced an extended error dialog showing a traceback for errors within the rope library.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
885 title,
4dcc73076100 Removed the Python3 only rope variant and introduced an extended error dialog showing a traceback for errors within the rope library.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
886 self.tr("Rope error: {0}").format(result["ErrorString"]),
4dcc73076100 Removed the Python3 only rope variant and introduced an extended error dialog showing a traceback for errors within the rope library.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
887 traceback=result["Traceback"],
4dcc73076100 Removed the Python3 only rope variant and introduced an extended error dialog showing a traceback for errors within the rope library.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 245
diff changeset
888 parent=self.__ui
341
c43844eb47b7 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 335
diff changeset
889 ).exec()
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
890
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
891 return False
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
892
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
893 def __getOffset(self, editor, line, index):
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
894 r"""
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
895 Private method to get the offset into the text treating CRLF as ONE
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
896 character.
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
897
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
898 Note: rope seems to convert all EOL styles to just \n.
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
899
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
900 @param editor reference to the editor
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
901 @type Editor
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
902 @param line line for the offset
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
903 @type int
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
904 @param index index into line for the offset
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
905 @type int
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
906 @return rope compliant offset into the file
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
907 @rtype int
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
908 """
116
50cb62506ab2 Fixed a bug in the refactoring module and added Portugese translations provided by Candido Fontes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 106
diff changeset
909 source = editor.text()
103
2d77b3afc98f Changed the way the offset into the text gets calculated because rope handles unicode characters as one character (i.e. string) and QScintilla as multiple (i.e. bytes).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 94
diff changeset
910 offset = len("".join(source.splitlines(True)[:line])) + index
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
911 if editor.eolMode() == QsciScintilla.EolMode.EolWindows:
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
912 offset -= line
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
913 return offset
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
914
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
915 ##################################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
916 ## slots below implement the various refactorings
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
917 ##################################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
918
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
919 def __processChanges(self, result):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
920 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
921 Private method to process the changes data sent by the refactoring
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
922 client.
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
923
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
924 @param result dictionary containing the changes data
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
925 @type dict
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
926 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
927 if self.handleRopeError(result):
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
928 changeGroup = result["ChangeGroup"]
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
929 with contextlib.suppress(KeyError):
320
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
930 self.__refactoringDialogs[changeGroup].processChangeData(
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
931 result)
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
932
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
933 def __refactoringDialogClosed(self, changeGroup):
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
934 """
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
935 Private slot handling the closing of a refactoring dialog.
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
936
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
937 @param changeGroup name of the refactoring change group the dialog
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
938 belonged to
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
939 @type str
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
940 """
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
941 with contextlib.suppress(KeyError):
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
942 del self.__refactoringDialogs[changeGroup]
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
943
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
944 #####################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
945 ## Rename refactorings
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
946 #####################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
947
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
948 def __rename(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
949 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
950 Private slot to handle the Rename action.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
951 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
952 self.__doRename(self.tr('Rename'))
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
953
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
954 def __renameLocal(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
955 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
956 Private slot to handle the Local Rename action.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
957 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
958 self.__doRename(self.tr('Local Rename'), isLocal=True)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
959
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
960 def __renameModule(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
961 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
962 Private slot to handle the Rename Current Module action.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
963 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
964 self.__doRename(self.tr('Rename Current Module'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
965 renameModule=True)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
966
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
967 def __doRename(self, title, isLocal=False, renameModule=False):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
968 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
969 Private method to perform the various renaming refactorings.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
970
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
971 @param title title of the refactoring
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
972 @type str
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
973 @param isLocal flag indicating to restrict refactoring to
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
974 the local file
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
975 @type bool
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
976 @param renameModule flag indicating a module rename refactoring
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
977 @type bool
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
978 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
979 aw = self.__vm.activeWindow()
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
980
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
981 if aw is None:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
982 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
983
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
984 if not renameModule and not aw.hasSelectedText():
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
985 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
986 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
987 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
988 self.tr("Highlight the declaration you want to rename"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
989 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
990 return
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
991
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
992 if isLocal:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
993 if not self.confirmBufferIsSaved(aw):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
994 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
995 else:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
996 if not self.confirmAllBuffersSaved():
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
997 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
998
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
999 filename = aw.getFileName()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1000 if renameModule:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1001 offset = None
325
9b08802a8e1a RefactoringServer: added a little convenience code for renaming packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 320
diff changeset
1002 if os.path.basename(filename) == "__init__.py":
9b08802a8e1a RefactoringServer: added a little convenience code for renaming packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 320
diff changeset
1003 filename = os.path.dirname(filename)
122
3696915ebc80 Rename dialog show actual name as preset value for editing.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 121
diff changeset
1004 selectedText, _ = os.path.splitext(os.path.basename(filename))
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1005 else:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1006 line, index, line1, index1 = aw.getSelection()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1007 if line != line1:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1008 # selection span more than one line
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1009 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1010 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1011 self.tr("The selection must not extend beyond"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1012 " one line."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1013 return
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1014 index = int(index + (index1 - index) / 2)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1015 # keep it inside the object
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1016 offset = self.__getOffset(aw, line, index)
122
3696915ebc80 Rename dialog show actual name as preset value for editing.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 121
diff changeset
1017 selectedText = aw.selectedText()
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1018
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1019 from .RenameDialog import RenameDialog
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
1020 dlg = RenameDialog(self, title, filename, offset, isLocal,
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
1021 selectedText=selectedText, parent=self.__ui)
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
1022 changeGroup = dlg.getChangeGroupName()
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
1023 self.__refactoringDialogs[changeGroup] = dlg
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
1024 dlg.finished.connect(
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
1025 lambda: self.__refactoringDialogClosed(changeGroup))
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
1026 dlg.show()
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1027
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1028 def __changeOccurrences(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1029 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1030 Private slot to perform the Change Occurrences refactoring.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1031 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1032 aw = self.__vm.activeWindow()
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1033
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1034 if aw is None:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1035 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1036
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1037 title = self.tr("Change Occurrences")
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1038 if not aw.hasSelectedText():
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1039 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1040 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1041 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1042 self.tr("Highlight an occurrence to be changed"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1043 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1044 return
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1045
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1046 if not self.confirmBufferIsSaved(aw):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1047 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1048
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1049 filename = aw.getFileName()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1050 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1051 offset = self.__getOffset(aw, line, index)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1052
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1053 from .ChangeOccurrencesDialog import ChangeOccurrencesDialog
174
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
1054 dlg = ChangeOccurrencesDialog(self, title, filename, offset,
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
1055 parent=self.__ui)
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
1056 changeGroup = dlg.getChangeGroupName()
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
1057 self.__refactoringDialogs[changeGroup] = dlg
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
1058 dlg.finished.connect(
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
1059 lambda: self.__refactoringDialogClosed(changeGroup))
04583cac110f Implemented the distributed "Change Occurrences" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 173
diff changeset
1060 dlg.show()
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1061
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1062 #####################################################
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1063 ## Extract refactorings
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1064 #####################################################
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1065
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1066 def __extractMethod(self):
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1067 """
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1068 Private slot to handle the Extract Method action.
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1069 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1070 self.__doExtract(self.tr("Extract Method"), "method")
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1071
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1072 def __extractLocalVariable(self):
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1073 """
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1074 Private slot to handle the Extract Local Variable action.
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1075 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1076 self.__doExtract(self.tr("Extract Local Variable"), "variable")
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1077
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1078 def __doExtract(self, title, kind):
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1079 """
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1080 Private method to perform the extract refactoring.
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1081
175
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1082 @param title title of the refactoring
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1083 @type str
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1084 @param kind kind of extraction to be done
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1085 @type str ("method" or "variable")
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1086 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1087 aw = self.__vm.activeWindow()
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1088
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1089 if aw is None:
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1090 return
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1091
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1092 if not aw.hasSelectedText():
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1093 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1094 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1095 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1096 self.tr("Highlight the region of code you want to extract"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1097 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1098 return
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1099
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1100 if not self.confirmBufferIsSaved(aw):
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1101 return
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1102
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1103 filename = aw.getFileName()
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1104 startline, startcolumn, endline, endcolumn = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1105 startOffset = self.__getOffset(aw, startline, startcolumn)
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1106 endOffset = self.__getOffset(aw, endline, endcolumn)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1107
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1108 from .ExtractDialog import ExtractDialog
175
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1109 dlg = ExtractDialog(self, title, filename, startOffset, endOffset,
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1110 kind, parent=self.__ui)
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1111 changeGroup = dlg.getChangeGroupName()
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1112 self.__refactoringDialogs[changeGroup] = dlg
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1113 dlg.finished.connect(
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1114 lambda: self.__refactoringDialogClosed(changeGroup))
72a1d9030d67 Implemented the distributed "Extract" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 174
diff changeset
1115 dlg.show()
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1116
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1117 #####################################################
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1118 ## Inline refactorings
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1119 #####################################################
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1120
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1121 def __inline(self):
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1122 """
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1123 Private slot to handle the Inline Local Variable action.
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1124 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1125 aw = self.__vm.activeWindow()
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1126
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1127 if aw is None:
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1128 return
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1129
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1130 title = self.tr("Inline")
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1131 if not aw.hasSelectedText():
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1132 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1133 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1134 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1135 self.tr("Highlight the local variable, method or parameter"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1136 " you want to inline and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1137 return
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1138
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1139 if not self.confirmAllBuffersSaved():
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1140 return
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1141
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1142 filename = aw.getFileName()
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1143 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1144 offset = self.__getOffset(aw, line, index)
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1145
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1146 from .InlineDialog import InlineDialog
176
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
1147 dlg = InlineDialog(self, title, filename, offset, parent=self.__ui)
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
1148 changeGroup = dlg.getChangeGroupName()
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
1149 self.__refactoringDialogs[changeGroup] = dlg
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
1150 dlg.finished.connect(
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
1151 lambda: self.__refactoringDialogClosed(changeGroup))
117d86025a5c Implemented the distributed "Inline" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
1152 dlg.show()
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1153
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1154 #####################################################
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1155 ## Move refactorings
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1156 #####################################################
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1157
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1158 def __move(self, moveKind):
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1159 """
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1160 Private slot to handle the Move Method action.
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1161
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1162 @param moveKind kind of move to be performed
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1163 @type str (one of 'move_method' or 'move_module')
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1164 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1165 aw = self.__vm.activeWindow()
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1166
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1167 if aw is None:
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1168 return
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1169
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1170 if moveKind == "move_method":
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1171 title = self.tr("Move Method")
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1172 if not aw.hasSelectedText():
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1173 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1174 EricMessageBox.warning(
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1175 self.__ui, title,
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1176 self.tr("Highlight the method to move"
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1177 " and try again."))
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1178 return
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1179 else:
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1180 title = self.tr("Move Current Module")
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1181
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1182 if not self.confirmAllBuffersSaved():
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1183 return
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1184
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1185 filename = aw.getFileName()
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1186 if moveKind == "move_method":
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1187 line, index, line1, index1 = aw.getSelection()
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1188 offset = self.__getOffset(aw, line, index)
26
b02d1f37b55e Added a dialog to move a global method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
1189 else:
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1190 offset = None
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1191
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1192 from .MoveDialog import MoveDialog
178
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1193 dlg = MoveDialog(self, title, filename, offset, parent=self.__ui)
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1194 changeGroup = dlg.getChangeGroupName()
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1195 self.__refactoringDialogs[changeGroup] = dlg
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1196 dlg.finished.connect(
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1197 lambda: self.__refactoringDialogClosed(changeGroup))
70b4fb448811 Implemented the distributed "Move ..." method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 176
diff changeset
1198 dlg.show()
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1199
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1200 #####################################################
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1201 ## Use function refactoring
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1202 #####################################################
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1203
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1204 def __useFunction(self):
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1205 """
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1206 Private slot to use a function wherever possible.
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1207 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1208 aw = self.__vm.activeWindow()
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1209
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1210 if aw is None:
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1211 return
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1212
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1213 title = self.tr("Use Function")
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1214 if not aw.hasSelectedText():
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1215 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1216 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1217 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1218 self.tr("Highlight a global function and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1219 return
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1220
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1221 if not self.confirmAllBuffersSaved():
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1222 return
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1223
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1224 filename = aw.getFileName()
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1225 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1226 offset = self.__getOffset(aw, line, index)
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1227
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1228 from .UseFunctionDialog import UseFunctionDialog
179
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
1229 dlg = UseFunctionDialog(self, title, filename, offset,
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
1230 parent=self.__ui)
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
1231 changeGroup = dlg.getChangeGroupName()
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
1232 self.__refactoringDialogs[changeGroup] = dlg
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
1233 dlg.finished.connect(
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
1234 lambda: self.__refactoringDialogClosed(changeGroup))
8ae4e95f5fa6 Implemented the distributed "Use Function" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
1235 dlg.show()
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1236
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1237 #####################################################
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1238 ## Introduce refactorings
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1239 #####################################################
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1240
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1241 def __introduceFactoryMethod(self):
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1242 """
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1243 Private slot to introduce a factory method or global function.
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1244 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1245 aw = self.__vm.activeWindow()
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1246
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1247 if aw is None:
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1248 return
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1249
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1250 title = self.tr("Introduce Factory Method")
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1251 if not aw.hasSelectedText():
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1252 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1253 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1254 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1255 self.tr("Highlight the class to introduce a factory"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1256 " method for and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1257 return
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1258
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1259 if not self.confirmAllBuffersSaved():
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1260 return
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1261
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1262 filename = aw.getFileName()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1263 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1264 offset = self.__getOffset(aw, line, index)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1265
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1266 from .IntroduceFactoryDialog import IntroduceFactoryDialog
180
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1267 dlg = IntroduceFactoryDialog(self, title, filename, offset,
181
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1268 parent=self.__ui)
180
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1269 changeGroup = dlg.getChangeGroupName()
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1270 self.__refactoringDialogs[changeGroup] = dlg
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1271 dlg.finished.connect(
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1272 lambda: self.__refactoringDialogClosed(changeGroup))
a33ef7ab8c54 Implemented the distributed "Introduce Factory Method" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1273 dlg.show()
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1274
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1275 def __introduceParameter(self):
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1276 """
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1277 Private slot to introduce a parameter in a function.
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1278 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1279 aw = self.__vm.activeWindow()
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1280
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1281 if aw is None:
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1282 return
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1283
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1284 title = self.tr("Introduce Parameter")
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1285 if not aw.hasSelectedText():
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1286 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1287 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1288 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1289 self.tr("Highlight the code for the new parameter"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1290 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1291 return
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1292
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1293 if not self.confirmAllBuffersSaved():
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1294 return
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1295
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1296 filename = aw.getFileName()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1297 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1298 offset = self.__getOffset(aw, line, index)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1299
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1300 from .IntroduceParameterDialog import IntroduceParameterDialog
181
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1301 dlg = IntroduceParameterDialog(self, title, filename, offset,
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1302 parent=self.__ui)
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1303 changeGroup = dlg.getChangeGroupName()
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1304 self.__refactoringDialogs[changeGroup] = dlg
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1305 dlg.finished.connect(
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1306 lambda: self.__refactoringDialogClosed(changeGroup))
3e3d6de2f0ca Implemented the distributed "Introduce Parameter" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1307 dlg.show()
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1308
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1309 #####################################################
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1310 ## Import refactorings
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1311 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1312
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1313 def __importsOrganize(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1314 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1315 Private slot to organize imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1316 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1317 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1318 self.tr("Organize Imports"),
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1319 "organize_imports")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1320
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1321 def __importsExpandStar(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1322 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1323 Private slot to expand star imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1324 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1325 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1326 self.tr("Expand Star Imports"),
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1327 "expand_star_imports")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1328
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1329 def __importsRelativeToAbsolute(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1330 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1331 Private slot to transform relative to absolute imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1332 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1333 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1334 self.tr("Relative to Absolute"),
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1335 "relatives_to_absolutes")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1336
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1337 def __importsFromToImport(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1338 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1339 Private slot to transform from imports to plain imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1340 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1341 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1342 self.tr("Froms to Imports"),
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1343 "froms_to_imports")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1344
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1345 def __importsHandleLong(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1346 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1347 Private slot to handle long imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1348 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1349 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1350 self.tr("Handle Long Imports"),
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1351 "handle_long_imports")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1352
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1353 def __doImports(self, title, methodName):
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1354 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1355 Private method to perform the various imports refactorings.
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1356
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1357 @param title title to be used for the import refactoring
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1358 @type str
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1359 @param methodName name of the method performing the import refactoring
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1360 @type str
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1361 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1362 aw = self.__vm.activeWindow()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1363
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1364 if aw is None:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1365 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1366
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1367 if not self.confirmBufferIsSaved(aw):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1368 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1369
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1370 filename = aw.getFileName()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1371 if aw.hasSelectedText():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1372 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1373 offset = self.__getOffset(aw, line, index)
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1374 else:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1375 offset = None
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1376
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1377 from .ConfirmationDialog import ConfirmationDialog
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1378 dlg = ConfirmationDialog(
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1379 self, title, "Imports", "CalculateImportsChanges", {
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1380 "MethodName": methodName,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1381 "FileName": filename,
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1382 "Offset": offset,
186
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1383 },
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1384 parent=self.__ui)
182
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1385 changeGroup = dlg.getChangeGroupName()
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1386 self.__refactoringDialogs[changeGroup] = dlg
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1387 dlg.finished.connect(
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1388 lambda: self.__refactoringDialogClosed(changeGroup))
f7f2834dc8d9 Implemented the distributed "Imports" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
1389 dlg.show()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1390
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1391 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1392 ## Various refactorings
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1393 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1394
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1395 def __restructure(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1396 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1397 Private slot to restructure code.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1398 """
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1399 from .RestructureDialog import RestructureDialog
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1400 title = self.tr("Restructure")
183
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1401 dlg = RestructureDialog(self, title, parent=self.__ui)
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1402 changeGroup = dlg.getChangeGroupName()
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1403 self.__refactoringDialogs[changeGroup] = dlg
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1404 dlg.finished.connect(
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1405 lambda: self.__refactoringDialogClosed(changeGroup))
bac69c80d5f4 Implemented the distributed "Restructure" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 182
diff changeset
1406 dlg.show()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1407
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1408 def __changeSignature(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1409 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1410 Private slot to change the signature of a method or function.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1411 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1412 aw = self.__vm.activeWindow()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1413
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1414 if aw is None:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1415 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1416
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1417 title = self.tr("Change Method Signature")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1418 if not aw.hasSelectedText():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1419 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1420 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1421 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1422 self.tr("Highlight the method or function to change"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1423 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1424 return
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1425
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1426 if not self.confirmAllBuffersSaved():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1427 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1428
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1429 filename = aw.getFileName()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1430 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1431 offset = self.__getOffset(aw, line, index)
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1432
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1433 from .ChangeSignatureDialog import ChangeSignatureDialog
184
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1434 dlg = ChangeSignatureDialog(self, title, filename, offset,
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1435 parent=self.__ui)
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1436 changeGroup = dlg.getChangeGroupName()
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1437 self.__refactoringDialogs[changeGroup] = dlg
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1438 dlg.finished.connect(
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1439 lambda: self.__refactoringDialogClosed(changeGroup))
4a806271f0b9 Implemented the distributed "Change Method Signature" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 183
diff changeset
1440 dlg.show()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1441
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1442 def __inlineArgumentDefault(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1443 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1444 Private slot to inline the default value of a parameter of a
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1445 method or function.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1446 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1447 aw = self.__vm.activeWindow()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1448
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1449 if aw is None:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1450 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1451
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1452 title = self.tr("Inline Argument Default")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1453 if not aw.hasSelectedText():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1454 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1455 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1456 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1457 self.tr("Highlight the method or function to inline"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1458 " a parameter's default and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1459 return
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1460
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1461 if not self.confirmAllBuffersSaved():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1462 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1463
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1464 filename = aw.getFileName()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1465 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1466 offset = self.__getOffset(aw, line, index)
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1467
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1468 from .InlineArgumentDefaultDialog import InlineArgumentDefaultDialog
185
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1469 dlg = InlineArgumentDefaultDialog(self, title, filename, offset,
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1470 parent=self.__ui)
185
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1471 changeGroup = dlg.getChangeGroupName()
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1472 self.__refactoringDialogs[changeGroup] = dlg
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1473 dlg.finished.connect(
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1474 lambda: self.__refactoringDialogClosed(changeGroup))
3336637a673b Implemented the distributed "Inline Argument Default" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
1475 dlg.show()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1476
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1477 def __transformModuleToPackage(self):
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1478 """
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1479 Private slot to transform a module to a package.
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1480 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1481 aw = self.__vm.activeWindow()
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1482
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1483 if aw is None:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1484 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1485
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1486 title = self.tr("Transform Module to Package")
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1487
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1488 if not self.confirmAllBuffersSaved():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1489 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1490
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1491 filename = aw.getFileName()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1492
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1493 from .ConfirmationDialog import ConfirmationDialog
186
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1494 dlg = ConfirmationDialog(
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1495 self, title, "ModuleToPackage", "CalculateModuleToPackageChanges",
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1496 {
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1497 "FileName": filename,
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1498 },
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1499 parent=self.__ui)
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1500 changeGroup = dlg.getChangeGroupName()
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1501 self.__refactoringDialogs[changeGroup] = dlg
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1502 dlg.finished.connect(
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1503 lambda: self.__refactoringDialogClosed(changeGroup))
d547caa795d7 Implemented the distributed "Transform Module to Package" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1504 dlg.show()
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1505
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1506 def __encapsulateAttribute(self):
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1507 """
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1508 Private slot to encapsulate an attribute.
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1509 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1510 aw = self.__vm.activeWindow()
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1511
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1512 if aw is None:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1513 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1514
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1515 title = self.tr("Encapsulate Attribute")
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1516 if not aw.hasSelectedText():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1517 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1518 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1519 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1520 self.tr("Highlight the attribute to encapsulate"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1521 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1522 return
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1523
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1524 if not self.confirmAllBuffersSaved():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1525 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1526
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1527 filename = aw.getFileName()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1528 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1529 offset = self.__getOffset(aw, line, index)
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1530
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1531 from .GetterSetterDialog import GetterSetterDialog
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1532 dlg = GetterSetterDialog(self, title, filename, offset,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1533 parent=self.__ui)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1534 changeGroup = dlg.getChangeGroupName()
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1535 self.__refactoringDialogs[changeGroup] = dlg
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1536 dlg.finished.connect(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1537 lambda: self.__refactoringDialogClosed(changeGroup))
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1538 dlg.show()
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1539
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1540 def __convertLocalToAttribute(self):
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1541 """
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1542 Private slot to convert a local variable to an attribute.
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1543 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1544 aw = self.__vm.activeWindow()
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1545
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1546 if aw is None:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1547 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1548
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1549 title = self.tr("Local Variable to Attribute")
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1550 if not aw.hasSelectedText():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1551 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1552 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1553 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1554 self.tr("Highlight the local variable to make an attribute"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1555 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1556 return
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1557
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1558 if not self.confirmAllBuffersSaved():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1559 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1560
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1561 filename = aw.getFileName()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1562 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1563 offset = self.__getOffset(aw, line, index)
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1564
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1565 from .ConfirmationDialog import ConfirmationDialog
187
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1566 dlg = ConfirmationDialog(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1567 self, title, "LocalToAttribute",
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1568 "CalculateLocalToAttributeChanges", {
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1569 "FileName": filename,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1570 "Offset": offset,
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1571 },
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1572 parent=self.__ui)
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1573 changeGroup = dlg.getChangeGroupName()
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1574 self.__refactoringDialogs[changeGroup] = dlg
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1575 dlg.finished.connect(
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1576 lambda: self.__refactoringDialogClosed(changeGroup))
c7600eee9047 Implemented the distributed "Encapsulate Attribute" and "Convert Local to Attribute" refactoring methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 186
diff changeset
1577 dlg.show()
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1578
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1579 def __methodToMethodObject(self):
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1580 """
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1581 Private slot to change the signature of a method or function.
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1582 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1583 aw = self.__vm.activeWindow()
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1584
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1585 if aw is None:
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1586 return
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1587
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1588 title = self.tr("Replace Method With Method Object")
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1589 if not aw.hasSelectedText():
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1590 # no selection available
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1591 EricMessageBox.warning(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1592 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1593 self.tr("Highlight the method or function to convert"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1594 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1595 return
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1596
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1597 if not self.confirmAllBuffersSaved():
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1598 return
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1599
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1600 filename = aw.getFileName()
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1601 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1602 offset = self.__getOffset(aw, line, index)
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1603
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1604 from .MethodToMethodObjectDialog import MethodToMethodObjectDialog
188
05fb0977ce1b Implemented the distributed "Convert Method to Method Object" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
1605 dlg = MethodToMethodObjectDialog(self, title, filename, offset,
05fb0977ce1b Implemented the distributed "Convert Method to Method Object" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
1606 parent=self.__ui)
05fb0977ce1b Implemented the distributed "Convert Method to Method Object" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
1607 changeGroup = dlg.getChangeGroupName()
05fb0977ce1b Implemented the distributed "Convert Method to Method Object" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
1608 self.__refactoringDialogs[changeGroup] = dlg
05fb0977ce1b Implemented the distributed "Convert Method to Method Object" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
1609 dlg.finished.connect(
05fb0977ce1b Implemented the distributed "Convert Method to Method Object" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
1610 lambda: self.__refactoringDialogClosed(changeGroup))
05fb0977ce1b Implemented the distributed "Convert Method to Method Object" refactoring method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
1611 dlg.show()
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1612
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1613 #####################################################
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1614 ## Refactoring History
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1615 #####################################################
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1616
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1617 def __showProjectHistory(self):
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1618 """
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1619 Private method to show the project refactoring history.
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1620 """
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1621 if self.__historyDialog is not None:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1622 self.__historyDialog.close()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1623
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1624 from .HistoryDialog import HistoryDialog
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1625 self.__historyDialog = HistoryDialog(self, parent=self.__ui)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1626 self.__historyDialog.finished.connect(self.__historyDialogClosed)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1627 self.__historyDialog.show()
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1628
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1629 def __showFileHistory(self):
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1630 """
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1631 Private method to show the refactoring history of the current file.
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1632 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1633 aw = self.__vm.activeWindow()
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1634
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1635 if aw is None:
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1636 return
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1637
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1638 if self.__historyDialog is not None:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1639 self.__historyDialog.close()
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1640
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1641 from .HistoryDialog import HistoryDialog
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1642 filename = aw.getFileName()
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1643 if filename:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1644 self.__historyDialog = HistoryDialog(
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1645 self, filename=filename, parent=self.__ui)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1646 self.__historyDialog.show()
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1647
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1648 def __clearHistory(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1649 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1650 Private slot to clear the redo and undo lists.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1651 """
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1652 res = EricMessageBox.yesNo(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1653 None,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1654 self.tr("Clear History"),
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1655 self.tr("Do you really want to clear the refactoring history?"))
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
1656 if res:
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1657 self.sendJson("History", {
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1658 "Subcommand": "Clear",
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1659 })
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1660
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1661 if self.__historyDialog is not None:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1662 self.__historyDialog.historyCleared()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1663
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1664 def __processHistoryResult(self, result):
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1665 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1666 Private method to process the history data sent by the refactoring
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1667 client.
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1668
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1669 @param result dictionary containing the history data
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1670 @type dict
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1671 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1672 if self.handleRopeError(result) and self.__historyDialog is not None:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1673 self.__historyDialog.processHistoryCommand(result)
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1674
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1675 def __historyDialogClosed(self):
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1676 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1677 Private slot handling the closing of the history dialog.
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1678 """
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1679 self.__historyDialog = None
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1680
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1681 #####################################################
129
23ee57a96ea3 Added capability to go to the definition of a class or function by clicking on it (while holding the Ctrl key or another configurable modifier sequence) (needs eric 6.1.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 122
diff changeset
1682 ## Find actions including mouse click handler
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1683 #####################################################
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1684
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1685 def __queryReferences(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1686 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1687 Private slot to handle the Find References action.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1688 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1689 aw = self.__vm.activeWindow()
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1690
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1691 if aw is None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1692 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1693
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1694 title = self.tr("Find Occurrences")
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1695
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1696 if not self.confirmAllBuffersSaved():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1697 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1698
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1699 filename = aw.getFileName()
129
23ee57a96ea3 Added capability to go to the definition of a class or function by clicking on it (while holding the Ctrl key or another configurable modifier sequence) (needs eric 6.1.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 122
diff changeset
1700 line, index = aw.getCursorPosition()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1701 offset = self.__getOffset(aw, line, index)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1702
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1703 self.sendJson("QueryReferences", {
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1704 "Title": title,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1705 "FileName": filename,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1706 "Offset": offset,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1707 })
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1708
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1709 def __queryReferencesResult(self, result):
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1710 """
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1711 Private method to handle the "Query References" result sent by
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1712 the client.
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1713
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1714 @param result dictionary containing the result data
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1715 @type dict
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1716 """
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1717 if self.handleRopeError(result):
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1718 title = result["Title"]
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1719 if result["EntriesCount"] > 0:
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1720 from .MatchesDialog import MatchesDialog
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1721 self.dlg = MatchesDialog(self.__ui, True)
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1722 self.dlg.show()
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1723 for occurrence in result["Entries"]:
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1724 self.dlg.addEntry(
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1725 # file name, lineno, unsure
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1726 occurrence[0], occurrence[1], occurrence[2])
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1727 else:
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1728 EricMessageBox.warning(
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1729 self.__ui, title,
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
1730 self.tr("No occurrences found."))
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1731
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1732 def __queryDefinition(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1733 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1734 Private slot to handle the Find Definition action.
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1735 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1736 aw = self.__vm.activeWindow()
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1737
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1738 if aw is None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1739 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1740
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1741 title = self.tr("Find Definition")
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1742
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1743 if not self.confirmAllBuffersSaved():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1744 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1745
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1746 filename = aw.getFileName()
129
23ee57a96ea3 Added capability to go to the definition of a class or function by clicking on it (while holding the Ctrl key or another configurable modifier sequence) (needs eric 6.1.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 122
diff changeset
1747 line, index = aw.getCursorPosition()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1748 offset = self.__getOffset(aw, line, index)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1749
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1750 self.sendJson("QueryDefinition", {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1751 "Title": title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1752 "FileName": filename,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1753 "Offset": offset,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1754 "Source": aw.text(),
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1755 })
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1756
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1757 def __queryDefinitionResult(self, result):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1758 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1759 Private method to handle the "Query Definition" result sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1760 the client.
129
23ee57a96ea3 Added capability to go to the definition of a class or function by clicking on it (while holding the Ctrl key or another configurable modifier sequence) (needs eric 6.1.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 122
diff changeset
1761
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1762 @param result dictionary containing the result data
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1763 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1764 """
294
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1765 if self.handleRopeError(result):
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1766 title = result["Title"]
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1767 if "Location" in result:
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1768 location = result["Location"]
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1769
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1770 from .MatchesDialog import MatchesDialog
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1771 self.dlg = MatchesDialog(self.__ui, False)
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1772 self.dlg.show()
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1773 self.dlg.addEntry(location[0], location[1])
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1774 # file name, lineno
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1775 else:
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1776 EricMessageBox.warning(
294
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1777 self.__ui, title,
78e4a6823a98 Code Assist: continued moving the Mouse Click handler to Code Assist.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
1778 self.tr("No matching definition found."))
129
23ee57a96ea3 Added capability to go to the definition of a class or function by clicking on it (while holding the Ctrl key or another configurable modifier sequence) (needs eric 6.1.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 122
diff changeset
1779
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1780 def __queryImplementations(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1781 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1782 Private slot to handle the Find Implementations action.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1783 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1784 aw = self.__vm.activeWindow()
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1785
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1786 if aw is None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1787 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1788
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1789 title = self.tr("Find Implementations")
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1790
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1791 if not self.confirmAllBuffersSaved():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1792 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1793
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1794 filename = aw.getFileName()
129
23ee57a96ea3 Added capability to go to the definition of a class or function by clicking on it (while holding the Ctrl key or another configurable modifier sequence) (needs eric 6.1.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 122
diff changeset
1795 line, index = aw.getCursorPosition()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1796 offset = self.__getOffset(aw, line, index)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1797
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1798 self.sendJson("QueryImplementations", {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1799 "Title": title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1800 "FileName": filename,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1801 "Offset": offset,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1802 })
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1803
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1804 def __queryImplementationsResult(self, result):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1805 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1806 Private method to handle the "Query Implementations" result sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1807 the client.
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1808
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1809 @param result dictionary containing the result data
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1810 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1811 """
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1812 if self.handleRopeError(result):
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1813 title = result["Title"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1814 if result["EntriesCount"] > 0:
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1815 from .MatchesDialog import MatchesDialog
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1816 self.dlg = MatchesDialog(self.__ui, True)
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1817 self.dlg.show()
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1818 for occurrence in result["Entries"]:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1819 self.dlg.addEntry(
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1820 # file name, lineno, unsure
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1821 occurrence[0], occurrence[1], occurrence[2])
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1822 else:
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1823 EricMessageBox.warning(
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1824 self.__ui, title, self.tr("No implementations found."))
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1825
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1826 #####################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1827 ## Various actions
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1828 #####################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1829
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1830 def __editConfig(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1831 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1832 Private slot to open the rope configuration file in an editor.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1833 """
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1834 ropedir = self.__ropeConfig["RopeFolderName"]
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1835 configfile = ""
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1836 if ropedir and os.path.exists(ropedir):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1837 configfile = os.path.join(ropedir, "config.py")
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1838 if os.path.exists(configfile):
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1839 from QScintilla.MiniEditor import MiniEditor
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1840 self.__editor = MiniEditor(configfile)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1841 self.__editor.show()
31
0389d4a924cc Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
1842 self.__editor.editorSaved.connect(self.__configChanged)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1843 else:
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1844 EricMessageBox.critical(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1845 self.__ui,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1846 self.tr("Configure Rope"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1847 self.tr("""The Rope configuration file '{0}' does"""
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1848 """ not exist.""").format(configfile))
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1849 else:
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1850 EricMessageBox.critical(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1851 self.__ui,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1852 self.tr("Configure Rope"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1853 self.tr("""The Rope admin directory does not exist."""))
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1854
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1855 def __updateConfig(self):
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1856 """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1857 Private slot to update the configuration file.
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1858 """
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1859 res = EricMessageBox.yesNo(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1860 self.__ui,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1861 self.tr("Update Configuration"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1862 self.tr("""Shall rope's current configuration be replaced """
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1863 """by a new default configuration?"""))
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
1864 if res:
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1865 src = self.__defaultConfig()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1866 cname = self.__ropeConfigFile()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1867 if src != "" and cname is not None:
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1868 try:
341
c43844eb47b7 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 335
diff changeset
1869 with open(cname, "w") as f:
c43844eb47b7 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 335
diff changeset
1870 f.write(src)
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1871 self.__configChanged()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1872 self.__editConfig()
345
622076fd58b6 Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 341
diff changeset
1873 except OSError as err:
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1874 EricMessageBox.critical(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1875 None,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1876 self.tr("Update Configuration"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1877 self.tr("""<p>The configuration could not be"""
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1878 """ updated.</p><p>Reason: {0}</p>""")
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1879 .format(str(err)))
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1880
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1881 def __showRopeHelp(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1882 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1883 Private slot to show help about the refactorings offered by Rope.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1884 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1885 if self.__helpDialog is None:
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1886 from .HelpDialog import HelpDialog
320
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
1887 self.__helpDialog = HelpDialog(
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
1888 self.tr("Help about rope refactorings"),
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
1889 self.__ropeConfig["RopeHelpFile"]
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
1890 )
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1891 self.__helpDialog.show()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1892
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1893 def __performSOA(self):
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1894 """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1895 Private slot to perform SOA on all modules.
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1896 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1897 title = self.tr("Analyse all modules")
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1898 res = EricMessageBox.yesNo(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1899 self.__ui,
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1900 title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1901 self.tr("""This action might take some time. """
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1902 """Do you really want to perform SOA?"""))
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
1903 if res:
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1904
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1905 self.sendJson("PerformSoa", {
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1906 "Title": title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1907 })
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1908
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1909 def __soaFinished(self, result):
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1910 """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1911 Private method to handle the "Soa Finished" result sent by
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1912 the client.
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1913
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1914 @param result dictionary containing the result data
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1915 @type dict
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1916 """
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
1917 if self.handleRopeError(result):
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1918 title = result["Title"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1919
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
1920 EricMessageBox.information(
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1921 self.__ui,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1922 title,
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1923 self.tr("""Static object analysis (SOA) done. """
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1924 """SOA database updated."""))
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
1925
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1926 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1927 ## methods below are private utility methods
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1928 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1929
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1930 def __processProgress(self, params):
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1931 """
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1932 Private method to handle Progress commands.
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1933
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1934 @param params dictionary containing the progress data
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1935 @type dict
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1936 """
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1937 subcommand = params["Subcommand"]
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1938 if subcommand == "Init":
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1939 if self.__progressDialog is not None:
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1940 self.__progressDialog.reset()
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1941
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1942 progressDialog = RopeProgressDialog(
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
1943 self, params["Title"], params["Interruptable"])
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1944 progressDialog.show()
173
2cdb7c48b719 Finished implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 172
diff changeset
1945 progressDialog.raise_()
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1946 self.__progressDialog = progressDialog
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1947 QApplication.processEvents()
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1948
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
1949 elif subcommand == "Progress" and self.__progressDialog is not None:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
1950 self.__progressDialog.updateProgress(params)
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
1951 self.__progressDialog.raise_()
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1952
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
1953 elif subcommand == "Reset" and self.__progressDialog is not None:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
1954 self.__progressDialog.reset()
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1955
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1956 def __setConfig(self, params):
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1957 """
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1958 Private method to set the rope client configuration data.
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1959
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1960 @param params dictionary containing the configuration data
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1961 @type dict
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1962 """
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1963 self.__ropeConfig = params
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1964 # keys: RopeFolderName, DefaultConfig, RopeHelpFile,
267
009b18770d08 RefactoringServer: fixed an issue that causes an exception when some file changes get reported.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 261
diff changeset
1965 # RopeInfo, RopeVersion, RopeCopyright, PythonVersion
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
1966
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1967 def __ropeConfigFile(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1968 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1969 Private method to get the name of the rope configuration file.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1970
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1971 @return name of the rope configuration file
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1972 @rtype str
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1973 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1974 configfile = None
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1975 if self.__ropeConfig:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1976 ropedir = self.__ropeConfig["RopeFolderName"]
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1977 if ropedir:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1978 configfile = os.path.join(ropedir, "config.py")
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1979 if not os.path.exists(configfile):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1980 configfile = None
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1981 return configfile
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1982
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1983 def __configChanged(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1984 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1985 Private slot called, when the rope config file has changed.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1986 """
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1987 self.sendJson("ConfigChanged", {})
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1988
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1989 def __defaultConfig(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1990 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1991 Private slot to return the contents of rope's default configuration.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1992
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1993 @return string containing the source of rope's default
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1994 configuration
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1995 @rtype str
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1996 """
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1997 if self.__ropeConfig and "DefaultConfig" in self.__ropeConfig:
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
1998 return self.__ropeConfig["DefaultConfig"]
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1999 else:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2000 return ""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2001
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2002 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2003 ## methods below are public utility methods
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2004 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2005
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2006 def getActions(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2007 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2008 Public method to get a list of all actions.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2009
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
2010 @return list of all actions
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2011 @rtype list of EricAction
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2012 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2013 return self.actions[:]
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2014
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2015 def projectOpened(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2016 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2017 Public slot to handle the projectOpened signal.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2018 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2019 if self.__projectopen:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2020 self.projectClosed()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2021
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2022 self.__projectopen = True
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2023 self.__projectpath = self.__ericProject.getProjectPath()
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2024 self.__projectLanguage = self.__ericProject.getProjectLanguage()
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2025
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2026 ok = False
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2027
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2028 if self.__projectLanguage in ("Python3", "MicroPython", "Cython"):
285
247d62c682dc CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 280
diff changeset
2029 clientEnv = os.environ.copy()
287
09afe26b734c Changes to start the backend clients with a clean PATH setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 285
diff changeset
2030 if "PATH" in clientEnv:
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2031 clientEnv["PATH"] = self.__ui.getOriginalPathString()
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2032
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2033 venvManager = ericApp().getObject("VirtualEnvManager")
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2034
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2035 # get virtual environment from project first
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2036 venvName = self.__ericProject.getDebugProperty("VIRTUALENV")
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2037 if venvName:
287
09afe26b734c Changes to start the backend clients with a clean PATH setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 285
diff changeset
2038 try:
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2039 isRemote = venvManager.isRemoteEnvironment(venvName)
287
09afe26b734c Changes to start the backend clients with a clean PATH setting.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 285
diff changeset
2040 except AttributeError:
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2041 isRemote = False
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2042 else:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2043 isRemote = False
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2044 if (not venvName) or isRemote:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2045 # get it from debugger settings next
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2046 if self.__projectLanguage in (
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2047 "Python3", "MicroPython", "Cython"
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2048 ):
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2049 venvName = Preferences.getDebugger("Python3VirtualEnv")
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2050 if not venvName:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2051 venvName, _ = venvManager.getDefaultEnvironment()
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2052 else:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2053 venvName = ""
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2054 if venvName:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2055 interpreter = venvManager.getVirtualenvInterpreter(
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2056 venvName)
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2057 execPath = venvManager.getVirtualenvExecPath(venvName)
280
45f0a0511acd Added code to use default virtual environment as of eric6 18.10.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 275
diff changeset
2058
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2059 # build a suitable environment
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2060 if execPath:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2061 if "PATH" in clientEnv:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2062 clientEnv["PATH"] = os.pathsep.join(
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2063 [execPath, clientEnv["PATH"]])
269
02bf946efbdc CodeAssistServer, RefactoringServer: changed to support the use of Virtual Environments as of eric 18.07.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 267
diff changeset
2064 else:
354
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2065 clientEnv["PATH"] = execPath
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2066 else:
a967ff16629a - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
2067 interpreter = ""
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2068 if interpreter:
309
d201f9ccf33f RefactoringServer: improved handling of projects which are accessed remotely.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 302
diff changeset
2069 if isRemote:
d201f9ccf33f RefactoringServer: improved handling of projects which are accessed remotely.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 302
diff changeset
2070 self.__ui.appendToStderr(self.tr(
d201f9ccf33f RefactoringServer: improved handling of projects which are accessed remotely.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 302
diff changeset
2071 "The project is configured for remote access."
d201f9ccf33f RefactoringServer: improved handling of projects which are accessed remotely.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 302
diff changeset
2072 " Using local interpreter instead."
d201f9ccf33f RefactoringServer: improved handling of projects which are accessed remotely.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 302
diff changeset
2073 ))
285
247d62c682dc CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 280
diff changeset
2074 ok = self.__startRefactoringClient(interpreter, clientEnv)
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2075 if not ok:
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2076 self.__ui.appendToStderr(self.tr(
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2077 "Project language '{0}' is not supported because"
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2078 " the configured interpreter could not be started."
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2079 " Refactoring is disabled."
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2080 ).format(self.__projectLanguage))
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2081 else:
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2082 for act in self.actions:
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2083 act.setEnabled(True)
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2084 else:
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2085 self.__ui.appendToStderr(self.tr(
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2086 "Project language '{0}' is not supported because no"
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2087 " suitable interpreter is configured. Refactoring is"
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2088 " disabled."
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2089 ).format(self.__projectLanguage))
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2090 else:
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2091 self.__ui.appendToStderr(self.tr(
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2092 "Refactoring for project language '{0}' is not supported."
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2093 ).format(self.__projectLanguage))
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2094
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2095 self.__mainMenu.menuAction().setEnabled(ok)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2096
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2097 def projectClosed(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2098 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2099 Public slot to handle the projectClosed signal.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2100 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2101 for act in self.actions:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2102 act.setEnabled(False)
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2103 self.__mainMenu.menuAction().setEnabled(False)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2104
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2105 if self.__helpDialog is not None:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2106 self.__helpDialog.close()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2107 self.__helpDialog = None
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2108 if self.__historyDialog is not None:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2109 self.__historyDialog.close()
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2110 self.__historyDialog = None
172
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
2111 for dlg in self.__refactoringDialogs.values():
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
2112 dlg.close()
c8890f852917 Continued implementing the distributed rename refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
2113 self.__refactoringDialogs = {}
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2114
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2115 self.sendJson("CloseProject", {}, flush=True)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2116
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2117 self.__projectopen = False
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2118 self.__projectpath = ''
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2119 self.__projectLanguage = ""
166
6fc202183b3b Implemented the distributed 'query' methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 165
diff changeset
2120 self.__ropeConfig = {}
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2121
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2122 self.stopClient()
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2123
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2124 def confirmBufferIsSaved(self, editor):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2125 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2126 Public method to check, if an editor has unsaved changes.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2127
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2128 @param editor reference to the editor to be checked
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2129 @type Editor
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
2130 @return flag indicating, that the editor doesn't contain
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
2131 unsaved edits
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
2132 @rtype bool
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2133 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2134 res = editor.checkDirty()
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
2135 self.sendJson("Validate", {})
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2136 return res
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2137
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2138 def confirmAllBuffersSaved(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2139 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2140 Public method to check, if any editor has unsaved changes.
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2141
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
2142 @return flag indicating, that no editor contains unsaved edits
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
2143 @rtype bool
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2144 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2145 res = self.__vm.checkAllDirty()
165
ea41742015af Implemented the "Query References" function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
2146 self.sendJson("Validate", {})
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2147 return res
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2148
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2149 def refreshEditors(self, changedFiles):
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2150 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2151 Public method to refresh modified editors.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2152
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2153 @param changedFiles list of changed files
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2154 @type list of str
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2155 """
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2156 openFiles = [Utilities.normcasepath(f)
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2157 for f in self.__vm.getOpenFilenames()]
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2158
168
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2159 for fileName in changedFiles:
53d76b4fc1ac Implemented the distributed History dialog and moved the Undo/Redo functions to this dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
2160 normfile = Utilities.normcasepath(fileName)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2161 if normfile in openFiles:
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2162 editor = self.__vm.getEditor(normfile)[1]
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2163 editor.refresh()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2164
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2165 aw = self.__vm.activeWindow()
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2166 if aw is not None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2167 filename = aw.getFileName()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2168 if filename is not None:
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2169 self.__vm.openSourceFile(filename,
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2170 aw.getCursorPosition()[0] + 1)
106
b2b2107b8047 Little improvement to update the SOA database for refactoring upon saving a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
2171
b2b2107b8047 Little improvement to update the SOA database for refactoring upon saving a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
2172 def reportChanged(self, filename, oldSource):
b2b2107b8047 Little improvement to update the SOA database for refactoring upon saving a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
2173 """
b2b2107b8047 Little improvement to update the SOA database for refactoring upon saving a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
2174 Public slot to report some changed sources.
b2b2107b8047 Little improvement to update the SOA database for refactoring upon saving a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
2175
200
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 197
diff changeset
2176 @param filename file name of the changed source
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 197
diff changeset
2177 @type str
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 197
diff changeset
2178 @param oldSource source code before the change
1584892147ef Implemented the distributed code assist "report changed" method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 197
diff changeset
2179 @type str
106
b2b2107b8047 Little improvement to update the SOA database for refactoring upon saving a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 103
diff changeset
2180 """
320
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
2181 if (
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2182 self.__ericProject.isOpen() and
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2183 self.__ericProject.isProjectFile(filename)
320
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
2184 ):
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2185 editor = self.__vm.getOpenEditor(filename)
320
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
2186 if (
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
2187 self.__ropeConfig and
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
2188 editor is not None and
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
2189 editor.getLanguage() == self.__ropeConfig["PythonVersion"]
91b171fdd85f Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 315
diff changeset
2190 ):
212
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2191 self.sendJson("ReportChanged", {
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2192 "FileName": filename,
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2193 "OldSource": oldSource,
f05681349336 Changed code assist to use the new async interface of the Editor class, if it available and performed some code refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
2194 })
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2195
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2196 #######################################################################
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2197 ## Methods below handle the network connection
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2198 #######################################################################
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2199
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2200 def handleCall(self, method, params):
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2201 """
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2202 Public method to handle a method call from the client.
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2203
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2204 @param method requested method name
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2205 @type str
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2206 @param params dictionary with method specific parameters
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2207 @type dict
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2208 """
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2209 self.__methodMapping[method](params)
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2210
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2211 def __processClientException(self, params):
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2212 """
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2213 Private method to handle exceptions of the refactoring client.
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2214
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2215 @param params dictionary containing the exception data
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2216 @type dict
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2217 """
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2218 if params["ExceptionType"] == "ProtocolError":
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2219 EricMessageBox.critical(
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2220 None,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2221 self.tr("Refactoring Protocol Error"),
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2222 self.tr("""<p>The data received from the refactoring"""
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2223 """ server could not be decoded. Please report"""
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2224 """ this issue with the received data to the"""
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2225 """ eric bugs email address.</p>"""
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2226 """<p>Error: {0}</p>"""
208
df77c3a4976d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 203
diff changeset
2227 """<p>Data:<br/>{1}</p>""").format(
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2228 params["ExceptionValue"],
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2229 Utilities.html_encode(params["ProtocolData"])),
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2230 EricMessageBox.StandardButtons(
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2231 EricMessageBox.Ok))
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2232 else:
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2233 EricMessageBox.critical(
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2234 None,
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2235 self.tr("Refactoring Client Error"),
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2236 self.tr("<p>An exception happened in the refactoring"
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2237 " client. Please report it to the eric bugs"
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2238 " email address.</p>"
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2239 "<p>Exception: {0}</p>"
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2240 "<p>Value: {1}</p>"
208
df77c3a4976d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 203
diff changeset
2241 "<p>Traceback: {2}</p>").format(
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2242 Utilities.html_encode(params["ExceptionType"]),
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2243 params["ExceptionValue"],
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2244 params["Traceback"].replace("\r\n", "<br/>")
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2245 .replace("\n", "<br/>").replace("\r", "<br/>"),
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 166
diff changeset
2246 ),
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2247 EricMessageBox.StandardButtons(
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2248 EricMessageBox.Ok))
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2249
285
247d62c682dc CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 280
diff changeset
2250 def __startRefactoringClient(self, interpreter, clientEnv):
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2251 """
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2252 Private method to start the refactoring client.
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2253
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2254 @param interpreter interpreter to be used for the refactoring client
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2255 @type str
285
247d62c682dc CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 280
diff changeset
2256 @param clientEnv dictionary with environment variables to run the
247d62c682dc CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 280
diff changeset
2257 interpreter with
247d62c682dc CodeAssistServer, RefactoringServer, JsonServer: adapted the code to the virtual environment extensions as of eric6 18.12.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 280
diff changeset
2258 @type dict
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2259 @return flag indicating a successful client start
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2260 @rtype bool
160
989cd767992b Started implementing the client/server variant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 151
diff changeset
2261 """
270
efc48da49a75 Fixed some bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 269
diff changeset
2262 if interpreter:
efc48da49a75 Fixed some bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 269
diff changeset
2263 client = os.path.join(os.path.dirname(__file__),
efc48da49a75 Fixed some bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 269
diff changeset
2264 "RefactoringClient.py")
360
2b35968f3d02 Version 8.0.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 354
diff changeset
2265 ok, exitCode = self.startClient(
2b35968f3d02 Version 8.0.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 354
diff changeset
2266 interpreter, client,
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
2267 [self.__projectpath, Globals.getPythonLibraryDirectory()],
360
2b35968f3d02 Version 8.0.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 354
diff changeset
2268 environment=clientEnv)
2b35968f3d02 Version 8.0.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 354
diff changeset
2269 if not ok and exitCode == 42:
2b35968f3d02 Version 8.0.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 354
diff changeset
2270 self.__ui.appendToStderr("RefactoringServer: " + self.tr(
2b35968f3d02 Version 8.0.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 354
diff changeset
2271 "The rope refactoring library is not installed.\n"
2b35968f3d02 Version 8.0.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 354
diff changeset
2272 ))
270
efc48da49a75 Fixed some bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 269
diff changeset
2273 else:
efc48da49a75 Fixed some bugs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 269
diff changeset
2274 ok = False
163
6a9e7b37a18b Refactored some JSON handling code into server and client base classes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 162
diff changeset
2275 return ok

eric ide

mercurial