* Move the presets tests to integration tests.
These tests aren't true 'unit' tests by definition, so moving them to
integration.
Also, added include and CMakePresets/CMakeUserPresets tests.
* add inheritance and expansion and override tests
* fix formatting of test file
* fix linter issues
* fix lint issues
* fix path
* make tests better across platform
* fix lint
* renamed to end-to-end-tests and moved backend unit tests to unit-tests folder
* create folder for kits code, refactor imports to use @cmt and @test
* move variants into the kits folder
* refactor into better folder structure, still more to go
* Initial refactor making presets validation unit testing possible.
This seems to work well so far, I have v1-v3 presets tested, with some
more refactors regarding error reporting to come. However, the
design/infrastructure refactor seems to be allowing us to unit test
validation.
* implemented Presets version validation automated testing
* Added version testing for presets v1-9.
This adds testing for our version validation for all Presets versions
currently supported.
It creates presets on the fly and ensures that we correctly get errors,
or don't, depending on the setup and what fields are present with what
versions.
* fix workflows
* Ensure that we correctly initialize the presetsParser class
* refactor imports
* refactor imports
* more import fixes
* imports in projectStatus
* missed one
* workflow imports
* added comment about definite assignment
* add comments
* fix launch file to make sure breakpoints happen
* fix syntax error
* Use product icons instead of 'hardcoded' icons
- Add a product icon font instead of icons that are unchangable by product icon themes
- Add a script using FontForge scripting API for generating product icon font for future use
- Remove redundant icons that are already part of codicons
* Revert accidental addition of 'languages' contribution entry
* xml2js cg
* update tests as well
* try update partial
* switch kit?
* ninja is added to path so it should work, still investigating
* update action version with same tool versions
* changes to test
* test output
* more testing
* test macos-13
* remove logging
* remove logging
* try explicit macos-14
* go back to macos-13
* remove static version of vscode
* need to use 13
* comment
* committing state, no progress, just thinking through
* fix how we apply and override devenv to ensure we don't accidentally delete preset environment modifications from user
* check if ninja exists and it's the generator, use that to determine if we should add vs devenv as well
* currently broken, but saving state for adding a setting
* this works well, but I need to add back code that prohibits repeated devenv searching with where.exe
* finalize implementation of the setting for useVsDeveloperEnvironment
* minimize branches
* fix import
* update comments
* fix comment
* remove unnecessary comment
* fallback to better architecture/toolset
* update devenv vars and tests
* fix test for mac
* fix tests
* update changelog
* fix test expand and where.exe env
* update test to explicitly test architecture unit test
---------
Co-authored-by: snehara99 <113148726+snehara99@users.noreply.github.com>
* add unspecified build type and remove CMAKE_BUILD_TYPE prop when it's used
* reverted commenting out debugger
* let debugger stop on error again
* updated changelog
* updated the docs with the new option
* updated default kit build type
* fix failing tests
---------
Co-authored-by: Garrett Campbell <86264750+gcampbell-msft@users.noreply.github.com>
* Add setting for deleting whole build dir when clean configuring
* Remove unnecessary tag in new setting in package.json
* Add changelog entry. Remove unnecessary | null from new boolean setting.
---------
Co-authored-by: Garrett Campbell <86264750+gcampbell-msft@users.noreply.github.com>
* Implement treeview for tests using test suite delimiter
* Support regular expressions for delimiters
* Improve UI string
* Improve UI string
* Address CR comments
* Fix spacing
* make sure to pass entry point through
---------
Co-authored-by: Garrett Campbell <gcampbell@microsoft.com>
Co-authored-by: Garrett Campbell <86264750+gcampbell-msft@users.noreply.github.com>
* save progress
* add glob for cmakelists.txt
* keep some changes from 3703
* add changelog and some minor fixes
* put glob in right location
* leave globbing for cmakelists for other PR
* update based on learnings
* fix indentation of comments
* add back glob method
* fix formatting
* rm
* Add onSelectedKitChanged api
* needs package.json changes once api is shipped
* update the package.json
* Fix `notifyOnSelectedConfigurationChanged()` order
When `notifyOnSelectedConfigurationChanged()` is executed before
`setFolderActiveKit()`, `cmake.buildKit` returns the previous selected
kit. That's why `notifyOnSelectedConfigurationChanged()` should run
after `setFolderActiveKit()`.
---------
Co-authored-by: Garrett Campbell <gcampbell@microsoft.com>
Co-authored-by: Garrett Campbell <86264750+gcampbell-msft@users.noreply.github.com>
* add syntax files, add languages, grammars, to package.json
copy over stuff to play with later
got the grammars working with the other stuff commented out
cleaned up, not tested
remove stuff
I don't think we really need to have a unique ID, we should tell people to only install our extension
remove unnecessary method
update our syntaxes from what we do in VS
test pipeline
update cgmanifest
temporarly force cg
test different version
use .3 version
update notice, it includes textmate reference
manually add kitware/cmake reference to NOTICE
fix trigger
fix pipeline name
get repo
make sure we checkout the repos
powershell
inline
reference variables correctly
testing for differences, CHANGE LATER
updating textmate
see if we're getting the right git diff
test with explicit path
update dates
write output
try to properly access variables
use embeddedbot
put emails and username in variables
switch when I update config
orgurl
add logging
update auth
update docs
testing out PR tool
remove 'description' option
add console.log statements for testing
map system token
run index.ts for both grammars and quickinfo, put paths into variables, condition based on parameters
fix trigger
access variables correctly
access variables correctly
only run job if one of the share steps is enabled
fix job name
test without prefix
remove difference
remove snippets keyword until we actually add this
remove stray miscopy
remove powershell
* small update
* ignore tools directory when packaging
* don't build the tools directory when building and testing the extension
* exclude tools for webpack?
* revert webpack
* try webpack fix again
* try another fix
* revert
* we need to remote the NOTICE for testing earlier so yarn doesn't fail
* rename notices.txt to get around yarn issue
* update changelog
* Adds the appendBuildDirectoryToWorkspace method
* Append the build directory at the end of workspace folders
* Adds entry in CHANGELOG
* Takes into account code review remarks
* Merging features and improvements sections in CHANGELOG
* FIxes lint errors
---------
Co-authored-by: Guillaume Peillex <guillaume.peillex@cea.fr>
* Add most of what is needed for v7 and v8 support
Still need to update the schema.
* fix merge conflict
* add schemas for presets v7 and v8, update package.json
* update changelog
* Draft incomplete - does not compile
* Remaining functionality, needs more cleanup and testing
* More bug fixes, not much cleanup
* More bug fixes and stabilization
* fix indentation issues, unused variables, etc.
* Implement first round of code review feedback
* Fix more subtle and complex merge conflicts
* Fix linter issues
* Forgot to dispose of package event subscription
* PR review round two
* Incomplete status bar support for V6 presets. Don't clear output when in workflow mode, regardless of cleanOutputBeforeBuild setting. More cleanup.
* Finish status bar UI support for package and workflow presets
* Add validation of presets structure (applies to all). Fix some bugs.
* Skip expanding strings when not necessary. Remember more presets associations in the workspace state when reseting configure preset. More cleanup.
---------
Co-authored-by: Garrett Campbell <gcampbell@microsoft.com>
* Add initial setting and use in runCTest
There is still work to be done to ensure that we cover all
cases/scenarios and code locations to ensure that our integration with
the test explorer doesn't happen based on this setting
* Hide commands, handle TestController state.
Hide the commands based on the Test Explorer when the testExplorer
integration is disabled. Ensure the TestController gets disposed when
the setting is dynamically changed.
* attempt to refresh the tests when re-enabling integration
* add changelog
* only dispose if needed
* Update the already available settings to use in presets.
Turns out, we already have configure, build, buildTool, and test
args/envs that can override. I modified the code to use these in
presets. Also, I added a small sentence to the settings descriptions to
notify users that when using CMake Presets, they are designed for
overrides, not general configuration.
* pending further discussion, use general environment for all
* add temporary override string for presets to environment setting description
* don't remove configureSettings
* add text to specify that configureSettings isn't for presets scenario
* Add tentative treeview UI and output message for configure
Still need to do build/test/etc, and likely improve the strings
themselves.
* add output lines, improvement on the string to come, testing for location
* don't output message when we're using cache
* add handlers that update the nodes when a test or build setting is modified
* slight refactor and add * to status bar
* add button that only appears when overrides present that allows opening those settings
* share some code
* fix localize calls
* update tsconfig.json
* update eslint
* slightly reword the settings
* fix buildTool args
* avoid duplication
* ensure we only return -3 when testPreset isn't defined
* fix imports
* changelog and docs
* refactor to avoid circular dependency
* missed one
* fix imports
* Update the api.ts for the getActiveFolderPath method.
This will need to also update and pull down the 1.1 version of the API.
Changes coming.
* update changelog, give credit
* update version of api class
* use major versions for enum
* update version
* match version since we are back-compat
* add option to disable asking if we should still build when not all documents are saved
* changelog
---------
Co-authored-by: snehara99 <113148726+snehara99@users.noreply.github.com>
* Make popup only show up when necessary and reasonable.
Modify the return value of the configure method so that we can better
evaluate whether we should be showing the "Configure failed. Configure
with debugger?" popup.
* add ability to not show again and have it controlled by a setting
* fix tests
* more test fixes
* more testing fixes
* more testing fixes
* more testing fixes
* another fix attempt
* semantic error
* revert slightly to investigate
* test
* test fix
* test
* test
* only return the result for the command API
* fix test
* try deep equal in driver-test
* update changelog
---------
Co-authored-by: snehara99 <113148726+snehara99@users.noreply.github.com>