QML Language Server

QML Language Server 는 Qt와 함께 제공되는 도구로, 자주 사용하는 (LSP를 지원하는) 에디터에서 코드를 작성할 수 있도록 도와줍니다. 자세한 내용은 언어 서버 프로토콜을 참조하십시오.

현재 이 도구를 사용하면 편집기에서 다음을 수행할 수 있습니다:

  • 코드 자동 완성
  • qmllint 경고 표시
  • QML 파일의 정의로 이동
  • JavaScript 변수 및 QML 객체의 사용 위치 찾기
  • JavaScript 변수 및 QML 객체 이름 바꾸기
  • QML 파일 포맷하기
  • Qt 문서에서 도움말 얻기

참고: qmlls 는 현재 개발 중이며, 자세한 내용은 알려진 제한 사항을 참조하세요.

지원되는 기능

Linting

QML Language Server 은 열린 QML 파일을 자동으로 린팅하고 편집기에서 바로 경고 또는 오류를 표시할 수 있습니다. 린팅 프로세스에 대한 자세한 내용은 qmllint를, 경고 및 오류를 수정하는 방법은 QML 린트 경고 및 오류를 참조하세요.

서식 지정

QML Language Server 은 편집기 내부에서 전체 파일의 서식을 지정할 수 있습니다. 서식 지정 프로세스에 대한 자세한 내용은 qmlformat을 참조하세요.

정의 찾기

QML Language Server JavaScript 변수, 함수, QML 객체 ID 및 QML 프로퍼티의 정의를 해당 용도로부터 찾을 수 있습니다.

QML Language Server JavaScript 함수, QML 객체 속성 및 QML 객체 인스턴스화에 대한 유형 주석에 사용된 유형의 정의도 찾을 수 있습니다.

사용법 찾기

QML Language Server JavaScript 변수, QML 객체 속성, JavaScript 함수, QML 객체 메서드 및 QML 객체 ID의 사용법을 찾을 수 있습니다.

이름 바꾸기

QML Language Server 은 QML 파일에 정의되어 있는 한 JavaScript 변수와 함수, QML 객체 속성, 메서드 및 ID의 이름을 바꿀 수 있습니다.

자동 완성 항목 제안하기

QML Language Server 은 JavaScript 변수, 표현식, 문은 물론 QML 객체 속성, 메서드, ID에 대한 자동 완성 제안을 제공합니다.

C++ 파일의 변경 사항 추적

QML Language Server 는 QML 유형을 정의하는 C++ 파일의 변경 사항을 추적할 수 있습니다. CMake QML 모듈을 자동으로 리빌드하여 C++로 정의된 QML 유형에 대한 정확한 최신 경고 및 완료 항목을 제공합니다.

문서 힌트

QML Language Server 에는 프로그래머가 키워드 위로 마우스를 가져가면 Qt의 문서에 빠르게 액세스할 수 있는 문서 힌트 기능이 포함되어 있습니다. 이 기능을 사용하려면 Qt 키트에 Qt 문서가 포함되어 있어야 하며 프로젝트가 QT_QML_GENERATE_QMLLS_INI 변수를 사용하여 빌드되어야 합니다.

이 기능은 비활성화할 수 있습니다.

에디터에서 QML Language Server 설정하기

참고: QML Language Server 바이너리는 Qt Online Installer 로 만든 Qt 설치에서 <Qt installation folder>/bin/qmlls 에서 찾을 수 있습니다.

빌드 디렉토리 설정

QML Language Server 는 빌드 폴더의 위치를 알아야 합니다. 다음과 같은 방법으로 전달할 수 있습니다:

  • --build-dir 명령줄 옵션. 이 경우 에디터는 다음과 같이 qmlls 을 호출해야 합니다:
    <path/to/qmlls> ... --build-dir <path/to/build-directory> ...
  • QMLLS_BUILD_DIRS 환경 변수.
  • .qmlls.ini 설정 파일( 구성 파일 참조).

참고: 빌드 디렉터리를 여러 가지 방법으로 지정한 경우 명령줄 옵션이 환경 변수보다 우선하며 설정 파일보다 우선합니다.

가져오기 경로 설정

QML Language Server 는 프로젝트에서 사용 중인 Qt 버전의 임포트 경로를 알아야 합니다. 다음과 같은 방법으로 임포트 경로를 전달할 수 있습니다:

  • -I 명령줄 옵션. 이 경우 편집기에서 다음과 같이 qmlls 을 호출해야 합니다:
    <path/to/qmlls> ... -I /path/to/imports -I /optional/path/to/another/import ...
  • QML_IMPORT_PATH 환경 변수. 이 경우 -E 옵션을 QML Language Server 으로 전달해야 합니다.
  • .qmlls.ini 설정 파일은 구성 파일을 참조하십시오.

참고: 가져오기 경로를 여러 가지 방법으로 지정하면 명령줄 옵션이 설정 파일보다 우선하는 환경 변수보다 우선합니다.

문서 경로 설정

QML Language Server 는 프로젝트에서 사용 중인 Qt 버전의 문서 경로를 알고 있을 때 문서 힌트를 표시할 수 있습니다. 다음과 같은 방법으로 문서 경로를 전달할 수 있습니다:

  • -d 또는 -p 명령줄 옵션. 이 경우 에디터는 다음과 같이 qmlls 을 호출해야 합니다:
    <path/to/qmlls> ... -d /path/to/docs ...
  • .qmlls.ini 설정 파일, 구성 파일을 참조하세요.

참고: 문서 경로를 여러 가지 방법으로 지정하면 명령줄 옵션이 설정 파일보다 우선하는 환경 변수보다 우선합니다.

자동 CMake 빌드 비활성화

qmlls 를 사용하면 C++로 정의된 QML 유형의 소스 코드가 수정된 것을 감지하면 CMake 리빌드를 트리거하려고 시도합니다.

이 기능을 비활성화하려면 다음 방법을 사용하세요:

  • --no-cmake-calls 명령줄 옵션. 이 경우 편집기에서 다음과 같이 qmlls 을 호출해야 합니다:
    <path/to/qmlls> --build-dir <path/to/build-directory> --no-cmake-calls
  • QMLLS_NO_CMAKE_CALLS 환경 변수.
  • .qmlls.ini 설정 파일, 구성 파일을 참조하세요.

구성 파일

QML Language Server 설정 파일 .qmlls.ini 을 통해 구성할 수 있습니다. 이 파일은 프로젝트의 루트 소스 디렉토리에 있어야 합니다. ini-형식의 텍스트 파일이어야 합니다.

참고: .qmlls.ini 파일은 QT_QML_GENERATE_QMLLS_INI를 통해 자동으로 생성할 수 있습니다.

구성 파일은 다음과 같은 모양이어야 합니다:

// .qmlls.ini
[General]
buildDir=<path/to/build-directory>
no-cmake-calls=<true-or-false>
docDir=<path/to/qt-documentation>
importPaths=<path/to/imports>

현재 구성 파일을 사용하여 현재 프로젝트의 빌드 디렉터리를 설정하고 선택적으로 C++ 정의 QML 유형에 대한 자동 CMake 리빌드 기능을 비활성화할 수 있습니다.

참고: QML Language Server --write-defaults 옵션을 사용하여 기본 구성 파일을 만들 수 있습니다. 이렇게 하면 현재 디렉터리에 이미 존재하는 .qmlls.ini 파일을 덮어씁니다.

알려진 제한 사항

QML Language Server 는 예를 들어 동일한 프로젝트에 정의된 QML 모듈을 찾기 위해 빌드 정보가 필요하므로 빌드되지 않은 프로젝트에 대해 오탐 경고를 표시할 수 있습니다.

많은 일반적인 QML 기능을 다루고 있지만 QML Language Server 은 아직 개발 중이며 일부 기능은 아직 지원되지 않습니다:

  • QML 유형 이름 바꾸기.
  • 잘못된 QML 파일에 대한 자동 완성 제안.
  • C++로 정의된 객체의 정의로 이동.
  • 모든 기능에 대해 모든 QML 및 JavaScript 언어 구조 지원.

QML Language Server 의 QML 코드 모델은 아직 모든 JavaScript 언어 구성을 지원하지 않으므로 정의로 이동하기, 사용법 찾기 등의 일부 기능이 이러한 언어 구성에서 작동하지 않을 수 있습니다.

© 2025 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.