All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Support for Microsoft(TM) cpptools's active configuration name. See #121.
- Entirely switched from
Mocha
to theJest
unit-testing framework. - Improved searching of linter exe's; always uses
PATH
from the environment. Also respects thePATHEXT
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!
- Perform variable substitution on each of the excluded directories listed
in
excludeFromWorkspacePaths
. See #57. - Improved documentation of the cascading
includePaths
behavior. See #136.
- chore(deps): Bump path-parse from 1.0.6 to 1.0.7
- Integrate with new workspace trust API, introduced in v1.58 series. Fixes #130.
- Fix event-driven linter analysis. Fixes #113.
- Synchronized readme files.
The Git branch where development takes place has been renamed to "main".
- chore(deps): Bump glob-parent from 5.1.1 to 5.1.2
- Remove SVG reference inside of README.md.
- chore(deps): Bump browserslist from 4.16.3 to 4.16.6
- chore(deps): Bump lodash from 4.17.20 to 4.17.21
-
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
- 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.
- 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.
- 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.
- 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.
- Switched CI/CD from Travis-ci.org to GitHub Actions.
- Switch webpack over to "production" mode, when publishing extension using vsce.
- Added support for Gimpel Software's PC-lint Plus linter.
- Add additional line parse exclusion to Clang. Fixes #88.
- Removed
everything
warning from Clang, by default.
- Bump lodash dependency. PR #85 #86 #87.
- Clang: Ignore lines from wxWidget headers. Fixes #83.
- Use webpack to compress and optimize delivery of extension.
- Fixed cppcheck documentation on supported standards. Fixes #77.
- Fixed Travis-CI during tag deploys.
- Added
extraArgs
configuration option to the CppCheck linter. Fixes #66, #78.
- Upgraded node modules to latest versions.
- Modernized Travis-CI build script.
- Add recent standards to supported list. Fixes #77.
- Fixed bug where a given source code line containing multiple diagnostics were incorrectly filtered. PR #71.
- Added CppCheck add-ons support. PR #70.
- Upgrade to Node.js 12 and TypeScript 3.7. PR #69.
- Separate the LSP Client's display name from the one internally used. Fixes #55.
- Ignore
input unused
from Clang. Fixes #54. - Add glob support for
c_cpp_properties.json
, when processing the include paths. Fixes #53.
- Removed whitespace around regexp to fix verbose mode. Fixes #48.
- Removed whitespace around regexp to fix verbose mode. Fixes #48.
- Updated project to Node version 8.
- Clang: Ignore line containing "incompatible with". Fixes #46.
- Added option to ignore parse errors. PR #42 and fixes #41.
- CppCheck: Fixed parse error thrown for missing includes. Fixes #44.
- Fixed bug related to analyzer output being wrapped in quotes. Fixes #43.
- Multiple folder workspaces, are now supported.
- 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.
- Publish VSIX files to project GitHub Releases page, during successful CI runs.
- Fixed development workflow.
- Fixed documentation.
- Fixed project icon location.
- Upgraded all NPM module dependencies.
- Fixed developer workflow.
- Fixed README.md to reflect the new development workflow.
- Minor fixes.
- Upgraded the dependency
cross-spawn
to better support shell escapes on Windows.
- Added the ability to exclude certain paths within your workspace from any analysis diagnostics. Fixes #33
- CppCheck: Add
avr8
platform support.
- 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.
- 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.
- Fixes broken 0.5.3 release. Oops!
- Clang: skip over all Qt macros which are prefixed with
Q_
. Fixes #22.
- CppCheck: skip over known verbose outputs. Fixes #19.
- Minor change to the way command executions are shown, to enable easier copy and paste to a terminal for debugging analyses.
- 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.
- 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 isonType
and multiple analyzers are enabled; as only Clang supportsonType
currently.
- Clear previous errors when no further exist. Fixes #17
- Fixes cleared diagnostics upon file close. For more information on this fix, see bug report #16.
- 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.
- Fix mangled naming shown with Clang diagnostics. Fixes #13.
- Fixed nested Clang analyzer diagnostics.
- Fixed onType Clang analyzer mode.
- Fixed possible array out-of-bounds.
- 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.
- Handle Clang's
extraArgs
parameter. Fixes #7.
- 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.
- 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
- Always analyze file upon save. Fixes #2
- Added flag for determining if analyzers were originally enabled.
- Resolve disabled analyzers reporting errors at start-up. Resolves #1
- Clang static code analyzer has been added.
- 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.
- 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.
- 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.
- Initial release.