@fresh-editor/fresh-editor 0.1.87 → 0.1.88

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,33 @@
1
1
  # Release Notes
2
2
 
3
+ ## 0.1.88
4
+
5
+ ### Features
6
+
7
+ * **Status Bar Language Indicator**: Click the language name in the status bar to change syntax highlighting. Supports mouse wheel scrolling and type-to-filter.
8
+ * **VS Code-like Completion UX**: Debounced completion triggers, Tab accepts completion, uppercase letters work in type-to-filter.
9
+ * **Per-Language LSP Root URI**: LSP servers can now have per-language root URI detection. Includes automatic C# project root detection via `.csproj` files.
10
+ * **Settings UI Improvements**: Settings organized by topic sections, improved focus colors, search navigates to setting, better Map control navigation.
11
+
12
+ ### Bug Fixes
13
+
14
+ * **Tab Bar Mouse Events**: Fixed clicks on tabs not working when menu bar is hidden (#832).
15
+ * **LSP Deadlock**: Fixed deadlock when LSP server sends requests while client is awaiting a response.
16
+ * **LSP Root URI**: Include `root_uri` in LSP initialize params for server compatibility.
17
+ * **Terminal Scrollback**: Fixed race condition truncating terminal backing file when PTY already wrote content.
18
+ * **Plugin i18n**: Fixed placeholder format to use `%{variable}` syntax.
19
+ * **Settings UI**: Fixed confirm dialog mouse clicks/Tab navigation, dropdown option selection, search result navigation, and content bleeding into footer.
20
+
21
+ ### Packaging
22
+
23
+ * **Winget**: Added Windows Package Manager (winget) publishing to release pipeline.
24
+
25
+ ### Internal
26
+
27
+ * **FileSystem Trait**: New IO abstraction layer enabling different backends (local, remote, WASM). All filesystem operations now use injectable `FileSystem` trait.
28
+
29
+ ---
30
+
3
31
  ## 0.1.87
4
32
 
5
33
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fresh-editor/fresh-editor",
3
- "version": "0.1.87",
3
+ "version": "0.1.88",
4
4
  "description": "A modern terminal-based text editor with plugin support",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,90 +4,90 @@
4
4
  "cmd.calculator_desc": "Open calculator",
5
5
  "status.loaded": "Calculator plugin loaded",
6
6
  "status.opened": "Calculator opened",
7
- "status.copied": "Copied: {value}"
7
+ "status.copied": "Copied: %{value}"
8
8
  },
9
9
  "cs": {
10
10
  "cmd.calculator": "Kalkulacka",
11
11
  "cmd.calculator_desc": "Otevrit kalkulacku",
12
12
  "status.loaded": "Plugin kalkulacky nacten",
13
13
  "status.opened": "Kalkulacka otevrena",
14
- "status.copied": "Zkopirovano: {value}"
14
+ "status.copied": "Zkopirovano: %{value}"
15
15
  },
16
16
  "de": {
17
17
  "cmd.calculator": "Taschenrechner",
18
18
  "cmd.calculator_desc": "Taschenrechner offnen",
19
19
  "status.loaded": "Taschenrechner-Plugin geladen",
20
20
  "status.opened": "Taschenrechner geoffnet",
21
- "status.copied": "Kopiert: {value}"
21
+ "status.copied": "Kopiert: %{value}"
22
22
  },
23
23
  "es": {
24
24
  "cmd.calculator": "Calculadora",
25
25
  "cmd.calculator_desc": "Abrir calculadora",
26
26
  "status.loaded": "Plugin de calculadora cargado",
27
27
  "status.opened": "Calculadora abierta",
28
- "status.copied": "Copiado: {value}"
28
+ "status.copied": "Copiado: %{value}"
29
29
  },
30
30
  "fr": {
31
31
  "cmd.calculator": "Calculatrice",
32
32
  "cmd.calculator_desc": "Ouvrir la calculatrice",
33
33
  "status.loaded": "Plugin calculatrice charge",
34
34
  "status.opened": "Calculatrice ouverte",
35
- "status.copied": "Copie: {value}"
35
+ "status.copied": "Copie: %{value}"
36
36
  },
37
37
  "it": {
38
38
  "cmd.calculator": "Calcolatrice",
39
39
  "cmd.calculator_desc": "Apri calcolatrice",
40
40
  "status.loaded": "Plugin calcolatrice caricato",
41
41
  "status.opened": "Calcolatrice aperta",
42
- "status.copied": "Copiato: {value}"
42
+ "status.copied": "Copiato: %{value}"
43
43
  },
44
44
  "ja": {
45
45
  "cmd.calculator": "電卓",
46
46
  "cmd.calculator_desc": "電卓を開く",
47
47
  "status.loaded": "電卓プラグインが読み込まれました",
48
48
  "status.opened": "電卓を開きました",
49
- "status.copied": "コピーしました: {value}"
49
+ "status.copied": "コピーしました: %{value}"
50
50
  },
51
51
  "ko": {
52
52
  "cmd.calculator": "계산기",
53
53
  "cmd.calculator_desc": "계산기 열기",
54
54
  "status.loaded": "계산기 플러그인이 로드되었습니다",
55
55
  "status.opened": "계산기가 열렸습니다",
56
- "status.copied": "복사됨: {value}"
56
+ "status.copied": "복사됨: %{value}"
57
57
  },
58
58
  "pt-BR": {
59
59
  "cmd.calculator": "Calculadora",
60
60
  "cmd.calculator_desc": "Abrir calculadora",
61
61
  "status.loaded": "Plugin de calculadora carregado",
62
62
  "status.opened": "Calculadora aberta",
63
- "status.copied": "Copiado: {value}"
63
+ "status.copied": "Copiado: %{value}"
64
64
  },
65
65
  "ru": {
66
66
  "cmd.calculator": "Калькулятор",
67
67
  "cmd.calculator_desc": "Открыть калькулятор",
68
68
  "status.loaded": "Плагин калькулятора загружен",
69
69
  "status.opened": "Калькулятор открыт",
70
- "status.copied": "Скопировано: {value}"
70
+ "status.copied": "Скопировано: %{value}"
71
71
  },
72
72
  "th": {
73
73
  "cmd.calculator": "เครื่องคิดเลข",
74
74
  "cmd.calculator_desc": "เปิดเครื่องคิดเลข",
75
75
  "status.loaded": "โหลดปลั๊กอินเครื่องคิดเลขแล้ว",
76
76
  "status.opened": "เปิดเครื่องคิดเลขแล้ว",
77
- "status.copied": "คัดลอกแล้ว: {value}"
77
+ "status.copied": "คัดลอกแล้ว: %{value}"
78
78
  },
79
79
  "uk": {
80
80
  "cmd.calculator": "Калькулятор",
81
81
  "cmd.calculator_desc": "Відкрити калькулятор",
82
82
  "status.loaded": "Плагін калькулятора завантажено",
83
83
  "status.opened": "Калькулятор відкрито",
84
- "status.copied": "Скопійовано: {value}"
84
+ "status.copied": "Скопійовано: %{value}"
85
85
  },
86
86
  "zh-CN": {
87
87
  "cmd.calculator": "计算器",
88
88
  "cmd.calculator_desc": "打开计算器",
89
89
  "status.loaded": "计算器插件已加载",
90
90
  "status.opened": "计算器已打开",
91
- "status.copied": "已复制: {value}"
91
+ "status.copied": "已复制: %{value}"
92
92
  }
93
93
  }
@@ -11,10 +11,10 @@
11
11
  "status.unsupported_file_type": "Clangd: unsupported file type for switch header",
12
12
  "status.opened_corresponding_file": "Clangd: opened corresponding file",
13
13
  "status.no_matching_found": "Clangd: no matching header/source found",
14
- "status.switch_failed": "Clangd switch source/header failed: {error}",
14
+ "status.switch_failed": "Clangd switch source/header failed: %{error}",
15
15
  "status.opened_config": "Opened .clangd configuration",
16
16
  "status.config_not_found": "Could not find .clangd configuration in workspace",
17
- "status.file_status": "Clangd file status: {status}"
17
+ "status.file_status": "Clangd file status: %{status}"
18
18
  },
19
19
  "cs": {
20
20
  "cmd.project_setup": "Clangd: Nastaveni projektu",
@@ -28,10 +28,10 @@
28
28
  "status.unsupported_file_type": "Clangd: nepodporovany typ souboru pro prepnuti hlavicky",
29
29
  "status.opened_corresponding_file": "Clangd: odpovidajici soubor otevren",
30
30
  "status.no_matching_found": "Clangd: nenalezena odpovidajici hlavicka/zdroj",
31
- "status.switch_failed": "Clangd prepnuti zdroj/hlavicka selhalo: {error}",
31
+ "status.switch_failed": "Clangd prepnuti zdroj/hlavicka selhalo: %{error}",
32
32
  "status.opened_config": "Konfigurace .clangd otevrena",
33
33
  "status.config_not_found": "Nelze najit konfiguraci .clangd v pracovnim prostoru",
34
- "status.file_status": "Clangd stav souboru: {status}"
34
+ "status.file_status": "Clangd stav souboru: %{status}"
35
35
  },
36
36
  "de": {
37
37
  "cmd.project_setup": "Clangd: Projekteinrichtung",
@@ -45,10 +45,10 @@
45
45
  "status.unsupported_file_type": "Clangd: nicht unterstutzter Dateityp fur Header-Wechsel",
46
46
  "status.opened_corresponding_file": "Clangd: entsprechende Datei geoffnet",
47
47
  "status.no_matching_found": "Clangd: kein passendes Header/Quelle gefunden",
48
- "status.switch_failed": "Clangd Quelle/Header-Wechsel fehlgeschlagen: {error}",
48
+ "status.switch_failed": "Clangd Quelle/Header-Wechsel fehlgeschlagen: %{error}",
49
49
  "status.opened_config": ".clangd-Konfiguration geoffnet",
50
50
  "status.config_not_found": "Konnte .clangd-Konfiguration im Arbeitsbereich nicht finden",
51
- "status.file_status": "Clangd Dateistatus: {status}"
51
+ "status.file_status": "Clangd Dateistatus: %{status}"
52
52
  },
53
53
  "es": {
54
54
  "cmd.project_setup": "Clangd: Configuracion del Proyecto",
@@ -62,10 +62,10 @@
62
62
  "status.unsupported_file_type": "Clangd: tipo de archivo no soportado para alternar cabecera",
63
63
  "status.opened_corresponding_file": "Clangd: archivo correspondiente abierto",
64
64
  "status.no_matching_found": "Clangd: no se encontro cabecera/fuente coincidente",
65
- "status.switch_failed": "Clangd alternar fuente/cabecera fallo: {error}",
65
+ "status.switch_failed": "Clangd alternar fuente/cabecera fallo: %{error}",
66
66
  "status.opened_config": "Configuracion .clangd abierta",
67
67
  "status.config_not_found": "No se pudo encontrar configuracion .clangd en el espacio de trabajo",
68
- "status.file_status": "Estado del archivo Clangd: {status}"
68
+ "status.file_status": "Estado del archivo Clangd: %{status}"
69
69
  },
70
70
  "fr": {
71
71
  "cmd.project_setup": "Clangd: Configuration du Projet",
@@ -79,10 +79,10 @@
79
79
  "status.unsupported_file_type": "Clangd: type de fichier non supporte pour la bascule d'en-tete",
80
80
  "status.opened_corresponding_file": "Clangd: fichier correspondant ouvert",
81
81
  "status.no_matching_found": "Clangd: aucun en-tete/source correspondant trouve",
82
- "status.switch_failed": "Clangd bascule source/en-tete echouee: {error}",
82
+ "status.switch_failed": "Clangd bascule source/en-tete echouee: %{error}",
83
83
  "status.opened_config": "Configuration .clangd ouverte",
84
84
  "status.config_not_found": "Impossible de trouver la configuration .clangd dans l'espace de travail",
85
- "status.file_status": "Statut du fichier Clangd: {status}"
85
+ "status.file_status": "Statut du fichier Clangd: %{status}"
86
86
  },
87
87
  "it": {
88
88
  "cmd.project_setup": "Clangd: Configurazione progetto",
@@ -96,10 +96,10 @@
96
96
  "status.unsupported_file_type": "Clangd: tipo di file non supportato per il cambio header",
97
97
  "status.opened_corresponding_file": "Clangd: aperto file corrispondente",
98
98
  "status.no_matching_found": "Clangd: nessuna corrispondenza header/sorgente trovata",
99
- "status.switch_failed": "Cambio sorgente/header Clangd fallito: {error}",
99
+ "status.switch_failed": "Cambio sorgente/header Clangd fallito: %{error}",
100
100
  "status.opened_config": "Configurazione .clangd aperta",
101
101
  "status.config_not_found": "Impossibile trovare la configurazione .clangd nell'area di lavoro",
102
- "status.file_status": "Stato del file Clangd: {status}"
102
+ "status.file_status": "Stato del file Clangd: %{status}"
103
103
  },
104
104
  "ja": {
105
105
  "cmd.project_setup": "Clangd: プロジェクト設定",
@@ -113,10 +113,10 @@
113
113
  "status.unsupported_file_type": "Clangd: ヘッダー切り替えに対応していないファイル形式です",
114
114
  "status.opened_corresponding_file": "Clangd: 対応するファイルを開きました",
115
115
  "status.no_matching_found": "Clangd: 一致するヘッダー/ソースが見つかりません",
116
- "status.switch_failed": "Clangdソース/ヘッダー切り替えに失敗しました: {error}",
116
+ "status.switch_failed": "Clangdソース/ヘッダー切り替えに失敗しました: %{error}",
117
117
  "status.opened_config": ".clangd設定を開きました",
118
118
  "status.config_not_found": "ワークスペース内に.clangd設定が見つかりません",
119
- "status.file_status": "Clangdファイルステータス: {status}"
119
+ "status.file_status": "Clangdファイルステータス: %{status}"
120
120
  },
121
121
  "ko": {
122
122
  "cmd.project_setup": "Clangd: 프로젝트 설정",
@@ -130,10 +130,10 @@
130
130
  "status.unsupported_file_type": "Clangd: 헤더 전환에 지원되지 않는 파일 형식",
131
131
  "status.opened_corresponding_file": "Clangd: 해당 파일을 열었습니다",
132
132
  "status.no_matching_found": "Clangd: 일치하는 헤더/소스를 찾을 수 없습니다",
133
- "status.switch_failed": "Clangd 소스/헤더 전환 실패: {error}",
133
+ "status.switch_failed": "Clangd 소스/헤더 전환 실패: %{error}",
134
134
  "status.opened_config": ".clangd 설정을 열었습니다",
135
135
  "status.config_not_found": "작업 공간에서 .clangd 설정을 찾을 수 없습니다",
136
- "status.file_status": "Clangd 파일 상태: {status}"
136
+ "status.file_status": "Clangd 파일 상태: %{status}"
137
137
  },
138
138
  "pt-BR": {
139
139
  "cmd.project_setup": "Clangd: Configuracao do Projeto",
@@ -147,10 +147,10 @@
147
147
  "status.unsupported_file_type": "Clangd: tipo de arquivo nao suportado para alternar cabecalho",
148
148
  "status.opened_corresponding_file": "Clangd: arquivo correspondente aberto",
149
149
  "status.no_matching_found": "Clangd: nenhum cabecalho/fonte correspondente encontrado",
150
- "status.switch_failed": "Clangd alternar fonte/cabecalho falhou: {error}",
150
+ "status.switch_failed": "Clangd alternar fonte/cabecalho falhou: %{error}",
151
151
  "status.opened_config": "Configuracao .clangd aberta",
152
152
  "status.config_not_found": "Nao foi possivel encontrar configuracao .clangd no espaco de trabalho",
153
- "status.file_status": "Status do arquivo Clangd: {status}"
153
+ "status.file_status": "Status do arquivo Clangd: %{status}"
154
154
  },
155
155
  "ru": {
156
156
  "cmd.project_setup": "Clangd: Настройка проекта",
@@ -164,10 +164,10 @@
164
164
  "status.unsupported_file_type": "Clangd: неподдерживаемый тип файла для переключения заголовка",
165
165
  "status.opened_corresponding_file": "Clangd: соответствующий файл открыт",
166
166
  "status.no_matching_found": "Clangd: соответствующий заголовок/исходник не найден",
167
- "status.switch_failed": "Clangd переключение исходник/заголовок не удалось: {error}",
167
+ "status.switch_failed": "Clangd переключение исходник/заголовок не удалось: %{error}",
168
168
  "status.opened_config": "Конфигурация .clangd открыта",
169
169
  "status.config_not_found": "Не удалось найти конфигурацию .clangd в рабочем пространстве",
170
- "status.file_status": "Статус файла Clangd: {status}"
170
+ "status.file_status": "Статус файла Clangd: %{status}"
171
171
  },
172
172
  "th": {
173
173
  "cmd.project_setup": "Clangd: ตั้งค่าโปรเจกต์",
@@ -181,10 +181,10 @@
181
181
  "status.unsupported_file_type": "Clangd: ไม่รองรับประเภทไฟล์สำหรับสลับเฮดเดอร์",
182
182
  "status.opened_corresponding_file": "Clangd: เปิดไฟล์ที่เกี่ยวข้องแล้ว",
183
183
  "status.no_matching_found": "Clangd: ไม่พบเฮดเดอร์/ซอร์สที่ตรงกัน",
184
- "status.switch_failed": "Clangd สลับซอร์ส/เฮดเดอร์ล้มเหลว: {error}",
184
+ "status.switch_failed": "Clangd สลับซอร์ส/เฮดเดอร์ล้มเหลว: %{error}",
185
185
  "status.opened_config": "เปิดการตั้งค่า .clangd แล้ว",
186
186
  "status.config_not_found": "ไม่พบการตั้งค่า .clangd ในพื้นที่ทำงาน",
187
- "status.file_status": "สถานะไฟล์ Clangd: {status}"
187
+ "status.file_status": "สถานะไฟล์ Clangd: %{status}"
188
188
  },
189
189
  "uk": {
190
190
  "cmd.project_setup": "Clangd: Налаштування проекту",
@@ -198,10 +198,10 @@
198
198
  "status.unsupported_file_type": "Clangd: непідтримуваний тип файлу для перемикання заголовка",
199
199
  "status.opened_corresponding_file": "Clangd: відповідний файл відкрито",
200
200
  "status.no_matching_found": "Clangd: відповідний заголовок/вихідний файл не знайдено",
201
- "status.switch_failed": "Clangd перемикання вихідний/заголовний файл не вдалося: {error}",
201
+ "status.switch_failed": "Clangd перемикання вихідний/заголовний файл не вдалося: %{error}",
202
202
  "status.opened_config": "Конфігурацію .clangd відкрито",
203
203
  "status.config_not_found": "Не вдалося знайти конфігурацію .clangd у робочому просторі",
204
- "status.file_status": "Статус файлу Clangd: {status}"
204
+ "status.file_status": "Статус файлу Clangd: %{status}"
205
205
  },
206
206
  "zh-CN": {
207
207
  "cmd.project_setup": "Clangd: 项目设置",
@@ -215,9 +215,9 @@
215
215
  "status.unsupported_file_type": "Clangd: 不支持的文件类型,无法切换头文件",
216
216
  "status.opened_corresponding_file": "Clangd: 已打开对应文件",
217
217
  "status.no_matching_found": "Clangd: 未找到匹配的头文件/源文件",
218
- "status.switch_failed": "Clangd切换源文件/头文件失败: {error}",
218
+ "status.switch_failed": "Clangd切换源文件/头文件失败: %{error}",
219
219
  "status.opened_config": "已打开.clangd配置",
220
220
  "status.config_not_found": "在工作区中找不到.clangd配置",
221
- "status.file_status": "Clangd文件状态: {status}"
221
+ "status.file_status": "Clangd文件状态: %{status}"
222
222
  }
223
223
  }