Skip to content

Commit a4cffa9

Browse files
Merge remote-tracking branch 'origin/develop'
2 parents c384e7b + 6cbd231 commit a4cffa9

107 files changed

Lines changed: 8856 additions & 504 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,34 @@ Document some advanced types so users may try them out and provide feedback. The
1818

1919
Auto-complete for blocks re-work: Partial implementation of auto-complete for blocks that works better than the default snippets that exists. This functions for if-then-else only right now to verify the user experience is what it needs to be.
2020

21+
## 5.1.0 - August 2025
22+
23+
This verion introduces a new selection of IDL Tutorials! These come as a collection of notebooks to help new users get up and running. In the IDL sidebar, you'll see a new section called "IDL Tutorials" with language-specific content.
24+
25+
> With this change, we have also migrated the ENVI and IDL Example notebooks under the tutorials section.
26+
27+
Add a new auto-complete for block statements (i.e. if-then-begin) that functions much better compared to what we had. If there are any weird cases, or cases for block auto-complete that are missing, let us know and we can add them in.
28+
29+
Add a new sidebar entry to launch a session of ENVI and IDL. Requires an ENVI license and that you are using the IDL that is packaged with ENVI.
30+
31+
With the extension including GitHub Copilot integration, we have changed the extension so that it always activates in VSCode. Otherwise tools in Agent mode through GitHub Copilot would fail to run as our extension was not started.
32+
33+
Tweak hanging indent for procedures and procedure methods to use the first comma as the syntax we align to.
34+
35+
Fix an issue with catching standalone expressions where the problem would be incorrectly reported for chained property access.
36+
37+
Fix docs issues with `colorbar()` function not having all properties for keywords.
38+
39+
Fix docs issue where "ipm" was an unknown structure and would throw fake errors when using the static methods on the class.
40+
41+
Fixed an issue where IDL would show an error message about being unable to check the version if you had an IDL_STARTUP file specified that generated output.
42+
43+
Potentially fix an issue with auto-complete that would occur sometimes with code blocks.
44+
45+
Updated type parsing to support older code that used the name of the functions to create arrays as array types. We now map types such as "bytarr" to the proper IDL types of "Array<Byte>" for full type/auto complete support.
46+
47+
Tweak notebook formatting that removes the trailing space at the end of cells. When you have many cells, this adds empty space that's not always needed or helpful.
48+
2149
## 5.0.1 - July 2024
2250

2351
Fix a bug with IDL Notebooks when you would open a new notebook though the MCP tools.

apps/client-e2e/src/tests/interactions/code-actions/execute-code-actions-with-edits.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { GetExtensionPath } from '@idl/idl/files';
22
import { IDL_COMMANDS, Sleep } from '@idl/shared/extension';
3+
import { SplitCode } from '@idl/tokenizer';
34
import { AutoFixProblem } from '@idl/types/problem-codes';
45
import { OpenFileInVSCode, OpenNotebookInVSCode } from '@idl/vscode/shared';
56
import expect from 'expect';
@@ -83,12 +84,14 @@ export const ExecuteCodeActionsWithEditForNotebook: RunnerFunction = async (
8384
const doc = nb.getCells()[edit[0].cell].document;
8485

8586
// make sure output is correct
86-
expect(doc.getText()).toEqual(
87-
readFileSync(
88-
GetExtensionPath(
89-
'idl/test/client-e2e/problems/code_actions_fix_cell_after.pro'
90-
),
91-
'utf-8'
87+
expect(SplitCode(doc.getText())).toEqual(
88+
SplitCode(
89+
readFileSync(
90+
GetExtensionPath(
91+
'idl/test/client-e2e/problems/code_actions_fix_cell_after.pro'
92+
),
93+
'utf-8'
94+
)
9295
)
9396
);
9497
};

apps/client-e2e/src/tests/notebooks/_notebook-runner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ NOTEBOOK_RUNNER.addTest({
210210
});
211211

212212
NOTEBOOK_RUNNER.addTest({
213-
name: 'Replace cell paths for stops',
213+
name: 'Replace cell paths for stops and make sure stop always works',
214214
fn: NotebooksReplaceCellPathsOnStop,
215215
});
216216

apps/client-e2e/src/tests/notebooks/notebooks-replace-cell-paths-on-stop.ts

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,23 @@ import { OpenNotebookInVSCode } from '@idl/vscode/shared';
55
import expect from 'expect';
66
import * as vscode from 'vscode';
77

8+
import { CLIENT_E2E_CONFIG } from '../client-e2e-config.interface';
89
import { RunnerFunction } from '../runner.interface';
10+
import { CompareCellOutputs } from './helpers/compare-cells';
11+
import { ICompareCellOutputs } from './helpers/compare-cells.interface';
912
import { CompareNotebookJSONOutputs } from './helpers/compare-notebook-json-outputs';
1013

14+
/**
15+
* Types of outputs from cells that we expect to have
16+
*/
17+
export const CELL_OUTPUT: ICompareCellOutputs[] = [
18+
{
19+
idx: 0,
20+
success: false,
21+
mimeTypes: ['text/plain'],
22+
},
23+
];
24+
1125
/**
1226
* Verifies we replace paths when we stop
1327
*/
@@ -24,14 +38,45 @@ export const NotebooksReplaceCellPathsOnStop: RunnerFunction = async (init) => {
2438
const nb = await OpenNotebookInVSCode(nbUri, true);
2539

2640
// short pause to parse
27-
await Sleep(500);
41+
await Sleep(CLIENT_E2E_CONFIG.DELAYS.DEFAULT);
2842

2943
// run all cells
3044
await vscode.commands.executeCommand(VSCODE_COMMANDS.NOTEBOOK_RUN_ALL);
3145

3246
// save to disk
3347
await nb.save();
3448

49+
// wait
50+
await Sleep(CLIENT_E2E_CONFIG.DELAYS.PROBLEMS_NOTEBOOK);
51+
52+
// compare cells
53+
await CompareCellOutputs(nb, CELL_OUTPUT);
54+
55+
/**
56+
* ==================================================================
57+
* Run all cells again and compare the outputs to make sure
58+
* we catch stopping right
59+
* ==================================================================
60+
*/
61+
62+
// run all cells
63+
await vscode.commands.executeCommand(VSCODE_COMMANDS.NOTEBOOK_RUN_ALL);
64+
65+
// save to disk
66+
await nb.save();
67+
68+
// wait
69+
await Sleep(CLIENT_E2E_CONFIG.DELAYS.PROBLEMS_NOTEBOOK);
70+
71+
// compare cells
72+
await CompareCellOutputs(nb, CELL_OUTPUT);
73+
74+
/**
75+
* ==================================================================
76+
* Make sure JSON paths match
77+
* ==================================================================
78+
*/
79+
3580
// compare outputs
3681
await CompareNotebookJSONOutputs(expectedUri, nbUri);
3782

apps/client-e2e/src/tests/notebooks/open-envi-notebook-example.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ import { RunnerFunction } from '../runner.interface';
1717
export const OpenENVINotebookExample: RunnerFunction = async (init) => {
1818
// make a new notebook
1919
await vscode.commands.executeCommand(
20-
IDL_COMMANDS.NOTEBOOKS.OPEN_ENVI_EXAMPLE
20+
IDL_COMMANDS.TUTORIALS.OPEN_IDL_TUTORIAL,
21+
'hello-world-envi.idlnb'
2122
);
2223

2324
// short pause

apps/client-e2e/src/tests/notebooks/open-idl-notebook-example.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ import { RunnerFunction } from '../runner.interface';
1616
*/
1717
export const OpenIDLNotebookExample: RunnerFunction = async (init) => {
1818
// make a new notebook
19-
await vscode.commands.executeCommand(IDL_COMMANDS.NOTEBOOKS.OPEN_IDL_EXAMPLE);
19+
await vscode.commands.executeCommand(
20+
IDL_COMMANDS.TUTORIALS.OPEN_IDL_TUTORIAL,
21+
'hello-world-idl.idlnb'
22+
);
2023

2124
// short pause
2225
await Sleep(100);

apps/client-e2e/src/tests/notebooks/reset-notebook-examples.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ export const ResetNotebookExamples: RunnerFunction = async (init) => {
2020
expect(existsSync(EXAMPLE_NOTEBOOKS)).toBeFalsy();
2121

2222
// close
23-
await vscode.commands.executeCommand(
24-
IDL_COMMANDS.NOTEBOOKS.RESET_NOTEBOOK_EXAMPLES
25-
);
23+
await vscode.commands.executeCommand(IDL_COMMANDS.TUTORIALS.RESET_TUTORIALS);
2624

2725
// pause momentarily
2826
await Sleep(100);

apps/client-web/tsconfig.app.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@
144144
],
145145
"@idl/vscode/help-view": ["libs/vscode/help-view/src/index.ts"],
146146
"@idl/vscode/idl-machine": ["libs/vscode/idl-machine/src/index.ts"],
147+
"@idl/vscode/idl-tutorials": ["libs/vscode/idl-tutorials/src/index.ts"],
147148
"@idl/vscode/initialize-types": [
148149
"libs/vscode/initialize-types/src/index.ts"
149150
],

apps/client/src/main.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { InitializeDebugger } from '@idl/vscode/debug';
99
import { IDL_DECORATIONS_MANAGER } from '@idl/vscode/decorations';
1010
import { InitializeDocs } from '@idl/vscode/docs';
1111
import { InitializeENVIOpener } from '@idl/vscode/envi-opener';
12+
import { InitializeIDLTutorials } from '@idl/vscode/idl-tutorials';
1213
import { IInitializeType } from '@idl/vscode/initialize-types';
1314
import { InitializeNotebooks } from '@idl/vscode/notebooks/client';
1415
import { InitializeIDLTerminal } from '@idl/vscode/terminal';
@@ -53,6 +54,8 @@ export async function activate(
5354
// initialize our tree view
5455
InitializeTree(ctx, false);
5556

57+
InitializeIDLTutorials(ctx);
58+
5659
// return result
5760
return {
5861
client,

apps/idl-docs-parser/src/overrides/detail/structures.interface.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ export const ADD_STRUCTURES: {
2525
display: 'idl_shape_entity',
2626
source: 'idl',
2727
},
28+
ipm: {
29+
display: 'ipm',
30+
source: 'idl',
31+
},
2832
};
2933

3034
/**
@@ -422,6 +426,9 @@ export const STRUCTURE_OVERRIDE: IStructureOverride = {
422426
idlitcomponent: {
423427
display: 'IDLitComponent',
424428
},
429+
ipm: {
430+
display: 'ipm',
431+
},
425432
envivector: {
426433
display: 'ENVIVector',
427434
properties: {

0 commit comments

Comments
 (0)