aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Doc: Disambiguate links to Qt module docsLeena Miettinen2024-11-183-6/+9
| | | | | Change-Id: I6c1d6870d56edabd13660821b3525bb6c51dea0c Reviewed-by: Orkun Tokdemir <orkun.tokdemir@qt.io>
* qt-qml: Add progress bar to fetching qmlls infoOrkun Tokdemir2024-11-144-47/+78
| | | | | | | | | * Move `fetchWithAbort()` to `qt-lib` * Add progress bar option to `fetchAssetAndDecide()` * Use `fetchWithAbort()` instead of `fetch()` in `fetchAssetAndDecide()` Change-Id: Ifd054d96427a89c9e24ac130a7362afe014ee8de Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-core: Fix broken cancel button in online docs & Refactor online docsOrkun Tokdemir2024-11-141-50/+108
| | | | | | | | | | * Introduce `fetchWithAbort()` to handle fetch requests * Fix broken cancel button in online docs * Remove duplicate code * Add logger to online-docs.ts Change-Id: I8a839c01c150d57525193a2355ed834a8e1e92ad Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Set `cmake.cmakePath` with cmake exe inside Qt installation rootOrkun Tokdemir2024-11-134-2/+96
| | | | | | | | | * Update package.json * Add `qt-cpp.doNotAskForCMakePath` Fixes: VSCODEEXT-102 Change-Id: Ia31715e40a4e0abc0aa42c9ef3d76033786fcbea Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* ci-scripts: Use force flag to install extensionsOrkun Tokdemir2024-11-131-1/+1
| | | | | | | | When a higher version of an extension is already installed, the extension installation fails. So, use the force flag to install. Change-Id: I7e00b11b31cf129d081e4451e3138e068e82f630 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-qml: Add workspaceFolder scope to `qmlls`Orkun Tokdemir2024-11-131-1/+7
| | | | | | | Amends f6b80894533915ac70656058c9155960fc99a0c9 Change-Id: I543865c9f54396fc1c1816e0186787b46646fe47 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-qml: Adapt qmlls usage with multiple projectsOrkun Tokdemir2024-11-126-46/+76
| | | | | | | | | | | | | | * Remove the global qmlls usage * Start qmlls instance for each project * Use configuration per project instead of global configuration * Use `workspaceFolder` scope for qmlls configuration * Implement `QMLProjectManager` - When a new version of the QML language server is available, restart all qmlls instances. * Prepare codebase for `qmlls` cli parameters per project Change-Id: If4bbd7f99da5ebd054a550419afa985bd65b2f3f Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: qt-core: Remove reduntdant `watchProjects()` callsOrkun Tokdemir2024-11-122-3/+0
| | | | | | | | | When `watchProjects()` is called in both `ProjectManager`s and derived classes constructors, `onDidChangeWorkspaceFolders()` is called twice for the same event. This causes a project to be added twice. Change-Id: I9c026ea3865afb556e372dfc672d84caad1371f0 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Filter out non-qtpaths values from kits `PATH` env variableOrkun Tokdemir2024-11-111-1/+6
| | | | | | | | | | When we don't filter out non-built-in values from kit `PATH` environment variable, we copy some unnecessary values like `ARCH`, `MSVC_MAJOR_VERSION`. So, we need to filter out non-qtpaths values from kit `PATH` environment variable. Change-Id: I99e4c3d6a76f7a9f3de973c0bab579ad7eab615c Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Add telemetryOrkun Tokdemir2024-11-0829-14/+1675
| | | | | | | | | | * Send events when commands are executed * Add https://www.npmjs.com/package/@vscode/extension-telemetry * Update ThirdPartyNotices.txt Task-number: VSCODEEXT-62 Change-Id: I7c88b0db55fa14da6d66025e7fa4458726f5ce6b Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* ci-scripts: Use native line endings for each platformOrkun Tokdemir2024-11-071-9/+14
| | | | | | | | | | Before this commit, the `generate_licenses.ts` script was using `\n` line endings for all platforms. This commit changes the code to use the native line endings for each platform. Othwerwise, comparing generated licenses fails on Windows. Change-Id: Ic7022805c4ec04ffdcb8a7480df7b7543df70d4d Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* ci-scripts: Install only version matching extensionOrkun Tokdemir2024-11-072-18/+26
| | | | | | | | | Instead of sorting `*.vsix` files by their versions, we can simply install the one that matches the extension version. This is a more reliable way to install the correct extension version. Change-Id: I0b499dd4222db93378afcff0ac584b63626a6084 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Rename qpaPlatformPluginPath to QT_QPA_PLATFORM_PLUGIN_PATHOrkun Tokdemir2024-11-072-4/+4
| | | | | | | | | Since `qpaPlatformPluginPath` is a environment variable, it should be renamed to `QT_QPA_PLATFORM_PLUGIN_PATH` to match other environment variables. Change-Id: Iff9e6ad003874a3ad64b56aa635eb2fed6dcb06e Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Keep VSCODE_QT_FOLDER for backward compatibilityOrkun Tokdemir2024-11-075-25/+41
| | | | | | | | | | | * Use `getQtInsRoot()` instead of `VSCODE_QT_INSTALLATION` everywhere to also include `VSCODE_QT_FOLDER` for backward compatibility. * Use `IsQtKit()` instead of checking environment variables directly. Change-Id: I14cc01915c7682190130b5cf0c14b96c6fe70a36 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qt-cpp: Add `qt-cpp.QML_IMPORT_PATH`Orkun Tokdemir2024-11-073-1/+56
| | | | | | | | | | When a qml project built with vcpkg is debugged, we get a missing qml module errors like `module "QtQuick.Layouts" is not installed`. So we should set the `QML_IMPORT_PATH` environment variable explicitly. Fixes: VSCODEEXT-107 Change-Id: I3f717a9b8b94e9948f2cf3c4d62383e4d84e4477 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Package: Update dependencies & third party licensesOrkun Tokdemir2024-11-0618-1900/+5014
| | | | | Change-Id: I14aaf1beb358e3efc5b81c362e8fbae4126c39d3 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Fix typoOrkun Tokdemir2024-11-063-7/+7
| | | | | Change-Id: I448a084f9100ec0ff39dadd9f552f65f0849dc56 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* ci-scripts: Move `checkChangelog`from `ci_lint.ts` to `publish.ts`Orkun Tokdemir2024-11-062-4/+4
| | | | | | | | | `checkChangelog` is only needed when publishing a new version, so it makes sense to move it to `publish.ts`. Otherwise, it fails when we bump the version in `package.json` and run not update changelog. Change-Id: Ib318f92b4950e2b4e71db7f3465c58d874faed2c Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* ci-scripts: Remove qt-lib license from ThirdPartyNotices.txtOrkun Tokdemir2024-11-067-746/+7
| | | | | | | | | We already put the dependencies of qt-lib in the ThirdPartyNotices.txt. So we don't need to put the license of qt-lib in the ThirdPartyNotices.txt. Change-Id: I1cb24acd46ed3f0852be6d15667f2d01361fb179 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Bump version to 1.1.0Orkun Tokdemir2024-11-0512-22/+22
| | | | | Change-Id: I5b32ad2e96a63f43ed54c8cb6e30fd800159cc01 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Add tilde support for global installation rootOrkun Tokdemir2024-11-041-1/+3
| | | | | | | Amends 18554f90beb62c1b4868fcb86ec99690711f1abe Change-Id: Ib1208c72805fe9f49c114bc869f9f7b6100d5071 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add missing qtpaths featuresOrkun Tokdemir2024-11-0117-163/+411
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove `getSelectedQtInstallationPath()` use `getSelectedKit()` instead Since we support both root installation kits and qtpaths, we cannot just return the installation path of the selected kit. We need to return the all kit information. * Use only qtpaths exe paths to cache information Since we store only qtpaths exe paths in `cmake-kits.json`, we don't need to hash it with other values like name or isVCPKG. And also, we can improving the performance by caching different kits but with the same qtpaths. * Implement `qt-cpp.qtDir` for debug templates on Windows We have to return possible dll paths for qtpaths kits. * Deprecate `qt-cpp.kitDirectory` and use `qt-cpp.qtDir` instead We support both root installation kits and qtpaths. So we cannot just rely on `qt-cpp.kitDirectory\bin` in debug templates. For qtpaths, we need to return multiple paths. * Remove `kit-directory.ts` and move content to `launch-variables.ts` * Add `qt-cpp.qpaPlatfromPluginPath` When we debug with Qt from vcpkg. We get the `could not find or load the Qt platform plugin "windows" in "",` error if we don't set the `QT_QPA_PLATFORM_PLUGIN_PATH` environment variable. That's why we need to set `qt-cpp.qpaPlatfromPluginPath` according to `cmake.buildType` either `debug` or `release` path. * Locate Designer via qtpaths To support using Designer from qtpaths, we need to locate the Designer inside paths like `QT_HOST_BINS`, `QT_HOST_LIBEXECS`, `QT_INSTALL_LIBEXECS` * Remove error messages when a qtpaths kit selected In the previous implementation, we showed an error message when a qtpaths kit selected instead of root installation kits. * Add Qt version detection from qtpaths * Add selectedQtPaths to coreAPI When a qtpaths kit is selected, we set `selectedQtPaths` to inform other extensions. * Move `queryHostBinDirPath` to `qt-ui/util.ts` Since it is only used in `qt-ui`, we move it to `qt-ui/util.ts` * Shorten `locateQtDesignerExePath()` to `locateDesigner()` * Use `set designerClient()` and detach inside it It is better encapsulation. Task-number: VSCODEEXT-86 Task-number: VSCODEEXT-93 Task-number: VSCODEEXT-92 Change-Id: I0aadd4dd5e2f9508576dda70d24eb14de7796a86 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-core: Use constant instead of stringOrkun Tokdemir2024-11-011-1/+2
| | | | | Change-Id: I330ff2d959d59f00629ee053e6d322683cab2879 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qt-core: Assign `f1` for the `documentationSearchForCurrentWord` commandOrkun Tokdemir2024-10-291-0/+6
| | | | | | | | Since `f1` is the general keybinding for opening the help, it makes sense to use it for the `documentationSearchForCurrentWord` command. Change-Id: I61558148f51a8722835cf21cb4358bbacbc37163 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-lib: Use `isEqual()` from `lodash` instead of custom implementationOrkun Tokdemir2024-10-295-41/+75
| | | | | Change-Id: I39904e5a5bb99e97b10681ba9ac368f136dce31c Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-qml: Add commands for QML language server installationBen Cho2024-10-288-28/+172
| | | | | | | | | | | | | | | | Add two commands to enhance user control over installation status. * `checkQmllsUpdate` checks for recent updates on the server and provides a window to ask the user whether to install it. * `downloadQmlls` downloads and install qmlls regardless of the current installation status. This could be useful when the user wants to reinstall from scratch. Task-number: VSCODEEXT-68 Change-Id: I293b17fdfdd478b16753b6f6b1346a11716f1b2f Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: Orkun Tokdemir <orkun.tokdemir@qt.io>
* qt-qml: Fix invalid file stream creation on directory entryBen Cho2024-10-281-0/+4
| | | | | Change-Id: I27282a7e316f847e62e8751cb9eb52ea38a4aff2 Reviewed-by: Orkun Tokdemir <orkun.tokdemir@qt.io>
* qt-cpp: Rename VSCODE_QT_INSTALLATION_ROOTOrkun Tokdemir2024-10-282-6/+5
| | | | | | | | | | In the current kit generation, `VSCODE_QT_INSTALLATION_ROOT` doesn't address the acutal Qt installation root. It addresses a subdirectory inside it. That's why it can be misleading. This commit renames it to `VSCODE_QT_INSTALLATION` to make it more clear. Change-Id: I40ea80786c7d73b9279efa9eb6160f8e9a52af20 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Package: Add `--cache` option for PrettierOrkun Tokdemir2024-10-255-5/+5
| | | | | Change-Id: I3672e4fb4e2f4c034b20783333ccb19473b614bc Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* ci-scripts: Improve local license file validationOrkun Tokdemir2024-10-255-49/+25
| | | | | | | | * If a local license name includes `license` somehow, consider it as a license file. Change-Id: Ib5f999c81905d7618155fdd2ebb5a562a7a0d739 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-core: Remove redundant `export` & gather up the same context functionsOrkun Tokdemir2024-10-241-9/+9
| | | | | Change-Id: I7b55910f5ea78b703c7a687d04398608c21c395c Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Add vcpkg supportOrkun Tokdemir2024-10-2311-21/+250
| | | | | | | | | | * Update package.json & add `command-exists` * Add kit generation for vcpkg Task-number: VSCODEEXT-93 Change-Id: Iaae7c5b1cf1afc07a74544ad1840b13e3dba0350 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Do not check for toolchain file in `Qt5` and `Qt`Orkun Tokdemir2024-10-231-10/+8
| | | | | | | | Since the generation of `qt.toolchain.cmake` is added with `Qt6`, we don't need to check for the file in `Qt5` and `Qt`. Change-Id: I03a79eb6e9b6a027bb6ea96c5a13d635ed4b8248 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* Linter: Improve checksOrkun Tokdemir2024-10-238-2/+8
| | | | | | | | * Fix linting errors Change-Id: I933d8070b470a56db33451db7638d0d74744015e Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: Ben Cho <ben.cho@qt.io>
* qt-cpp: Add msvc kits support for qtPathsOrkun Tokdemir2024-10-231-12/+79
| | | | | Change-Id: I91e5d87b4bd70b97f980d0737845cf3b888ac094 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-qml: Add facility to download the latest qmlls binaryBen Cho2024-10-227-10/+499
| | | | | | | | | | | | | Add feature to download the qmlls from central server. The extension checks for a new qmlls release at startup using server-provided JSON, which includes version and binary locations. If an update is available, the binary is installed in `UserLocalDir`. Task-number: VSCODEEXT-68 Change-Id: Iff179def26d233e6089faf2d6a1864e87b11ef9a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: Orkun Tokdemir <orkun.tokdemir@qt.io>
* ci-scripts: Add caching for eslintOrkun Tokdemir2024-10-229-10/+11
| | | | | | | | * Add caching for eslint * Gather commands together in package.json Change-Id: I3169cff2974a29a2ddd7daa97d3e8560420b1e06 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-qml: Add missing license headerBen Cho2024-10-211-0/+3
| | | | | Change-Id: I6622d0decd8c788bcd6573838a20de261fc1e896 Reviewed-by: Orkun Tokdemir <orkun.tokdemir@qt.io>
* qt-cpp: Do not generate MSVC kits which have incompatible architectureOrkun Tokdemir2024-10-211-3/+7
| | | | | | | | | | | When generating msvc kit, using either platform info or `visualStudioArchitecture` is not enough to generate correct msvc kits. We should generate kits when both the platform info and `visualStudioArchitecture` match. Otherwise, msvc kits may cause incompatible architecture errors. Change-Id: I58f6dd46a9dc713b58cd24d24c1f05a155dfe026 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-core: Add msvc version parsing for qtpathsOrkun Tokdemir2024-10-211-17/+53
| | | | | | | * Factor out the common code to find `qconfig.pri` Change-Id: I2059e3369a18e5e50c1335e4963bb1aea44c408f Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* ci-scripts: Add `all_dev` for each extensionOrkun Tokdemir2024-10-211-0/+4
| | | | | | | | | | * Add `all_dev:<extension>` commands Those commands are useful when working on a specific extension and slow hardware. Change-Id: Ic60d220d480631338bcc8d6e362cea882e2db005 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Refactor `processMessage` functionOrkun Tokdemir2024-10-211-20/+13
| | | | | | | | * Handle the workspace type in the beginning of the function * Use the same code for both workspace types Change-Id: Ifa7a5a1f5e7bc90e41688815e7ffc8181be80351 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Add progress bar for generating qtpaths kitsOrkun Tokdemir2024-10-212-2/+16
| | | | | | | | This patch shows a progress bar when `qt-core.additionalQtPaths` is changed, and the kits are being generated. Change-Id: I2b2f804fa6b0abce9fcc4df2d732a61781492a8d Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Refactor msvc kit generationOrkun Tokdemir2024-10-211-40/+30
| | | | | | | | * Removed unused code * Add new parameters to generalize usage of `generateMsvcKits` Change-Id: Ic709da8603e735f686ccd95cfcbd9f0fef22de71 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-lib: Add deepEqual comparisonOrkun Tokdemir2024-10-211-1/+34
| | | | | | | | | | | | | The current implementation of the isEqualArrays function compares arrays by checking if they have the same length and if each corresponding element is strictly equal (===). This approach works for primitive types but may fail for complex types like objects or arrays, where strict equality does not account for deep equality. To fix this, we use a deep equality check for each element in the array. Change-Id: I5fae38b205b5a971c1a32dffd385cb489461401f Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* ci-scripts: Add if check for pre-release versionsOrkun Tokdemir2024-10-211-1/+16
| | | | | | | | | | Fail publishing when the minor version is even to follow the vscode extension publishing guidelines. https://code.visualstudio.com/api/working-with-extensions/publishing-extension Change-Id: Ie78dcf4b6744773319d7d2ef8af8c3367b8ed28c Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-cpp: Fix incorrect capitalizationBen Cho2024-10-211-7/+7
| | | | | | Change-Id: I7396a10de2cee83f897785045c740a941b41fa04 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: Orkun Tokdemir <orkun.tokdemir@qt.io>
* qt-core: Fix CI errorOrkun Tokdemir2024-10-171-17/+20
| | | | | | | | | * Run prettier on qtpaths.ts https://github.com/qt-labs/vscodeext/actions/runs/11380484052/job/31659868203 Change-Id: I50ee0f2fa0d1d8964fd81e649c3ebd3981b91a32 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-core: Add `registerQtbyQtpaths` commandOrkun Tokdemir2024-10-176-8/+86
| | | | | | | | | | This new command opens the folder navigation dialog to select either a `qmake` or a `qtpaths` executable. The selected executable is then added to the global `qt-core.additionalQtPaths` configuration. Change-Id: Ic1bfb8d5b32f98b8b8fd2b6656dea1222d580ec2 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
* qt-core: Add reset function to `CoreProjectManager` and `CoreProject`Orkun Tokdemir2024-10-163-2/+14
| | | | | | | | | | Since the reset functions are missing, it is not possible to reset stateManagers. Also add resetting of `projectManager` to `qt-core.reset` Change-Id: Ic909192c8a86bd9c692c187931a03d7d5800634e Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>