Enderpy는 코드 완료 엔진, 정적 유형 검사기 및 Python의 언어 서버입니다.
프로젝트는 적극적으로 개발 중입니다. 깨진 변화가 있으며, 당신이 그것에 기여하고 재미있게 지내고 싶지 않다면 사용할 준비가되지 않은 것으로 간주되지 않습니다.
Python을 작성할 때 개발자에게 빠른 자동 완성 및 빠른 피드백 루프를 제공합니다.
Ruff는 정적 체커의 더 빠른 구현을 제공하는 데 가치가 있음을 보여주었습니다.
이 프로젝트는 다음을 포함하여 빠른 자동 완성 및 유형 확인을 제공하는 데 필요한 구성 요소를 구축하는 것을 목표로합니다.
저장소를 복제하십시오
git submodule init
git submodule update
cargo build
위의 테스트는 아무런 문제없이 실행해야합니다.
그런 다음 편집기 클라이언트를 사용하십시오. 현재 지원되는 편집자는 다음과 같습니다.
당신이 여기 있다면, 당신은 몇 가지 녹 코드를 작성하고 싶다면, 그것에 가자. 토론/도움을위한 메시지를 보낼 수 있습니다.
이러한 학습 리소스를 사용하여 프로젝트의 각 부분에 대해 배울 수 있습니다.
다음은 프로젝트에 대한 간단한 소개와 그것이 작동하는 방법입니다. 그러나 정확히 무슨 일이 일어나고 있는지 확인하기 위해 코드를 참조하는 것이 항상 좋습니다.
기본적으로 확장자는 enderpy-lsp 명령을 사용하여 언어 서버를 실행합니다. 변경하려면 SERVER_PATH Env 변수를 사용자 정의 실행 가능로 설정합니다.
init.lua 파일에 다음 스 니펫을 추가하십시오.
-- Replace this ↓ with the actual path to your copy of the repository.
local enderpy_path = " /path/to/enderpy "
vim . api . nvim_create_autocmd ( " FileType " , {
pattern = " python " ,
callback = function ()
vim . lsp . start ({
name = " enderpy " ,
cmd = { enderpy_path .. " /target/debug/enderpy-lsp " },
})
end ,
})이 프로젝트는 여러 상자로 구성되어 각각 상자에 별도로 게시됩니다.
CLI와 LSP는이 프로젝트를 사용하는 두 가지 방법입니다. 예를 들어, 이것은 편집기에서 enderpy를 사용할 때 발생합니다.
모든 테스트는 Insta.rs로 수행됩니다.
각 상자에는 입력이있는 test_data 라는 폴더가 있습니다. 이러한 입력은 상자를 테스트하는 데 사용되는 파이썬 파일입니다. 예를 들어, 이것은 파서가 입력을 다시 테스트하는 방법입니다.
enderpy/parser/src/parser/parser.rs
4A6F49D의 3695 라인
Insta로 테스트를 실행하면 검토 할 수있는 스냅 샷을 생성하며 스냅 샷을 저장 한 후에는 테스트의 예상 출력이됩니다. Insta.rs 문서를 읽고 시험을 실행하고 검토하는 방법을 확인하십시오.
구문 분석 단계는 Python 소스 코드를 가져 와서 AST로 전환하는 것입니다.
Lexer는 Python 소스 코드를 토큰 화 할 책임이 있습니다.
파서는 Lexer의 출력을 사용하여 토큰을 읽고 AST를 생산합니다.
CLI 도구를 사용하여 이러한 각 단계의 출력을 볼 수 있습니다 (도움말을 사용하여 사용 방법을 찾으십시오).
또한 결과를 Python과 비교하려면 다음 Python 모듈을 사용할 수 있습니다.
분석 단계는 초기 파일로의 경로를 입력하여 체크를 입력하는 것으로 시작합니다. 경로를 얻는 것에서부터 진단 생성에 이르기까지 모든 것을 관리하는 Builder 자라는 구조물이 있습니다.
Builder 먼저 초기 파일의 가져 오기를 해결하고 확인할 파일을 가져옵니다. 그런 다음 파일의 첫 번째 패스를 수행하여 정의를 바인딩하고 심볼 테이블에 저장합니다.
프로젝트는 방문자 패턴을 사용하여 AST를 가로 지릅니다.
Python에는 프로그램의 심볼 테이블을 볼 수있는 기호 테이블이 있습니다. ./scripts 폴더에는 스크립트가 있습니다.
기호 테이블이 생성 된 후 Bulider는 각 파일의 TypEcheck을 실행합니다.
마지막에 빌더는 목록에 오류를 채 웁니다.
이 프로젝트는 먼저 Python 프로젝트를 확인할 수있는 CLI 도구와 편집기 내부의 LSP로 두 가지 방법으로 사용할 수 있습니다.
다음 명령을 사용할 수 있습니다.
Usage: enderpy < COMMAND >
Commands:
tokenize Print lexer tokens
parse Print abstract syntax tree
check Type check
symbols Prints Symbol table
help Print this message or the help of the given subcommand(s) LSP의 경우 enderpy-lsp 프로그램을 설치 한 다음 편집기의 확장을 설치해야합니다.
LSP 지원 :
현재 사용 가능한 구성이 없습니다. 이것들은 프로그램의 기본 동작입니다.
프로젝트 루트 : 프로젝트 루트로 간주되는 경로. 이는 수입 해결 및 확인을 수집하는 데 영향을 미칩니다.
파이썬 실행 파일 : 파이썬 실행 파일로가는 경로. 이것은 제 3 자 종속을 복구하기위한 것입니다.