Skip to content

Commit 3259d04

Browse files
committed
Merge branch dev into published
2 parents 5497ffe + 26db90b commit 3259d04

File tree

10 files changed

+36
-19
lines changed

10 files changed

+36
-19
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ Changes to Calva.
44

55
## [Unreleased]
66

7+
## [2.0.496] - 2025-04-06
8+
9+
- Fix: [Broken characters in "Calva REPL Commands" menu](https://github.com/BetterThanTomorrow/calva/issues/2765)
10+
711
## [2.0.495] - 2025-03-24
812

913
- [Find calva.exports that are not in a JAR file](https://github.com/BetterThanTomorrow/calva/issues/2762)

bundled/drams-menu/drams-dev.edn

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
[{:title "Create a Getting Started REPL project",
1+
[{:title "Create a Getting Started REPL project",
22
:src "https://raw.githubusercontent.com/BetterThanTomorrow/dram/dev/drams/v2/calva_getting_started",
33
:description "An interactive guide introducing you to Calva and Clojure.",
44
:extraDetail "Requires Java"}
5-
{:title "Create a ClojureScript Quick Start Browser Project",
5+
{:title "Create a ClojureScript Quick Start Browser Project",
66
:src "https://raw.githubusercontent.com/BetterThanTomorrow/dram/dev/drams/v2/calva_cljs_browser_quick_start",
77
:extraDetail "Requires Java"}
8-
{:title "Create a ClojureScript Quick Start Node Project",
8+
{:title "Create a ClojureScript Quick Start Node Project",
99
:src "https://raw.githubusercontent.com/BetterThanTomorrow/dram/dev/drams/v2/calva_cljs_node_quick_start",
1010
:extraDetail "Requires Java & Node.js"}
1111
{:title "Create a mini Clojure project",

bundled/drams-menu/drams-published.edn

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
[{:title "Create a Getting Started REPL project",
1+
[{:title "Create a Getting Started REPL project",
22
:src "https://raw.githubusercontent.com/BetterThanTomorrow/dram/published/drams/v2/calva_getting_started",
33
:description "An interactive guide introducing you to Calva and Clojure.",
44
:extraDetail "Requires Java"}
5-
{:title "Create a ClojureScript Quick Start Browser Project",
5+
{:title "Create a ClojureScript Quick Start Browser Project",
66
:src "https://raw.githubusercontent.com/BetterThanTomorrow/dram/published/drams/v2/calva_cljs_browser_quick_start",
77
:extraDetail "Requires Java"}
8-
{:title "Create a ClojureScript Quick Start Node Project",
8+
{:title "Create a ClojureScript Quick Start Node Project",
99
:src "https://raw.githubusercontent.com/BetterThanTomorrow/dram/published/drams/v2/calva_cljs_node_quick_start",
1010
:extraDetail "Requires Java & Node.js"}
1111
{:title "Create a mini Clojure project",

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"displayName": "Calva: Clojure & ClojureScript Interactive Programming",
44
"description": "Integrated REPL, formatter, Paredit, and more. Powered by cider-nrepl and clojure-lsp.",
55
"icon": "assets/calva.png",
6-
"version": "2.0.495",
6+
"version": "2.0.496",
77
"publisher": "betterthantomorrow",
88
"author": {
99
"name": "Better Than Tomorrow",

src/extension-test/integration/suite/annotations-test.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ import * as testUtil from './util';
1111
suite('Annotations suite', () => {
1212
const suite = 'Annotations';
1313

14-
before(() => {
14+
before(async () => {
1515
testUtil.showMessage(suite, `suite starting!`);
16+
await testUtil.ensureOutputDir(testUtil.testDataDir);
1617
});
1718

1819
after(() => {

src/extension-test/integration/suite/jack-in-test.ts

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ suite('Jack-in suite', () => {
3333
before(async () => {
3434
testUtil.showMessage(suite, `suite starting!`);
3535
await vscode.workspace.fs.copy(settingsUri, settingsBackupUri, { overwrite: true });
36+
// Add this line to ensure output directory exists
37+
await testUtil.ensureOutputDir(testUtil.testDataDir);
3638
});
3739

3840
after(async () => {

src/extension-test/integration/suite/util.ts

+9
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,12 @@ export function createVscTextEditorProxy(editor: vscode.TextEditor): vscode.Text
104104

105105
return proxyEditor;
106106
}
107+
108+
export async function ensureOutputDir(projectPath: string): Promise<void> {
109+
const outputDir = path.join(projectPath, '.calva', 'output-window');
110+
try {
111+
await fs.promises.mkdir(outputDir, { recursive: true });
112+
} catch (err) {
113+
console.log(`Error creating output directory: ${err}`);
114+
}
115+
}

src/highlight/src/extension.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ export function activate(context: vscode.ExtensionContext) {
527527
vscode.window.onDidChangeActiveTextEditor(
528528
(editor) => {
529529
activeEditor = editor;
530-
if (is_clojure(editor)) {
530+
if (editor && is_clojure(editor)) {
531531
scheduleRainbowBrackets();
532532
}
533533
},
@@ -537,7 +537,8 @@ export function activate(context: vscode.ExtensionContext) {
537537

538538
vscode.window.onDidChangeTextEditorSelection(
539539
(event) => {
540-
if (event.textEditor === tryToGetActiveTextEditor() && is_clojure(event.textEditor)) {
540+
const activeEditor = tryToGetActiveTextEditor();
541+
if (activeEditor && event.textEditor === activeEditor && is_clojure(event.textEditor)) {
541542
if (lastHighlightedEditor !== event.textEditor) {
542543
scheduleRainbowBrackets();
543544
} else {
@@ -547,7 +548,10 @@ export function activate(context: vscode.ExtensionContext) {
547548
matchTimer = setTimeout(() => {
548549
matchPairs();
549550
if (highlightActiveIndent && rainbowTypes.length) {
550-
decorateActiveGuides();
551+
const activeEditor = tryToGetActiveTextEditor();
552+
if (activeEditor) {
553+
decorateActiveGuides();
554+
}
551555
}
552556
}, 16);
553557
}

src/utilities.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -454,12 +454,9 @@ function sortByPresetOrder(arr: any[], presetOrder: any[]) {
454454
}
455455

456456
function writeTextToFile(uri: vscode.Uri, text: string): Thenable<void> {
457-
const ab = new ArrayBuffer(text.length);
458-
const ui8a = new Uint8Array(ab);
459-
for (let i = 0, strLen = text.length; i < strLen; i++) {
460-
ui8a[i] = text.charCodeAt(i);
461-
}
462-
return vscode.workspace.fs.writeFile(uri, ui8a);
457+
const encoder = new TextEncoder();
458+
const uint8Array = encoder.encode(text);
459+
return vscode.workspace.fs.writeFile(uri, uint8Array);
463460
}
464461

465462
async function downloadFromUrl(fileUrl: string, savePath: string) {

0 commit comments

Comments
 (0)