Commit Graph

79 Commits

Author SHA1 Message Date
Christian Stenger
1ab00ae5ec Fix Qbs build
Amends f5dde31558.

Change-Id: I409b872ccab2bfe825df3c993aaf942d327e9381
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2024-06-21 05:26:08 +00:00
Marcus Tillmanns
17f497c719 LuaLS: Rename LuaLSP to LuaLS
Its a "(L)anguage(S)erver", not a (P)rotocol

Change-Id: I2e0637c21bfa8b55b587fede6d7597ae917ccdae
Reviewed-by: hjk <hjk@qt.io>
2024-05-31 06:38:00 +00:00
Christian Stenger
f1277f6cf2 Lua: Add lua plugins to qbs build
Change-Id: I4c8428e64c5e322582742e686bf921ebea7df842
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2024-05-31 04:32:09 +00:00
Christian Stenger
ef4f690cef AppStatisticsMonitor: Add to qbs build
Drive-by changes to follow common patterns.
Amends de18097cb4.

Change-Id: I05e1e28a0ca080cd28c55aa3b8d88a66b7e8dbcf
Reviewed-by: hjk <hjk@qt.io>
2024-05-15 13:55:57 +00:00
Christian Stenger
9e3e123226 Lua: Add lua language client to qbs build
Change-Id: Iebd27e0a155529bf0076c7087c7b2b55f9e5ec7b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2024-04-22 08:38:35 +00:00
Christian Stenger
4fcc003668 Lua: Add Lua plugin to qbs build
Change-Id: I1c1f0408f0e0af3dd3b2ec9275a0d3cd8794918f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2024-04-17 11:11:38 +00:00
Dominik Holland
d129956b0b Import of the QtApplicationManager plugin source code
The plugin will be developed as part of QtCreator in the future and
also be released under the GPLv3 license.

Change-Id: I673519161e105982d68f0c4ebbc06e6d7a6f91ac
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-12-15 14:58:55 +00:00
hjk
f97fd83fc9 Plugins: Add skeleton for new ExtensionManager plugin
This initial commit is merely a mockup of a ExtensionManager concept.

Change-Id: I19b2285667678a86097c043cc27a554545559eff
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2023-12-11 12:10:36 +00:00
hjk
963ff4381d Bookmarks: Merge plugin into TextEditor
Change-Id: I4c9438f3596daff2c18680a731764bf5010e1e25
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-09-28 11:03:02 +00:00
Alessandro Portale
fedf99b037 Introduce the Screen Recorder Plugin
The screen recorder plugin allows a user to record the contents of a
screen (or part thereof), and in a second step to export the result as
various lossless or lossy animated picture or video formats. Before
exporting, the recorded video can be trimmend in length and be cropped
in size.

All functionality relies on the ffmpeg/ffprobe tools, which need to be
present on the user's system.

This initial version of the plugin introduces a settings page, and a
recording/exporting dialog with sub dialogs for recording and export
options.
Some autottests for ffmpeg/ffprobe output parsing are included.

Task-number: QTCREATORBUG-29366
Change-Id: Iaf16d369fd9088d69b1bd130185ca920d07b34c6
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-09-05 12:36:21 +00:00
Christian Stenger
8542c982b4 CompilerExplorer: Add plugin to qbs build
Amends e34762c844.

Change-Id: I6da9820b35df1783a6e99279f18d7e23a25c2a7e
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-08-17 09:13:25 +00:00
Eike Ziller
68bc213644 Move app logo to main executable
Moves more branding information out of the plugins.

Change-Id: I71575f268dd8f2860f4da56101b0e3d9442df367
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-06-26 11:29:41 +00:00
Eike Ziller
f7d46f48f8 Build axivion support plugin
Adapts the CMake files, fixes license.

Change-Id: I6bdce2547d187bcabcc864026e36a1c924015c2a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2023-05-24 10:45:32 +00:00
Christian Stenger
2bf5cc81b5 Haskell: Build with Qbs as well
Change-Id: Ia8f9fd3c22acc50c149594859a0471b0e58fc027
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-05-16 09:25:37 +00:00
Christian Stenger
93fb8cd1ef Fix Qbs build
Change-Id: Ia46cadd346561c2d52596290e3fbabcc2e746229
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-03-31 06:04:07 +00:00
Alessandro Portale
0613a492f3 Vcpkg: Initial commit
This introduces the vcpkg support plugin. Initial features are:

- Options page for defining vcpkg installation location
- Search dialog for searching/selecting a package
  (incl. parsing autotest)
- TextEditor that shows search/options toolbuttons
- File wizard that creates a vcpkg.json manifest

Change-Id: I098784100c869e0bb2ed6f60db4dedad559a142a
Reviewed-by: hjk <hjk@qt.io>
2023-03-10 08:04:45 +00:00
Marcus Tillmanns
682ef157d8 Terminal: Add Terminal plugin
Adds a new Terminal plugin that provides a Terminal pane inside
Qt Creator.

Fixes: QTCREATORBUG-8511
Change-Id: I7eacb3efa2463d7df9f383ae3fc33254fb9019a9
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2023-02-24 10:19:33 +00:00
Christian Kandeler
84ab58dfef Fix qbs build
Change-Id: I44e6c9318dcc591ae08f0958bd4b659e0f79fa75
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-02-21 12:11:33 +00:00
Marcus Tillmanns
625f0ef726 Copilot: Add LSP plugin for Copilot
Fixes: QTCREATORBUG-27771
Change-Id: I1249b9a4492427208a70b3e21bf20ac668fc3c50
Reviewed-by: hjk <hjk@qt.io>
2023-02-21 10:26:12 +00:00
hjk
dce7025969 MarkdownView: Merge into TextEditor
Make it a bit more compact, too.

Change-Id: I448164371c5a1d6969a292feba17caa2826f58c3
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@signal-slot.co.jp>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-02-21 07:17:29 +00:00
Tasuku Suzuki
8b70e59cdb Add markdown viewer plugin
Fixes: QTCREATORBUG-27883
Change-Id: Ie4099b8a322797d300bc15a80333bcb361ecafc3
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2023-02-18 16:40:10 +00:00
David Schulz
e39a79845a Merge remote-tracking branch 'origin/10.0' into HEAD
Change-Id: I55ff1d27695d6d7715538695e442bf097a1f3a1f
2023-02-01 06:54:49 +01:00
Orgad Shaneh
128b21c959 Fossil: Import from super repo
git-subtree-dir: src
git-subtree-mainline: e20bdfae4d
git-subtree-split: c8b9e4504e

Change-Id: Id0c0ed8c57739cba2b0a7431f40f8c07fcab493d
2023-01-31 16:26:09 +02:00
Jussi Witick
c780151aec Add Qt Safe Renderer helper plugin
Initially this plugin will include Qt Creator project wizards
for Qt Safe Renderer

Task-number: QSR-1874
Change-Id: I3831c875469439ae9576aabd51af050b6af959cf
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2023-01-30 05:15:42 +00:00
Christian Stenger
ce74e9fb2d Provide Squish integration plugin
Change-Id: I43ae2ad35441339fa48714c14094b8003d0cf7c3
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2022-07-04 04:26:04 +00:00
David Schulz
dacb4ec82d TaskList: merge into project explorer plugin
Change-Id: I6097f3ea40a6a7c3ced0f59b15789046184e2e90
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2022-06-21 13:28:05 +00:00
Christian Stenger
743dd442d7 GitLab: Introduce minimal GitLab plugin
So far only adding global settings and project settings.
Global settings allow to specify configurations used later
inside the project settings or when accessing GitLab
server instances.
Project settings already can "link" to GitLab projects,
which will allow to fetch notifications for the project
later on.
Real functionality is added in the follow ups.

Change-Id: I8a0f978001c58c6dc9e07917c183891abec9a3d0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-05-25 09:54:09 +00:00
David Schulz
b50eb35a17 Coco: long live the cocoplugin
Change-Id: I1d21c67233d302a0689c4689bf9c2f349387ba1c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2022-05-06 12:57:33 +00:00
David Schulz
b8caa4f26b Remove UWP support
The UWP support in Qt was removed with Qt 6 and the support in Qt
Creator is basically untested.

Change-Id: I3148efdb596ddd326f590c14c22cc77ded2582a7
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-10 11:29:02 +00:00
Christian Kandeler
284817fae6 Merge CppTools into CppEditor
There was no proper separation of responsibilities between these
plugins. In particular, CppTools had lots of editor-related
functionality, so it's not clear why it was separated out in the first
place.
In fact, for a lot of code, it seemed quite arbitrary where it was put
(just one example: switchHeaderSource() was in CppTools, wheras
switchDeclarationDefinition() was in CppEditor).
Merging the plugins will enable us to get rid of various convoluted
pseudo-abstractions that were only introduced to keep up the artificial
separation.

Change-Id: Iafc3bce625b4794f6d4aa03df6cddc7f2d26716a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-09-01 14:53:58 +00:00
Eike Ziller
baa83725f6 Remove ClangRefactoring and ClangPchManager
This removes the plugins and tools, and removes all the tests that would
fail to build because of that.

Fixes: QTCREATORBUG-25659
Change-Id: I8adb5d503fc8eea313bcaada421f309dbbfa8c26
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2021-06-15 10:07:57 +00:00
hjk
6a838d7c3c Docker: New empty shell
The usual boiler plate for plugins, including an option page that
knows how to run "docker search" for demonstration purposes.

Change-Id: I2df91f18f4869cbb2ee8f65ccb8b41969f8c90ae
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-03-18 14:16:42 +00:00
Jochen Seemann
3a4ede2e1b Add support for Conan package manager
Task-number: QTCREATORBUG-21785
Change-Id: I4b2dbcc16a2504efe9fdc9e31fa2ef14bba7c33c
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-10-05 09:10:53 +00:00
Or Kunst
356d497df4 New IncrediBuild plugin
- Using raw pointers instead of QSharedPointers.
- Removing redundant pointers existence checks before delete.
- Replacing empty quotes with explicit QString() instance creation.
- A few spaces and tab fixes.
- Save settings after migrating build steps

Change-Id: Iff87d75c7047474ab8e49366ddfeced766ff1a67
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-06-17 06:40:05 +00:00
Alexis Jeandet
77d7bb5014 Meson build plugin initial support
Most basic project management is implemented:
- Project config/build
- Build options accessible to user
- Lists most build targets
- Meson and Ninja added to kit setup
- Basic project file tree with files known by Meson
- Some basic meson and ninja process output parsing
- Some project templates

Missing features, that will come later:
- Configurable project tree layout
- Locators for Meson
- Build importer
- Access to Machine files for better user fine tuning
- ...

Fixes: QTCREATORBUG-18117
Change-Id: I2811e71562c113fb0fc6b6177bcf0698fa71ef63
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-06-08 09:55:17 +00:00
Ivan Komissarov
f480cf2c44 qbs build: Add studiowelcome.qbs
The project file was missing from the build tree

Change-Id: If4d97774e63b0368a5b7bfbedd7425d4e871eef5
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-05-12 10:29:31 +00:00
Christian Stenger
bf7b16d9ca Add Qt Marketplace plugin
Provides a simple integration into the welcome page.

Task-number: QTCREATORBUG-23452
Change-Id: I3e615dcd6dfd9e401159ea6d30b48737edb1e1f9
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-23 14:29:36 +00:00
hjk
b0ea4311e8 Short live McuSupport
Medium term to be merged with BareMetal/RemoteLinux/...

Change-Id: I444c65bcfa8e3cf8642ff64e964459720814860a
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-09-30 15:04:32 +00:00
Christian Stenger
c7b84d821b Add Qbs build file for CtfVisualizer plugin
Change-Id: I90de2ebbcd7e8fae351b7a4a6241bf64b45a7904
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-09-02 13:13:17 +00:00
Alessandro Portale
b89ad81293 WebAssembly: Initial commit
This change adds WebAssembly support in the shape of a plugin.

- Auto-detection of the emsdk toolchain
- Handling of "asmjs-unknown-emscripten" Abi
- Binary detection of WebAssembly libraries
- Auto-creation of a "WebAssembly runtime" device (with icon)
- Runconfiguration that launches the application via the "emrun"
  tool which spawns a local web server and runs the application on
  the chosen web browser.

Limitations:
- So far only tested on Windows/MinGW and Linux
- Not yet tested with Qt WebAssembly installation form the installer
  Only tested with self-built Qt and manually added kit
- The attempt to launch an application via emrun, while a previous
  application is still running, will fail. The reason is that the
  web servers spawned by emrun listen to the same default port but
  serve only the content of one application.
  Possible solutions: We could either spawn the different web servers
  with different ports, or we could use one single web server instance
  which serves the whole default project location (home directory).

Task-number: QTCREATORBUG-21068
Task-number: QTCREATORBUG-22249
Change-Id: I1a16fbe52382d45c37e9bc624a943a6ca475fa09
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-07-25 13:17:51 +00:00
David Schulz
3213e12ce7 rename PythonEditor plugin to Python
The plugin does not only contain a pure editor, but all kind of support
for a programming language like project and run support.

Change-Id: I1251367c8db2e7a54986415ffc5b860cb210de3c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-17 06:21:23 +00:00
hjk
5942b82490 Add support for Boot2Qt
A plugin for communication with Boot2Qt devices.

Task-number: QTCREATORBUG-21808
Change-Id: I61f4a9451c2fe8ff4e1108e07db2e72e8c613c43
Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-06-07 06:22:45 +00:00
Ulf Hermann
c7f22213ee Import QML preview plugin into Qt Creator
... and relicense it as GPL or Commercial.

Fixes: QTCREATORBUG-21838
Change-Id: I28d58ee963e1c63aa4a8bbe4525faade7201c353
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-01-17 11:12:47 +00:00
hjk
d52af48883 QmakeAndroidSupport: Remove plugin
The remaining dependency is hacked into QmakeProjectManager
by using a compile time-only dependency on androidconstants.h.

Change-Id: Id78125137bc75c145a072bc753276abbf0029647
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2019-01-16 11:00:45 +00:00
Ulf Hermann
75d070b9b8 Add PerfProfiler plugin
This moves the previously commercial PerfProfiler plugin into QtCreator.

Task-number: QTCREATORBUG-21344
Change-Id: I41f4a9451c2fe8ff4e1108e07db2e72e8c613c43
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2018-12-18 17:26:45 +00:00
Nikolai Kosjar
9192b6b024 Add qbs files for CompilationDatabaseProjectManager
Change-Id: I892abbb7c389e2e075b1637a386e0d089a533d9e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-10-08 09:07:28 +00:00
Sergey Morozov
31b595314c Cppcheck: Add cppcheck static analysis tool
Automatically checks currently opened documents and displays results via text marks/annotations.

CppcheckTrigger detects when to check files or clear results.
CppcheckTextMarkManager stores/clears text marks with checks' results.
CppcheckTool generates run arguments and parses output.
CppcheckRunner runs cppcheck binary.
CppcheckOptions configures CppcheckTool.

Task-number: QTCREATORBUG-20418
Change-Id: I8eafeac7af6137d2c9061ae75d4a56c85b3b5a2d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-09-18 19:07:12 +00:00
Ivan Donchevskii
ca84a51f86 Clang: Use clang-format for indentation
This is the new experimental plugin based on LibFormat.

It replaces the default indenter for CppEditorDocument
and applies clang-format after the CR or the set of 'electric'
characters.

Uses the global .clang-format kept in QtC settings or
the one for current project. Both can be configured.

For indentation some style modifications and code manipulations
are done to prevent line shrinking when it's not expected.

Manual indentation uses unmodified style from .clang-format file.

Change-Id: I6279b805e418e1804b553efa615f5c843f395a58
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-09-12 07:59:30 +00:00
David Schulz
d61d29cf16 Introduce a basic client for the language server protocol
The language server protocol is used to transport language specific
information needed to efficiently edit source files. For example
completion, go to operations and symbol information. These information
are transferred via JSON-RPC. The complete definition can be found under
https://microsoft.github.io/language-server-protocol/specification.

This language server protocol support consists of two major parts, the
C++ representation of the language server protocol, and the client part
for the communication with an external language server.

The TypeScript definitions of the protocol interfaces are transferred to
C++ classes. Those classes have getter and setter for every interface
value. Optional values from the protocol are represented by
Utils::optional<ValueType>. The JSON objects that are used to transfer
the data between client and server are hidden by a specialized
JsonObject class derived from QJsonObject. Additionally this JsonObject
provides a validity check that is capable of creating a detailed error
message for malformed, or at least unexpected JSON representation of the
protocol.

The client is the interface between Qt Creator and language server
functionality, like completion, diagnostics, document and workspace
synchronization. The base client converts the data that is sent from/to
the server between the raw byte array and the corresponding C++ objects.
The transportat layer is defined in a specialized base client (this
initial change will only support stdio language server). The running
clients are handled inside the language client manager, which is also
used to connect global and exclusive Qt Creator functionality to the
clients.

Task-number: QTCREATORBUG-20284
Change-Id: I8e123e20c3f14ff7055c505319696d5096fe1704
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-09-03 08:00:46 +00:00
Ivan Donchevskii
c93e2815c7 AutoTests: Fix build after ClangStaticAnalyzer plugin rename
Change-Id: Ic34633f98e6c3c1b73389802429f3011e87b301e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-03-27 12:33:31 +00:00