Skip to content

Commit

Permalink
Merge branch 'release/v2.3.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
ivankravets committed Mar 23, 2021
2 parents 97a520d + 17cf795 commit f8ec78f
Show file tree
Hide file tree
Showing 6 changed files with 174 additions and 77 deletions.
80 changes: 46 additions & 34 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,33 @@
# Release Notes

## 2.3.0 (2021-??-??)
## 2.3.1 (2021-03-23)

- Added a new setting ``platformio-ide.autoOpenPlatformIOIniFile`` to control an automatic opening of the `platformio.ini` file from a project when no other editors are opened (issue [#2419](https://github.com/platformio/platformio-vscode-ide/issues/2419))
- Added a new setting ``platformio-ide.activateProjectOnTextEditorChange`` to enable automatic project activation depending on an active opened text editor (issue [#2410](https://github.com/platformio/platformio-vscode-ide/issues/2410))
- Automatically activate project environment opened via "PIO Home > New Project / Open Project" (issue [#2414](https://github.com/platformio/platformio-vscode-ide/issues/2414))
- Do not show "Default" environment when a project does not have any build environments (issue [#2450](https://github.com/platformio/platformio-vscode-ide/issues/2450))
- Fixed an issue "Failed to load symbols from executable file" when debugging native/desktop application
- PlatformIO IDE Installer
* Updated PlatformIO Core installer to v1.0.1
* Rebuild project index only when the environment changes
* Fixed an issue "The 'path' argument must be of type string. Received undefined"

## 2.3.0 (2021-03-03)

**Requires PlatformIO Core 5.1 or above**

* Project management:
- Show active project in the status bar (issue [#2276](https://github.com/platformio/platformio-vscode-ide/issues/2276))
- Automatically switch to the latest project on restart (issue [#2365](https://github.com/platformio/platformio-vscode-ide/issues/2365))
- Automatically restore the latest project environment (issue [#2344](https://github.com/platformio/platformio-vscode-ide/issues/2344))
* Allowed passing custom base URL of the Python Package Index using new `customPyPiIndexUrl` setting
* Open ["platformio.ini" configuration file](https://docs.platformio.org/page/projectconf/index.html) from newly added project (if there are no other active editors) (issue [#2263](https://github.com/platformio/platformio-vscode-ide/issues/2263))
* Updated PlatformIO Core installer to v1.0.0 ([release notes](https://github.com/platformio/platformio-core-installer/releases/tag/v1.0.0))
* Added protection for infinite IntelliSense index rebuilding (issue [#2363](https://github.com/platformio/platformio-vscode-ide/issues/2363))
* Added "OpenAPI (Swagger) Editor" extension to the conflicted list (issue [#2324](https://github.com/platformio/platformio-vscode-ide/issues/2324))
* Fixed issues when the "Upload and Monitor" command didn't terminate the running task and didn't reopen a monitor with delay (issue [#2266](https://github.com/platformio/platformio-vscode-ide/issues/2266), issue [#2319](https://github.com/platformio/platformio-vscode-ide/issues/2319))
* Fixed an issue with broken IntelliSense index rebuilding or tasks loading for big projects (issue [#2321](https://github.com/platformio/platformio-vscode-ide/issues/2321))
* Fixed an issue when a debug breakpoint was not allowed for Assembly files
- Project management:
* Show active project in the status bar (issue [#2276](https://github.com/platformio/platformio-vscode-ide/issues/2276))
* Automatically switch to the latest project on restart (issue [#2365](https://github.com/platformio/platformio-vscode-ide/issues/2365))
* Automatically restore the latest project environment (issue [#2344](https://github.com/platformio/platformio-vscode-ide/issues/2344))
- Allowed passing custom base URL of the Python Package Index using new `customPyPiIndexUrl` setting
- Open ["platformio.ini" configuration file](https://docs.platformio.org/page/projectconf/index.html) from newly added project (if there are no other active editors) (issue [#2263](https://github.com/platformio/platformio-vscode-ide/issues/2263))
- Updated PlatformIO Core installer to v1.0.0 ([release notes](https://github.com/platformio/platformio-core-installer/releases/tag/v1.0.0))
- Added protection for infinite IntelliSense index rebuilding (issue [#2363](https://github.com/platformio/platformio-vscode-ide/issues/2363))
- Added "OpenAPI (Swagger) Editor" extension to the conflicted list (issue [#2324](https://github.com/platformio/platformio-vscode-ide/issues/2324))
- Fixed issues when the "Upload and Monitor" command didn't terminate the running task and didn't reopen a monitor with delay (issue [#2266](https://github.com/platformio/platformio-vscode-ide/issues/2266), issue [#2319](https://github.com/platformio/platformio-vscode-ide/issues/2319))
- Fixed an issue with broken IntelliSense index rebuilding or tasks loading for big projects (issue [#2321](https://github.com/platformio/platformio-vscode-ide/issues/2321))
- Fixed an issue when a debug breakpoint was not allowed for Assembly files

## 2.2.1 (2020-11-12)

Expand Down Expand Up @@ -50,36 +62,36 @@

## 2.1.0 (2020-09-16)

* Added a new setting ``platformio-ide.autoPreloadEnvTasks`` to enable automatic preloading of the project environment tasks (issue [#2004](https://github.com/platformio/platformio-vscode-ide/issues/2004))
* Renamed "PIO Remote" group of tasks to "Remote Development"
* Updated PlatformIO Core installer to [v0.3.5](https://github.com/platformio/platformio-core-installer/releases/tag/v0.3.5)
- Added a new setting ``platformio-ide.autoPreloadEnvTasks`` to enable automatic preloading of the project environment tasks (issue [#2004](https://github.com/platformio/platformio-vscode-ide/issues/2004))
- Renamed "PIO Remote" group of tasks to "Remote Development"
- Updated PlatformIO Core installer to [v0.3.5](https://github.com/platformio/platformio-core-installer/releases/tag/v0.3.5)

## 2.0.1 (2020-09-10)

* Moved "Project Tasks" view back to "PlatformIO" activity (you can now drag it to any location)
- Moved "Project Tasks" view back to "PlatformIO" activity (you can now drag it to any location)

## 2.0.0 (2020-09-10)

**Requires PlatformIO Core 5.0 or above**
**Requires VSCode 1.44 or above**

* New PlatformIO Task Explorer
- Instant access to the Project Tasks within the VSCode Explorer
- Grouped tasks: Generic, Advanced, PIO Remote, Platform, Custom, etc.
- Support for PlatformIO dev-platform tasks (Program FPGA bitstream, Burn bootloader, Upload to FS, OTA Update, etc). The list of tasks depends on a particular dev-platform
- Access to [User Custom Targets](https://docs.platformio.org/en/latest/projectconf/advanced_scripting.html#custom-targets)
* New Project Environment Switcher
- Switch between project environments declared in [platformio.ini](https://docs.platformio.org/en/latest/projectconf/index.html) project configuration file (issue [#544](https://github.com/platformio/platformio-vscode-ide/issues/544))
- Activate IntelliSense service based on the current environment
- Automatically generate a debugging configuration for the active environment
* New PlatformIO IDE Installer
- Added progress information
- Switched to the cross-platform and portable [get-platformio.py](https://github.com/platformio/platformio-core-installer) installer script
- Use built-in portable Python 3 on Windows and macOS (it can be disabled with ``platformio-ide.useBuiltinPython`` setting)
* Added support for ``extends`` option in ``platformio.ini`` project configuration file (issue [#1371](https://github.com/platformio/platformio-vscode-ide/issues/1371))
* Contribute PlatformIO Core CLI into VSCode's default Terminal
* Reduced startup time (PlatformIO Core verification process)
* Fixed a bug when hotkeys in PlatformIO Home did not work on macOS (issue [#606](https://github.com/platformio/platformio-vscode-ide/issues/606))
- New PlatformIO Task Explorer
* Instant access to the Project Tasks within the VSCode Explorer
* Grouped tasks: Generic, Advanced, PIO Remote, Platform, Custom, etc.
* Support for PlatformIO dev-platform tasks (Program FPGA bitstream, Burn bootloader, Upload to FS, OTA Update, etc). The list of tasks depends on a particular dev-platform
* Access to [User Custom Targets](https://docs.platformio.org/en/latest/projectconf/advanced_scripting.html#custom-targets)
- New Project Environment Switcher
* Switch between project environments declared in [platformio.ini](https://docs.platformio.org/en/latest/projectconf/index.html) project configuration file (issue [#544](https://github.com/platformio/platformio-vscode-ide/issues/544))
* Activate IntelliSense service based on the current environment
* Automatically generate a debugging configuration for the active environment
- New PlatformIO IDE Installer
* Added progress information
* Switched to the cross-platform and portable [get-platformio.py](https://github.com/platformio/platformio-core-installer) installer script
* Use built-in portable Python 3 on Windows and macOS (it can be disabled with ``platformio-ide.useBuiltinPython`` setting)
- Added support for ``extends`` option in ``platformio.ini`` project configuration file (issue [#1371](https://github.com/platformio/platformio-vscode-ide/issues/1371))
- Contribute PlatformIO Core CLI into VSCode's default Terminal
- Reduced startup time (PlatformIO Core verification process)
- Fixed a bug when hotkeys in PlatformIO Home did not work on macOS (issue [#606](https://github.com/platformio/platformio-vscode-ide/issues/606))

## 1.10.0 (2019-11-20)

Expand Down
24 changes: 17 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "platformio-ide",
"version": "2.3.0",
"version": "2.3.1",
"publisher": "platformio",
"engines": {
"vscode": "^1.44.0"
Expand Down Expand Up @@ -517,6 +517,16 @@
"default": false,
"description": "Activate the PlatformIO extension only when a PlatformIO-based project (with `platformio.ini`) is opened in the workspace"
},
"platformio-ide.activateProjectOnTextEditorChange": {
"type": "boolean",
"default": false,
"description": "Automatically activate project depending on an active opened text editor"
},
"platformio-ide.autoOpenPlatformIOIniFile": {
"type": "boolean",
"default": true,
"description": "Automatically open the `platformio.ini` file from a project when no other editors are opened"
},
"platformio-ide.autoCloseSerialMonitor": {
"type": "boolean",
"default": true,
Expand Down Expand Up @@ -606,25 +616,25 @@
"vscode:package": "webpack --mode production && vsce package"
},
"devDependencies": {
"@babel/core": "~7.13.8",
"@babel/core": "~7.13.10",
"@types/node": "~12",
"@types/vscode": "~1.44.0",
"babel-eslint": "~10.1.0",
"babel-loader": "~8.2.2",
"babel-plugin-transform-class-properties": "~6.24.1",
"babel-preset-env": "~1.7.0",
"eslint": "~7.21.0",
"eslint": "~7.22.0",
"eslint-import-resolver-webpack": "~0.13.0",
"eslint-plugin-import": "~2.22.1",
"prettier": "~2.2.1",
"vsce": "~1.85.1",
"webpack": "~5.24.2",
"vsce": "~1.87.0",
"webpack": "~5.27.2",
"webpack-cli": "~4.5.0"
},
"dependencies": {
"fs-plus": "~3.1.1",
"platformio-node-helpers": "~9.1.1",
"platformio-vscode-debug": "~1.3.0"
"platformio-node-helpers": "~9.1.2",
"platformio-vscode-debug": "~1.3.1"
},
"extensionDependencies": [
"ms-vscode.cpptools"
Expand Down
7 changes: 7 additions & 0 deletions src/home.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,13 @@ export default class PIOHome {
port: extension.getSetting('pioHomeServerHttpPort'),
onIDECommand: async (command, params) => {
if (command === 'open_project') {
if (extension.projectObservable) {
extension.projectObservable.saveProjectStateItem(
vscode.Uri.file(params).fsPath,
'activeEnv',
undefined
);
}
this.disposePanel();
if (vscode.workspace.workspaceFolders) {
vscode.workspace.updateWorkspaceFolders(
Expand Down
35 changes: 21 additions & 14 deletions src/installer/python-prompt.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@ export default class PythonPrompt {

async prompt() {
const selectedItem = await vscode.window.showInformationMessage(
'PlatformIO: Can not find working Python 2.7 or 3.5+ Interpreter. Please install the latest Python 3 and restart VSCode',
'PlatformIO: Can not find working Python 3.6+ Interpreter. Please install the latest Python 3 and restart VSCode',
{ title: 'Install Python', isCloseAffordance: false },
{ title: 'I have Python', isCloseAffordance: false },
{ title: 'Try again', isCloseAffordance: false },
{ title: 'Abort PlatformIO IDE Installation', isCloseAffordance: true }
);

let result = { status: this.STATUS_TRY_AGAIN };
let pythonExecutable = undefined;
switch (selectedItem ? selectedItem.title : undefined) {
case 'Install Python':
vscode.commands.executeCommand(
Expand All @@ -31,21 +33,26 @@ export default class PythonPrompt {
'http://docs.platformio.org/page/faq.html#install-python-interpreter'
)
);
return { status: this.STATUS_TRY_AGAIN };
break;
case 'I have Python':
return {
status: this.STATUS_CUSTOMEXE,
pythonExecutable: await vscode.window.showInputBox({
prompt: 'Please specify a full path to Python executable file',
placeHolder: 'Full path to python/python.exe',
validateInput: (value) =>
!fs.isFileSync(value) ? 'Invalid path to Python Interpreter' : null,
}),
};
pythonExecutable = await vscode.window.showInputBox({
prompt: 'Please specify a full path to Python executable file',
placeHolder: 'Full path to python/python.exe',
validateInput: (value) =>
!fs.isFileSync(value) ? 'Invalid path to Python Interpreter' : null,
});
if (pythonExecutable) {
result = {
status: this.STATUS_CUSTOMEXE,
pythonExecutable,
};
}
break;
case 'Abort PlatformIO IDE Installation':
return { status: this.STATUS_ABORT };
default:
return { status: this.STATUS_TRY_AGAIN };
result = { status: this.STATUS_ABORT };
break;
}

return result;
}
}
4 changes: 3 additions & 1 deletion src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class PlatformIOVSCodeExtension {
this.context = undefined;
this.pioTerm = undefined;
this.pioHome = undefined;
this.projectObservable = undefined;
this.subscriptions = [];

this._enterpriseSettings = undefined;
Expand Down Expand Up @@ -84,7 +85,8 @@ class PlatformIOVSCodeExtension {
this.initToolbar({
ignoreCommands: this.getEnterpriseSetting('ignoreToolbarCommands'),
});
this.subscriptions.push(new ProjectObservable());
this.projectObservable = new ProjectObservable();
this.subscriptions.push(this.projectObservable);

this.startPIOHome();

Expand Down
Loading

0 comments on commit f8ec78f

Please sign in to comment.