From 51c6e1ca3275798a28b96c859d3ecbacd1d6a0c3 Mon Sep 17 00:00:00 2001 From: dlilley Date: Thu, 12 Oct 2023 11:15:49 -0400 Subject: [PATCH 1/3] v1.1.4 - Latest submodule commits --- server | 2 +- syntaxes | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server b/server index e6e87cc..f1a791c 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit e6e87cc9d04d9fb6b8731b7f8905f8de7677f952 +Subproject commit f1a791cd02e11df63f08701c47090a989f3511e0 diff --git a/syntaxes b/syntaxes index c2c0e4e..33f60b8 160000 --- a/syntaxes +++ b/syntaxes @@ -1 +1 @@ -Subproject commit c2c0e4ec8a401b2c6f76e6069aa0b19da3d0b3bd +Subproject commit 33f60b8dae3af4e24b603794f2434e7adc537bf5 From 5dc803da9755debccb03f5c0ce41554323cdeadb Mon Sep 17 00:00:00 2001 From: dlilley Date: Mon, 16 Oct 2023 10:32:19 -0400 Subject: [PATCH 2/3] Update README --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8be217a..b23cd51 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # MATLAB extension for Visual Studio Code -[![Open in MATLAB Online](https://www.mathworks.com/images/responsive/global/open-in-matlab-online.svg)](https://matlab.mathworks.com/open/github/v1?repo=mathworks/MATLAB-extension-for-vscode) - This extension provides support for editing MATLAB® code in Visual Studio® Code and includes features such as syntax highlighting, code analysis, navigation support, and more. You can use this extension with or without MATLAB installed on your system. However, to make use of the advanced code-editing features of the extension, you must have MATLAB R2021a or later installed. For more information, see the [Get Started](#get-started) section. +For an overview of the major features of this extension, you can watch the [Introducing the New MATLAB Extension for Visual Studio Code](https://www.youtube.com/watch?v=kYTBAr9LlGg) video. + ## Installation You can install the extension from within Visual Studio Code or download it from [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=MathWorks.language-matlab). After installing the extension, you might need to configure it to make full use of all the features. For more information, see the [Configuration](#configuration) section. @@ -26,6 +26,7 @@ If you have MATLAB R2021a or later installed on your system, you have access to * Source code formatting (document formatting) * Code navigation * Code analysis, such as continuous code checking and automatic fixes +* Code outline ![MATLAB Extension Demo](public/AdvancedFeatures.gif) @@ -42,12 +43,10 @@ For example, run the `matlabroot` command in the MATLAB Command Window. matlabroot ans = 'C:\Program Files\MATLAB\R2022b' - ``` In the extension settings, set the `matlab.installPath` setting to the value returned by the `matlabroot` command. -``` -matlab.installPath = "C:\Program Files\MATLAB\R2022b" -``` + +![MATLAB Install Path Setting](public/InstallPathSetting.png) ### MATLAB Index Workspace Setting By default, the extension indexes all the MATLAB code files (`.m`) in your current workspace. Indexing allows the extension to find and navigate between your MATLAB code files. From 08627dd85d67e5d143eb41bd89d63dc992083da5 Mon Sep 17 00:00:00 2001 From: dlilley Date: Mon, 16 Oct 2023 11:15:33 -0400 Subject: [PATCH 3/3] Update version to 1.1.4 --- CHANGELOG.md | 5 +++++ package-lock.json | 4 ++-- package.json | 2 +- public/InstallPathSetting.png | Bin 0 -> 13115 bytes syntaxes | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 public/InstallPathSetting.png diff --git a/CHANGELOG.md b/CHANGELOG.md index d4a18a4..e89632a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.1.4] - 2023-10-16 + +### Added +- Outline now includes section headers + ## [1.1.3] - 2023-09-13 ### Fixed diff --git a/package-lock.json b/package-lock.json index d8a104f..286a169 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "language-matlab", - "version": "1.1.3", + "version": "1.1.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "language-matlab", - "version": "1.1.3", + "version": "1.1.4", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index c01b686..c84b08d 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Edit MATLAB code with syntax highlighting, linting, navigation support, and more", "icon": "public/L-Membrane_RGB_128x128.png", "license": "MIT", - "version": "1.1.3", + "version": "1.1.4", "engines": { "vscode": "^1.67.0" }, diff --git a/public/InstallPathSetting.png b/public/InstallPathSetting.png new file mode 100644 index 0000000000000000000000000000000000000000..a60dfa44b03c2a13432d6b7be64f7e3a21740ae8 GIT binary patch literal 13115 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 TnB(-