이 패키지 python-language-server
(Python LSP 지원)는 Arch Linux의 Kate 편집기에 대한 새로운 선택적 종속성입니다.
이것이 흥미로운 이유에 대한 배경은 다음과 같습니다.
LSP를 선택하는 이유는 무엇입니까?LSP는 모든 편집기, IDE 또는 클라이언트 엔드포인트에서 프로그래밍 언어에 대한 높은 수준의 지원을 제공하는 m x n 복잡성 문제를 더 간단한 m + n 문제로 줄일 수 있는 기회를 만듭니다.
나는 그것을 시도하기로 결정했습니다. 그래서 자세한 내용은 여기에서 확인했습니다.
palantir/python-언어-server: Python 언어 서버 프로토콜 구현
나는 사용하고 싶다얍브, 그래서 다음 정보를 기록했습니다.
추가 구문을 사용하여 선택적 공급자를 설치할 수 있습니다. 예를 들어 YAPF 형식을 설치하려면 다음을 수행합니다.
pip install 'python-language-server[yapf]'
pip 대신 Arch 저장소를 사용하여 설치하고 싶습니다.제 질문은 Arch 저장소에서 "python-언어-서버"를 설치할 때 어떻게 동일한 결과를 얻을 수 있느냐는 것입니다.이것이 동등할 수 있는가?
pacman -Syu python-language-server yapf
선택적 배경: YAPF를 사용해야 하는 이유:
대부분의 최신 Python 포맷터(예: autotopep8 및 pep8ify)는 코드에서 린트 오류를 제거하도록 설계되었습니다. 여기에는 몇 가지 분명한 한계가 있습니다. 예를 들어 PEP 8 지침을 준수하는 코드는 다시 형식화되지 않을 수 있습니다. 그러나 이것이 코드가 좋아 보인다는 것을 의미하지는 않습니다.
YAPF는 다른 접근 방식을 취합니다. Daniel Jasper가 개발한 "clang-format"을 기반으로 합니다. 기본적으로 알고리즘은 원본 코드가 스타일 가이드를 위반하지 않은 경우에도 코드를 가져와 스타일 가이드를 준수하는 최상의 형식으로 다시 포맷합니다. 이 아이디어는 Go 프로그래밍 언어의 "gofmt" 도구와도 유사합니다. 형식에 대한 모든 성전을 종료합니다. 수정이 이루어질 때마다 프로젝트의 전체 코드베이스가 단순히 YAPF를 통해 전송되는 경우 전체 프로젝트의 스타일이 일관되게 유지됩니다. , 모든 코드 검토에서 스타일에 대해 논쟁이 필요한가요?
궁극적인 목표는 YAPF가 생성한 코드가 스타일 가이드에 따라 프로그래머가 작성한 코드만큼 좋은 것입니다. 코드를 유지 관리하는 번거로움을 일부 없애줍니다.
답변1
예
pacman -S python-language-server yapf
와 같은 결과를 얻게 됩니다 pip install 'python-language-server[yapf]'
. pacman을 설치한 다음 명령을 실행하여 이를 증명할 수도 pip
있으며 요구 사항이 충족되었음을 알려줍니다.
$ pip install 'python-language-server[yapf]'
Requirement already satisfied: python-language-server[yapf] in /usr/lib/python3.8/site-packages (0.31.7)
Requirement already satisfied: jedi<0.16,>=0.14.1 in /usr/lib/python3.8/site-packages (from python-language-server[yapf]) (0.15.1)
Requirement already satisfied: python-jsonrpc-server>=0.3.2 in /usr/lib/python3.8/site-packages (from python-language-server[yapf]) (0.3.4)
Requirement already satisfied: pluggy in /usr/lib/python3.8/site-packages (from python-language-server[yapf]) (0.13.1)
Requirement already satisfied: ujson<=1.35 in /usr/lib/python3.8/site-packages (from python-language-server[yapf]) (1.35)
Requirement already satisfied: yapf in /usr/lib/python3.8/site-packages (from python-language-server[yapf]) (0.29.0)
Requirement already satisfied: parso>=0.5.0 in /usr/lib/python3.8/site-packages (from jedi<0.16,>=0.14.1->python-language-server[yapf]) (0.6.1)