jbenden/vscode-c-cpp-flylint

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
# Change Log

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [1.14.0] - 2024-02-07

### Changed

- chore(deps): Bump babel/traverse
- chore(deps): Bump node/debug
- chore: Preen istanbul outputs
- chore: Add codeclimate code coverage reporting
- fix(linters): Add support for PCLint Plus 2.0 trial license.
  See #212.

### Added

- Support grouped and sorted properties. See #205.

## [1.13.1] - 2023-08-16

### Changed

- chore(deps): Bump semver from 7.3.4 to 7.5.3
- chore(deps): Bump tough-cookie from 4.0.0 to 4.1.3
- chore(deps): Bump webpack from 5.75.0 to 5.76.0
- chore(deps): Bump word-wrap from 1.2.3 to 1.2.4
- fix(linters): fix cppcheck 2.11 or greater

## [1.13.0] - 2023-01-07

### Changed

- Project-wide compliance with the REUSE[^reuse] specification has been
  implemented.
- chore(deps): Bump loader-utils from 2.0.3 to 2.0.4.
- Improved overall CICD pipeline.
- Added file-system normalization throughout all analyzers.

## [1.12.1] - 2022-11-08

### Added

- Added CI automation for future GitHub ran Depend-a-bot
  pull-requests.

### Changed

- chore(deps): Bump loader-utils from 2.0.0 to 2.0.3
- chore(deps): Bump minimatch from 3.0.4 to 3.1.2

## [1.12.0] - 2022-09-24

### Added

- Allow diagnostic code lookup via the web. See #143.
- Implemented the missing tests involving `c_cpp_properties.json`.
- Lizard analyzer: Added `extraArgs` as an argument. See #168.

### Changed

- chore(deps): Bump minimist from 1.2.5 to 1.2.6
- chore(deps): Bump terser from 5.5.1 to 5.14.2
- Improved support for parsing `c_cpp_properties.json` files containing
  comments and blanks. See #165 for more detail.
- Fix ESLint warnings.

## [1.11.0] - 2021-11-16

### Added

- Support for Microsoft(TM) cpptools's active configuration name.
  See #121.

### Changed

- Entirely switched from `Mocha` to the `Jest` unit-testing framework.
- Improved searching of linter exe's; always uses `PATH` from the
  environment. Also respects the `PATHEXT` environment variable on
  Windows.
- PSLint Plus: Improved multi-line parsing of diagnostics. See #138.
- Ensure the use of UTF-8 encoding with all IO performed. It should
  be noted that this /MAY NOT/ ensure that external tools use UTF-8
  as well. See #140 for more. PS: If using a console/terminal, ensure
  it is using UTF-8 too!

## [1.10.2] - 2021-09-05

### Changed

- Perform variable substitution on each of the excluded directories listed
  in `excludeFromWorkspacePaths`.
  See #57.
- Improved documentation of the cascading `includePaths` behavior.
  See #136.

## [1.10.1] - 2021-08-13

### Changed

- chore(deps): Bump path-parse from 1.0.6 to 1.0.7

## [1.10.0] - 2021-08-05

### Changed

- Integrate with new workspace trust API, introduced in v1.58 series.
  Fixes #130.
- Fix event-driven linter analysis. Fixes #113.
- Synchronized readme files.

#### Development

The Git branch where development takes place has been renamed to "main".

## [1.9.3] - 2021-06-11

### Changed

- chore(deps): Bump glob-parent from 5.1.1 to 5.1.2

## [1.9.2] - 2021-05-27

### Changed

- Remove SVG reference inside of README.md.

## [1.9.1] - 2021-05-27

### Changed

- chore(deps): Bump browserslist from 4.16.3 to 4.16.6
- chore(deps): Bump lodash from 4.17.20 to 4.17.21

## [1.9.0] - 2021-03-20

### Changed

- Configuring settings allows users to conveniently select a different
  set of tools based on project's need, but also allows attackers to
  run arbitrary binaries on your machine, if they successfully
  convince you to open a random repository.

  To reduce the security risk, you may mark a workspace as a trusted
  workspace.

  CVE-2021-28953

## [1.8.2] - 2021-02-24

### Changed

- Fix non-fatal error about diagnostic code was neither a number nor
  string. Fixes #111.
- Slight performance improvement by exiting the analysis function
  earlier; namely, when the mode setting does not match the entry
  mode reason.

## [1.8.1] - 2021-02-20

### Changed

- Cppcheck severity maps weren't ideal. Fixes #110.
- Fixes wrong logic in converting a linter's diagnostic value to
  the matching VSCode diagnostic value. Fixes #110.
- Cppcheck lint parser should ignore automatically disabled checks.
- Disable directory traversal into hidden folders, during build up
  of include paths to pass on to the linters. Fixes #109.

## [1.8.0] - 2021-02-09

### Added

- Added ability to trigger analysis after build task completion.
  Fixes #61.
- Added support for D. Wheeler's Flawfinder linter.
  See #99.
- Added support for Lizard, a cyclomatic complexity analyzer.
  See #103.

### Changed

- When using the command palette to request a document or
  workspace analysis, the analysis is forced to complete.
- Changed the API for `Linter.lintOn()`.
- Only perform a single analysis on a document's version
  number (this is a part of VS Code's API). Each change
  increments this number.
- Handle removing all excluded workspace paths, from all
  automatically generated include paths. Fixes #57.
- Refactored project's file-system layout, fixing a number
  of problems, which includes #79. Introduced ESLint to
  the project, and added to CI workflow.
- Allow more than one analyzer per document version.
  Fixes #100.

## [1.7.1] - 2021-01-12

### Changed

- Switched CI/CD from Travis-ci.org to GitHub Actions.
- Switch webpack over to "production" mode, when publishing
  extension using vsce.

## [1.7.0] - 2021-01-10

### Added

- Added support for Gimpel Software's PC-lint Plus linter.

## [1.6.0] - 2020-10-06

### Changed

- Add additional line parse exclusion to Clang. Fixes #88.
- Removed `everything` warning from Clang, by default.

## [1.5.1] - 2020-07-21

### Changed

- Bump lodash dependency. PR #85 #86 #87.

## [1.5.0] - 2020-07-12

### Changed

- Clang: Ignore lines from wxWidget headers. Fixes #83.

### Added

- Use webpack to compress and optimize delivery of extension.

## [1.4.4] - 2020-05-13

### Changed

- Fixed cppcheck documentation on supported standards. Fixes #77.
- Fixed Travis-CI during tag deploys.

## [1.4.3] - 2020-05-13

### Added

- Added `extraArgs` configuration option to the CppCheck linter.
  Fixes #66, #78.

### Changed

- Upgraded node modules to latest versions.
- Modernized Travis-CI build script.

## [1.4.2] - 2020-04-24

### Changed

- Add recent standards to supported list. Fixes #77.

## [1.4.1] - 2020-02-02

### Changed

- Fixed bug where a given source code line containing multiple
  diagnostics were incorrectly filtered. PR #71.

## [1.4.0] - 2020-02-01

### Added

- Added CppCheck add-ons support. PR #70.

## [1.3.0] - 2020-02-01

### Changed

- Upgrade to Node.js 12 and TypeScript 3.7. PR #69.

## [1.2.4] - 2019-04-12

### Changed

- Separate the LSP Client's display name from the one internally
  used. Fixes #55.

## [1.2.3] - 2019-04-05

### Changed

- Ignore `input unused` from Clang. Fixes #54.
- Add glob support for `c_cpp_properties.json`, when processing the
  include paths. Fixes #53.

## [1.2.2] - 2019-03-11

### Changed

- Removed whitespace around regexp to fix verbose mode. Fixes #48.

## [1.2.1] - 2019-03-09

### Changed

- Removed whitespace around regexp to fix verbose mode. Fixes #48.

## [1.2.0] - 2018-08-10

### Changed

- Updated project to Node version 8.
- Clang: Ignore line containing "incompatible with". Fixes #46.

## [1.1.1] - 2018-05-28

### Added

- Added option to ignore parse errors. PR #42 and
  fixes #41.

### Changed

- CppCheck: Fixed parse error thrown for missing includes.
  Fixes #44.
- Fixed bug related to analyzer output being wrapped
  in quotes. Fixes #43.

## [1.1.0] - 2018-05-25

### Added

- Multiple folder workspaces, are now supported.

### Changed

- Added debounce delay for incoming document changes to trigger
  a reanalysis, when "onType" setting is configured. Fixes #39.
- Fixed incorrect logic in determining when to run an analysis.
- Fixed issues relating to live configuration changes not
  instantly being reflected in analysis.
- Added "workspaceFolder" variable substitution. Fixes #38.
- Show notification when a parser is unable to parse an analyzer's
  tooling output.

### Miscellaneous

- Publish VSIX files to project GitHub Releases page, during
  successful CI runs.
- Fixed development workflow.
- Fixed documentation.

## [1.0.1] - 2018-05-23

### Changed

- Fixed project icon location.

## [1.0.0] - 2018-05-23

### Changed

- Upgraded all NPM module dependencies.
- Fixed developer workflow.
- Fixed README.md to reflect the new development workflow.
- Minor fixes.

## [0.6.1] - 2018-05-23

### Changed

- Upgraded the dependency `cross-spawn` to better support shell
  escapes on Windows.

## [0.6.0] - 2018-03-30

### Added

- Added the ability to exclude certain paths within your workspace
  from any analysis diagnostics. Fixes #33

## [0.5.7] - 2018-03-29

### Changed

- CppCheck: Add `avr8` platform support.

## [0.5.6] - 2018-03-08

### Changed

- CppCheck will now honor any inline suppressions within the user's
  source code.
- Only report diagnostics on files belonging to the workspace root.
- Added GitHub issues URL to README file.

## [0.5.5] - 2018-02-28

### Changed

- Remove all diagnostics before resending them from the server-side
  to VS Code.
- Fix TypeScript 2.7 "possibly undefined" build error. GH #29.
- Fix cppcheck "missingInclude" error. GH #29.
- Fix Windows diagnostics file URI generation. GH #29.
- Updated Node module project dependencies.

## [0.5.4] - 2017-11-11

### Changed

- Fixes broken 0.5.3 release. Oops!

## [0.5.3] - 2017-11-11

### Changed

- Clang: skip over all Qt macros which are prefixed with `Q_`.
  Fixes #22.

## [0.5.1] - 2017-10-20

### Changed

- CppCheck: skip over known verbose outputs. Fixes #19.

## [0.5.0] - 2017-10-17

### Changed

- Minor change to the way command executions are shown, to enable easier
  copy and paste to a terminal for debugging analyses.

### Added

- Now supports reading include paths and defines from a workspace
  `c_cpp_properties.json` file. These settings cascade to all analyzers,
  and are only set when no manual configuration of these two settings
  have taken place.

## [0.4.3] - 2017-10-16

### Changed

- All of the linters will now perform an analysis according to their
  supported capabilities and the current `c-cpp-flylint.run` setting.
  This change reduces the total number of linter executions, when the
  setting is `onType` and multiple analyzers are enabled; as only
  Clang supports `onType` currently.

## [0.4.2] - 2017-10-16

### Changed

- Clear previous errors when no further exist. Fixes #17

## [0.4.1] - 2017-10-15

### Changed

- Fixes cleared diagnostics upon file close. For more information on
  this fix, see bug report #16.

## [0.4.0] - 2017-10-15

### Changed

- Reworked all analyzers to report problems potentially spanning multiple
  source code files.
- Ensure all analyzer reports are merged and sent to the editor, to keep
  VS Code from dropping an analyzer's analysis.
- Clang: use actual source code file, when "onSave".
- Updated all NPM dependencies to their latest versions.

### Added

## [0.3.1] - 2017-10-14

### Changed

- Fix mangled naming shown with Clang diagnostics. Fixes #13.

### Added

## [0.3.0] - 2017-10-14

### Changed

- Fixed nested Clang analyzer diagnostics.

### Added

- Fixed onType Clang analyzer mode.

## [0.2.7] - 2017-09-04

### Changed

- Fixed possible array out-of-bounds.

### Added

## [0.2.6] - 2017-09-04

### Changed

- Ensure document line access is within range and safely recalculate the
  start and end columns. Fixes #10.
- Flexelint now returns the 0th column, for consistency with the other
  analyzers visual display within open documents.

### Added

## [0.2.5] - 2017-08-23

### Changed

- Handle Clang's `extraArgs` parameter. Fixes #7.

### Added

## [0.2.4] - 2017-08-23

### Changed

- Do not throw error messages with non-local files. Fixes #5.
- Switch to cross-spawn NPM module to work-around numerous issues
  with Node.js's child_process.spawn functions on Windows.
  Fixes #9.

## [0.2.3] - 2017-07-05

### Added

### Changed

- Fixed crash when opening a single file not under an opened
  workspace or when no file URI to a disk-based file exists.
  Fixes #3

## [0.2.2] - 2017-07-04

### Added

### Changed

- Always analyze file upon save. Fixes #2

## [0.2.1] - 2017-06-29

### Added

- Added flag for determining if analyzers were originally enabled.

### Changed

- Resolve disabled analyzers reporting errors at start-up. Resolves #1

## [0.2.0] - 2017-06-24

### Added

- Clang static code analyzer has been added.

### Changed

- Display an informational message when a given analyzer is unable to
  activate due to missing binary or configuration file.
- Fixed a bug where the cascade of settings did not function as expected.
- Improve generic error message: added a note to check the console
  output.
- Erroneously misunderstood how the `which` NPM module functioned. Non-
  Windows users may have experienced a bug in the analyzer executable
  detection logic. This has been resolved.
- Ensures newly opened C/C++ source code files are scanned.
- Corrects an off-by-one error with the parsing of analyzer output.

## [0.1.0] - 2017-06-19

### Added

- Added a command to force the analysis of the current document.
- Added a command to force the analysis of all opened documents within the
  workspace.
- A change log to quickly view an overview of the changes made to each version
  of the extension.
- Added flag to enable verbose debug logging. This was previously the default
  mode of operation.
- Refactored the most typical options, common between analyzers, to a common
  base configuration set. The base configuration set will cascade to all
  analyzers, by default.

### Changed

- Fixed duplicate analyzers being ran after configuration change.
- Redefined how the `c-cpp-flylint.run` configuration option functions.
- Always ensure a starting column is selected, even if RegExp fails.

## [0.0.1] - 2017-06-18

- Initial release.

[^reuse]: https://reuse.software/spec/