En esta página

QML Language Server

QML Language Server es una herramienta incluida con Qt que le ayuda a escribir código en su editor favorito (compatible con LSP). Ver Protocolo de Servidor de Lenguaje para más información.

Actualmente, permite a tu editor:

  • Autocompletar el código
  • Mostrar advertencias qmllint
  • Navegar a definiciones en archivos QML
  • Encontrar usos de variables JavaScript y objetos QML
  • Renombrar variables JavaScript y objetos QML
  • Formatear archivos QML
  • Obtener ayuda de la documentación de Qt

Nota: qmlls está actualmente en desarrollo, consulte Limitaciones conocidas para obtener más detalles.

Características soportadas

Linting

QML Language Server puede corregir automáticamente los archivos QML abiertos y mostrar advertencias o errores directamente en el editor. Ver qmllint para más información sobre el proceso de linting, y QML Lint Warning and Errors sobre cómo corregir advertencias y errores.

Formateo

QML Language Server puede formatear archivos enteros desde dentro del editor. Vea qmlformat para más información sobre el proceso de formateo.

Buscar definiciones

QML Language Server puede encontrar definiciones de variables JavaScript, funciones, id's de objetos QML y propiedades QML a partir de sus usos.

QML Language Server también puede encontrar la definición de los tipos utilizados en las anotaciones de tipo para funciones JavaScript, propiedades de objetos QML e instanciación de objetos QML.

Búsqueda de usos

QML Language Server puede encontrar usos de variables JavaScript, propiedades de objetos QML, funciones JavaScript, métodos de objetos QML e id's de objetos QML.

Renombrar

QML Language Server puede renombrar variables y funciones JavaScript, así como propiedades, métodos e id's de objetos QML, siempre que estén definidos en un archivo QML.

Sugerencia de elementos de autocompletado

QML Language Server ofrece sugerencias de autocompletado para variables, expresiones y sentencias de JavaScript, así como para propiedades, métodos e identificadores de objetos QML.

Seguimiento de cambios en archivos C

QML Language Server puede realizar un seguimiento de los cambios en los archivos C++ que definen tipos QML. Reconstruye automáticamente los módulos QML de CMake para proporcionar advertencias y elementos de compleción precisos y actualizados para los tipos QML definidos en C++.

Puede desactivar esta función.

Sugerencias para la documentación

QML Language Server incluye una función de sugerencias de documentación que proporciona a los programadores un acceso rápido a la documentación de Qt pasando el ratón por encima de una palabra clave. Para usar esta característica, tu kit Qt debe contener la documentación Qt y tu proyecto debe estar construido con la variable QT_QML_GENERATE_QMLLS_INI.

Configuración de QML Language Server en su editor

Esta sección describe cómo desarrollar el cliente QML Language Server o cómo utilizar tu propio cliente QML Language Server.

Puedes encontrar el binario QML Language Server bajo <Qt installation folder>/bin/qmlls en instalaciones de Qt hechas con Qt Online Installer. Si quieres que tu cliente QML Language Server descargue el binario directamente, puedes descargar la versión independiente desde github a través de https://github.com/TheQtCompanyRnD/qmlls-workflow/releases o https://qtccache.qt.io/QMLLS/LatestRelease.

Configuración del directorio de compilación

QML Language Server necesita conocer la ubicación de la carpeta de compilación del proyecto. Puede pasar la carpeta de construcción de las siguientes maneras.

Extensión LSP AddBuildDirs

Para pasar directorios de construcción a través de la extensión LSP, envíe una notificación a QML Language Server para el método $/addBuildDirs. $/addBuildDirs acepta un parámetro de la forma:

interface AddBuildDirsParams {
    buildDirsToSet: UriToBuildDirs[];
}

donde UriToBuildDirs contiene un URI del espacio de trabajo y una lista de directorios de compilación. El URI del espacio de trabajo debe designar un espacio de trabajo anunciado a QML Language Server a través de workspaceFolders o didChangeWorkspaceFolders. Los directorios de compilación son rutas de archivos, no URI.

interface UriToBuildDirs {
    baseUri: URI;
    buildDirs: string[];
}

Opción de línea de comandos -build-dir

Si no necesita soportar múltiples espacios de trabajo, puede pasar los directorios de construcción a través de la opción de línea de comandos --build-dir. En este caso, su editor debe invocar qmlls como se indica a continuación:

<path/to/qmlls> ... --build-dir <path/to/build-directory> ...

El directorio de compilación se aplicará a todos los espacios de trabajo si utiliza varios espacios de trabajo en el mismo QML Language Server. Los valores de addBuildDirsMethod tienen mayor precedencia que la opción de línea de comandos.

Variable de entorno QMLLS_BUILD_DIRS

También puede pasar los directorios de construcción a través de la variable de entorno QMLLS_BUILD_DIRS. El directorio de construcción se aplicará a todos los espacios de trabajo si utiliza varios espacios de trabajo en el mismo QML Language Server. Los valores de --build-dir tienen mayor prioridad que la variable de entorno.

.qmlls.ini Archivo de configuración

Si no puede pasar los directorios de compilación utilizando una de las opciones anteriores, puede intentar pasar los directorios de compilación a QML Language Server a través de un archivo de configuración. Véase también Archivo de configuración. Los valores del archivo de configuración tienen menor precedencia que --build-dir, QMLLS_BUILD_DIRS, y addBuildDirsMethod.

Configuración de compilaciones automáticas de CMake

QML Language Server intentará activar una reconstrucción CMake cuando detecte que el código fuente de un tipo QML definido por C++ ha sido modificado.

Para desactivar esta función, utilice las siguientes formas:

Para controlar el número de trabajos utilizados por CMake, utilice

  • La opción de línea de comandos --cmake-jobs. En este caso, su editor debe invocar qmlls de la siguiente manera:
    <path/to/qmlls> --build-dir <path/to/build-directory> --cmake-jobs <jobs>
  • La variable de entorno QMLLS_CMAKE_JOBS.
  • El archivo de configuración .qmlls.ini, véase Archivo de configuración.

Los valores aceptados son enteros mayores que 0 y max para utilizar todos los núcleos disponibles.

QML Language Server respeta un límite de ficheros a buscar cuando se buscan cabeceras en las carpetas de fuentes, por ejemplo cuando se va a la definición de un componente QML definido en una cabecera C++.

Para establecer la cantidad máxima de archivos a buscar, escriba un valor numérico en la variable de entorno QMLLS_MAX_FILES_TO_SEARCH. 0 desactiva la función de búsqueda de archivos, 20000 es el valor por defecto.

Archivo de configuración

QML Language Server puede configurarse mediante un archivo de configuración .qmlls.ini. Este archivo debe estar en el directorio raíz del proyecto. Debe ser un archivo de texto en formato ini.

El archivo de configuración puede tener las siguientes entradas:

// .qmlls.ini
[General]
no-cmake-calls=<true-or-false>
CMakeJobs=<some integer value>

buildDir=<path/to/build-directory> # not required in Qt 6.10 and later
docDir=<path/to/qt-documentation>  # not required in Qt 6.10 and later
importPaths=<path/to/imports>      # not required in Qt 6.10 and later

Para utilizar el archivo de configuración para desactivar la funcionalidad de reconstrucción automática de CMake, establezca no-cmake-calls en true.

Para controlar el número de trabajos utilizados por las reconstrucciones automáticas de CMake, establezca el valor CMakeJobs.

Para admitir clientes que no pueden pasar el directorio de compilación a QML Language Server, como se describe en Configuración del directorio de compilación, establezca el valor buildDir o deje que CMake genere el archivo .qmlls.ini mediante QT_QML_GENERATE_QMLLS_INI.

Nota: QML Language Server puede crear archivos de configuración por defecto utilizando la opción --write-defaults. Esto sobrescribirá un archivo .qmlls.ini ya existente en el directorio actual.

Limitaciones conocidas

A pesar de cubrir muchas características comunes de QML, QML Language Server está todavía en desarrollo con algunas características aún por soportar:

  • Sugerencia de autocompletado en archivos QML no válidos.
  • Navegación a definiciones de objetos definidos en C++.
  • Autocompletar propiedades de contexto

QML Language Server podría emitir falsas advertencias positivas en proyectos

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.