VS Code와 라이브러리 개발
Unibase의 VS Code 확장은 .uni 파일을 언어로 인식하고 문법 강조를 제공하며, unic lsp를 실행해 편집 중 진단과 탐색 기능을 제공합니다. 확장 소스의 존재를 Marketplace 배포 완료로 해석하지 않습니다. 설치된 확장의 버전과 실제 제공 기능을 확인하세요.
에디터에서 제공되는 기능
섹션 제목: “에디터에서 제공되는 기능”| 기능 | 사용법·범위 |
|---|---|
| 언어 인식 | .uni 파일의 언어 모드를 Unibase로 선택 |
| 문법 강조 | package/import, 클래스·인터페이스, 기본 타입, 문자열·숫자·생성자·이름 있는 인수 |
| 내장 SQL | SQL 문장 표현식 안에서 SQL 강조 |
| 언어 서버 | unic lsp로 입력 중 오류 표시, 자동완성, 시그니처 도움말, Go to Definition, Find All References, hover 시그니처. 클래스·메서드·필드·지역 변수와 표준 패키지까지 다룸 |
| 설정 | 기본값 | 의미 |
|---|---|---|
unibase.unicPath |
unic |
언어 서버를 실행할 compiler |
unibase.project |
비어 있음 | 분석할 프로그램 폴더. 절대 경로 또는 workspace 폴더 기준 상대 경로이며, 비우면 workspace 폴더 |
workspace 폴더에 서로 관계없는 여러 프로그램의 소스가 있으면 unibase.project를 지정합니다. unic을 다시 빌드한 뒤에는 명령 팔레트에서 Unibase: Restart Language Server를 실행합니다. 코드가 컴파일되지 않는 동안 정의·참조는 마지막으로 컴파일된 버전으로 답하므로, 방금 바꾼 줄은 오류를 고칠 때까지 답이 없습니다.
디버깅
섹션 제목: “디버깅”unic build Main.uni -g -o Main.exe로 빌드하고 Microsoft C/C++ 확장을 설치한 뒤 launch.json에 다음 구성을 추가합니다. 이 구성은 Windows용입니다.
{ "name": "Unibase", "type": "cppvsdbg", "request": "launch", "program": "${workspaceFolder}/Main.exe", "cwd": "${workspaceFolder}"}.uni 파일에 둔 중단점에서 멈추고 단계 실행은 .uni 줄을 따릅니다. Step Into는 Unibase 메서드·생성자로 들어가지만 표준 라이브러리가 호출하는 람다로는 들어가지 않으므로 그 람다에는 중단점을 둡니다. Variables 창은 지역 변수·매개변수 값과 this의 필드를 보여 줍니다.
이 장에 없는 기능을 제공한다고 추정하지 마세요. 개발자는 저장소 tools/vscode를 VS Code에서 열고 F5로 Extension Development Host를 실행할 수 있습니다. 일반 사용자의 설치 파일과 배포 경로는 제공된 배포 자료를 확인합니다.
재사용 라이브러리 작성
섹션 제목: “재사용 라이브러리 작성”- package와 타입을 정하고 타입별
.uni파일로 나눕니다. - 실행용 main 없이
unic check <폴더> --library로 중복 타입·알 수 없는 메서드를 검사합니다. - 소비하는 작은 프로그램에서 인수·반환·오류 동작을 실제 실행합니다.
unic pack <폴더> -o Sample.ulib --name Sample --version 1.0.0으로 메타데이터를 묶습니다.
pack은 실행 파일 생성이나 library 검사 대신이 아닙니다. native 메서드 선언만 추가해도 구현이 생기지 않으므로 배포하는 SDK와 런타임을 같은 기준으로 관리합니다. 표준 API는 packages/stdlib, DB는 packages/db, UI는 packages/ui가 소스의 소유 위치입니다.
외부 클래스 연결
섹션 제목: “외부 클래스 연결”@External/@Bind는 외부 언어의 라이브러리를 명시적으로 연결하는 계약입니다. 문법과 속성을 먼저 확인한 뒤 생성 대상의 package/import·의존성·버전을 준비합니다. 어노테이션 검사를 통과해도 외부 패키지가 설치되거나 해당 호출이 실행됐다는 뜻은 아닙니다.
오류를 보고할 때는 소스·compiler 기준·target·명령·진단·예상 결과를 함께 남기세요. 토큰·DB 암호·개인 데이터는 제외합니다. CLI와 생성 후 확인 순서로 이어집니다.