RefactoringRope/CodeAssistServer.py

branch
eric7
changeset 394
b34f5dd3db27
parent 392
b9b0a462123d
child 396
933b8fcd854f
--- a/RefactoringRope/CodeAssistServer.py	Mon Oct 17 08:37:28 2022 +0200
+++ b/RefactoringRope/CodeAssistServer.py	Mon Oct 17 16:45:23 2022 +0200
@@ -9,6 +9,7 @@
 
 import contextlib
 import os
+import shutil
 import sys
 import uuid
 
@@ -188,8 +189,7 @@
             ropedir = self.__clientConfigs[idString]
             if ropedir:
                 configfile = os.path.join(ropedir, "config.py")
-                if not os.path.exists(configfile):
-                    configfile = None
+
         return configfile
 
     def __configChanged(self, idString):
@@ -218,12 +218,52 @@
                 editor.editorSaved.connect(lambda: self.__configChanged(idString))
                 self.__editors[idString] = editor
                 return
+            else:
+                EricMessageBox.critical(
+                    self.__ui,
+                    self.tr("Configure rope"),
+                    self.tr(
+                        """The rope configuration file '{0}' does not exist."""
+                    ).format(configfile),
+                )
         else:
             EricMessageBox.critical(
                 self.__ui,
-                self.tr("Configure Rope"),
+                self.tr("Configure rope"),
                 self.tr(
-                    """The Rope configuration file '{0}' does""" """ not exist."""
+                    "The path of the rope configuration file could not be determined."
+                ).format(configfile),
+            )
+
+    def createConfig(self, idString):
+        """
+        Public slot to create a new default rope configuration file.
+
+        @param idString id for which to create the configuration file
+        @type str
+        """
+        configfile = self.__ropeConfigFile(idString)
+        if configfile:
+            defaultConfigFile = os.path.join(
+                os.path.dirname(__file__), "default_config.py"
+            )
+            try:
+                shutil.copyfile(defaultConfigFile, configfile)
+            except OSError as err:
+                EricMessageBox.critical(
+                    self.__ui,
+                    self.tr("Configure Rope"),
+                    self.tr(
+                        "<p>A new Rope default configuration could not be written to"
+                        " the file '{0}'.</p><p>Reason: {1}</p>"
+                    ).format(configfile, str(err)),
+                )
+        else:
+            EricMessageBox.critical(
+                self.__ui,
+                self.tr("Configure rope"),
+                self.tr(
+                    "The path of the rope configuration file could not be determined."
                 ).format(configfile),
             )
 

eric ide

mercurial