@involvex/fresh-editor 0.1.76 → 0.1.78
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/bin/CHANGELOG.md +1017 -0
- package/bin/LICENSE +117 -0
- package/bin/README.md +248 -0
- package/bin/fresh.exe +0 -0
- package/bin/plugins/README.md +71 -0
- package/bin/plugins/audit_mode.i18n.json +821 -0
- package/bin/plugins/audit_mode.ts +1810 -0
- package/bin/plugins/buffer_modified.i18n.json +67 -0
- package/bin/plugins/buffer_modified.ts +281 -0
- package/bin/plugins/calculator.i18n.json +93 -0
- package/bin/plugins/calculator.ts +770 -0
- package/bin/plugins/clangd-lsp.ts +168 -0
- package/bin/plugins/clangd_support.i18n.json +223 -0
- package/bin/plugins/clangd_support.md +20 -0
- package/bin/plugins/clangd_support.ts +325 -0
- package/bin/plugins/color_highlighter.i18n.json +145 -0
- package/bin/plugins/color_highlighter.ts +304 -0
- package/bin/plugins/config-schema.json +768 -0
- package/bin/plugins/csharp-lsp.ts +147 -0
- package/bin/plugins/csharp_support.i18n.json +80 -0
- package/bin/plugins/csharp_support.ts +170 -0
- package/bin/plugins/css-lsp.ts +143 -0
- package/bin/plugins/diagnostics_panel.i18n.json +236 -0
- package/bin/plugins/diagnostics_panel.ts +642 -0
- package/bin/plugins/examples/README.md +85 -0
- package/bin/plugins/examples/async_demo.ts +165 -0
- package/bin/plugins/examples/bookmarks.ts +329 -0
- package/bin/plugins/examples/buffer_query_demo.ts +110 -0
- package/bin/plugins/examples/git_grep.ts +262 -0
- package/bin/plugins/examples/hello_world.ts +93 -0
- package/bin/plugins/examples/virtual_buffer_demo.ts +116 -0
- package/bin/plugins/find_references.i18n.json +275 -0
- package/bin/plugins/find_references.ts +359 -0
- package/bin/plugins/git_blame.i18n.json +496 -0
- package/bin/plugins/git_blame.ts +707 -0
- package/bin/plugins/git_find_file.i18n.json +314 -0
- package/bin/plugins/git_find_file.ts +300 -0
- package/bin/plugins/git_grep.i18n.json +171 -0
- package/bin/plugins/git_grep.ts +191 -0
- package/bin/plugins/git_gutter.i18n.json +93 -0
- package/bin/plugins/git_gutter.ts +477 -0
- package/bin/plugins/git_log.i18n.json +481 -0
- package/bin/plugins/git_log.ts +1285 -0
- package/bin/plugins/go-lsp.ts +143 -0
- package/bin/plugins/html-lsp.ts +145 -0
- package/bin/plugins/json-lsp.ts +145 -0
- package/bin/plugins/lib/fresh.d.ts +1321 -0
- package/bin/plugins/lib/index.ts +24 -0
- package/bin/plugins/lib/navigation-controller.ts +214 -0
- package/bin/plugins/lib/panel-manager.ts +220 -0
- package/bin/plugins/lib/types.ts +72 -0
- package/bin/plugins/lib/virtual-buffer-factory.ts +130 -0
- package/bin/plugins/live_grep.i18n.json +171 -0
- package/bin/plugins/live_grep.ts +422 -0
- package/bin/plugins/markdown_compose.i18n.json +223 -0
- package/bin/plugins/markdown_compose.ts +630 -0
- package/bin/plugins/merge_conflict.i18n.json +821 -0
- package/bin/plugins/merge_conflict.ts +1810 -0
- package/bin/plugins/path_complete.i18n.json +80 -0
- package/bin/plugins/path_complete.ts +165 -0
- package/bin/plugins/python-lsp.ts +162 -0
- package/bin/plugins/rust-lsp.ts +166 -0
- package/bin/plugins/search_replace.i18n.json +405 -0
- package/bin/plugins/search_replace.ts +484 -0
- package/bin/plugins/test_i18n.i18n.json +67 -0
- package/bin/plugins/test_i18n.ts +18 -0
- package/bin/plugins/theme_editor.i18n.json +3746 -0
- package/bin/plugins/theme_editor.ts +2063 -0
- package/bin/plugins/todo_highlighter.i18n.json +184 -0
- package/bin/plugins/todo_highlighter.ts +206 -0
- package/bin/plugins/typescript-lsp.ts +167 -0
- package/bin/plugins/vi_mode.i18n.json +1549 -0
- package/bin/plugins/vi_mode.ts +2747 -0
- package/bin/plugins/welcome.i18n.json +236 -0
- package/bin/plugins/welcome.ts +76 -0
- package/bin/themes/dark.json +102 -0
- package/bin/themes/dracula.json +62 -0
- package/bin/themes/high-contrast.json +102 -0
- package/bin/themes/light.json +102 -0
- package/bin/themes/nord.json +62 -0
- package/bin/themes/nostalgia.json +102 -0
- package/bin/themes/solarized-dark.json +62 -0
- package/binary-install.js +1 -1
- package/dist/bin/fresh.js +9 -0
- package/dist/binary-install.js +149 -0
- package/dist/binary.js +30 -0
- package/dist/fresh-6yhknp07.exe +0 -0
- package/dist/install.js +158 -0
- package/dist/run-fresh.js +43 -0
- package/package.json +7 -2
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/// <reference path="../types/fresh.d.ts" />
|
|
2
|
+
const editor = getEditor();
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Clangd helper plugin
|
|
7
|
+
*
|
|
8
|
+
* Provides two commands:
|
|
9
|
+
* - Switch Source/Header (uses clangd/textDocument/switchSourceHeader)
|
|
10
|
+
* - Open project .clangd configuration file
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { PanelManager } from "./lib/index.ts";
|
|
14
|
+
|
|
15
|
+
const languageMap: Record<string, string> = {
|
|
16
|
+
c: "cpp",
|
|
17
|
+
h: "cpp",
|
|
18
|
+
hp: "cpp",
|
|
19
|
+
hpp: "cpp",
|
|
20
|
+
hxx: "cpp",
|
|
21
|
+
hh: "cpp",
|
|
22
|
+
cpp: "cpp",
|
|
23
|
+
cxx: "cpp",
|
|
24
|
+
cc: "cpp",
|
|
25
|
+
objc: "cpp",
|
|
26
|
+
mm: "cpp",
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
function detectLanguage(path: string): string | null {
|
|
30
|
+
const segments = path.split(".");
|
|
31
|
+
if (segments.length === 1) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
const ext = segments[segments.length - 1].toLowerCase();
|
|
35
|
+
return languageMap[ext] ?? null;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function pathToFileUri(path: string): string {
|
|
39
|
+
let normalized = path.replace(/\\/g, "/");
|
|
40
|
+
if (!normalized.startsWith("/")) {
|
|
41
|
+
normalized = "/" + normalized;
|
|
42
|
+
}
|
|
43
|
+
return "file://" + encodeURI(normalized);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function fileUriToPath(uri: string): string {
|
|
47
|
+
if (!uri.startsWith("file://")) {
|
|
48
|
+
return uri;
|
|
49
|
+
}
|
|
50
|
+
let path = decodeURI(uri.substring("file://".length));
|
|
51
|
+
if (path.startsWith("/") && path.length > 2 && path[2] === ":") {
|
|
52
|
+
path = path.substring(1);
|
|
53
|
+
}
|
|
54
|
+
return path;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function setClangdStatus(message: string): void {
|
|
58
|
+
editor.setStatus(message);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
globalThis.clangdSwitchSourceHeader = async function(): Promise<void> {
|
|
62
|
+
const bufferId = editor.getActiveBufferId();
|
|
63
|
+
const path = editor.getBufferPath(bufferId);
|
|
64
|
+
if (!path) {
|
|
65
|
+
setClangdStatus(editor.t("status.no_active_file"));
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const language = detectLanguage(path);
|
|
70
|
+
if (!language) {
|
|
71
|
+
setClangdStatus(editor.t("status.unsupported_file_type"));
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const uri = pathToFileUri(path);
|
|
76
|
+
editor.debug(`clangdSwitchSourceHeader: sending request for ${uri}`);
|
|
77
|
+
try {
|
|
78
|
+
const result = await editor.sendLspRequest(language, "textDocument/switchSourceHeader", {
|
|
79
|
+
textDocument: { uri },
|
|
80
|
+
});
|
|
81
|
+
editor.debug(`clangdSwitchSourceHeader: got result ${JSON.stringify(result)}`);
|
|
82
|
+
if (typeof result === "string" && result.length > 0) {
|
|
83
|
+
const targetPath = fileUriToPath(result);
|
|
84
|
+
editor.openFile(targetPath, 0, 0);
|
|
85
|
+
setClangdStatus(editor.t("status.opened_corresponding_file"));
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
setClangdStatus(editor.t("status.no_matching_found"));
|
|
89
|
+
} catch (err) {
|
|
90
|
+
setClangdStatus(editor.t("status.switch_failed", { error: String(err) }));
|
|
91
|
+
editor.debug(`clangdSwitchSourceHeader error: ${err}`);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const projectPanel = new PanelManager(editor, "Clangd project setup", "clangd-project-setup");
|
|
96
|
+
|
|
97
|
+
function pathDesc(path: string): string {
|
|
98
|
+
if (!path) {
|
|
99
|
+
return "unknown";
|
|
100
|
+
}
|
|
101
|
+
return path;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function detectProjectRoot(): string | null {
|
|
105
|
+
const roots = new Set<string>();
|
|
106
|
+
const cwd = editor.getCwd();
|
|
107
|
+
if (cwd) {
|
|
108
|
+
roots.add(cwd);
|
|
109
|
+
}
|
|
110
|
+
const bufferId = editor.getActiveBufferId();
|
|
111
|
+
const bufferPath = editor.getBufferPath(bufferId);
|
|
112
|
+
if (bufferPath) {
|
|
113
|
+
// Add the buffer directory and a few ancestors
|
|
114
|
+
let current = editor.pathDirname(bufferPath);
|
|
115
|
+
let depth = 0;
|
|
116
|
+
while (current && depth < 5) {
|
|
117
|
+
roots.add(current);
|
|
118
|
+
current = editor.pathDirname(current);
|
|
119
|
+
depth += 1;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (roots.size === 0) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
return Array.from(roots)[0];
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function analyzeProject(root: string | null) {
|
|
129
|
+
const lines: string[] = [];
|
|
130
|
+
const dirCandidates: string[] = [];
|
|
131
|
+
if (root) {
|
|
132
|
+
dirCandidates.push(root);
|
|
133
|
+
}
|
|
134
|
+
const currentDir = editor.getCwd();
|
|
135
|
+
if (currentDir && currentDir !== root) {
|
|
136
|
+
dirCandidates.push(currentDir);
|
|
137
|
+
}
|
|
138
|
+
const activeBufferId = editor.getActiveBufferId();
|
|
139
|
+
const bufferPath = editor.getBufferPath(activeBufferId);
|
|
140
|
+
if (bufferPath) {
|
|
141
|
+
const bufferDir = editor.pathDirname(bufferPath);
|
|
142
|
+
if (bufferDir && !dirCandidates.includes(bufferDir)) {
|
|
143
|
+
dirCandidates.push(bufferDir);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const compileCandidates = [
|
|
148
|
+
"compile_commands.json",
|
|
149
|
+
"build/compile_commands.json",
|
|
150
|
+
"out/compile_commands.json",
|
|
151
|
+
"cmake-build-debug/compile_commands.json",
|
|
152
|
+
];
|
|
153
|
+
let compilePath: string | null = null;
|
|
154
|
+
for (const base of dirCandidates) {
|
|
155
|
+
for (const relative of compileCandidates) {
|
|
156
|
+
const candidate = editor.pathJoin(base, relative);
|
|
157
|
+
if (editor.fileExists(candidate)) {
|
|
158
|
+
compilePath = candidate;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (compilePath) {
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const clangdFileCandidates = [".clangd", ".clangd/compile_flags.txt"];
|
|
168
|
+
let clangdPath: string | null = null;
|
|
169
|
+
for (const base of dirCandidates) {
|
|
170
|
+
for (const relative of clangdFileCandidates) {
|
|
171
|
+
const candidate = editor.pathJoin(base, relative);
|
|
172
|
+
if (editor.fileExists(candidate)) {
|
|
173
|
+
clangdPath = candidate;
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (clangdPath) {
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const status: string[] = [];
|
|
183
|
+
if (root) {
|
|
184
|
+
status.push(`Project root: ${root}`);
|
|
185
|
+
} else {
|
|
186
|
+
status.push("Project root: (unknown)");
|
|
187
|
+
}
|
|
188
|
+
status.push("");
|
|
189
|
+
|
|
190
|
+
if (compilePath) {
|
|
191
|
+
status.push(`Compile commands: ready (${compilePath})`);
|
|
192
|
+
} else {
|
|
193
|
+
status.push("Compile commands: missing");
|
|
194
|
+
status.push(" Tip: run `cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON` or `bear -- make` to generate compile_commands.json and place it at the project root.");
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (clangdPath) {
|
|
198
|
+
status.push(`.clangd configuration: ${clangdPath}`);
|
|
199
|
+
} else {
|
|
200
|
+
status.push(".clangd configuration: missing");
|
|
201
|
+
status.push(" Tip: create a .clangd file to customize clangd flags, fallback file, etc.");
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
const buildHints: string[] = [];
|
|
205
|
+
if (root) {
|
|
206
|
+
if (editor.fileExists(editor.pathJoin(root, "CMakeLists.txt"))) {
|
|
207
|
+
buildHints.push("CMake project detected (configure with `cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON`).");
|
|
208
|
+
}
|
|
209
|
+
if (
|
|
210
|
+
editor.fileExists(editor.pathJoin(root, "WORKSPACE")) ||
|
|
211
|
+
editor.fileExists(editor.pathJoin(root, "WORKSPACE.bazel")) ||
|
|
212
|
+
editor.fileExists(editor.pathJoin(root, "BUILD.bazel"))
|
|
213
|
+
) {
|
|
214
|
+
buildHints.push("Bazel project detected (use `bazel build //...` and attach the generated compile_commands.json).");
|
|
215
|
+
}
|
|
216
|
+
if (editor.fileExists(editor.pathJoin(root, "Makefile"))) {
|
|
217
|
+
buildHints.push("Makefile detected (run `bear -- make` or `intercept-build make` to emit compile_commands.json).");
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (buildHints.length > 0) {
|
|
221
|
+
status.push("");
|
|
222
|
+
status.push("Build system hints:");
|
|
223
|
+
for (const hint of buildHints) {
|
|
224
|
+
status.push(` - ${hint}`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
status.push("");
|
|
229
|
+
status.push("General tips:");
|
|
230
|
+
status.push(" * Place compile_commands.json at the project root or point clangd to a custom path.");
|
|
231
|
+
status.push(" * Use `Clangd: Open Project Config` to edit project-specific overrides.");
|
|
232
|
+
status.push(" * Use `Clangd: Switch Source/Header` once compile data is available.");
|
|
233
|
+
|
|
234
|
+
return status;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
globalThis.clangdProjectSetup = async function (): Promise<void> {
|
|
238
|
+
const projectRoot = detectProjectRoot();
|
|
239
|
+
const summary = analyzeProject(projectRoot);
|
|
240
|
+
const entries = summary.map((line) => ({
|
|
241
|
+
text: line + "\n",
|
|
242
|
+
properties: {},
|
|
243
|
+
}));
|
|
244
|
+
await projectPanel.open({
|
|
245
|
+
entries,
|
|
246
|
+
ratio: 0.3,
|
|
247
|
+
});
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
editor.registerCommand(
|
|
251
|
+
"%cmd.project_setup",
|
|
252
|
+
"%cmd.project_setup_desc",
|
|
253
|
+
"clangdProjectSetup",
|
|
254
|
+
""
|
|
255
|
+
);
|
|
256
|
+
|
|
257
|
+
globalThis.clangdOpenProjectConfig = function(): void {
|
|
258
|
+
const bufferId = editor.getActiveBufferId();
|
|
259
|
+
const targets = new Set<string>();
|
|
260
|
+
const bufferPath = editor.getBufferPath(bufferId);
|
|
261
|
+
if (bufferPath) {
|
|
262
|
+
const dir = editor.pathDirname(bufferPath);
|
|
263
|
+
targets.add(dir);
|
|
264
|
+
}
|
|
265
|
+
const cwd = editor.getCwd();
|
|
266
|
+
if (cwd) {
|
|
267
|
+
targets.add(cwd);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
let opened = false;
|
|
271
|
+
for (const dir of Array.from(targets)) {
|
|
272
|
+
const configPath = editor.pathJoin(dir, ".clangd");
|
|
273
|
+
if (editor.fileExists(configPath)) {
|
|
274
|
+
editor.openFile(configPath, 0, 0);
|
|
275
|
+
setClangdStatus(editor.t("status.opened_config"));
|
|
276
|
+
opened = true;
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
if (!opened) {
|
|
282
|
+
setClangdStatus(editor.t("status.config_not_found"));
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
editor.registerCommand(
|
|
287
|
+
"%cmd.switch_source_header",
|
|
288
|
+
"%cmd.switch_source_header_desc",
|
|
289
|
+
"clangdSwitchSourceHeader",
|
|
290
|
+
"normal"
|
|
291
|
+
);
|
|
292
|
+
|
|
293
|
+
editor.registerCommand(
|
|
294
|
+
"%cmd.open_project_config",
|
|
295
|
+
"%cmd.open_project_config_desc",
|
|
296
|
+
"clangdOpenProjectConfig",
|
|
297
|
+
"normal"
|
|
298
|
+
);
|
|
299
|
+
|
|
300
|
+
setClangdStatus(editor.t("status.plugin_loaded"));
|
|
301
|
+
|
|
302
|
+
globalThis.onClangdCustomNotification = function(payload: {
|
|
303
|
+
language: string;
|
|
304
|
+
method: string;
|
|
305
|
+
params: Record<string, unknown> | null;
|
|
306
|
+
}): void {
|
|
307
|
+
if (!payload || payload.language !== "cpp") {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
editor.debug(
|
|
312
|
+
`clangd notification ${payload.method}: ${JSON.stringify(payload.params)}`,
|
|
313
|
+
);
|
|
314
|
+
|
|
315
|
+
if (payload.method === "textDocument/clangd.fileStatus" && payload.params) {
|
|
316
|
+
const status = (payload.params as any).status ?? "unknown";
|
|
317
|
+
editor.debug(`Clangd file status: ${JSON.stringify(status)}`);
|
|
318
|
+
setClangdStatus(editor.t("status.file_status", { status: String(status) }));
|
|
319
|
+
} else if (payload.method === "$/memoryUsage" && payload.params) {
|
|
320
|
+
const usage = (payload.params as any).used ?? "unknown";
|
|
321
|
+
editor.debug(`Clangd memory usage: ${usage}`);
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
editor.on("lsp/custom_notification", "onClangdCustomNotification");
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cs": {
|
|
3
|
+
"cmd.enable": "Zvyraznovac barev: Povolit",
|
|
4
|
+
"cmd.enable_desc": "Povolit zvyraznovani barevnych kodu se vzorky",
|
|
5
|
+
"cmd.disable": "Zvyraznovac barev: Zakazar",
|
|
6
|
+
"cmd.disable_desc": "Zakazat zvyraznovani barevnych kodu",
|
|
7
|
+
"cmd.toggle": "Zvyraznovac barev: Prepnout",
|
|
8
|
+
"cmd.toggle_desc": "Prepnout zvyraznovani barevnych kodu",
|
|
9
|
+
"status.enabled": "Zvyraznovac barev: Povolen",
|
|
10
|
+
"status.disabled": "Zvyraznovac barev: Zakazan",
|
|
11
|
+
"status.loaded": "Plugin Zvyraznovac barev nacten"
|
|
12
|
+
},
|
|
13
|
+
"de": {
|
|
14
|
+
"cmd.enable": "Farbhervorhebung: Aktivieren",
|
|
15
|
+
"cmd.enable_desc": "Farbcode-Hervorhebung mit Farbfeldern aktivieren",
|
|
16
|
+
"cmd.disable": "Farbhervorhebung: Deaktivieren",
|
|
17
|
+
"cmd.disable_desc": "Farbcode-Hervorhebung deaktivieren",
|
|
18
|
+
"cmd.toggle": "Farbhervorhebung: Umschalten",
|
|
19
|
+
"cmd.toggle_desc": "Farbcode-Hervorhebung umschalten",
|
|
20
|
+
"status.enabled": "Farbhervorhebung: Aktiviert",
|
|
21
|
+
"status.disabled": "Farbhervorhebung: Deaktiviert",
|
|
22
|
+
"status.loaded": "Farbhervorhebung-Plugin geladen"
|
|
23
|
+
},
|
|
24
|
+
"en": {
|
|
25
|
+
"cmd.enable": "Color Highlighter: Enable",
|
|
26
|
+
"cmd.enable_desc": "Enable color code highlighting with swatches",
|
|
27
|
+
"cmd.disable": "Color Highlighter: Disable",
|
|
28
|
+
"cmd.disable_desc": "Disable color code highlighting",
|
|
29
|
+
"cmd.toggle": "Color Highlighter: Toggle",
|
|
30
|
+
"cmd.toggle_desc": "Toggle color code highlighting",
|
|
31
|
+
"status.enabled": "Color Highlighter: Enabled",
|
|
32
|
+
"status.disabled": "Color Highlighter: Disabled",
|
|
33
|
+
"status.loaded": "Color Highlighter plugin loaded"
|
|
34
|
+
},
|
|
35
|
+
"es": {
|
|
36
|
+
"cmd.enable": "Resaltador de Colores: Activar",
|
|
37
|
+
"cmd.enable_desc": "Activar resaltado de codigos de color con muestras",
|
|
38
|
+
"cmd.disable": "Resaltador de Colores: Desactivar",
|
|
39
|
+
"cmd.disable_desc": "Desactivar resaltado de codigos de color",
|
|
40
|
+
"cmd.toggle": "Resaltador de Colores: Alternar",
|
|
41
|
+
"cmd.toggle_desc": "Alternar resaltado de codigos de color",
|
|
42
|
+
"status.enabled": "Resaltador de Colores: Activado",
|
|
43
|
+
"status.disabled": "Resaltador de Colores: Desactivado",
|
|
44
|
+
"status.loaded": "Plugin Resaltador de Colores cargado"
|
|
45
|
+
},
|
|
46
|
+
"fr": {
|
|
47
|
+
"cmd.enable": "Surligneur de Couleurs: Activer",
|
|
48
|
+
"cmd.enable_desc": "Activer le surlignage des codes couleur avec apercu",
|
|
49
|
+
"cmd.disable": "Surligneur de Couleurs: Desactiver",
|
|
50
|
+
"cmd.disable_desc": "Desactiver le surlignage des codes couleur",
|
|
51
|
+
"cmd.toggle": "Surligneur de Couleurs: Basculer",
|
|
52
|
+
"cmd.toggle_desc": "Basculer le surlignage des codes couleur",
|
|
53
|
+
"status.enabled": "Surligneur de Couleurs: Active",
|
|
54
|
+
"status.disabled": "Surligneur de Couleurs: Desactive",
|
|
55
|
+
"status.loaded": "Plugin Surligneur de Couleurs charge"
|
|
56
|
+
},
|
|
57
|
+
"it": {
|
|
58
|
+
"cmd.enable": "Evidenziatore colori: Attiva",
|
|
59
|
+
"cmd.enable_desc": "Attiva l'evidenziazione dei codici colore con campioni",
|
|
60
|
+
"cmd.disable": "Evidenziatore colori: Disattiva",
|
|
61
|
+
"cmd.disable_desc": "Disattiva l'evidenziazione dei codici colore",
|
|
62
|
+
"cmd.toggle": "Evidenziatore colori: Alterna",
|
|
63
|
+
"cmd.toggle_desc": "Alterna l'evidenziazione dei codici colore",
|
|
64
|
+
"status.enabled": "Evidenziatore colori: Attivato",
|
|
65
|
+
"status.disabled": "Evidenziatore colori: Disattivato",
|
|
66
|
+
"status.loaded": "Plugin Evidenziatore colori caricato"
|
|
67
|
+
},
|
|
68
|
+
"ja": {
|
|
69
|
+
"cmd.enable": "カラーハイライター: 有効化",
|
|
70
|
+
"cmd.enable_desc": "カラーコードのハイライトとスウォッチ表示を有効化",
|
|
71
|
+
"cmd.disable": "カラーハイライター: 無効化",
|
|
72
|
+
"cmd.disable_desc": "カラーコードのハイライトを無効化",
|
|
73
|
+
"cmd.toggle": "カラーハイライター: 切り替え",
|
|
74
|
+
"cmd.toggle_desc": "カラーコードのハイライトを切り替え",
|
|
75
|
+
"status.enabled": "カラーハイライター: 有効",
|
|
76
|
+
"status.disabled": "カラーハイライター: 無効",
|
|
77
|
+
"status.loaded": "カラーハイライタープラグインを読み込みました"
|
|
78
|
+
},
|
|
79
|
+
"ko": {
|
|
80
|
+
"cmd.enable": "색상 강조기: 활성화",
|
|
81
|
+
"cmd.enable_desc": "색상 코드 강조 및 견본 표시 활성화",
|
|
82
|
+
"cmd.disable": "색상 강조기: 비활성화",
|
|
83
|
+
"cmd.disable_desc": "색상 코드 강조 비활성화",
|
|
84
|
+
"cmd.toggle": "색상 강조기: 전환",
|
|
85
|
+
"cmd.toggle_desc": "색상 코드 강조 전환",
|
|
86
|
+
"status.enabled": "색상 강조기: 활성화됨",
|
|
87
|
+
"status.disabled": "색상 강조기: 비활성화됨",
|
|
88
|
+
"status.loaded": "색상 강조기 플러그인이 로드되었습니다"
|
|
89
|
+
},
|
|
90
|
+
"pt-BR": {
|
|
91
|
+
"cmd.enable": "Destacador de Cores: Ativar",
|
|
92
|
+
"cmd.enable_desc": "Ativar destaque de codigos de cor com amostras",
|
|
93
|
+
"cmd.disable": "Destacador de Cores: Desativar",
|
|
94
|
+
"cmd.disable_desc": "Desativar destaque de codigos de cor",
|
|
95
|
+
"cmd.toggle": "Destacador de Cores: Alternar",
|
|
96
|
+
"cmd.toggle_desc": "Alternar destaque de codigos de cor",
|
|
97
|
+
"status.enabled": "Destacador de Cores: Ativado",
|
|
98
|
+
"status.disabled": "Destacador de Cores: Desativado",
|
|
99
|
+
"status.loaded": "Plugin Destacador de Cores carregado"
|
|
100
|
+
},
|
|
101
|
+
"ru": {
|
|
102
|
+
"cmd.enable": "Подсветка цветов: Включить",
|
|
103
|
+
"cmd.enable_desc": "Включить подсветку цветовых кодов с образцами",
|
|
104
|
+
"cmd.disable": "Подсветка цветов: Выключить",
|
|
105
|
+
"cmd.disable_desc": "Выключить подсветку цветовых кодов",
|
|
106
|
+
"cmd.toggle": "Подсветка цветов: Переключить",
|
|
107
|
+
"cmd.toggle_desc": "Переключить подсветку цветовых кодов",
|
|
108
|
+
"status.enabled": "Подсветка цветов: Включена",
|
|
109
|
+
"status.disabled": "Подсветка цветов: Выключена",
|
|
110
|
+
"status.loaded": "Плагин подсветки цветов загружен"
|
|
111
|
+
},
|
|
112
|
+
"th": {
|
|
113
|
+
"cmd.enable": "ตัวเน้นสี: เปิดใช้งาน",
|
|
114
|
+
"cmd.enable_desc": "เปิดใช้งานการเน้นโค้ดสีพร้อมตัวอย่างสี",
|
|
115
|
+
"cmd.disable": "ตัวเน้นสี: ปิดใช้งาน",
|
|
116
|
+
"cmd.disable_desc": "ปิดใช้งานการเน้นโค้ดสี",
|
|
117
|
+
"cmd.toggle": "ตัวเน้นสี: สลับ",
|
|
118
|
+
"cmd.toggle_desc": "สลับการเน้นโค้ดสี",
|
|
119
|
+
"status.enabled": "ตัวเน้นสี: เปิดใช้งานแล้ว",
|
|
120
|
+
"status.disabled": "ตัวเน้นสี: ปิดใช้งานแล้ว",
|
|
121
|
+
"status.loaded": "โหลดปลั๊กอินตัวเน้นสีแล้ว"
|
|
122
|
+
},
|
|
123
|
+
"uk": {
|
|
124
|
+
"cmd.enable": "Підсвічування кольорів: Увімкнути",
|
|
125
|
+
"cmd.enable_desc": "Увімкнути підсвічування кольорових кодів зі зразками",
|
|
126
|
+
"cmd.disable": "Підсвічування кольорів: Вимкнути",
|
|
127
|
+
"cmd.disable_desc": "Вимкнути підсвічування кольорових кодів",
|
|
128
|
+
"cmd.toggle": "Підсвічування кольорів: Перемкнути",
|
|
129
|
+
"cmd.toggle_desc": "Перемкнути підсвічування кольорових кодів",
|
|
130
|
+
"status.enabled": "Підсвічування кольорів: Увімкнено",
|
|
131
|
+
"status.disabled": "Підсвічування кольорів: Вимкнено",
|
|
132
|
+
"status.loaded": "Плагін підсвічування кольорів завантажено"
|
|
133
|
+
},
|
|
134
|
+
"zh-CN": {
|
|
135
|
+
"cmd.enable": "颜色高亮器: 启用",
|
|
136
|
+
"cmd.enable_desc": "启用颜色代码高亮显示和色块预览",
|
|
137
|
+
"cmd.disable": "颜色高亮器: 禁用",
|
|
138
|
+
"cmd.disable_desc": "禁用颜色代码高亮显示",
|
|
139
|
+
"cmd.toggle": "颜色高亮器: 切换",
|
|
140
|
+
"cmd.toggle_desc": "切换颜色代码高亮显示",
|
|
141
|
+
"status.enabled": "颜色高亮器: 已启用",
|
|
142
|
+
"status.disabled": "颜色高亮器: 已禁用",
|
|
143
|
+
"status.loaded": "颜色高亮器插件已加载"
|
|
144
|
+
}
|
|
145
|
+
}
|