@fresh-editor/fresh-editor 0.2.24 → 0.2.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Release Notes
2
2
 
3
+ ## 0.2.25
4
+
5
+ ### Improvements
6
+
7
+ * **PageUp/PageDown in wrapped buffers**: Page motion is now view-row-aware, so paging through heavily wrapped text no longer stalls mid-buffer and the cursor stays visible after every press. Each page also keeps 3 rows of overlap with the previous page (matching vim / less) so you don't lose context across the jump.
8
+
9
+ * **Smarter char-wrapping of long tokens**: When a token has to be split mid-word because it doesn't fit on a fresh line, the break now prefers a UAX #29 word boundary within a lookback window instead of an arbitrary grapheme position — e.g. `dialog.getButton(DialogInterface.BUTTON_NEUTRAL).setOnClickListener` now wraps after `BUTTON_NEUTRAL` rather than mid-identifier.
10
+
11
+ ### Bug Fixes
12
+
13
+ * Fixed language detection for extensionless files (#1598, #1607): files like `test` with a `#!/usr/bin/zsh` shebang, or extensionless bash scripts with `#!/bin/bash`, now detect the language from the shebang instead of falling through to plain text — restoring 0.2.23 behaviour.
14
+
15
+ * Fixed missing characters and blank first rows when wrapping indented lines (#1597) — e.g. the `:` between `with` and ` a` in `someObject.doSomething(with: a, and: b)` was being dropped at the wrap boundary, and quoted strings / code content could be pushed below a row of pure indent whitespace instead of wrapping in place.
16
+
17
+ * Fixed the end-of-line cursor overlapping the vertical scrollbar on wrapped rows that exactly filled the content width.
18
+
19
+ * Reduced idle CPU by avoiding per-tick serialization of config and diagnostics in the plugin snapshot — an idle editor with LSP active no longer reserializes this state dozens to hundreds of times per second.
20
+
21
+ * Silenced a bogus `ts -> TypeScript` alias warning at startup (#1601, #1603); the alias itself already worked.
22
+
3
23
  ## 0.2.24
4
24
 
5
25
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fresh-editor/fresh-editor",
3
- "version": "0.2.24",
3
+ "version": "0.2.25",
4
4
  "description": "A modern terminal-based text editor with plugin support",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1129,11 +1129,16 @@ interface EditorAPI {
1129
1129
  */
1130
1130
  getTempDir(): string;
1131
1131
  /**
1132
- * Get current config as JS object
1132
+ * Get current config as JS object.
1133
+ *
1134
+ * The snapshot holds an `Arc<serde_json::Value>` that was serialized
1135
+ * on the editor side the last time the underlying `Arc<Config>`
1136
+ * changed. Cloning the Arc inside the read lock is a refcount bump;
1137
+ * the actual walk into the JS runtime happens outside the lock.
1133
1138
  */
1134
1139
  getConfig(): unknown;
1135
1140
  /**
1136
- * Get user config as JS object
1141
+ * Get user config as JS object. Same Arc-clone pattern as `get_config`.
1137
1142
  */
1138
1143
  getUserConfig(): unknown;
1139
1144
  /**