diff --git a/.astro/astro/content.d.ts b/.astro/astro/content.d.ts index 9ac46a8..f35cff7 100644 --- a/.astro/astro/content.d.ts +++ b/.astro/astro/content.d.ts @@ -152,9 +152,9 @@ declare module 'astro:content' { type ContentEntryMap = { "docs": { -"browsers/goToFile.mdx": { - id: "browsers/goToFile.mdx"; - slug: "browsers/gotofile"; +"browsers/go-to-file.mdx": { + id: "browsers/go-to-file.mdx"; + slug: "browsers/go-to-file"; body: string; collection: "docs"; data: InferEntrySchema<"docs"> @@ -229,27 +229,6 @@ declare module 'astro:content' { collection: "docs"; data: InferEntrySchema<"docs"> } & { render(): Render[".mdx"] }; -"developing/actions/custom-vars.mdx": { - id: "developing/actions/custom-vars.mdx"; - slug: "developing/actions/custom-vars"; - body: string; - collection: "docs"; - data: InferEntrySchema<"docs"> -} & { render(): Render[".mdx"] }; -"developing/actions/execution.mdx": { - id: "developing/actions/execution.mdx"; - slug: "developing/actions/execution"; - body: string; - collection: "docs"; - data: InferEntrySchema<"docs"> -} & { render(): Render[".mdx"] }; -"developing/actions/index.mdx": { - id: "developing/actions/index.mdx"; - slug: "developing/actions"; - body: string; - collection: "docs"; - data: InferEntrySchema<"docs"> -} & { render(): Render[".mdx"] }; "developing/debug/configure.mdx": { id: "developing/debug/configure.mdx"; slug: "developing/debug/configure"; @@ -376,6 +355,34 @@ declare module 'astro:content' { collection: "docs"; data: InferEntrySchema<"docs"> } & { render(): Render[".mdx"] }; +"environment/actions.mdx": { + id: "environment/actions.mdx"; + slug: "environment/actions"; + body: string; + collection: "docs"; + data: InferEntrySchema<"docs"> +} & { render(): Render[".mdx"] }; +"environment/index.mdx": { + id: "environment/index.mdx"; + slug: "environment"; + body: string; + collection: "docs"; + data: InferEntrySchema<"docs"> +} & { render(): Render[".mdx"] }; +"environment/profiles.mdx": { + id: "environment/profiles.mdx"; + slug: "environment/profiles"; + body: string; + collection: "docs"; + data: InferEntrySchema<"docs"> +} & { render(): Render[".mdx"] }; +"environment/variables.mdx": { + id: "environment/variables.mdx"; + slug: "environment/variables"; + body: string; + collection: "docs"; + data: InferEntrySchema<"docs"> +} & { render(): Render[".mdx"] }; "extensions/clle/index.mdx": { id: "extensions/clle/index.mdx"; slug: "extensions/clle"; @@ -516,13 +523,6 @@ declare module 'astro:content' { collection: "docs"; data: InferEntrySchema<"docs"> } & { render(): Render[".mdx"] }; -"settings/profiles.mdx": { - id: "settings/profiles.mdx"; - slug: "settings/profiles"; - body: string; - collection: "docs"; - data: InferEntrySchema<"docs"> -} & { render(): Render[".mdx"] }; "settings/system.mdx": { id: "settings/system.mdx"; slug: "settings/system"; diff --git a/astro.config.mjs b/astro.config.mjs index 27c2472..cae1b62 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,13 +1,13 @@ -import { defineConfig } from 'astro/config'; import starlight from '@astrojs/starlight'; -import rpgleLang from './src/syntaxes/rpgle.tmLanguage.json'; +import { defineConfig } from 'astro/config'; import clLang from './src/syntaxes/cl.tmLanguage.json'; +import rpgleLang from './src/syntaxes/rpgle.tmLanguage.json'; // https://astro.build/config export default defineConfig({ site: 'https://codefori.github.io', base: '/docs', - trailingSlash: 'always', + trailingSlash: 'always', integrations: [ starlight({ pagination: false, @@ -26,52 +26,47 @@ export default defineConfig({ customCss: [ './src/styles/custom.css', ], - sidebar: - [ - { - label: 'Home', - link: '/', - }, - { - label: 'Install', - link: 'install/', - }, - { - label: 'Quick Start', - link: 'quickstart/', - badge: { - variant: 'note', - text: 'Start Here!' - } - }, - { - label: 'Help and Support', - link: 'help-and-support/', - }, - { - label: 'Developing', - items: [ - { - label: 'Editing and compiling', - link: 'developing/editing-compiling/', - }, - { - label: 'Source Dates', - link: 'developing/sourcedates/', - }, - { - label: 'Actions', - autogenerate: { directory: 'developing/actions/' }, - collapsed: true, - }, - { - label: 'Testing', - badge: { - text: 'NEW', - variant: 'tip' - }, - collapsed: true, - items: [ + sidebar: + [ + { + label: 'Home', + link: '/', + }, + { + label: 'Install', + link: 'install/', + }, + { + label: 'Quick Start', + link: 'quickstart/', + badge: { + variant: 'note', + text: 'Start Here!' + } + }, + { + label: 'Help and Support', + link: 'help-and-support/', + }, + { + label: 'Developing', + items: [ + { + label: 'Editing and compiling', + link: 'developing/editing-compiling/', + }, + { + label: 'Source Dates', + link: 'developing/sourcedates/', + }, + { + label: 'Testing', + badge: { + text: 'NEW', + variant: 'tip' + }, + collapsed: true, + items: [ { label: 'Overview', link: 'developing/testing/overview', @@ -97,15 +92,15 @@ export default defineConfig({ link: 'developing/testing/troubleshooting', } ] - }, - { - label: 'Debugging', - badge: { - text: 'Updated', - variant: 'success' - }, - collapsed: true, - items: [ + }, + { + label: 'Debugging', + badge: { + text: 'Updated', + variant: 'success' + }, + collapsed: true, + items: [ { label: 'Overview', link: 'developing/debug/overview', @@ -115,103 +110,124 @@ export default defineConfig({ link: 'developing/debug/configure', } ] - }, - { - label: 'ILEDocs', - link: 'developing/iledocs/', - }, - { - label: 'Local Development', - autogenerate: { directory: 'developing/local/' }, - collapsed: true, - }, - ], - collapsed: false, - }, - { - label: 'Browsers', - items: [ - { - label: 'IBM i Browsers', - link: 'browsers/', - }, - { - label: 'Object Browser', - link: 'browsers/object-browser/', - }, - { - label: 'IFS Browser', - link: 'browsers/ifs-browser/', - }, - { - label: 'User Library List', - link: 'browsers/user-library-list/', - }, - { - label: 'Go To File', - link: 'browsers/goToFile/', - }, - { - label: 'IBM i FileSystem', - autogenerate: { directory: 'extensions/ibmi-fs/' }, - collapsed: true, - badge: { - text: 'NEW', - variant: 'tip' - }, - }, - ], - collapsed: false, - }, - { - label: 'Languages', - items: [ - { - label: 'RPGLE', - autogenerate: { directory: 'extensions/rpgle/' }, - collapsed: true, - }, - { - label: 'CLLE', - link: 'extensions/clle' - }, - { - label: 'Renderer', - link: 'extensions/renderer', - badge: { - text: 'dds', - variant: 'default' - }, - }, - { - label: 'Db2 for i', - autogenerate:{ directory: 'extensions/db2i/'}, - collapsed: true, - badge: { - text: 'New AI', - variant: 'default' - }, - }, - ], - collapsed: false, - }, - { - label: 'Tips', - autogenerate: { directory: 'tips/' }, - collapsed: false, - }, - { - label: 'Settings', - autogenerate: { directory: 'settings/' }, - collapsed: true, - }, - { - label: 'Extension Development', - autogenerate: { directory: 'dev/'}, - collapsed: true, - } - - ], + }, + { + label: 'ILEDocs', + link: 'developing/iledocs/', + }, + { + label: 'Local Development', + autogenerate: { directory: 'developing/local/' }, + collapsed: true, + }, + ], + collapsed: false, + }, + { + label: 'Environment', + items: [ + { + label: 'Environment view', + link: 'environment/', + }, + { + label: 'Actions', + link: 'environment/actions/', + }, + { + label: 'Custom variables', + link: 'environment/variables', + }, + { + label: 'Profiles', + link: 'environment/profiles', + } + ] + }, + { + label: 'Browsers', + items: [ + { + label: 'IBM i Browsers', + link: 'browsers/', + }, + { + label: 'Object Browser', + link: 'browsers/object-browser/', + }, + { + label: 'IFS Browser', + link: 'browsers/ifs-browser/', + }, + { + label: 'User Library List', + link: 'browsers/user-library-list/', + }, + { + label: 'Go To File', + link: 'browsers/go-to-file/', + }, + { + label: 'IBM i FileSystem', + autogenerate: { directory: 'extensions/ibmi-fs/' }, + collapsed: true, + badge: { + text: 'NEW', + variant: 'tip' + }, + }, + ], + collapsed: false, + }, + { + label: 'Languages', + items: [ + { + label: 'RPGLE', + autogenerate: { directory: 'extensions/rpgle/' }, + collapsed: true, + }, + { + label: 'CLLE', + link: 'extensions/clle' + }, + { + label: 'Renderer', + link: 'extensions/renderer', + badge: { + text: 'dds', + variant: 'default' + }, + }, + { + label: 'Db2 for i', + autogenerate: { directory: 'extensions/db2i/' }, + collapsed: true, + badge: { + text: 'New AI', + variant: 'default' + }, + }, + ], + collapsed: false, + }, + { + label: 'Tips', + autogenerate: { directory: 'tips/' }, + collapsed: false, + }, + { + label: 'Settings', + autogenerate: { directory: 'settings/' }, + collapsed: true, + }, + { + label: 'Extension Development', + autogenerate: { directory: 'dev/' }, + collapsed: true, + } + + ], defaultLocale: 'root', locales: { root: { diff --git a/src/assets/code_for_i/features/actions/actions_custom_01.png b/src/assets/code_for_i/features/actions/actions_custom_01.png deleted file mode 100644 index d7df14c..0000000 Binary files a/src/assets/code_for_i/features/actions/actions_custom_01.png and /dev/null differ diff --git a/src/assets/code_for_i/features/actions/actions_custom_01a.png b/src/assets/code_for_i/features/actions/actions_custom_01a.png deleted file mode 100644 index bb0b7e1..0000000 Binary files a/src/assets/code_for_i/features/actions/actions_custom_01a.png and /dev/null differ diff --git a/src/assets/code_for_i/features/actions/actions_custom_03.png b/src/assets/code_for_i/features/actions/actions_custom_03.png deleted file mode 100644 index 70fe5c6..0000000 Binary files a/src/assets/code_for_i/features/actions/actions_custom_03.png and /dev/null differ diff --git a/src/assets/code_for_i/features/actions/actions_custom_04.png b/src/assets/code_for_i/features/actions/actions_custom_04.png deleted file mode 100644 index 65b3388..0000000 Binary files a/src/assets/code_for_i/features/actions/actions_custom_04.png and /dev/null differ diff --git a/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Load_01.png b/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Load_01.png deleted file mode 100644 index 9d16b49..0000000 Binary files a/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Load_01.png and /dev/null differ diff --git a/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Load_02.png b/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Load_02.png deleted file mode 100644 index df0388a..0000000 Binary files a/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Load_02.png and /dev/null differ diff --git a/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Save_01.png b/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Save_01.png deleted file mode 100644 index 5243a0a..0000000 Binary files a/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Save_01.png and /dev/null differ diff --git a/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Setting_01.png b/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Setting_01.png deleted file mode 100644 index 3dea92f..0000000 Binary files a/src/assets/code_for_i/features/environment_profiles/Connect_Profile_Setting_01.png and /dev/null differ diff --git a/src/assets/code_for_i/features/environment_profiles/command_profile.png b/src/assets/code_for_i/features/environment_profiles/command_profile.png deleted file mode 100644 index 8a81558..0000000 Binary files a/src/assets/code_for_i/features/environment_profiles/command_profile.png and /dev/null differ diff --git a/src/assets/db2_for_i/features/self/codes.png b/src/assets/db2_for_i/features/self/codes.png new file mode 100644 index 0000000..0a635e0 Binary files /dev/null and b/src/assets/db2_for_i/features/self/codes.png differ diff --git a/src/assets/db2_for_i/features/self/selfauto.png b/src/assets/db2_for_i/features/self/selfauto.png new file mode 100644 index 0000000..abbe14a Binary files /dev/null and b/src/assets/db2_for_i/features/self/selfauto.png differ diff --git a/src/assets/db2_for_i/features/self/selfdefault.png b/src/assets/db2_for_i/features/self/selfdefault.png new file mode 100644 index 0000000..e88a7e5 Binary files /dev/null and b/src/assets/db2_for_i/features/self/selfdefault.png differ diff --git a/src/assets/environment/actions_01.png b/src/assets/environment/actions_01.png new file mode 100644 index 0000000..db5e23f Binary files /dev/null and b/src/assets/environment/actions_01.png differ diff --git a/src/assets/environment/actions_02.png b/src/assets/environment/actions_02.png new file mode 100644 index 0000000..1ddbbc1 Binary files /dev/null and b/src/assets/environment/actions_02.png differ diff --git a/src/assets/environment/actions_03.png b/src/assets/environment/actions_03.png new file mode 100644 index 0000000..fe41c64 Binary files /dev/null and b/src/assets/environment/actions_03.png differ diff --git a/src/assets/environment/actions_04.png b/src/assets/environment/actions_04.png new file mode 100644 index 0000000..6caf98f Binary files /dev/null and b/src/assets/environment/actions_04.png differ diff --git a/src/assets/environment/actions_05.png b/src/assets/environment/actions_05.png new file mode 100644 index 0000000..e4b1ab6 Binary files /dev/null and b/src/assets/environment/actions_05.png differ diff --git a/src/assets/environment/actions_06.png b/src/assets/environment/actions_06.png new file mode 100644 index 0000000..42dc463 Binary files /dev/null and b/src/assets/environment/actions_06.png differ diff --git a/src/assets/environment/actions_07.png b/src/assets/environment/actions_07.png new file mode 100644 index 0000000..3d64d05 Binary files /dev/null and b/src/assets/environment/actions_07.png differ diff --git a/src/assets/environment/actions_08.png b/src/assets/environment/actions_08.png new file mode 100644 index 0000000..c99be4b Binary files /dev/null and b/src/assets/environment/actions_08.png differ diff --git a/src/assets/environment/actions_09.png b/src/assets/environment/actions_09.png new file mode 100644 index 0000000..3b7fa20 Binary files /dev/null and b/src/assets/environment/actions_09.png differ diff --git a/src/assets/environment/actions_10.png b/src/assets/environment/actions_10.png new file mode 100644 index 0000000..7ed5f00 Binary files /dev/null and b/src/assets/environment/actions_10.png differ diff --git a/src/assets/environment/actions_11.png b/src/assets/environment/actions_11.png new file mode 100644 index 0000000..ca3736d Binary files /dev/null and b/src/assets/environment/actions_11.png differ diff --git a/src/assets/environment/actions_12.png b/src/assets/environment/actions_12.png new file mode 100644 index 0000000..455d6f4 Binary files /dev/null and b/src/assets/environment/actions_12.png differ diff --git a/src/assets/environment/actions_13.png b/src/assets/environment/actions_13.png new file mode 100644 index 0000000..5585720 Binary files /dev/null and b/src/assets/environment/actions_13.png differ diff --git a/src/assets/code_for_i/features/actions/actions_exec_01.png b/src/assets/environment/actions_exec_01.png similarity index 100% rename from src/assets/code_for_i/features/actions/actions_exec_01.png rename to src/assets/environment/actions_exec_01.png diff --git a/src/assets/code_for_i/features/actions/actions_exec_02.png b/src/assets/environment/actions_exec_02.png similarity index 100% rename from src/assets/code_for_i/features/actions/actions_exec_02.png rename to src/assets/environment/actions_exec_02.png diff --git a/src/assets/code_for_i/features/actions/actions_exec_03.png b/src/assets/environment/actions_exec_03.png similarity index 100% rename from src/assets/code_for_i/features/actions/actions_exec_03.png rename to src/assets/environment/actions_exec_03.png diff --git a/src/assets/code_for_i/features/actions/actions_exec_04.png b/src/assets/environment/actions_exec_04.png similarity index 100% rename from src/assets/code_for_i/features/actions/actions_exec_04.png rename to src/assets/environment/actions_exec_04.png diff --git a/src/assets/code_for_i/features/actions/actions_exec_05.png b/src/assets/environment/actions_exec_05.png similarity index 100% rename from src/assets/code_for_i/features/actions/actions_exec_05.png rename to src/assets/environment/actions_exec_05.png diff --git a/src/assets/code_for_i/features/actions/compile_04.png b/src/assets/environment/compile_04.png similarity index 100% rename from src/assets/code_for_i/features/actions/compile_04.png rename to src/assets/environment/compile_04.png diff --git a/src/assets/environment/profiles_01.png b/src/assets/environment/profiles_01.png new file mode 100644 index 0000000..ac3c867 Binary files /dev/null and b/src/assets/environment/profiles_01.png differ diff --git a/src/assets/environment/profiles_02.png b/src/assets/environment/profiles_02.png new file mode 100644 index 0000000..ed6f3e9 Binary files /dev/null and b/src/assets/environment/profiles_02.png differ diff --git a/src/assets/environment/profiles_03.png b/src/assets/environment/profiles_03.png new file mode 100644 index 0000000..ab51001 Binary files /dev/null and b/src/assets/environment/profiles_03.png differ diff --git a/src/assets/environment/profiles_04.png b/src/assets/environment/profiles_04.png new file mode 100644 index 0000000..e753497 Binary files /dev/null and b/src/assets/environment/profiles_04.png differ diff --git a/src/assets/environment/profiles_05.png b/src/assets/environment/profiles_05.png new file mode 100644 index 0000000..ae3e279 Binary files /dev/null and b/src/assets/environment/profiles_05.png differ diff --git a/src/assets/environment/profiles_06.png b/src/assets/environment/profiles_06.png new file mode 100644 index 0000000..3c7ffb1 Binary files /dev/null and b/src/assets/environment/profiles_06.png differ diff --git a/src/assets/environment/profiles_07.png b/src/assets/environment/profiles_07.png new file mode 100644 index 0000000..61bf18e Binary files /dev/null and b/src/assets/environment/profiles_07.png differ diff --git a/src/assets/environment/profiles_08.png b/src/assets/environment/profiles_08.png new file mode 100644 index 0000000..362de0e Binary files /dev/null and b/src/assets/environment/profiles_08.png differ diff --git a/src/assets/environment/profiles_09.png b/src/assets/environment/profiles_09.png new file mode 100644 index 0000000..88edc28 Binary files /dev/null and b/src/assets/environment/profiles_09.png differ diff --git a/src/assets/environment/profiles_10.png b/src/assets/environment/profiles_10.png new file mode 100644 index 0000000..9d7acb4 Binary files /dev/null and b/src/assets/environment/profiles_10.png differ diff --git a/src/assets/environment/profiles_11.png b/src/assets/environment/profiles_11.png new file mode 100644 index 0000000..2582f06 Binary files /dev/null and b/src/assets/environment/profiles_11.png differ diff --git a/src/assets/environment/variables_01.png b/src/assets/environment/variables_01.png new file mode 100644 index 0000000..94f3f9f Binary files /dev/null and b/src/assets/environment/variables_01.png differ diff --git a/src/assets/environment/variables_02.png b/src/assets/environment/variables_02.png new file mode 100644 index 0000000..fd5afd5 Binary files /dev/null and b/src/assets/environment/variables_02.png differ diff --git a/src/assets/environment/variables_03.png b/src/assets/environment/variables_03.png new file mode 100644 index 0000000..7d20cdc Binary files /dev/null and b/src/assets/environment/variables_03.png differ diff --git a/src/assets/environment/variables_04.png b/src/assets/environment/variables_04.png new file mode 100644 index 0000000..8902e03 Binary files /dev/null and b/src/assets/environment/variables_04.png differ diff --git a/src/assets/environment/variables_05.png b/src/assets/environment/variables_05.png new file mode 100644 index 0000000..993cce2 Binary files /dev/null and b/src/assets/environment/variables_05.png differ diff --git a/src/assets/environment/view_01.png b/src/assets/environment/view_01.png new file mode 100644 index 0000000..6085fba Binary files /dev/null and b/src/assets/environment/view_01.png differ diff --git a/src/content/docs/browsers/goToFile.mdx b/src/content/docs/browsers/go-to-file.mdx similarity index 94% rename from src/content/docs/browsers/goToFile.mdx rename to src/content/docs/browsers/go-to-file.mdx index c8b6ed0..4693ac3 100644 --- a/src/content/docs/browsers/goToFile.mdx +++ b/src/content/docs/browsers/go-to-file.mdx @@ -4,7 +4,7 @@ title: Go To File There is a fast way to navigate to source members and streamfiles through VS Code without using the Object Browser or IFS Browser. This is done by using the `IBM i: Go to File` feature. -![Browsers](/src/assets/code_for_i/features/miscellaneous/goToFile.png) +![Browsers](../../../assets/code_for_i/features/miscellaneous/goToFile.png) To use the `Go To File` feature, press `Ctrl+Alt+P` or `Cmd+Option+P` on Mac. This will open a dialog box where you can type the name of the file you want to open. The dialog box will show a list of files that match the name you typed. You can use the arrow keys to navigate through the list and press `Enter` to open the file. You can also paste in a source member path or IFS path. diff --git a/src/content/docs/browsers/ifs-browser.mdx b/src/content/docs/browsers/ifs-browser.mdx index aee2579..d252a85 100644 --- a/src/content/docs/browsers/ifs-browser.mdx +++ b/src/content/docs/browsers/ifs-browser.mdx @@ -6,6 +6,6 @@ This shows directories and files in the IFS. Click on a source file to open it Add extra shortcuts as needed: -![Add shortcut](/src/assets/code_for_i/features/IFS_browser/BrowserIFS_01.png) +![Add shortcut](../../../assets/code_for_i/features/IFS_browser/BrowserIFS_01.png) -![Shortcuts added](/src/assets/code_for_i/features/IFS_browser/BrowserIFS_02.png) \ No newline at end of file +![Shortcuts added](../../../assets/code_for_i/features/IFS_browser/BrowserIFS_02.png) \ No newline at end of file diff --git a/src/content/docs/browsers/index.mdx b/src/content/docs/browsers/index.mdx index b852c33..ba19fda 100644 --- a/src/content/docs/browsers/index.mdx +++ b/src/content/docs/browsers/index.mdx @@ -4,8 +4,8 @@ title: IBM i Browsers In the side bar there are several browsers to display and intereact with various parts of the IBM i: -![Browsers](/src/assets/code_for_i/features/IFS_browser/BrowserIFS_03.png) +![Browsers](../../../assets/code_for_i/features/IFS_browser/BrowserIFS_03.png) Each of these browsers can be expanded by clicking on it. Click on, or hover over, the browser title to see its action icons. Hover over each icon to see what it does. -![Browser icons](/src/assets/code_for_i/features/object_browser/Browser_02.png) \ No newline at end of file +![Browser icons](../../../assets/code_for_i/features/object_browser/Browser_02.png) \ No newline at end of file diff --git a/src/content/docs/browsers/object-browser.mdx b/src/content/docs/browsers/object-browser.mdx index 0f7749e..c09750d 100644 --- a/src/content/docs/browsers/object-browser.mdx +++ b/src/content/docs/browsers/object-browser.mdx @@ -15,7 +15,7 @@ Click on the **+ Create new filter** prompt to create your first filter (or clic -![Create New filter](/src/assets/code_for_i/features/object_browser/Browser_03.png) +![Create New filter](../../../assets/code_for_i/features/object_browser/Browser_03.png) @@ -30,7 +30,7 @@ Complete the new filter dialog. The explanatory text in the Create Filter dialog -![New Filter dialog](/src/assets/code_for_i/features/object_browser/Browser_04.png) +![New Filter dialog](../../../assets/code_for_i/features/object_browser/Browser_04.png) @@ -47,7 +47,7 @@ The above filter example lists all source files in library `LENNONS1`: -![Expanded filter](/src/assets/code_for_i/features/object_browser/Browser_05.png) +![Expanded filter](../../../assets/code_for_i/features/object_browser/Browser_05.png) @@ -62,7 +62,7 @@ The above filter example lists all source files in library `LENNONS1`: -![Additional Filters](/src/assets/code_for_i/features/object_browser/Browser_06.png) +![Additional Filters](../../../assets/code_for_i/features/object_browser/Browser_06.png) @@ -80,7 +80,7 @@ To quickly create filters without having to fill out the filter dialog, click on -![Create Quick Filter](/src/assets/code_for_i/features/object_browser/Browser_11.png) +![Create Quick Filter](../../../assets/code_for_i/features/object_browser/Browser_11.png) @@ -97,7 +97,7 @@ Changing a filter definition is quick and easy. Just right click on the filter a -![Maintian filter](/src/assets/code_for_i/features/object_browser/Browser_10.png) +![Maintian filter](../../../assets/code_for_i/features/object_browser/Browser_10.png) @@ -107,16 +107,16 @@ Changing a filter definition is quick and easy. Just right click on the filter a **Single File Filter** -![Single file filter](/src/assets/code_for_i/features/object_browser/Browser_07.png) +![Single file filter](../../../assets/code_for_i/features/object_browser/Browser_07.png) **Subsetted source member example** A single source file files subsetting just some members: -![Subset Members](/src/assets/code_for_i/features/object_browser/Browser_08.png) +![Subset Members](../../../assets/code_for_i/features/object_browser/Browser_08.png) **Non Source Example** Some programs in a library: -![programs filter](/src/assets/code_for_i/features/object_browser/Browser_09.png) +![programs filter](../../../assets/code_for_i/features/object_browser/Browser_09.png) diff --git a/src/content/docs/dev/debugger.mdx b/src/content/docs/dev/debugger.mdx index e197840..10e9176 100644 --- a/src/content/docs/dev/debugger.mdx +++ b/src/content/docs/dev/debugger.mdx @@ -6,4 +6,4 @@ title: Debugger For version 3 of the debugger, we will be removing all the Server management from the Code for IBM i extension and letting navigator take over. We hope to make the experience more streamlined for developers. -![](/src/assets/debug/diagrams/diagram_v3.png) \ No newline at end of file +![](../../../assets/debug/diagrams/diagram_v3.png) \ No newline at end of file diff --git a/src/content/docs/dev/getting_started.mdx b/src/content/docs/dev/getting_started.mdx index 400d123..f1048ee 100644 --- a/src/content/docs/dev/getting_started.mdx +++ b/src/content/docs/dev/getting_started.mdx @@ -56,7 +56,7 @@ The backend test cases are primarily for testing the API and the frontend test c To run the tests, start debugging the **Extension Tests** configuration and connect to a system for the tests to run. -![test debug](/src/assets/extensions_development/dev_01.png) +![test debug](../../../assets/extensions_development/dev_01.png) After the Extension Host is launched, connect to a system - this system is where the test runs. The tests should not alter any system configuration or existing files. @@ -68,7 +68,7 @@ After you've connected, the tests will launch automatically. You can see which t -![test cases view](/src/assets/extensions_development/dev_02.gif) +![test cases view](../../../assets/extensions_development/dev_02.gif) @@ -82,6 +82,6 @@ If a test fails, you can see the result by hovering over the failed test. -![test case fail](/src/assets/extensions_development/dev_03.png) +![test case fail](../../../assets/extensions_development/dev_03.png) \ No newline at end of file diff --git a/src/content/docs/dev/scope.mdx b/src/content/docs/dev/scope.mdx index f00dc43..a7ce052 100644 --- a/src/content/docs/dev/scope.mdx +++ b/src/content/docs/dev/scope.mdx @@ -8,7 +8,7 @@ sidebar: As of 2023, the Code for IBM i project has grown quite large. While Code for IBM i can generally mean many extensions, it actually refers to vscode-ibmi. The vscode-ibmi is the Code for IBM i extension which is the base for many other extensions. -![](/src/assets/code_for_i/other/scope.png) +![](../../../assets/code_for_i/other/scope.png) ## Code for IBM i diff --git a/src/content/docs/developing/actions/custom-vars.mdx b/src/content/docs/developing/actions/custom-vars.mdx deleted file mode 100644 index 6a794f9..0000000 --- a/src/content/docs/developing/actions/custom-vars.mdx +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Custom Variables ---- - -import { CardGrid, Card } from '@astrojs/starlight/components'; - - - - - -You can create custom variable to use in your "Command to run" strings. To access custom variables: - -Use F1, then search for "IBM i Custom variables": - - - - ![F1 + IBM i Custom Variable](/src/assets/code_for_i/features/actions/actions_custom_01.png) - - - ---- - - - - - - Or from the User Library List browser: - - - -![Library List Browser](/src/assets/code_for_i/features/actions/actions_custom_01a.png) - - - ---- - - - - - -In the **Work with Variables** tab, click on **New Variable** to add your variable. - -Click on a custom variable to change it or delete it. - - - -![Variables list after Save](/src/assets/code_for_i/features/actions/actions_custom_04.png) - - - ---- - - - - - -Here we are adding a variable named `&TARGET_RLSE`. - -Press Save and the list of custom variables is shown. - - - -![Adding TARGET_RLSE](/src/assets/code_for_i/features/actions/actions_custom_03.png) - - - ---- - -#### *Example Usage* - -In all the CRTBNDxxx actions add TGTRLS(&TARGET_RLSE), like this: - -```CL -?CRTBNDCL PGM(&OPENLIB/&OPENMBR) SRCFILE(&OPENLIB/&OPENSPF) OPTION(*EVENTF) DBGVIEW(*SOURCE) TGTRLS(&TARGET_RLSE) -``` - -Now a single change to the TARGET_RLSE custom variable can impact all the CRTBNDxxx actions. \ No newline at end of file diff --git a/src/content/docs/developing/actions/execution.mdx b/src/content/docs/developing/actions/execution.mdx deleted file mode 100644 index aa1e59b..0000000 --- a/src/content/docs/developing/actions/execution.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Execution ---- - -import { CardGrid, Card, Tabs, TabItem } from '@astrojs/starlight/components'; - -There are four varieties of Actions: - -- if type is `file` and 'deploy first' is enabled, deploy the workspace, then: -- execute immediately, -- or they can be displayed for modification, -- or they can be prompted through the user interface. - -## Execute Immediately - -If we have a "**Call program**" command with a "Command to run" string like this: - -```CL -CALL &LIBRARY/&NAME -``` - -It will execute immediatly it is selected. - -## Display for modification - - - - - - -If the "Command to run" string has a leading `?` like `?CALL &LIBRARY/&NAME`, then the command is displayed and editable before command is executed. - - - -![Action Displayed for Modification](/src/assets/code_for_i/features/actions/actions_exec_01.png) - - - - - - - -For example, you might want to add `PARM('Douglas' 'Adams')` to the end. - - - -![Modified Action](/src/assets/code_for_i/features/actions/actions_exec_02.png) - - - -## Prompted - -Rather than using the "?", you can have the Action prompt for values. -The "Command to run" string can have embedded prompt string(s) to invoke prompting. - -A "prompt string" has the format ``${NAME|LABEL|[DEFAULTVALUE]}`` where: - -- NAME is an arbitrary name for the prompt field, but must be unique for this action. -- LABEL is the text to describe the prompt field. -- [DEFAULTVALUE] is an **optional** value to pre-populate the prompt field. - ---- -### Examples - - - -Suppose we have a "**Call program, prompt for parms**" action with the "Command to run" defined like this: - -```CL -CALL &LIBRARY/&NAME PARM('${AAA|First name|Your name}' '${xyz|Last Name}') -``` - -If we run the action it prompts like this: - -![Prompting Action Example 1](/src/assets/code_for_i/features/actions/actions_exec_03.png) - -If we complete the screen like this: - -and click **Execute** a command like this is executed; - -```CL -CALL LENNONS1/ATEST PARM('Douglas' 'Adams') -``` - -![Completed Prompted Action](/src/assets/code_for_i/features/actions/actions_exec_04.png) - - - -You can also use variables in the prompt string. If an action is defined like this: - -```CL -CALL &LIBRARY/&NAME PARM('${AAA|Library|&CURLIB}' '${xyz|Report Name}') -``` - -&CURLIB will be substituted and the prompt will look like this when executed: - -![Prompted Action Example 2](/src/assets/code_for_i/features/actions/actions_exec_05.png) - - - -Here's a more complex example of a "**Run CRTBNDRPG (inputs)**" action. -The 'Command to run" string is defined like this: - -```CL -CRTBNDRPG PGM(${buildlib|Build library|&BUILDLIB}/${objectname|Object Name|&NAME}) SRCSTMF('${sourcePath|Source path|&FULLPATH}') OPTION(*EVENTF) DBGVIEW(*SOURCE) TGTRLS(*CURRENT) -``` - -When executed, it prompts like this: - -![Panel to the right](/src/assets/code_for_i/features/actions/compile_04.png) - - diff --git a/src/content/docs/developing/actions/index.mdx b/src/content/docs/developing/actions/index.mdx deleted file mode 100644 index 5f30985..0000000 --- a/src/content/docs/developing/actions/index.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: What are Actions? ---- - -import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; - -An action is used to perform a task on a member, streamfile or other type of object. A comprehensive default set of actions is loaded directly from the extension. You can also easily change or add to actions--see *View/Change/Add Actions*, below. - -Actions are defined commands used to perform tasks on members, streamfiles and other types of objects. For example, to compile a source file. Actions can be executed from two different places: - -- As you're writing code. For example, to compile a program or module. -- When you right click on a member, streamfile or an object from the OBJECT BROWSER. - -A comprehensive set of Actions is provided, but you can add more or change the ones provided. - -### Running an Action - -To run an Action, open a source member (or IFS streamfile) and press the shortcut key: - -- Windows: Control + E -- Mac: Command + E - -This shows a dropdown of the available Actions for the open file. Use the arrow keys to select which Action to run and hit enter to select it. - -Example: to run the 'CRTBNDRPG' Action, you must open a source member with either `RPG` or `RPGLE` as the extension. Then, when you use the Run Action shortcut (above), you will see the list of available Actions. - -### Working with Actions - - - - **Hover over your connection name** in the status bar and when the submenu appears, select Actions to show a list of available Actions. - - - Click on an action to change it. - - Add actions with New Action. - - Copy an existing action and modify it with Duplicate. - - ![Action List UI](/src/assets/code_for_i/features/actions/actions_01.png) - - - Adding or changing Actions shows the same UI. - - In the example we are editing 'Create Bound RPG Program (CRTBNDRPG)'. We can change any of the properties. - - - '**Command to run**' is the command that will be executed. Notice it has portions of text that start with an `&` (ampersand) - such text is a "variable" that will be substituted when the action is run. Commands can have different variables based on what 'Type' (member, streamfile, object) is specified. Note that in addition to the supplied variables, you can create your own variables. See "Custom Variables", below. - - - '**Extensions**' defines the list of extensions that can use this Action. For `CRTBNDRPG`, that usually means only `RPGLE` and `RPG`, so we would enter: `RPGLE, RPG`. - - - '**Types**' determines which type of object can run this action. For example, if your Action only applies to source members, then choose 'Member' from the dropdown. - - - '**Environment**' determine where the command should be run. In this case, `CRTBNDRPG` needs to run in the ILE environment since it's an ILE command. You also have the option to run commands through PASE or QShell. - - When complete, **click Save**. If you simply close the tab, nothing will be saved. - - ![Action edit UI](/src/assets/code_for_i/features/actions/actions_02.png) - - - ---- - -### Actions storage - -If you change or add actions as below, then all actions are saved in the `code-for-ibmi.actions` section in `settings.json`. You can also edit the`code-for-ibmi.actions` section manually. If it doesn't exist, you can create you own `code-for-ibmi.actions` section in `settings.json`. - - diff --git a/src/content/docs/developing/debug/configure.mdx b/src/content/docs/developing/debug/configure.mdx index 749c46a..4c6b770 100644 --- a/src/content/docs/developing/debug/configure.mdx +++ b/src/content/docs/developing/debug/configure.mdx @@ -177,15 +177,15 @@ Below are the base requirements to configure the certificate: 1. On Navigator for IBM i, go to Network > Servers > TCP/IP Servers 2. Scroll down to System Debugger and right click 3. Hover over Stop Instance, select Debug Service -![](/src/assets/debug/configuration/image-4.png) +![](../../../../assets/debug/configuration/image-4.png) 4. Right click System Debugger again, select Regenerate Debug Service Trust Store -![](/src/assets/debug/configuration/image-3.png) +![](../../../../assets/debug/configuration/image-3.png) 5. Enter in the password for the *SYSTEM store, click OK -![](/src/assets/debug/configuration/image-1.png) +![](../../../../assets/debug/configuration/image-1.png) 6. Select the certificate you want to use, click OK -![](/src/assets/debug/configuration/image-2.png) +![](../../../../assets/debug/configuration/image-2.png) 7. Right click System Debugger again, hover over Start Instance, select Debug Service -![](/src/assets/debug/configuration/image-5.png) +![](../../../../assets/debug/configuration/image-5.png) **NOTE:** This needs to be done each time you renew or replace that certificate, it does not automatically update when you update the *SYSTEM store diff --git a/src/content/docs/developing/debug/overview.mdx b/src/content/docs/developing/debug/overview.mdx index f9f96b5..973a1de 100644 --- a/src/content/docs/developing/debug/overview.mdx +++ b/src/content/docs/developing/debug/overview.mdx @@ -60,7 +60,7 @@ After [configuring](../configure/) the Debug Service, launching a debug session -![](/src/assets/debug/usage/debug3.png) +![](../../../../assets/debug/usage/debug3.png) @@ -76,7 +76,7 @@ After the debug session has started, every session will break on entry. You can -![](/src/assets/debug/usage/debug1.png) +![](../../../../assets/debug/usage/debug1.png) @@ -90,7 +90,7 @@ The debug source will be opened in the editor area. A floating Debug panel which -![](/src/assets/debug/usage/debug2.png) +![](../../../../assets/debug/usage/debug2.png) @@ -104,7 +104,7 @@ Service Entry Point (SEP) can be set using the **Set Service Entry Point** popup -![Debug Service Entry Point](/src/assets/debug/usage/debugSEPView.png) +![Debug Service Entry Point](../../../../assets/debug/usage/debugSEPView.png) @@ -137,7 +137,7 @@ The debug port and SEP debug port are specified in the DebugService.env file on The Debug Service that is started depends on the traditional Debug Server. -![](/src/assets/debug/errors/error_2.png) +![](../../../../assets/debug/errors/error_2.png) If you receive this message, do as it says. Simply start the Debug Server with `STRDBGSVR` from a green screen. @@ -170,7 +170,7 @@ If you are getting a self-signed certificate error or a certificate signature fa **It is always recommended you use a hostname in the connection settings to make use of the debugger**. -![](/src/assets/debug/errors/error_1.png) +![](../../../../assets/debug/errors/error_1.png) *Error that is shown when connecting to the debugger if connecting using an IP address.* diff --git a/src/content/docs/developing/editing-compiling.mdx b/src/content/docs/developing/editing-compiling.mdx index b157cc8..ff366be 100644 --- a/src/content/docs/developing/editing-compiling.mdx +++ b/src/content/docs/developing/editing-compiling.mdx @@ -18,7 +18,7 @@ Now you can edit the source using all the features of VS Code. - ![Editing example](/src/assets/code_for_i/demo/EditComp-01.png) + ![Editing example](../../../assets/code_for_i/demo/EditComp-01.png) @@ -37,7 +37,7 @@ See **Help** in the menu for tips, tricks, editing keyboard shortcuts and tutori -![Editing max space](/src/assets/code_for_i/demo/EditComp-02.png) +![Editing max space](../../../assets/code_for_i/demo/EditComp-02.png) @@ -63,7 +63,7 @@ If the compile completes without error you will see an informational message lik -![Compile successful](/src/assets/code_for_i/demo/EditComp-03.png) +![Compile successful](../../../assets/code_for_i/demo/EditComp-03.png) @@ -79,7 +79,7 @@ If the compile fails, you will see an error message like this: -![Complile failed](/src/assets/code_for_i/demo/EditComp-04.png) +![Complile failed](../../../assets/code_for_i/demo/EditComp-04.png) @@ -93,7 +93,7 @@ In the source errors will be highlighted with squiggly lines, and if you hover o -![Squiggly errors](/src/assets/code_for_i/demo/EditComp-05.png) +![Squiggly errors](../../../assets/code_for_i/demo/EditComp-05.png) @@ -107,7 +107,7 @@ You can jump to the next error with **F8**. **Shift+F8** for the previous error -![F8 next error](/src/assets/code_for_i/demo/EditComp-05A.png) +![F8 next error](../../../assets/code_for_i/demo/EditComp-05A.png) @@ -123,7 +123,7 @@ Ctrl+J opens the panel, Ctrt+Shift+M opens the **Problems** tab. -![Problems tab](/src/assets/code_for_i/demo/EditComp-06.png) +![Problems tab](../../../assets/code_for_i/demo/EditComp-06.png) @@ -141,7 +141,7 @@ Decide which Errors, Warnings or Info messages to show using the Filter icon. If -![Errors filter](/src/assets/code_for_i/demo/EditComp-07.png) +![Errors filter](../../../assets/code_for_i/demo/EditComp-07.png) @@ -149,13 +149,13 @@ Decide which Errors, Warnings or Info messages to show using the Filter icon. If You can remove all the squiggly line using **F1** to open the command palette and searching for 'IBM i Clear Diagnostics' -![Clear diagnostics](/src/assets/code_for_i/demo/EditComp-08.png) +![Clear diagnostics](../../../assets/code_for_i/demo/EditComp-08.png) ### Compile Listing The compile listing is always routed to a terminal, should you need to review it. -![Compile List in Terminal](/src/assets/code_for_i/features/actions/compile_list_01.png) +![Compile List in Terminal](../../../assets/code_for_i/features/actions/compile_list_01.png) #### Terminal Notes diff --git a/src/content/docs/developing/local/azure.mdx b/src/content/docs/developing/local/azure.mdx index 1969bbf..e33543b 100644 --- a/src/content/docs/developing/local/azure.mdx +++ b/src/content/docs/developing/local/azure.mdx @@ -8,20 +8,20 @@ When using Visual Studio Code and git, it is possible to open the project up aut Find the repository you want to work with on Azure DevOps and press the Clone button. Make sure HTTPS is selected and before continuing, make sure the git credentials are visable - those will be used later. -![](/src/assets/code_for_i/features/azure/azure-1.png) +![](../../../../assets/code_for_i/features/azure/azure-1.png) When ready, copy the password to your clipboard and select 'Clone in VS Code'. This will launch VS Code and make sure the user wants to run this action: -![](/src/assets/code_for_i/features/azure/azure-2.png) +![](../../../../assets/code_for_i/features/azure/azure-2.png) VS Code will ask you where you want to clone the repository to. -![](/src/assets/code_for_i/features/azure/azure-3.png) +![](../../../../assets/code_for_i/features/azure/azure-3.png) When the clone is done, it will ask you if you want to Open the repository folder. Selecting 'Open' will add it to the Workspace. Now the source code is on your local machine, you can go ahead and connect to your development system. Since this is a brand new folder, you will be asked if you'd like to set the default deploy directory. It is recommended to use the default. -![](/src/assets/code_for_i/features/azure/azure-4.png) +![](../../../../assets/code_for_i/features/azure/azure-4.png) From here, you can start developing and compiling. If this is your first time, be sure to read the [Local Development](../getting-started/) documentation to understand what the deploy directory is used for and how to run compile commands. \ No newline at end of file diff --git a/src/content/docs/developing/local/getting-started.mdx b/src/content/docs/developing/local/getting-started.mdx index b4de814..b2afdcb 100644 --- a/src/content/docs/developing/local/getting-started.mdx +++ b/src/content/docs/developing/local/getting-started.mdx @@ -31,7 +31,7 @@ Opening a folder in Visual Studio Code adds that folder to that Workspace. You n If it is the first time connecting with the workspace it will prompt the user to set a default Deploy directory. -![](/src/assets/code_for_i/features/local_development/local_1.png) +![](../../../../assets/code_for_i/features/local_development/local_1.png) If you would prefer to change the default location, the user can right-click on any directory in the IFS Browser and select the 'Deploy Workspace to location' option. @@ -41,10 +41,10 @@ The user can change the deploy directory at any by using the same right-click op ### Running the deployment Using the `Deploy` button on the status bar will start the deployment process. If the workspace has more than one folder, the user will have to select which folder they want to deploy. -![](/src/assets/code_for_i/features/local_development/deploy_01.png) +![](../../../../assets/code_for_i/features/local_development/deploy_01.png) Running the deployment will prompt the user to chose a deployment method amongst the [five possible options](#deployment-methods), unless a default method has been selected in the [connection settings](#setting-the-default-deployment-method). -![](/src/assets/code_for_i/features/local_development/deploy_02.png) +![](../../../../assets/code_for_i/features/local_development/deploy_02.png) ### Deployment methods @@ -67,7 +67,7 @@ The user can also define Actions that are for the 'file' (local) type to run the ### Setting the default deployment method Open the connection settings, go to the `Source Code` tab and select the default deployment method to apply when running a deployment. -![](/src/assets/code_for_i/features/local_development/deploy_03.png) +![](../../../../assets/code_for_i/features/local_development/deploy_03.png) ### Ignore files during deployment with `.gitignore` and `.deployignore` All the deployment methods will take into account the `.gitignore` file and they will not deploy files matching the patterns defined in it. @@ -92,7 +92,7 @@ Similar to other repository settings, users can now store Actions as part of the There is a tool that can generate an initial `actions.json` file for you. After connecting to a system, open the command palette (F1) and search for 'Launch Actions Setup'. This shows a multi-select window where the user can pick which technologies they're using. Based on the selection, an `actions.json` will be created. -![](/src/assets/code_for_i/features/miscellaneous/actions_tool.png) +![](../../../../assets/code_for_i/features/miscellaneous/actions_tool.png) --- diff --git a/src/content/docs/developing/local/gitflow.mdx b/src/content/docs/developing/local/gitflow.mdx index e67116d..cd60942 100644 --- a/src/content/docs/developing/local/gitflow.mdx +++ b/src/content/docs/developing/local/gitflow.mdx @@ -16,7 +16,7 @@ If you have not heard of _gitflow_, then it is recommend to read this article on When using git and IBM i, developers will develop on their local device and build their changes on IBM i, as described in the [Getting started](./getting-started.mdx) section. The gitflow model is a great way to manage this process. -![](/src/assets/git/schemas/devbranches.png) +![](../../../../assets/git/schemas/devbranches.png) When using gitflow, developers will create a feature branch for each new feature or bug fix they are working on. This allows them to work independently without affecting the main codebase. Once the feature is complete, they can merge it back into the main branch. @@ -34,4 +34,4 @@ As branches get merged, the objects in the mapped build library for that branch Additionally, the branch that gets merged into, for example if `feature/abc` is merged into `develop`, will need the mapped branch library updated with the latest object changes from the branch. This is typically done with some automated pipeline, but can also be done manually by a developer. This will happen a lot if you work with more branches. -![](/src/assets/git/schemas/branchlibraries.png) \ No newline at end of file +![](../../../../assets/git/schemas/branchlibraries.png) \ No newline at end of file diff --git a/src/content/docs/developing/sourcedates.mdx b/src/content/docs/developing/sourcedates.mdx index c946258..228ed55 100644 --- a/src/content/docs/developing/sourcedates.mdx +++ b/src/content/docs/developing/sourcedates.mdx @@ -38,7 +38,7 @@ Hovering over the gutter will show two buttons to: -![Editing max space](/src/assets/code_for_i/features/source_dates/sourcedates_1.png) +![Editing max space](../../../assets/code_for_i/features/source_dates/sourcedates_1.png) @@ -56,7 +56,7 @@ There is also a button on the status bar the user can use to start a new date fi -![Editing max space](/src/assets/code_for_i/features/source_dates/sourcedates_2.png) +![Editing max space](../../../assets/code_for_i/features/source_dates/sourcedates_2.png) @@ -68,4 +68,4 @@ You are able to hover over the gutter to enable or disable the sequence view. Th Source sequences are not retained. This means that when saving a member, Code for IBM i will resequence the source member. -![Source sequence view](/src/assets/code_for_i/features/miscellaneous/srcseq_view.png) \ No newline at end of file +![Source sequence view](../../../assets/code_for_i/features/miscellaneous/srcseq_view.png) \ No newline at end of file diff --git a/src/content/docs/developing/testing/cli.mdx b/src/content/docs/developing/testing/cli.mdx index 974f90b..353dca7 100644 --- a/src/content/docs/developing/testing/cli.mdx +++ b/src/content/docs/developing/testing/cli.mdx @@ -15,7 +15,7 @@ import { Aside, CardGrid, Card, Steps } from '@astrojs/starlight/components'; The [IBM i Testing CLI](https://www.npmjs.com/package/@ibm/itest) (`itest`) is a companion to the [IBM i Testing](https://marketplace.visualstudio.com/items?itemName=IBM.vscode-ibmi-testing) VS Code extension, which allows you to run unit tests and generate code coverage results for RPG and COBOL programs on IBM i. With this CLI, you can run tests in your terminal on your local PC or in PASE on IBM i. This enables you to even script the execution of tests in a CI/CD pipeline. -![](/src/assets/i_testing/Testing_CLI.png) +![](../../../../assets/i_testing/Testing_CLI.png) ## Installation @@ -141,6 +141,6 @@ Given that this CLI tool can be used to run tests from the command line, it can This step can be used in a workflow that is triggered on pull requests to ensure that all tests pass and code coverage is acceptable before allowing the pull request to be merged. The markdown summary report can even be rendered in the PR comments making it easier for reviewers to see the results. -![](/src/assets/i_testing/Testing_GitHubAction.png) +![](../../../../assets/i_testing/Testing_GitHubAction.png) Check out the full [pr.yaml](https://github.com/IBM/ibmi-company_system/blob/main/.github/workflows/pr.yaml) file example in the [ibmi-company_system](https://github.com/IBM/ibmi-company_system) repository. This workflow showcases an end-to-end CI/CD pipeline that consists of build, impact analysis, unit tests, and code coverage! \ No newline at end of file diff --git a/src/content/docs/developing/testing/configuring.mdx b/src/content/docs/developing/testing/configuring.mdx index 745ffd8..ec35e43 100644 --- a/src/content/docs/developing/testing/configuring.mdx +++ b/src/content/docs/developing/testing/configuring.mdx @@ -8,7 +8,7 @@ import { Aside, CardGrid, Card, Tabs, TabItem, FileTree, Steps } from '@astrojs/ The process of defining how to compile your tests is greatly simplified using a configuration file called `testing.json`. This file allows you to specify the parameters for the RPGUnit compile commands (`RUCRTRPG` and `RUCRTCBL`) and the code coverage command (`CODECOV`) in JSON format. The scope in which these parameters are applied is determined by the location of the `testing.json` file and depends on whether you are working with local files or source members. -![](/src/assets/i_testing/Testing_TestingJson.png) +![](../../../../assets/i_testing/Testing_TestingJson.png) ### Local Files @@ -112,7 +112,7 @@ When it comes time to executing the tests, the extension essentially runs the `R Configuring the execution parameters via the VS Code settings is the suggested option if you prefer to treat these parameters as preferences that will allow each developer to configure for how tests are executed. These settings can be found by going to the extension's settings and searching for **IBM i Testing** (from **Run Order** to **Reclaim Resources**). -![](/src/assets/i_testing/Testing_ExecutionConfiguration.png) +![](../../../../assets/i_testing/Testing_ExecutionConfiguration.png) ### Configuration File diff --git a/src/content/docs/developing/testing/overview.mdx b/src/content/docs/developing/testing/overview.mdx index 1cd755f..c37ca8a 100644 --- a/src/content/docs/developing/testing/overview.mdx +++ b/src/content/docs/developing/testing/overview.mdx @@ -68,20 +68,20 @@ Once the PTFs are installed, you can install the library via the extension using 1. Connect to your IBM i system. 2. Open the connection settings by hovering on the connection in the status bar and selecting **Settings**. - ![Connection Settings](/src/assets/i_testing/Testing_ConnectionSettings.png) + ![Connection Settings](../../../../assets/i_testing/Testing_ConnectionSettings.png) 3. Navigate to the **Components** tab and select **Install component**. - ![Components](/src/assets/i_testing/Testing_Components.png) + ![Components](../../../../assets/i_testing/Testing_Components.png) 4. Select *RPGUnit* from the list of available components to install and click **Ok**. - ![Install Component](/src/assets/i_testing/Testing_InstallComponent.png) + ![Install Component](../../../../assets/i_testing/Testing_InstallComponent.png) 5. Select the GitHub release to install from. In most cases this will be the latest, but you can also select a specific version. More information on each release can be found on the [irpgunit GitHub Releases](https://github.com/tools-400/irpgunit/releases) page. - ![GitHub Releases](/src/assets/i_testing/Testing_GitHubReleases.png) + ![GitHub Releases](../../../../assets/i_testing/Testing_GitHubReleases.png) 6. The extension will begin installing the `RPGUNIT` library on your IBM i system. You can monitor the installation progress in the **IBM i Testing** output channel. This will log all commands executed during the installation as well as any errors or warnings. You will see a notification once the installation is successful or fails. - ![Installation Logs](/src/assets/i_testing/Testing_InstallationLogs.png) + ![Installation Logs](../../../../assets/i_testing/Testing_InstallationLogs.png) diff --git a/src/content/docs/developing/testing/running.mdx b/src/content/docs/developing/testing/running.mdx index e064e06..1524367 100644 --- a/src/content/docs/developing/testing/running.mdx +++ b/src/content/docs/developing/testing/running.mdx @@ -10,13 +10,13 @@ import { Aside, CardGrid, Card, Steps } from '@astrojs/starlight/components'; Before running any tests, it is recommended that `RPGUNIT.LIB` and `QDEVTOOLS.LIB` are added to your library list to avoid issues with resolving include files. In the case you are working with local test files and are using `iproj.json`, you can add this to your `preUsrlibl` in `iproj.json`. In the case of source members, you can add these libraries via the **User Library List** view in Code for IBM i. You may see the following warnings in the case these libraries are not on your library list: -![](/src/assets/i_testing/Testing_LibraryValidation.png) +![](../../../../assets/i_testing/Testing_LibraryValidation.png) ## Test Explorer For tests to be discovered by the extension, you must first [connect to an IBM i](../../../quickstart/). Once connected, the extension will automatically discover any RPG/COBOL tests as local files from your workspace or as source members from your library list. These tests will all be listed in the built-in **Test Explorer** view in VS Code (look for the beaker icon). -![](/src/assets/i_testing/Testing_TestExplorer.png) +![](../../../../assets/i_testing/Testing_TestExplorer.png) ### Running Tests @@ -31,18 +31,18 @@ From here you can hover on any test case, test suite, folder, library, or source ### Cancelling Tests The current test deployment, compilation, and execution can be cancelled at anytime by navigating to the **Test Explorer** view and using the **Cancel Test Run** button. -![](/src/assets/i_testing/Testing_CancellingTest.png) +![](../../../../assets/i_testing/Testing_CancellingTest.png) Any test suites which were executed before cancellation will still have their test results shown in the **Test Results** view. Cancelled test suites will be marked accordingly and a total count of cancelled test suites and cases will be included in the test summary. -![](/src/assets/i_testing/Testing_CancelledTestResult.png) +![](../../../../assets/i_testing/Testing_CancelledTestResult.png) ## Test Results @@ -52,13 +52,13 @@ After running any test, the results will be displayed in detail in the **Test Re When it comes to diagnosing test errors or failures, it often helps to see the entire CL command that was executed along with the output. You can view this information by navigating to the [IBM i Testing](../troubleshooting/#extension-logs) output channel. Learn more about finding these logs on the [Troubleshooting](../troubleshooting/#logs) page. -![](/src/assets/i_testing/Testing_TestResults.png) +![](../../../../assets/i_testing/Testing_TestResults.png) ### Diagnosing Errors When there is an assertion failure, you can view the actual and expected results (depending on the type of assertion) along with the failure message in the **Test Results** view. In addition, you can scroll through the editor and see the same message inline right next to the failing assertion. Upon clicking on this message, you will get an expanded inline view of the error which also includes a diff of the actual and expected result along with the stack trace. -![](/src/assets/i_testing/Testing_InlineAssertionError.png) +![](../../../../assets/i_testing/Testing_InlineAssertionError.png) ## Code Coverage @@ -66,11 +66,11 @@ You can also run the tests with code coverage to see which lines of code were ex To do this, hover on the desired tests in the **Test Explorer** view like before, but this time use the inline **Run Test with Coverage** button. In addition to executing the tests, this will populate the **Test Coverage** view with the code coverage results. You can hover on individual files here to see the coverage percentage. By default, this will show statement coverage, but procedure coverage can also be enabled using the [Test Profiles](#test-profiles) described below. -![](/src/assets/i_testing/Testing_TestCoverage.png) +![](../../../../assets/i_testing/Testing_TestCoverage.png) The relevant files under test will also be highlighted in the editor where the executed lines will be marked in green and the unexecuted lines will be marked in red. -![](/src/assets/i_testing/Testing_CodeCoverage.png) +![](../../../../assets/i_testing/Testing_CodeCoverage.png) ## Test Profiles @@ -80,13 +80,13 @@ To run a set of tests with a specific profile: 1. Navigate to the **Test Explorer** view (or find the specific test case in the editor). 2. Right-click on the test (or the gutter action) and select the **Execute Using Profile...** option. - ![](/src/assets/i_testing/Testing_ExecuteUsingProfile.png) + ![](../../../../assets/i_testing/Testing_ExecuteUsingProfile.png) 3. Select the desired profile to be used. - ![](/src/assets/i_testing/Testing_TestProfiles.png) + ![](../../../../assets/i_testing/Testing_TestProfiles.png) ## Test Filters and Tags @@ -95,7 +95,7 @@ The search bar in the **Test Explorer** view is used to filter what tests are di * `@IBMi:local`: Show only tests from local files. * `@IBMi:qsys`: Show only tests from source members. -![](/src/assets/i_testing/Testing_TestTags.png) +![](../../../../assets/i_testing/Testing_TestTags.png) ## Test Logs diff --git a/src/content/docs/developing/testing/troubleshooting.mdx b/src/content/docs/developing/testing/troubleshooting.mdx index a417f4c..0b11a38 100644 --- a/src/content/docs/developing/testing/troubleshooting.mdx +++ b/src/content/docs/developing/testing/troubleshooting.mdx @@ -10,7 +10,7 @@ To troubleshoot any issues, navigate to the **IBM i Testing** output channel and This output channel will log which tests are discovered, what test configuration is used, all standard output/errors for any commands, and more. You can filter these logs by typing in the **Filter** search box or by using the **More Filters...** button to change the displayed log level. -![](/src/assets/i_testing/ExtensionLogs.png) +![](../../../../assets/i_testing/Testing_ExtensionLogs.png) ## Report an Issue diff --git a/src/content/docs/developing/testing/writing.mdx b/src/content/docs/developing/testing/writing.mdx index 97365c5..dfe2136 100644 --- a/src/content/docs/developing/testing/writing.mdx +++ b/src/content/docs/developing/testing/writing.mdx @@ -23,7 +23,7 @@ A test suite consists of one or more test cases in a file or source member. This * **Local Files**: The file name must end in `.test.rpgle`, `.test.sqlrpgle`, `.test.cblle`, or `.test.sqlcblle` in order to be detected by the extension. File names are also not restricted to 10 characters as the extension will use the same rules that Source Orbit uses to handle [long file names](https://ibm.github.io/sourceorbit/#/./pages/general/rules?id=long-file-names) when compiling the test. Noteably, since all files must include `.test`, the resulting object name will start with `T`. These files can also be put in any directory. * **Source Members**: Source members can be named freely, but it is recommended to use some sort of prefix or suffix (ie. `T`, `_T`, `T_`, etc.) to avoid naming conflicts as the tests will be compiled into service programs. These source members can be put in any source file, but it is recommended to store them in a source file named `QTESTSRC`. By default this is where the extension will look for test suites in your library list. You can configure the extension to search other source files by going to the extension's settings and searching for the **Test Source Files** setting. - ![Test Source Files](/src/assets/i_testing/TestSourceFiles.png) + ![Test Source Files](../../../../assets/i_testing/Testing_TestSourceFiles.png) Listed below are some example test suite names that follow this naming convention: @@ -43,23 +43,23 @@ Listed below are some example test suite names that follow this naming conventio To simplify the process of writing tests, you can have the extension generate stubs for individual test cases or an entire test suite. To do this, place your cursor inside any export procedure and click the code action button (💡). This will give you an option to generate a test case for the specific procedure you are in or to generate a test suite containing test cases for every procedure. -![Generating Test Stubs](/src/assets/i_testing/GeneratingTestStubs.png) +![Generating Test Stubs](../../../../assets/i_testing/Testing_GeneratingTestStubs.png) After selecting an option, a test suite will be created if it does not already exist with a scaffold that will include not only the test case stubs, but also the necessary includes and prototypes (if necessary). The generated test case stubs themselves will each be structured into the following sections: declarations, inputs, actual results, expected results, and assertions. As the developer, you will need to fill in the inputs and expected results. -![Generated Test Stub](/src/assets/i_testing/GeneratedTestStub.png) +![Generated Test Stub](../../../../assets/i_testing/Testing_GeneratedTestStub.png) ### Test Stub Preferences There are various preferences that can be used to configure how the test stubs are generated. To access these preferences, go to the extension's settings and search for **Test Stub Preferences**. -![Test Stub Preferences](/src/assets/i_testing/TestStubPreferences.png) +![Test Stub Preferences](../../../../assets/i_testing/Testing_TestStubPreferences.png) ### Test Stub Preview One notable preference is the **Show Test Stub Preview** which controls whether to show a preview of the test stub before adding it to the file or source member. Once this preference is enabled, the **Refactor Preview** view will be populated with a set of edits to insert the control options & directives, includes, prototypes, and the test cases. You will need to first select the checkboxes next to the items you want to insert and then click on any item to bring up a preview of the code in the editor. Once you are satisfied with the preview, you can click the **Apply** button to insert the code into your file or source member. -![Test Stub Preview](/src/assets/i_testing/TestStubPreview.png) +![Test Stub Preview](../../../../assets/i_testing/Testing_TestStubPreview.png) ## API Reference diff --git a/src/content/docs/environment/actions.mdx b/src/content/docs/environment/actions.mdx new file mode 100644 index 0000000..ac949e7 --- /dev/null +++ b/src/content/docs/environment/actions.mdx @@ -0,0 +1,233 @@ +--- +title: Work with actions +--- + +import { Aside, Tabs, TabItem, CardGrid, Card } from '@astrojs/starlight/components'; + +An action is used to perform a task on a member, streamfile or other type of object. A comprehensive default set of actions is loaded directly from the extension. You can also easily change or add to actions -- see below [how to manage Actions](#manage-actions). + +Actions are defined commands used to perform tasks on members, streamfiles and objects. For example, to compile a source member. Actions can be executed from different places: +- When you right click on a member, streamfile or an object from the `Object Browser`. +- When you edit some source code: + - from the editor's toolbar + - from the Environment view's Actions node + +## Manage Actions + +Actions are managed from the Environment view's Actions node. + +![actions node](../../../assets/environment/actions_04.png) + +### Create an Action + +You can create a new Action using one of the two `Create action` inline action located at the Actions node level, or at the Action type level. +Using `Create action` at the Actions node level will first prompt for the target type of the action. + + + ![create action](../../../assets/environment/actions_05.png) + ![create type action](../../../assets/environment/actions_06.png) + + +You'll be prompted to give the name of the new Action and then the Action editor will open to let you fill in the Action details. + +### Edit an Action +Clicking on an Action in the Environment view will open the Action editor to let you change the selected Action's details. + +![edit action](../../../assets/environment/actions_07.png) + +#### Command(s) to run +The command(s) that will be executed when the action is run. You can specify different commands on each line. + +Notice it has portions of text that start with an `&` (ampersand) - such text is a "variable" that will be substituted when the action is run. Commands can have different variables based on the Action `Type` (member, streamfile, object or local file). Note that in addition to the supplied variables, you can create your own variables. See [Custom Variables](../variables/.). + +##### Display for modification +If a command string has a leading `?`, then the command will be displayed and editable before it gets executed. +Example: `?DSPFD FILE(&LIBRARY/&NAME) OUTPUT(*PRINT)` + +![simple prompting](../../../assets/environment/actions_12.png) + +##### Prompted +Rather than using the `?`, you can have the Action prompt for values. +The `Command(s) to run` string can have embedded prompt string(s) to invoke prompting. + +A "prompt string" has the format ``${NAME|LABEL|[DEFAULTVALUE]}`` where: + +- NAME is an arbitrary name for the prompt field, but must be unique for this action. +- LABEL is the text to describe the prompt field. +- [DEFAULTVALUE] is an **optional** value to pre-populate the prompt field. + +##### Examples + + + +Suppose we have a "**Call program, prompt for parms**" action with the "Command to run" defined like this: + +```CL +CALL &LIBRARY/&NAME PARM('${AAA|First name|Your name}' '${xyz|Last Name}') +``` + +If we run the action it prompts like this: + +![Prompting Action Example 1](../../../assets/environment/actions_exec_03.png) + +If we complete the screen like this: + +![Completed Prompted Action](../../../assets/environment/actions_exec_04.png) + +and click **Execute** a command like this is executed; + +```CL +CALL LENNONS1/ATEST PARM('Douglas' 'Adams') +``` + + + +You can also use variables in the prompt string. If an action is defined like this: + +```CL +CALL &LIBRARY/&NAME PARM('${AAA|Library|&CURLIB}' '${xyz|Report Name}') +``` + +`&CURLIB` will be substituted and the prompt will look like this when executed: + +![Prompted Action Example 2](../../../assets/environment/actions_exec_05.png) + + + +Here's a more complex example of a "**Run CRTBNDRPG (inputs)**" action. +The 'Command to run" string is defined like this: + +```CL +CRTBNDRPG PGM(${buildlib|Build library|&BUILDLIB}/${objectname|Object Name|&NAME}) SRCSTMF('${sourcePath|Source path|&FULLPATH}') OPTION(*EVENTF) DBGVIEW(*SOURCE) TGTRLS(*CURRENT) +``` + +When executed, it prompts like this: + +![Panel to the right](../../../assets/environment/compile_04.png) + + + +#### Extensions +A comma separated list of extensions allowed to run the action. This can be a member extension, a streamfile extension, an object type or an object attribute + +#### Type +Determines which type of object can run this action. It can be `Member`, `Streamfile` or `Object`. For an Action defined in a local project, the type is always `Local File (Workspace)` and cannot be changed. + +#### Environment +Determines where the command should be run. CL commands needs to run in the `ILE` environment. For shell commands, you have the option to run them through `PASE` or `QShell`. + +#### Refresh +Determines the Browser level to refresh after the action is done. It can be: +- `No`: no refresh +- `Parent`: the Action target's parent container is refreshed +- `Filter`: the Action target's root level filter is refreshed +- `Browser`: the entire browser ir refreshed + +#### Deploy before running *(local project Action only)* +When enabled, the local workspace is deployed before the Action is run. + +#### Post execution downloads *(local project Action only)* +A comma separated list of remote files or folders to download after the Action is complete. Supports [Custom Variables](../variables/.). + + + +#### Run on protected/read only +When enabled, allows the execution of this Action on protected or read-only targets. + +#### Copy to output file +Copy the Action's output to an IFS file. [Custom Variables](../variables/.) can be used to define the file's path; use `&i` to use a file index incremented each time the action is run. +Example: `~/outputs/&CURLIB_&OPENMBR&i.txt` + +### Rename/Copy/Delete + + + Right click on an Action to get access to the following actions: + - Rename + - Copy + - Delete + + + ![Action options](../../../assets/environment/actions_11.png) + + + +--- + +### Local workspace Actions +Since Code for IBM i 3.x, Actions defined in a local workspace (i.e. in the `.vscode/actions.json` local file) can also be edited like member/streamfile/object Actions. + +These actions are located under a node named after the local workspace. + +![local actions](../../../assets/environment/actions_08.png) + +To generate standard Actions in the local workspace, use the `Launch Workspace Actions Setup` inline action at the Actions node level. + +![generate local actions](../../../assets/environment/actions_09.png) + +You'll be asked to choose which category(ies) of Action to generate. + +![generate local actions prompt](../../../assets/environment/actions_10.png) + +If local Actions are already defined, you'll be asked to choose between appending new Actions or overwriting the existing ones (for the select category(ies)). + +--- + +## Running Actions + +To run an Action, open a source member (or an IFS streamfile) and press the shortcut key: +- Windows: Control + E +- Mac: Command + E + +Or click on the `Run Action...` action in the editor's toolbar. + +![run action](../../../assets/environment/actions_01.png) + +This shows a dropdown of the available Actions for the open file. Use the arrow keys to select which Action to run and hit enter to select it. + +![select action](../../../assets/environment/actions_02.png) + +Example: to run the `CRTBNDRPG` Action, you must open a source member with the `RPGLE` extension. Then, when you use the Run Action action (above), you will see the list of available Actions. + +--- + +You can also run an Action from the Environment view's Actions node. Any Action that an be run on the file being edited will be highlighted in blue and the `Run on active editor` inline action will be activated on each highlighted Action. + +![run action from view](../../../assets/environment/actions_03.png) + +### Action execution +The Action execution workflow is the following: + +1. if type is `Local File` and 'Deploy before running' is enabled -> deploy the workspace +2. execute `Command(s) to run` - depending on the command syntax: + - execute the command immediately if no leading `?` or no prompting + - [display for modification](#display-for-modification) and then execute if command has a leading `?` + - [prompt](#prompted) and then execute if prompting is enabled +3. if `Copy output to file` is enabled: dump the Action output in a streamfile +4. if `Post execution downloads` is not blank: copy the listed files/folders + +### EVFEVENT / Problems view +If the Action's `Command(s) to run` contains `*EVENTF` (anywhere in the command string), then the remote `EVFEVENT` file content will be loaded and parsed after the Action is done to populate the Problems view. + +![run action from view](../../../assets/environment/actions_13.png) + +To locate the `EVFEVENT` file to load, Code for IBM i will first look for its path in the Joblog. Any message starting with `EVFEVENT:` will be parsed to get the file's path. The expected message text formats are: + +```CL +EVFEVENT: LIBRARY,OBJECT +or +EVFEVENT: LIBRARY/OBJECT +or +EVFEVENT: OBJECT +``` + +If no `EVFEVENT:` message is found in the Action Job log, then Code for i will extract the `EVFEVENT` file location based on one of these command parameters: +- `PNLGRP(LIBRARY/OBJECT)` +- `OBJ(LIBRARY/OBJECT)` +- `PGM(LIBRARY/OBJECT)` +- `MODULE(LIBRARY/OBJECT)` +- `FILE(LIBRARY/OBJECT)` +- `MENU(LIBRARY/OBJECT)` + +Code for i will load the `OBJECT` member from the `LIBRARY/EVFEVENT` file (or `EVFEVENT` file from the library list if `LIBRARY` is not defined). \ No newline at end of file diff --git a/src/content/docs/environment/index.mdx b/src/content/docs/environment/index.mdx new file mode 100644 index 0000000..cf89d54 --- /dev/null +++ b/src/content/docs/environment/index.mdx @@ -0,0 +1,17 @@ +--- +title: Environment view +--- +import { Aside } from '@astrojs/starlight/components'; + +![view](../../../assets/environment/view_01.png) + +The environment view is located by default under the `Help and Support` view. + +It provides a convenient way to manage: +- Actions +- Custom variables +- Profiles + + \ No newline at end of file diff --git a/src/content/docs/environment/profiles.mdx b/src/content/docs/environment/profiles.mdx new file mode 100644 index 0000000..1126006 --- /dev/null +++ b/src/content/docs/environment/profiles.mdx @@ -0,0 +1,124 @@ +--- +title: Profiles +--- + +import { CardGrid, Card, Aside } from '@astrojs/starlight/components'; + + + + A Profile allows the user to switch between settings quickly. You could use a profile to quickly change library list and other items specific to a project. + + + ![Profiles](../../../assets/environment/profiles_04.png) + + + + + + A profile stores the following settings: + - Home/working directory + - Current library + - Library list + - Current iASP + - Object browser filters + - IFS shortcuts + + ![assets/settings_01.png](../../../assets/environment/profiles_01.png) + + +--- + +## Manage profiles + +### Create a profile +You can create a profile using the `Profiles` node inline actions. You'll have two options: +- Create a new blank profile +- Create a profile based on the current context + + + + ![New Profile](../../../assets/environment/profiles_02.png) + + + ![New Profile from current context](../../../assets/environment/profiles_03.png) + + + +You'll be asked for the new profile's name and then the profile editor will open to let you edit/review the profile's settings. + +### Edit a profile +Click on a profile to open the profile editor and change its settings. + +Only the following settings can be changed from the profile editor: +- Home/working directory +- Current library +- Library list +- Current iASP +- Library list command + +The Object filters, IFS shortcuts and Custom variable can only be changed when the profile is active. + + + +#### Library list command +This setting replaces what used to be called `Command Profiles` before Code for IBM i version 3.x. +The library list command lets you define a CL command that will be executed when the profile becomes active and set the current library and user library list. + +Put `?` in front of the command to prompt it before its execution. + +![Profiles options](../../../assets/environment/profiles_11.png) + + + +### Rename/Copy/Delete + + + Right click on a profile to get access to the following actions: + - Rename + - Copy + - Delete + + + ![Profiles options](../../../assets/environment/profiles_05.png) + + + +--- + +## Activate/switch between profiles +To activate a profile, click on the `Set as active profile` inline action next to the profile you want to activate. + +![Profiles options](../../../assets/environment/profiles_06.png) + +When a profile is active, it is highlighted in green in the Environment view and it's name is displayed in the view's title bar. + + + +![Current profile](../../../assets/environment/profiles_07.png) + +The current profile name is also shown next to the connection's name in the bottom status bar. + +![Current profile bottom](../../../assets/environment/profiles_08.png) + +### Profiles with a library list command +When a profile with a `Library list command` becomes active, the profile's current library and user library list is updated, based on the job's current library and user library list after the command is executed. + +The command can be executed again at any time by clicking on the `Run Library List Command` profile's inline action. +![liblist command profile](../../../assets/environment/profiles_09.png) + +--- + +## Unload active profile +You can unload the active profile and go back to your default context by clicking on the Profiles node's `Unload active profile` inline action. + +![liblist command profile](../../../assets/environment/profiles_10.png) + + \ No newline at end of file diff --git a/src/content/docs/environment/variables.mdx b/src/content/docs/environment/variables.mdx new file mode 100644 index 0000000..432f6c3 --- /dev/null +++ b/src/content/docs/environment/variables.mdx @@ -0,0 +1,60 @@ +--- +title: Custom Variables +--- + +import { CardGrid, Card, Aside } from '@astrojs/starlight/components'; + +You can create custom variable to use in your [Actions Command(s) to run](../actions/#commands-to-run) strings. + + + + ![variables](../../../assets/environment/variables_01.png) + + + ![variable in command](../../../assets/environment/variables_02.png) + + + + + +--- + +## Manage custom variables + +### Create a custom variable +You can create a custom variable using the `Custom Variables` node's `Declare custom variable` inline action. + +![create](../../../assets/environment/variables_03.png) + +You'll be asked for the new variable's name and then for its value. + +### Change custom variable value +Click on a custom variable to open a prompt asking for the new value. + +![create](../../../assets/environment/variables_04.png) + + +### Rename/Copy/Delete + + + Right click on a profile to get access to the following actions: + - Rename + - Copy + - Delete + + + ![Variables options](../../../assets/environment/variables_05.png) + + + +## Example Usage + +In all the `CRTBNDxxx` actions, add `TGTRLS(&TARGET_RLS)`, like this: + +```CL +?CRTBNDCL PGM(&OPENLIB/&OPENMBR) SRCFILE(&OPENLIB/&OPENSPF) OPTION(*EVENTF) DBGVIEW(*SOURCE) TGTRLS(&TARGET_RLS) +``` + +Now a single change to the TARGET_RLS custom variable can impact all the CRTBNDxxx actions. \ No newline at end of file diff --git a/src/content/docs/extensions/clle/index.mdx b/src/content/docs/extensions/clle/index.mdx index cdccb6a..ef666f5 100644 --- a/src/content/docs/extensions/clle/index.mdx +++ b/src/content/docs/extensions/clle/index.mdx @@ -28,7 +28,7 @@ Or it can be installed from the Extension view inside Visual Code. -![Install CLLE](/src/assets/clle/Install_CL.png) +![Install CLLE](../../../../assets/clle/Install_CL.png) @@ -37,7 +37,7 @@ Or it can be installed from the Extension view inside Visual Code. Suppose you want to create a data area with the CRTDTAARA command. Enter CRTDTAARA __follwed by a space__, then press _Ctrl+Space_ to invoke Content Assist to produce a pick list like this: -![Example step 2](/src/assets/clle/ExCL_02.png) +![Example step 2](../../../../assets/clle/ExCL_02.png) @@ -45,7 +45,7 @@ Press _Enter_ or _Tab_ to accept the highlighted _All parameters_ from the pick -![Example step 3](/src/assets/clle/ExCL_03.png) +![Example step 3](../../../../assets/clle/ExCL_03.png) @@ -55,7 +55,7 @@ Use`Ctrl+space` to get a pick list of special values or available variables (jus -![Example step 5](/src/assets/clle/ExCL_05.png) +![Example step 5](../../../../assets/clle/ExCL_05.png) @@ -69,7 +69,7 @@ To declare a variable, enter just `d` and get a list of commands that begin with -![Command assist](/src/assets/clle/assist_01.png) +![Command assist](../../../../assets/clle/assist_01.png) @@ -79,7 +79,7 @@ Since the `DCL` command is highlighted, hit enter and get a pick list of availab -![Command assist all keywords](/src/assets/clle/assist_02.png) +![Command assist all keywords](../../../../assets/clle/assist_02.png) @@ -89,7 +89,7 @@ The `VAR` parameter value is selected, so enter the variable name, then tab to t -![Command assist parameter](/src/assets/clle/assist_03.png) +![Command assist parameter](../../../../assets/clle/assist_03.png) @@ -99,7 +99,7 @@ If all the valid valued for `TYPE` are know, just enter a valid value, for examp -![Command assist parameter](/src/assets/clle/assist_03.png) +![Command assist parameter](../../../../assets/clle/assist_03.png) @@ -109,7 +109,7 @@ If all the valid valued for `TYPE` are know, just enter a valid value, for examp -![Command assist parameter](/src/assets/clle/assist_04.png) +![Command assist parameter](../../../../assets/clle/assist_04.png) @@ -117,41 +117,41 @@ If all the valid valued for `TYPE` are know, just enter a valid value, for examp In the **Outline** view, you can get an overview of all declared variables, files, and subroutines. You can click on the name of any item to jump to the definition. -![Outline view](/src/assets/clle/outlineView.png) +![Outline view](../../../../assets/clle/outlineView.png) ## Peek Definition and References In the editor, you can right-click on a variable or subroutine and use **Go to Definition** or **Go to References** to quickly jump to the definition or all references of the variable or subroutine. -![Go to References](/src/assets/clle/goToReferences.png) +![Go to References](../../../../assets/clle/goToReferences.png) You can also use **Find All References** which will pop open the **References** view to show all references. -![Find All References](/src/assets/clle/findAllReferences.png) +![Find All References](../../../../assets/clle/findAllReferences.png) Lastly, you can use any of the options under the right-click **Peak** submenu to get an inline preview of definitions or references without having to leave the current line are working on. -![Peak Definition](/src/assets/clle/peakDefinition.png) +![Peak Definition](../../../../assets/clle/peakDefinition.png) ## Rename You can right-click a variable and select **Rename Symbol** (or use the `F2` shortcut) to rename the variable. This will pop open a mini text box for you to enter the new variable name. Once you have entered the new name, hit `Enter` to proceed with renaming all instances of that variable or hit `Ctrl+Enter` to get a refactoring preview which you can use to selectively rename specific instances. -![Rename](/src/assets/clle/rename.png) +![Rename](../../../../assets/clle/rename.png) ## Hover Support When writing your CL programs, you can hover over a command to view a description of the commad from its documentation. -![Command Hover](/src/assets/clle/commandHover.png) +![Command Hover](../../../../assets/clle/commandHover.png) This works on individual parameters and is espically useful when determining what are the allowed values for a parameter. Content assist for paramters will also include this same documentation. -![Paramter Hover](/src/assets/clle/parameterHover.png) +![Paramter Hover](../../../../assets/clle/parameterHover.png) To view the full documentation for a command, scroll to the bottom of the hover window and select the **View Full Documentation** link. This will pop open a panel right in VS Code with the full documentation for the command which includes details on the command, parameter usage, examples, and error messages. -![Full Documentation](/src/assets/clle/fullDocumentation.png) +![Full Documentation](../../../../assets/clle/fullDocumentation.png) ## Syntax Checker @@ -161,7 +161,7 @@ As you write your CL programs, the syntax checker will highlight any syntax erro From the VS Code Settings, you can search for "CL Syntax Options" to change various settings including whether the syntax checker automatically when opening documents or when editing a line. -![Syntax Checker](/src/assets/clle/syntaxChecker.png) +![Syntax Checker](../../../../assets/clle/syntaxChecker.png) ## CL Code Runner @@ -171,14 +171,14 @@ A CL command may be executed by highlighting the command and pressing _Ctrl+R_. The two lines of the `CRTMSGF` command are highlighted: -![Run CL example 1](/src/assets/clle/RunCL_01.png) +![Run CL example 1](../../../../assets/clle/RunCL_01.png) Press _Ctrl+R_ and success is reported: -![Run CL example 1](/src/assets/clle/RunCL_02.png) +![Run CL example 1](../../../../assets/clle/RunCL_02.png) Click _Open output_ if you want more detail or if the command fails: -![Run CL example 1](/src/assets/clle/RunCL_03.png) +![Run CL example 1](../../../../assets/clle/RunCL_03.png) Not all CL commands may be executed. \ No newline at end of file diff --git a/src/content/docs/extensions/db2i/AI/Copilot/index.mdx b/src/content/docs/extensions/db2i/AI/Copilot/index.mdx index 8ca1c13..685c058 100644 --- a/src/content/docs/extensions/db2i/AI/Copilot/index.mdx +++ b/src/content/docs/extensions/db2i/AI/Copilot/index.mdx @@ -32,7 +32,7 @@ This is a simple example to show how you can ask questions about the structure o -![alt text](/src/assets/db2_for_i/features/AI/copilot_integration/references.png) +![alt text](../../../../../../assets/db2_for_i/features/AI/copilot_integration/references.png) @@ -46,7 +46,7 @@ It will tell you if it can't get the related objects or if there are none. -![alt text](/src/assets/db2_for_i/features/AI/copilot_integration/related.png) +![alt text](../../../../../../assets/db2_for_i/features/AI/copilot_integration/related.png) @@ -58,7 +58,7 @@ The screenshots that after the participant has responsed, it will sometimes offe -![alt text](/src/assets/db2_for_i/features/AI/copilot_integration/followup.png) +![alt text](../../../../../../assets/db2_for_i/features/AI/copilot_integration/followup.png) @@ -72,12 +72,12 @@ To use the tool, you can either reference it by tagging `#result` in your reques -![alt text](/src/assets/db2_for_i/features/AI/copilot_integration/toolA.png) +![alt text](../../../../../../assets/db2_for_i/features/AI/copilot_integration/toolA.png) It will then take the result set of the statement and summarize the information based on your request. -![alt text](/src/assets/db2_for_i/features/AI/copilot_integration/toolB.png) +![alt text](../../../../../../assets/db2_for_i/features/AI/copilot_integration/toolB.png) \ No newline at end of file diff --git a/src/content/docs/extensions/db2i/AI/code-assistant.mdx b/src/content/docs/extensions/db2i/AI/code-assistant.mdx index 41270e8..b1ae524 100644 --- a/src/content/docs/extensions/db2i/AI/code-assistant.mdx +++ b/src/content/docs/extensions/db2i/AI/code-assistant.mdx @@ -18,7 +18,7 @@ import { Image } from 'astro:assets'; ## Introduction -![alt text](/src/assets/db2_for_i/features/AI/code_assitant/image-8.png) +![alt text](../../../../../assets/db2_for_i/features/AI/code_assitant/image-8.png) The Db2 for i SQL code assistant provides integration with GitHub Copilot Chat, allowing you to ask questions about your Db2 for IBM i database, and get help with writing SQL queries. The best part is that you can do this directly from your VS Code editor. @@ -41,7 +41,7 @@ Common Use cases of the SQL code assistant include: The `@db2i` GitHub Copilot chat participant works by extracting relevant database information from the user prompt. Here is a breakdown of the algorithm: -![alt text](/src/assets/db2_for_i/features/AI/code_assitant/image-21.png) +![alt text](../../../../../assets/db2_for_i/features/AI/code_assitant/image-21.png) #### Step 1: Tokenize User Input @@ -86,7 +86,7 @@ let's break down the process of how the `@db2i` chat participant works: ### Here's a breakdown of the process: -![alt text](/src/assets/db2_for_i/features/AI/code_assitant/image-19.png) +![alt text](../../../../../assets/db2_for_i/features/AI/code_assitant/image-19.png) 1. **Activate the `@db2i` Chat Participant** diff --git a/src/content/docs/extensions/db2i/AI/use-cases.mdx b/src/content/docs/extensions/db2i/AI/use-cases.mdx index 7ef7052..613586d 100644 --- a/src/content/docs/extensions/db2i/AI/use-cases.mdx +++ b/src/content/docs/extensions/db2i/AI/use-cases.mdx @@ -15,8 +15,8 @@ This is a collection of use cases for the Db2 for i Code Assistant in GitHub Cop Bread and Butter example: Generate SQL statements for a given table: -![alt text](/src/assets/db2_for_i/features/AI/code_assitant/image-22.png) +![alt text](../../../../../assets/db2_for_i/features/AI/code_assitant/image-22.png) Under the hood, We fetch relevant information about the referenced table: `sample.employee` and generate the SQL statement for you: -![alt text](/src/assets/db2_for_i/features/AI/code_assitant/image-24.png) \ No newline at end of file +![alt text](../../../../../assets/db2_for_i/features/AI/code_assitant/image-24.png) \ No newline at end of file diff --git a/src/content/docs/extensions/db2i/index.mdx b/src/content/docs/extensions/db2i/index.mdx index da85a14..04be61e 100644 --- a/src/content/docs/extensions/db2i/index.mdx +++ b/src/content/docs/extensions/db2i/index.mdx @@ -10,7 +10,7 @@ import { Icon } from '@astrojs/starlight/components'; The Db2 for i extension allows users to browse database schemas, execute SQL statements, and more, on an IBM i. -![](/src/assets/db2_for_i/features/miscellaneaous/main.png) +![](../../../../assets/db2_for_i/features/miscellaneous/main.png) ## Install @@ -77,7 +77,7 @@ update: select * from sample.employee; At the bottom of the **Results** view, you can observe the update statement that will be executed as you edit the data. It will only be executed once you press `Enter`. -![](/src/assets/db2_for_i/features/miscellaneous/updatePrefix.png) +![](../../../../assets/db2_for_i/features/miscellaneous/updatePrefix.png) ### Binding Parameters @@ -99,7 +99,7 @@ bind: '000020', 'A00'; When you execute an SQL statement, it will be prepended to your **Statement History** view. For any commonly used SQL statements, you can star them to make them easily readily accessible. -![](/src/assets/db2_for_i/features/miscellaneous/statementHistory.png) +![](../../../../assets/db2_for_i/features/miscellaneous/statementHistory.png) ## Syntax Checking @@ -111,7 +111,7 @@ When connected to an IBM i, the syntax checker has the following options: The syntax checker configuration is available through the VS Code settings (and not the Connection Settings). -![](/src/assets/db2_for_i/features/miscellaneous/syntaxchecker.png) +![](../../../../assets/db2_for_i/features/miscellaneous/syntaxchecker.png) -![](/src/assets/db2_for_i/features/schemas/manageSchemaBrowser.png) +![](../../../../assets/db2_for_i/features/schemas/manageSchemaBrowser.png) Once you have your desired schemas added, you can browse your database objects based on type. You can use the 'Filter Database Object Types' option to filter which types are are shown. You can also right-click on SQL objects to see more actions (each SQL object type may have unique actions). -![](/src/assets/db2_for_i/features/schemas/schemaBrowser.png) +![](../../../../assets/db2_for_i/features/schemas/schemaBrowser.png) ### Viewing Table Contents @@ -164,15 +164,15 @@ If you are using the **Schema Browser** to browse objects, you are able to use t The **Examples** view provides users with a set of SQL example scripts that can be used as a learning tool or as a starting point for their own SQL scripts. These examples are grouped into categories to make it easy to find what you are looking for. You can hover over any example to get a preview of the SQL script or click on it to open a copy which you can freely edit. -![](/src/assets/db2_for_i/features/examples/examplesPreview.png) +![](../../../../assets/db2_for_i/features/examples/examplesPreview.png) On top of the built-in examples, users can also add specific directories containing their own SQL examples using the `Add...` button under the `Custom Examples Directories` submenu on the **Examples** view. All SQL files in the specified directories and at most one subdirectory level deeper will be picked up. By default, the folder name will be the category and the file name will be the name of the example. This can be customized by optionally including a comment in the file with the tags `category` and `description`. -![](/src/assets/db2_for_i/features/examples/examplesAdd.png) +![](../../../../assets/db2_for_i/features/examples/examplesAdd.png) Once you have added a custom examples directory, you can quickly save new examples to that directory using the `Save As New Example` button in the Examples view. -![](/src/assets/db2_for_i/features/examples/examplesSave.png) +![](../../../../assets/db2_for_i/features/examples/examplesSave.png) ## SQL Error Logging Facility (SELF) @@ -180,7 +180,7 @@ SQL Error Logging Facility (SELF) offers a comprehensive view that can help user Additional documentation of SELF can be found [here](https://www.ibm.com/docs/i/7.5?topic=tools-sql-error-logging-facility-self) -![](/src/assets/db2_for_i/features/self/selfcodes.png) +![](../../../../assets/db2_for_i/features/self/codes.png) Each item in the SELF view is for a specific `SQLCODE` which is displayed in parenthesis. The `SQLCODE` tracks the actual error or warning triggered by a given SQL statement. @@ -199,13 +199,13 @@ values). - *ALL specifies all SQLCODEs that are error or warning conditions. - *NONE turns off SELF processing. -![](/src/assets/db2_for_i/features/self/selfdefault.png) +![](../../../../assets/db2_for_i/features/self/selfdefault.png) The SELF Level can also be set on a per job basis by right clicking on the active job in the [SQL Job Manager](#sql-job-manager) ### Auto Refresh -![](/src/assets/db2_for_i/features/self/selfauto.png) +![](../../../../assets/db2_for_i/features/self/selfauto.png) We added the option for users to configure `Auto Refresh` on the SELF view. When enabled, the SELF view will update on a constant interval (every 30 seconds). The SELF view can be cleared by clicking the trash icon. @@ -215,13 +215,13 @@ We have added Visual Explain into the database extension with a more lightweight The Visual Explain view has a button on the header to control which nodes should be highlights, as well as the ability to export the data as JSON, and more. -![](/src/assets/db2_for_i/features/miscellaneous/dove.png) +![](../../../../assets/db2_for_i/features/miscellaneous/dove.png) ## Notebooks Notebooks now supports Db2 for IBM i when using the database extension. If you have not heard of Notebooks before, [check out this blog post](https://code.visualstudio.com/blogs/2021/11/08/custom-notebooks) on the Visual Studio Blog. IBM i Notebooks allow users to build documents of markdown, SQL statements and CL commands all in one view, that can be saved, re-used, re-run and shared to other people. This allows you to create documentation, a step-by-step guide, and many other things, specifically for IBM i. -![](/src/assets/db2_for_i/features/miscellaneous/notebook.png) +![](../../../../assets/db2_for_i/features/miscellaneous/notebook.png)