Skip to content

Commit 4e66eaa

Browse files
committed
chore(release): bump version 2.3.1 → 2.4.0
1 parent 44163f5 commit 4e66eaa

File tree

17 files changed

+123
-22
lines changed

17 files changed

+123
-22
lines changed

CHANGELOG.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,107 @@
22

33
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
44

5+
## [2.4.0](https://github.com/robotcodedev/robotcode/compare/v2.3.1..v2.4.0) - 2026-03-17
6+
7+
### Bug Fixes
8+
9+
- **dependencies:** Update click version to 8.2.0 in requirements files ([6e1220e](https://github.com/robotcodedev/robotcode/commit/6e1220e0542dc12a37dcb6c489d1653238ffbe8e))
10+
- **vscode:** Fix invalid glob pattern in selectConfigurationProfiles ([58b5a8f](https://github.com/robotcodedev/robotcode/commit/58b5a8f1d1b8a2363a08b7872e20519316a44025))
11+
12+
Remove extra closing brace in the file extension glob pattern that
13+
caused workspace folder detection to fail when selecting configuration
14+
profiles.
15+
16+
17+
18+
### Features
19+
20+
- **plugin:** Add fast exit option to Application.exit method ([acfa7e9](https://github.com/robotcodedev/robotcode/commit/acfa7e9a2d6b138f487183e19b8700d2e88db313))
21+
22+
23+
### Performance
24+
25+
- **diagnostics:** Skip full AST model parsing when no robotcode: markers present ([7b3999e](https://github.com/robotcodedev/robotcode/commit/7b3999e203209c67613f27fecacc943ac981d824))
26+
- **robot:** Cache LibraryDoc for robot and resource files on disk ([9b89623](https://github.com/robotcodedev/robotcode/commit/9b896236c2590571fd5cb4cd95fbb156d0929cb1))
27+
28+
Resource and robot files are now cached on disk between sessions.
29+
On subsequent opens, imports, keywords, and variables from these
30+
files are loaded from cache instead of being re-parsed, resulting
31+
in faster startup and quicker response times when navigating
32+
projects with many resource files.
33+
34+
The cache is automatically invalidated when a file is modified
35+
on disk. Files that are currently open in the editor always use
36+
the live content and bypass the disk cache.
37+
38+
- **robot:** Remove unnecessary token list caching from document cache ([5f8591d](https://github.com/robotcodedev/robotcode/commit/5f8591d9a079261769d4a2c718c53124c22d510b))
39+
40+
Token lists were cached separately in document._cache, but only used
41+
as intermediate input for AST model building. No external caller ever
42+
accessed the cached token lists directly.
43+
44+
Move token generation into model builder methods so tokens are only
45+
produced on cache miss. On cache hit, neither tokenization nor model
46+
building occurs.
47+
48+
- Eliminates up to 6 cached token lists per document in Language Server
49+
- No behavior change for CLI (tokens were already uncached for version=None)
50+
- Remove ~80 lines of redundant caching infrastructure
51+
52+
- **robot:** Use file_id tuples instead of os.path.samefile for path comparison ([3f3bd84](https://github.com/robotcodedev/robotcode/commit/3f3bd8430a5c745bae6d0274ab4001acbe73044e))
53+
54+
Replace repeated os.path.samefile() calls (2x stat per call) in namespace
55+
import loops with pre-computed (st_dev, st_ino) tuple comparisons.
56+
57+
- Add FileId type, file_id() and same_file_id() to core utils
58+
- Add lazy source_id property to LibraryDoc (excluded from pickle)
59+
- Pre-compute source_id on Namespace init
60+
- Compute file_id once per find_resource result instead of per-iteration
61+
62+
63+
64+
### Refactor
65+
66+
- **imports_manager:** Cleanup and fix correctness issues ([25ef49c](https://github.com/robotcodedev/robotcode/commit/25ef49c3ea0fec68f4f36a702e8f20a3c32c5537))
67+
- **robot:** Remove unnecessary finalizers and dispose chain ([eaa7e14](https://github.com/robotcodedev/robotcode/commit/eaa7e14e2672cbf8da49a2eb58205384bd34c9cf))
68+
69+
Remove redundant _release_watchers_finalizer from _ImportEntry — file
70+
watcher cleanup is already handled explicitly by _remove_file_watcher()
71+
during invalidation and by server_shutdown() at LS shutdown.
72+
73+
Remove the _dispose_finalizer/dispose() chain through ImportsManager,
74+
DocumentsCacheHelper, RobotFrameworkLanguageProvider, CodeAnalyzer, and
75+
CLI. With the per-entry finalizers gone, these only cleared dicts that
76+
Python already cleans up at process exit.
77+
78+
Fix broken finalizer in Workspace.add_file_watchers() where the closure
79+
captured the entry object, preventing it from ever being garbage
80+
collected.
81+
82+
Set atexit=False on sentinel finalizers so they only fire during normal
83+
GC (needed for LS live cleanup), not at interpreter shutdown.
84+
85+
- **robot:** Replace __del__ with weakref.finalize in imports_manager ([e0e8d81](https://github.com/robotcodedev/robotcode/commit/e0e8d81219d1da8682839ab804cbc94408cf7d3f))
86+
87+
Replace fragile `__del__` methods with `weakref.finalize` in both
88+
`_ImportEntry` and `ImportsManager` for reliable cleanup:
89+
90+
- _ImportEntry: register finalizer in __init__ with file_watchers list
91+
and file_watcher_manager as strong refs (no self access needed);
92+
change _remove_file_watcher to use .clear() instead of = []
93+
- ImportsManager: register finalizer lazily in executor property when
94+
ProcessPoolExecutor is created; add static _shutdown_executor callback
95+
96+
weakref.finalize is guaranteed to run even with circular references
97+
and does not prevent garbage collection of reference cycles.
98+
99+
100+
101+
### Testing
102+
103+
- Add library folder to test project ([45c410f](https://github.com/robotcodedev/robotcode/commit/45c410f452393068afbff24b68f28ef6cd0936d0))
104+
105+
5106
## [2.3.1](https://github.com/robotcodedev/robotcode/compare/v2.3.0..v2.3.1) - 2026-03-12
6107

7108
### Bug Fixes

intellij-client/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pluginGroup = dev.robotcode
44
pluginName = RobotCode - Robot Framework Support
55
pluginRepositoryUrl = https://github.com/robotcodedev/robotcode4ij
66
# SemVer format -> https://semver.org
7-
pluginVersion = 2.3.1
7+
pluginVersion = 2.4.0
88

99
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
1010
pluginSinceBuild = 251

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "Robot Framework IntelliSense, linting, test execution and debugging, code formatting, refactoring, and many more",
55
"icon": "images/icon.png",
66
"publisher": "d-biehl",
7-
"version": "2.3.1",
7+
"version": "2.4.0",
88
"author": {
99
"name": "Daniel Biehl",
1010
"url": "https://github.com/robotcodedev/"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.3.1"
1+
__version__ = "2.4.0"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.3.1"
1+
__version__ = "2.4.0"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.3.1"
1+
__version__ = "2.4.0"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.3.1"
1+
__version__ = "2.4.0"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.3.1"
1+
__version__ = "2.4.0"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.3.1"
1+
__version__ = "2.4.0"

0 commit comments

Comments
 (0)