@fresh-editor/fresh-editor 0.1.93 → 0.1.95
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 +44 -0
- package/README.md +11 -8
- package/package.json +1 -1
- package/plugins/README.md +2 -2
- package/plugins/examples/README.md +3 -3
- package/plugins/lib/fresh.d.ts +5 -0
- package/plugins/pkg.ts +2 -0
- package/plugins/schemas/package.schema.json +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
+
## 0.1.95
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* Fixed data corruption issue when saving a large file multiple times (#882)
|
|
8
|
+
|
|
9
|
+
* Fixed hidden menus showing up when using left/right arrow keys to move between menus
|
|
10
|
+
|
|
11
|
+
* Fixed language pack plugins not being loaded properly in some cases
|
|
12
|
+
|
|
13
|
+
## 0.1.94
|
|
14
|
+
|
|
15
|
+
### Documentation
|
|
16
|
+
|
|
17
|
+
* **New documentation site**: @radiorambo contributed a complete restructure and build for a documentation section in the website. Kudos, awesome work!
|
|
18
|
+
|
|
19
|
+
See [getfresh.dev/docs](https://getfresh.dev/docs)
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* **Event Debug Dialog**: New diagnostic tool for troubleshooting keyboard and terminal issues. Shows raw key codes and modifiers as they are received, helping diagnose keybinding problems. Access via Command Palette → "Event Debug".
|
|
24
|
+
|
|
25
|
+
* **File Explorer Keybindings**: Reorganized the keys and updated the docs. Ctrl+E now toggles focus between file explorer and editor. Ctrl+B toggles sidebar visibility. Single-click opens files without leaving explorer; double-click or Enter opens and focuses editor (#748).
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* **Case Conversion Enhancement**: To Upper (Alt+U) and To Lower (Alt+L) now automatically select the current word when no text is selected, matching common editor behavior.
|
|
30
|
+
|
|
31
|
+
* **Block Selection Copy**: Fixed Ctrl+C copying entire lines instead of the rectangular region. Block selection (Alt+Shift+Arrow) now correctly copies only the characters within the column bounds for each line.
|
|
32
|
+
|
|
33
|
+
* **Block Selection Editing**: Block selection now converts to multiple cursors for editing actions (typing, delete, backspace), enabling proper rectangular editing.
|
|
34
|
+
|
|
35
|
+
* **Dropdown Menu Position**: Fixed Help menu dropdown appearing at wrong position when Explorer menu was hidden. Menu position calculation now correctly skips hidden menus.
|
|
36
|
+
|
|
37
|
+
* **Settings Access**: Moved Settings to Edit menu and removed broken Ctrl+, keybinding which doesn't work reliably in terminals. Settings remain accessible via Edit → Settings... and Command Palette.
|
|
38
|
+
|
|
39
|
+
* **Block Selection Rendering**: Fixed double rendering of block selections that could cause visual artifacts.
|
|
40
|
+
|
|
41
|
+
### Internal
|
|
42
|
+
|
|
43
|
+
* **Remote Save Optimization**: SSH remote editing now uses recipe-based patched saves. For large files with small edits, only the changed portions are transferred instead of the entire file. A 10MB file with a 100-byte edit now transfers ~200 bytes instead of 10MB.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
3
47
|
## 0.1.93
|
|
4
48
|
|
|
5
49
|
### Experimental
|
package/README.md
CHANGED
|
@@ -41,9 +41,9 @@ Fresh is engineered for speed. It delivers a low-latency experience, with text a
|
|
|
41
41
|
- **Internationalization**: Multiple language support (see [`locales/`](locales/) for available languages), plugin translation system
|
|
42
42
|
|
|
43
43
|

|
|
44
|
-

|
|
45
|
-

|
|
46
|
-

|
|
44
|
+

|
|
45
|
+

|
|
46
|
+

|
|
47
47
|
|
|
48
48
|
## Installation
|
|
49
49
|
|
|
@@ -219,10 +219,10 @@ cargo build --release
|
|
|
219
219
|
|
|
220
220
|
## Documentation
|
|
221
221
|
|
|
222
|
-
- [User Guide](docs/
|
|
223
|
-
- [macOS Tips](docs/
|
|
224
|
-
- [Plugin Development](docs/
|
|
225
|
-
- [Architecture](docs/
|
|
222
|
+
- [User Guide](https://sinelaw.github.io/fresh/docs/guide/)
|
|
223
|
+
- [macOS Tips](https://sinelaw.github.io/fresh/docs/guide/keyboard#macos-terminal-configuration) - Terminal configuration, keyboard shortcuts, and troubleshooting for Mac users
|
|
224
|
+
- [Plugin Development](https://sinelaw.github.io/fresh/docs/development/plugin-development)
|
|
225
|
+
- [Architecture](https://sinelaw.github.io/fresh/docs/development/architecture)
|
|
226
226
|
|
|
227
227
|
## Contributing
|
|
228
228
|
|
|
@@ -242,7 +242,10 @@ Thanks for contributing!
|
|
|
242
242
|
|
|
243
243
|
7. **LSP**: Ensure LSP interactions follow the correct lifecycle (e.g., `didOpen` must always precede other requests to avoid server-side errors). Use the appropriate existing helpers for this pattern.
|
|
244
244
|
|
|
245
|
-
8. **Regenerate plugin types**: After modifying the plugin API
|
|
245
|
+
8. **Regenerate plugin types and schemas**: After modifying the plugin API or config types:
|
|
246
|
+
- **TypeScript definitions** (`plugins/lib/fresh.d.ts`): Auto-generated from Rust types with `#[derive(TS)]`. Run: `cargo test -p fresh-plugin-runtime write_fresh_dts_file -- --ignored`
|
|
247
|
+
- **JSON schemas** (`plugins/config-schema.json`, `plugins/schemas/theme.schema.json`): Auto-generated from Rust types with `#[derive(JsonSchema)]`. Run: `./scripts/gen_schema.sh`
|
|
248
|
+
- **Package schema** (`plugins/schemas/package.schema.json`): Manually maintained - edit directly when adding new language pack fields
|
|
246
249
|
|
|
247
250
|
9. **Type check plugins**: Run `crates/fresh-editor/plugins/check-types.sh` (requires `tsc`)
|
|
248
251
|
|
package/package.json
CHANGED
package/plugins/README.md
CHANGED
|
@@ -65,8 +65,8 @@ The `examples/` directory contains educational examples demonstrating specific A
|
|
|
65
65
|
## Plugin Development
|
|
66
66
|
|
|
67
67
|
For plugin development guides, see:
|
|
68
|
-
- **Getting Started:** [`docs/
|
|
69
|
-
- **API Reference:** [`docs/plugin-api.md`](../docs/plugin-api.md)
|
|
68
|
+
- **Getting Started:** [`docs/development/plugin-development.md`](../docs/development/plugin-development.md)
|
|
69
|
+
- **API Reference:** [`docs/development/plugin-api.md`](../docs/development/plugin-api.md)
|
|
70
70
|
- **Examples:** [`examples/README.md`](examples/README.md)
|
|
71
71
|
- **Clangd Plugin:** [`clangd_support.md`](clangd_support.md)
|
|
72
72
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This directory contains example plugins demonstrating the editor's plugin system. These are educational examples showing specific API features.
|
|
4
4
|
|
|
5
|
-
For the complete API reference, see **[docs/plugin-api.md](../../docs/plugin-api.md)**.
|
|
5
|
+
For the complete API reference, see **[docs/development/plugin-api.md](../../docs/development/plugin-api.md)**.
|
|
6
6
|
|
|
7
7
|
## Available Examples
|
|
8
8
|
|
|
@@ -81,5 +81,5 @@ editor.debug("My custom plugin loaded");
|
|
|
81
81
|
|
|
82
82
|
## Further Reading
|
|
83
83
|
|
|
84
|
-
- **Getting Started:** [docs/
|
|
85
|
-
- **API Reference:** [docs/plugin-api.md](../../docs/plugin-api.md)
|
|
84
|
+
- **Getting Started:** [docs/development/plugin-development.md](../../docs/development/plugin-development.md)
|
|
85
|
+
- **API Reference:** [docs/development/plugin-api.md](../../docs/development/plugin-api.md)
|
package/plugins/lib/fresh.d.ts
CHANGED
|
@@ -559,6 +559,11 @@ type LanguagePackConfig = {
|
|
|
559
559
|
*/
|
|
560
560
|
autoIndent: boolean | null;
|
|
561
561
|
/**
|
|
562
|
+
* Whether to show whitespace tab indicators (→) for this language
|
|
563
|
+
* Defaults to true. Set to false for languages like Go/Hare that use tabs for indentation.
|
|
564
|
+
*/
|
|
565
|
+
showWhitespaceTabs: boolean | null;
|
|
566
|
+
/**
|
|
562
567
|
* Formatter configuration
|
|
563
568
|
*/
|
|
564
569
|
formatter: FormatterPackConfig | null;
|
package/plugins/pkg.ts
CHANGED
|
@@ -92,6 +92,7 @@ interface PackageManifest {
|
|
|
92
92
|
useTabs?: boolean;
|
|
93
93
|
tabSize?: number;
|
|
94
94
|
autoIndent?: boolean;
|
|
95
|
+
showWhitespaceTabs?: boolean;
|
|
95
96
|
formatter?: {
|
|
96
97
|
command: string;
|
|
97
98
|
args?: string[];
|
|
@@ -828,6 +829,7 @@ async function loadLanguagePack(packageDir: string, manifest: PackageManifest):
|
|
|
828
829
|
useTabs: lang.useTabs ?? null,
|
|
829
830
|
tabSize: lang.tabSize ?? null,
|
|
830
831
|
autoIndent: lang.autoIndent ?? null,
|
|
832
|
+
showWhitespaceTabs: lang.showWhitespaceTabs ?? null,
|
|
831
833
|
formatter: lang.formatter ? {
|
|
832
834
|
command: lang.formatter.command,
|
|
833
835
|
args: lang.formatter.args ?? [],
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"properties": {
|
|
99
99
|
"file": {
|
|
100
100
|
"type": "string",
|
|
101
|
-
"description": "Path to
|
|
101
|
+
"description": "Path to grammar file (.sublime-syntax recommended, or .tmLanguage)"
|
|
102
102
|
},
|
|
103
103
|
"extensions": {
|
|
104
104
|
"type": "array",
|
|
@@ -140,6 +140,10 @@
|
|
|
140
140
|
"type": "boolean",
|
|
141
141
|
"description": "Enable automatic indentation"
|
|
142
142
|
},
|
|
143
|
+
"showWhitespaceTabs": {
|
|
144
|
+
"type": "boolean",
|
|
145
|
+
"description": "Whether to show whitespace tab indicators (→). Defaults to true. Set to false for languages like Go/Hare that use tabs for indentation."
|
|
146
|
+
},
|
|
143
147
|
"formatter": {
|
|
144
148
|
"type": "object",
|
|
145
149
|
"required": ["command"],
|