Qt Contributors Summit 2022 - Program/What's new in QML (non-visual) tooling: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Created page with "Category:QtCS2022 ==Session Summary== Learn about upcoming features in qmllint and the QML language server, and make feature requests/suggestions ==Session Owners== *QM...")
 
(Added sessions notes)
 
(One intermediate revision by one other user not shown)
Line 10: Line 10:
==Notes==
==Notes==


(Taken by XXX)
(Taken by Samuel Gaist)


===Title===
<br />
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


===Title===
== qmllint ==


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
=== What is it ? ===
- Linting tool


- configurable through settings files and command line


===Title===
- Supports JSON output for better CI integration
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
 
=== What's new ? ===
- integration into qmlls (language server)
 
- Fix suggestions (auto applicable)
 
- New linting rules for QtQuick and Controls
 
- Integration in the compiler with automatic fixes applicable
 
- plugin system WIP
 
=== Incoming ===
- add settings support in qmlls and Qt Creator
 
- stable plugin API
 
- Improved automatic fixing
 
=== qmllint plugins ===
- Unstable
 
- Allows to add new passes to extend it
 
- Uses Qt plugin system
 
- Uses qmlcompiler library internals
 
- Two type of passes
 
  - Property passes: property binding, read, write checks
 
  - Element passes: run on every element
 
The examples are being linted and there's a huge amount of work to do there.
 
== qmlls ==
 
=== What is it ? ===
- Language server protocol implementation for QML
 
- auto complete, lint & warnings, highlighting indenting
 
- Qt Creator already integrates it through a client plugin
 
- It's independent of the editor itself (so not tied to Qt Creator)
 
=== Plumbing highlights ===
- Typed JSON serialization
 
- Autogenerated protocol
 
=== Missing ===
  - Symbols find usages
 
  - Indexing (try to use language server index format)
 
  - Better integration with compiler library
 
  - Creator integration
 
  - VS Code extension
 
Target is to get that for Qt 6.4
<br />
 
== QA ==
 
=== When will this replace QmlJSEditor ? ===
It's almost ready, the missing symbols find usages is the main roadblock.
 
Add a button to Qt Creator to switch to the language server in place of the currently used system.
 
Qt plugins in VSCode are currently not really good for QML development as they are using on hard coded knowledge.
 
=== Suggestions ===
- put our tooling in other IDEs like vscode or Visual Studio
 
- add support for CI
 
=== Some work to do ===
- Move everything to QML module
 
- Cleanup QML code provided to match current standard

Latest revision as of 08:32, 8 June 2022


Session Summary

Learn about upcoming features in qmllint and the QML language server, and make feature requests/suggestions

Session Owners

  • QML team

Notes

(Taken by Samuel Gaist)


qmllint

What is it ?

- Linting tool

- configurable through settings files and command line

- Supports JSON output for better CI integration

What's new ?

- integration into qmlls (language server)

- Fix suggestions (auto applicable)

- New linting rules for QtQuick and Controls

- Integration in the compiler with automatic fixes applicable

- plugin system WIP

Incoming

- add settings support in qmlls and Qt Creator

- stable plugin API

- Improved automatic fixing

qmllint plugins

- Unstable

- Allows to add new passes to extend it

- Uses Qt plugin system

- Uses qmlcompiler library internals

- Two type of passes

  - Property passes: property binding, read, write checks

  - Element passes: run on every element

The examples are being linted and there's a huge amount of work to do there.

qmlls

What is it ?

- Language server protocol implementation for QML

- auto complete, lint & warnings, highlighting indenting

- Qt Creator already integrates it through a client plugin

- It's independent of the editor itself (so not tied to Qt Creator)

Plumbing highlights

- Typed JSON serialization

- Autogenerated protocol

Missing

  - Symbols find usages

  - Indexing (try to use language server index format)

  - Better integration with compiler library

  - Creator integration

  - VS Code extension

Target is to get that for Qt 6.4

QA

When will this replace QmlJSEditor ?

It's almost ready, the missing symbols find usages is the main roadblock.

Add a button to Qt Creator to switch to the language server in place of the currently used system.

Qt plugins in VSCode are currently not really good for QML development as they are using on hard coded knowledge.

Suggestions

- put our tooling in other IDEs like vscode or Visual Studio

- add support for CI

Some work to do

- Move everything to QML module

- Cleanup QML code provided to match current standard