Details
-
Task
-
Resolution: Fixed
-
P2: Important
-
6.10
-
None
-
ab3372389 (dev), 76a487bcb (dev), c0bc4bcc2 (dev), acadaa3aa (dev), 4530d43cc (dev), 3752aeafd (dev), 06ffb7653 (dev), 9fedf94ae (dev), a8b64c41f (dev), dab8cf4c8 (dev), 9b6d6bb6c (dev), 4b389314e (dev)
Description
Implement workspacefolder functionality in qmlls:
- https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspace_workspaceFolders
- https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspace_didChangeWorkspaceFolders
This could work as following:
Create a new class called QQmlCodeModelManager that has all the methods that QQmlCodeModel has. The manager owns a map from "workspace folder path" to QQmlCodeModel, and dispatch the calls to the correct QQmlCodeModel, based on the file URI.
Having different QQmlCodeModels would allow to separate each workspacefolder project into having their own DOM, import paths, build paths, etc.
Attachments
Issue Links
- is required for
-
QTBUG-134310 qmlls: implement support for VS (non-code)
-
- Reported
-
- resulted in
-
QTBUG-137705 qmlls: lazy QmlFile in DOM loads with incorrect import path
-
- Closed
-
-
QTBUG-137869 qmlls: cleanup qqmlcodemodel after qqmlcodemodelmanager introduction
-
- In Progress
-
For Gerrit Dashboard: QTBUG-134308 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
651070,2 | qmlls: unique root url in code model: build paths | dev | qt/qtdeclarative | Status: NEW | 0 | 0 |
651065,4 | qmlls: remove code that does nothing | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
651066,4 | qmlls: make url2path private | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
651067,4 | qmlls: make openNeedUpdate() private | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
651068,5 | qmlls: make each QQmlCodeModel have only one rootUrl | dev | qt/qtdeclarative | Status: ABANDONED | 0 | 0 |
651069,6 | qmlls: move HelpEngine into QQmlCodeModel | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
651071,19 | qmlls: introduce QQmlCodeModelManager | dev | qt/qtdeclarative | Status: MERGED | +2 | +1 |
651072,21 | qmlls: swap QQmlCodeModel with QQmlCodeModelManager | dev | qt/qtdeclarative | Status: MERGED | +2 | +1 |
651094,3 | qmlls: remove code that does nothing, take 2 | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
652771,10 | qqmltoolingssettings: add locked variant QQmlToolingSharedSettings | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
652824,1 | WIP: qmlls: introduce QQmlCodeModelManager tests | dev | qt/qtdeclarative | Status: ABANDONED | -2 | 0 |
654110,2 | QQmlCodeModel: add method to check if any files are opened | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
654134,3 | qqmlcodemodel: set import paths on setImportPaths | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
654135,5 | qqmlcodemodel: expose sourcepaths from .qmlls.build.ini files | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
658112,2 | qqmlcodemodelmanager: don't delete default workspace | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |