Skip to content
  • BogDan Vatra's avatar
    Allow plugins to insert custom imports. · 28d2b161
    BogDan Vatra authored
    
    
    This patch allows a plugin to insert custom imports. These imports are
    used by QtC for syntax highlighting and code completion. This way a
    plugin can register types and objects that are available only at
    runtime.
    
    This is an example of an imports function implementation:
    
    QList<Import> MyPlugin::imports(ValueOwner *valueOwner, const Document
    *context) const
    {
      // context is needed to know from which project is the opened document
      // in this example we don't care about multiple projects
    
      Import import;
      import.object = new QmlJS::ObjectValue(valueOwner, "<defaults>");
      import.valid = true;
      const ComponentVersion version(1, 0);
      import.info = ImportInfo::moduleImport("MyPlugin", version,
    QString());
      auto myType = valueOwner->newObject(nullptr)
      myType->setMember("myProperty", valueOwner->valueOwner->intValue());
      // add more properties & methods/signals to myType
    
      import.object->setMember("MyType", myType);
    
      // in this example we return only one, but you care return more than
    one
      return QList<Import>(import);
    }
    
    Change-Id: I395c273c7b15a9e4ed5a89a81d70ff92db2b7c0c
    Reviewed-by: default avatarMarco Benelli <marco.benelli@theqtcompany.com>
    Reviewed-by: default avatarKai Koehne <kai.koehne@theqtcompany.com>
    28d2b161