콘텐츠로 이동

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용입니다.

launch.json 구성
{
"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를 실행할 수 있습니다. 일반 사용자의 설치 파일과 배포 경로는 제공된 배포 자료를 확인합니다.

  1. package와 타입을 정하고 타입별 .uni 파일로 나눕니다.
  2. 실행용 main 없이 unic check <폴더> --library로 중복 타입·알 수 없는 메서드를 검사합니다.
  3. 소비하는 작은 프로그램에서 인수·반환·오류 동작을 실제 실행합니다.
  4. 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와 생성 후 확인 순서로 이어집니다.