From b0884bb1fdf98ba5764602cf577e4f2ce8c6e73e Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Tue, 8 Apr 2025 00:44:30 +0200 Subject: [PATCH 1/4] Improve error reporting --- src/serena/agent.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/serena/agent.py b/src/serena/agent.py index 6c02afba..769429f5 100644 --- a/src/serena/agent.py +++ b/src/serena/agent.py @@ -56,7 +56,8 @@ class ProjectConfig(ToStringMixin): if "ignore_all_files_in_gitignore" not in config_dict: raise SerenaConfigError( - "`ignore_all_files_in_gitignore` key not found in project configuration. Please update your `project.yml` file." + f"`ignore_all_files_in_gitignore` key not found in configuration of project '{project_name}'. " + "Please update your `.yml` configuration file for this project. " "It is recommended to set this to `True`." ) self.ignore_all_files_in_gitignore = config_dict["ignore_all_files_in_gitignore"] @@ -64,7 +65,7 @@ class ProjectConfig(ToStringMixin): # Raise errors for deprecated keys if "ignored_dirs" in config_dict: raise SerenaConfigError( - "`ignored_dirs` key is deprecated. Please use `ignored_paths` instead." + f"Use of `ignored_dirs` key in configuration of project '{project_name}' deprecated. Please use `ignored_paths` instead. " "Note that you can also set `ignore_all_files_in_gitignore` to `True`, which will be enough for most cases." ) @@ -74,15 +75,15 @@ class ProjectConfig(ToStringMixin): try: with open(yml_path, encoding="utf-8") as f: config_dict = yaml.safe_load(f) + if yml_path.parent.name == cls.SERENA_MANAGED_DIR: + project_root = yml_path.parent.parent + project_name = project_root.name + else: + project_root = None + project_name = yml_path.stem + return cls(config_dict, project_name=project_name, project_root=project_root) except Exception as e: raise ValueError(f"Error loading project configuration from {yml_path}: {e}") from e - if yml_path.parent.name == cls.SERENA_MANAGED_DIR: - project_root = yml_path.parent.parent - project_name = project_root.name - else: - project_root = None - project_name = yml_path.stem - return cls(config_dict, project_name=project_name, project_root=project_root) def get_serena_managed_dir(self) -> str: return os.path.join(self.project_root, self.SERENA_MANAGED_DIR) From 50fb559c7c1e9e811cf1030829cad9d78bee3742 Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Tue, 8 Apr 2025 00:52:00 +0200 Subject: [PATCH 2/4] Extend the set of file extensions used for Python, JS, TS --- CHANGELOG.md | 3 +++ src/multilspy/multilspy_config.py | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f4be5ce..d348cf67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ Changes prior to the next official version change will appear here. +* Language Servers: + * Add further file extensions considered by the language servers for Python (.pyi), JavaScript (.jsx) and TypeScript (.tsx, .jsx) + # 2025-04-07 > **Breaking Config Changes**: make sure to set `ignore_all_files_in_gitignore`, remove `ignore_dirs` diff --git a/src/multilspy/multilspy_config.py b/src/multilspy/multilspy_config.py index c78759c4..a93f1225 100644 --- a/src/multilspy/multilspy_config.py +++ b/src/multilspy/multilspy_config.py @@ -41,13 +41,13 @@ class Language(str, Enum): def get_source_fn_matcher(self) -> FilenameMatcher: match self: case self.PYTHON: - return FilenameMatcher("*.py") + return FilenameMatcher("*.py", "*.pyi") case self.JAVA: return FilenameMatcher("*.java") case self.TYPESCRIPT: - return FilenameMatcher("*.ts", "*.js") + return FilenameMatcher("*.ts", "*.js", "*.jsx", "*.tsx") case self.JAVASCRIPT: - return FilenameMatcher("*.js") + return FilenameMatcher("*.js", "*.jsx") case self.CSHARP: return FilenameMatcher("*.cs") case self.RUST: From e766d55fd568f5313fb46796b8463097bdb9a293 Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Tue, 8 Apr 2025 01:42:26 +0200 Subject: [PATCH 3/4] Add repo sync commit ids --- src/multilspy/.syncCommitId.remote | 1 + src/multilspy/.syncCommitId.this | 1 + 2 files changed, 2 insertions(+) create mode 100644 src/multilspy/.syncCommitId.remote create mode 100644 src/multilspy/.syncCommitId.this diff --git a/src/multilspy/.syncCommitId.remote b/src/multilspy/.syncCommitId.remote new file mode 100644 index 00000000..318b1022 --- /dev/null +++ b/src/multilspy/.syncCommitId.remote @@ -0,0 +1 @@ +fcb81920cebaf5b5de419824170e1602b8f3702d diff --git a/src/multilspy/.syncCommitId.this b/src/multilspy/.syncCommitId.this new file mode 100644 index 00000000..1c63a027 --- /dev/null +++ b/src/multilspy/.syncCommitId.this @@ -0,0 +1 @@ +276f6a84b906bcb25bc8dbf74574cc18250452f9 From 87134b6ba071a2751ede36ef74c2757120916779 Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Tue, 8 Apr 2025 01:43:53 +0200 Subject: [PATCH 4/4] Updated multilspy sync commit identifiers (pull) --- src/multilspy/.syncCommitId.remote | 2 +- src/multilspy/.syncCommitId.this | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/multilspy/.syncCommitId.remote b/src/multilspy/.syncCommitId.remote index 318b1022..80a2eae7 100644 --- a/src/multilspy/.syncCommitId.remote +++ b/src/multilspy/.syncCommitId.remote @@ -1 +1 @@ -fcb81920cebaf5b5de419824170e1602b8f3702d +07ffa48166beb0c7f20ac76dbf7724d0bca4bbb4 \ No newline at end of file diff --git a/src/multilspy/.syncCommitId.this b/src/multilspy/.syncCommitId.this index 1c63a027..84a09c84 100644 --- a/src/multilspy/.syncCommitId.this +++ b/src/multilspy/.syncCommitId.this @@ -1 +1 @@ -276f6a84b906bcb25bc8dbf74574cc18250452f9 +e766d55fd568f5313fb46796b8463097bdb9a293 \ No newline at end of file