-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Labels
Description
Currently every file scanned by Tree Builder checks with MIME database API to detect it type. It requires a lot of time for processing on big projects (~400k files in my case).
Suggested behavior:
- Ask internal all mime types on start
- Walk by Qt Creator supported mime types
- Compose Hash Map with extension -> file type alias.
File type detection algo:
- If it supported by "Binary Editor" or "Plain Text Editor" -> UnknownType
- If it supported by "Form Editor" -> FormType
- If it supported by "Resource Editor" -> ResourceType
- It it supported by "QMLJS Editor" -> QMLType
- If it supported by "Scxml Editor" -> SomeDiagramType // not correct here
- All other supported by QtC -> SourceType
Known exclusions:
- .S, .asm - supported by Plain Text Editor, but should be mapped to SourceType
File ext and File Type mapping can be done only once per QtC running: QtC does not allow turn on/off plugins dynamically
Helpful info:
Core constants:
coreplugin/coreconstants.h:
const char K_DEFAULT_TEXT_EDITOR_ID[] = "Core.PlainTextEditor";
const char K_DEFAULT_BINARY_EDITOR_ID[] = "Core.BinaryEditor";
Self defined (to avoid dependency on plugin):
const char C_QMLJSEDITOR_ID[] = "QMLProjectManager.QMLJSEditor";
const char RESOURCEEDITOR_ID[] = "Qt4.ResourceEditor";
const char K_DESIGNER_XML_EDITOR_ID[] = "FormEditor.DesignerXmlEditor";