Skip to content

Code Completion and Outline

Sangyong Bae edited this page Sep 28, 2026 · 2 revisions

코드 완성과 아웃라인

편집기에서 타이핑할 때 뜨는 후보 팝업(IntelliSense)과, 현재 문서의 심볼 목록(아웃라인)입니다.

3분 사용법(시험용 요약)

  1. 접속한 뒤 새 탭에서 SELECT * FROM 까지 치고 잠깐 기다리거나 Ctrl+Space(맥 ⌃Space · Control) → 현재 스키마의 테이블·뷰 · 스키마 이름 · 사전 뷰(ALL_TABLES · sys.tables · pg_catalog.pg_class …)가 뜹니다. sc처럼 약어를 쳐도 SALES_CUSTOMER가 걸립니다(퍼지).
  2. 테이블을 고르고 e(alias)를 붙인 뒤 SELECT e.을 치면 .을 치는 즉시 그 테이블의 컬럼(오른쪽 열 = PK NUMBER(4) · FK … NOT NULL)이 뜹니다. 탐색기가 아직 안 읽은 테이블이면 "컬럼 불러오는 중…"이 잠깐 보이고 곧 채워집니다.
  3. SELECT nv를 치면 내장 함수 NVL이 시그니처(NVL(expr1, expr2))와 함께 뜹니다. Enter → NVL()이 들어가고 캐럿은 괄호 안 · 상태줄에 ƒ NVL(expr1, expr2)(시그니처 도움). SYSDATE처럼 인자가 없는 것은 괄호 없이 들어갑니다.
  4. Oracle: DBMS_OUTPUT.을 치면 PUT_LINE 등 패키지 멤버가 뜹니다. SQL Server: sys. · INFORMATION_SCHEMA. · PostgreSQL: pg_catalog. · information_schema. 뒤에 카탈로그 뷰.
  5. INSERT INTO emp (를 치면 첫 후보가 전체 컬럼(EMPNO, ENAME, …)입니다 — Enter 한 번으로 컬럼 목록 완성.
  6. 후보가 많으면 팝업이 스크롤됩니다(보이는 행 수 = 설정 intel.popup_rows 12 · 휠 · PgUp/PgDn/Home/End).
  7. Preferences ▸ Editors ▸ Code completion에서 Insert table alias를 켜면 FROM 뒤 테이블을 고를 때 SALES_CUSTOMER sc처럼 alias까지 들어갑니다(문장 안 alias와 겹치면 sc2).
  8. Ctrl+R = Goto Symbol(문서 심볼 팔레트) · 활동 막대의 아웃라인 아이콘 = 심볼 패널.

코드 완성

언제 무엇
.을 치면 즉시 alias. · table. = 그 테이블의 컬럼(타입 · PK/FK/UQ · NOT NULL) · schema. = 그 스키마의 객체 · DBMS_OUTPUT. 같은 시스템 패키지 = 멤버 · sys./INFORMATION_SCHEMA./pg_catalog. = 카탈로그 뷰
식별자 2자 + 잠깐(250 ms) 문맥에 맞는 후보(아래 표)
Ctrl+Space(맥 ⌃Space) 언제든 수동으로(설정과 무관) · 맥에서 시스템 설정 ▸ 키보드 단축키 ▸ 입력 소스의 "이전 입력 소스 선택"이 ⌃Space면 OS가 먼저 가져가므로 그 항목을 끄거나 key.edit.complete를 바꾼다
(를 치면 내장 함수·패키지 멤버의 시그니처가 상태줄에(ƒ NVL(expr1, expr2))

문맥별 후보:

자리 후보
FROM · JOIN · UPDATE · INSERT INTO 뒤(콤마 목록 포함) 현재 스키마의 테이블·뷰·시노님 · 스키마 이름 · 이 문장의 CTE · 사전 뷰(ALL_TABLES · USER_OBJECTS · V$SESSION · sys.tables · pg_catalog.pg_stat_activity · sqlite_master …)
alias. 뒤 그 테이블의 컬럼 — 탐색기에서 아직 안 읽은 테이블이면 "컬럼 불러오는 중…"이 보이고, 곧 다시 열면 채워집니다
SELECT 목록 · WHERE · ON … 모든 alias 테이블의 컬럼(오른쪽에 alias · FROM 순서 → 순번 · 아직 안 읽은 테이블은 채워지면 표시) — 확정하면 A.컬럼으로 들어가고 Alt를 누른 채 확정하면 컬럼명만(intel.qualify_columns 끄면 반대) · 내장 함수(방언별 · 시그니처) · 시스템 패키지 이름 · 문서 심볼(DEFINE·VARIABLE·선언 변수·프로시저) · 키워드 · 이 문서의 단어
INSERT INTO 테이블 ( 바로 뒤 첫 후보 = 그 테이블의 전체 컬럼(한 조각)
문장 시작 키워드 · 문서 심볼
  • 키: ↑/↓ 고르기 · PgUp/PgDn/Home/End · 휠(커서가 팝업 위에 있을 때만 · 밖에서 굴리면 팝업이 닫히고 편집기가 스크롤) · Enter 또는 Tab 확정 · Esc 닫기 · 계속 타이핑하면 그대로 걸러집니다 · Backspace로 접두가 없어지면 닫힙니다.
  • 큰 문서: 1 MB(intel.max_doc_kb)를 넘으면 캐럿 앞뒤 256 KB만 읽어 문맥을 정하고 문서 낱말은 내지 않습니다. 큰 파일 1단계(5 MB)에서는 자동 팝업이 꺼지고 ⌃Space는 됩니다 · 2단계(20 MB)는 꺼집니다. 요청이 느린 탭(30 ms 초과 연속 2회)은 문서 낱말을 스스로 끕니다. 실행 속도 향상 모드는 아이콘·상세 카드·문서 낱말·접속 직후 미리 읽기를 끕니다(⌃Space 완성은 그대로).
  • 밖에서 바뀐 객체(다른 도구로 만든 테이블 등)가 안 보이면 Ctrl+Shift+R(맥 ⌘⇧R) = 현재 스키마의 완성 캐시 새로 고침. Edit 메뉴·팔레트에 "이 서버"/"전 서버" 범위도 있고, 탐색기의 서버·스키마 우클릭 "메타 새로 고침"도 같습니다. 탐색기 "새로 고침"을 하면 그 범위의 완성 캐시도 함께 낡음 표시되어 다음 요청 때 다시 읽습니다.
  • 확정 뒤: 함수는 NAME() + 캐럿 안(intel.insert_parens) · 키워드 뒤 공백(intel.insert_space · 기본 끔) · FROM 뒤 테이블에 alias(intel.insert_alias · 기본 끔).
  • 일치 규칙(설정 intel.match): 퍼지(기본 · sc → SALES_CUSTOMER) · 포함 · 접두. 한글은 조합 중 자모로도 걸립니다.
  • 목록이 길면 첫 200개(intel.max_items)만 보이고 끝에 "N개 더" 줄이 붙습니다. 끝까지 스크롤하거나 End를 누르면 다음 200개가 이어 붙습니다(End = 전부).
  • FROM 자리: 테이블·뷰·구체화 뷰·시노님이 한 층에서 이름·일치로 경쟁하고, 함수·패키지는 그 아래 층(테이블 함수 먼저 · 설정 intel.from_routines) · 프로시저와 SQL Server 스칼라 함수는 FROM에 올 수 없어 보이지 않습니다. 함수를 고르면 NAME() 안에 캐럿. 스키마.테이블.까지 치면 FROM 자리에서는 팝업이 뜨지 않습니다(테이블 수준까지). 항목 왼쪽 아이콘 = 탐색기와 같은 종류 도형(intel.icons).
  • * 또는 A.* 바로 뒤에서 완성을 부르면 모든 컬럼 (N) 하나만 뜹니다. 고르면 별표가 컬럼 목록으로 바뀝니다(A.* = 별칭 A의 컬럼 · * = FROM의 모든 테이블 컬럼에 별칭 붙여 · 구분 = 설정 intel.star_layout(한 줄 A, B, C 기본 / 여러 줄 = 한 줄에 하나씩·쉼표가 줄 맨 앞·들여쓰기 없음) · 쉼표 뒤 공백 intel.star_comma_space Space(기본)/Tab). 오른쪽 카드에 목록이 보입니다.
  • 강조: 친 글자와 전체가 같은 항목은 굵은 파랑, 부분 일치는 일치한 글자만 강조색(M4S_ = 접두 4글자 · MI40 = 약어 글자 4개).
  • 순서(접두를 쳤을 때): 정확 > 접두 > 단어 경계(_ 뒤) > 포함 > 약어 > 부분열(연속 일치·낱말 시작이 많을수록 앞). 같은 등급이면 최근에 확정한 것 → 출처 → 아래 둘러보기 순서 → 짧은 이름. 접두 없이 열면(둘러보기) 같은 층 안에서는 이름순입니다(테이블·뷰가 섞여 알파벳 순 · 사전 뷰·함수는 그 아래 층). 컬럼 목록 조각은 늘 맨 위.
  • 둘러보기 순서(접두가 없을 때): alias 컬럼은 테이블 안 순번, 객체는 테이블 → 뷰 → 구체화 뷰 → 시노님 뒤 이름순, 키워드는 자주 쓰는 순.
  • 항목은 컬럼이름 : 타입이고 오른쪽에 PK/FK/UQ/NN 표식. 클릭 = 선택(옆 카드에 상세), 더블 클릭 또는 Enter = 확정. 팝업 옆 상세 카드(intel.detail_card)에 컬럼이면 테이블·순번·타입·Not Null과 이 컬럼이 든 키/인덱스/제약(몇 번째인지 #i/n), 테이블이면 컬럼 수·PK·인덱스, 함수면 시그니처가 보입니다. 배경/글자 투명도는 intel.detail_bg_alpha/intel.detail_text_alpha.
  • 문자열·주석 안에서는 뜨지 않습니다. 큰 파일(L1 이상) · SQL 구문이 아닌 탭 · 이진 내용에서는 꺼집니다.

설정(Preferences ▸ Editors ▸ Code completion)

키 기본 뜻
intel.enabled on 인텔리센스 전체(끄면 아웃라인·Goto Symbol도)
intel.auto_activation on 타이핑 중 자동으로 열기(Ctrl+Space · 맥 ⌃Space는 늘 됨)
intel.delay_ms 250 식별자를 친 뒤 팝업까지 지연
intel.trigger_chars . 치는 즉시 여는 글자
intel.min_chars 2 자동 완성을 시작하는 식별자 길이
intel.match fuzzy prefix · contains · fuzzy
intel.recent_boost on 최근 확정 우선
intel.max_items 200 랭킹 뒤 남기는 후보 수
intel.popup_rows 12 보이는 행 수(넘치면 스크롤)
intel.keywords on 키워드 후보
intel.document_words on 문서 단어 후보
intel.insert_case default 삽입 대소문자(default · upper · lower · match)
intel.show_types on 오른쪽 열(타입 · 종류 · 시그니처)
intel.functions on 내장 함수 · 시스템 패키지 · 사전 뷰(정적 표 · 서버 접속 0 — 접속 뒤에는 서버에서 읽은 권한 반영 사전이 우선)
intel.preload on 접속 직후 현재 스키마의 테이블·뷰·시노님 + 권한 반영 사전 뷰 미리 읽기(메타 세션 · 한 번)
intel.insert_parens on 함수 확정 = NAME() + 캐럿 안
intel.insert_alias off FROM 뒤 테이블 확정 = alias까지
intel.insert_space off 키워드 확정 = 공백 하나
intel.insert_columns on INSERT INTO t ( 뒤 전체 컬럼 조각
intel.signature_help on ( 뒤 상태줄 시그니처
intel.budget_ms 30 후보 조립이 이보다 오래 걸리면 로그 창에 한 줄

메타(테이블·컬럼)는 왼쪽 객체 탐색기가 읽어 둔 것과 같은 저장소입니다. 접속 직후 현재 스키마의 테이블·뷰·시노님과 이 계정이 볼 수 있는 사전 뷰(Oracle ALL_/DBA_/V$ · SQL Server sys./INFORMATION_SCHEMA. · PG pg_catalog./information_schema.)를 한 번 읽어 두므로(intel.preload · 끄면 처음 완성을 요청할 때) FROM 뒤에 바로 현재 스키마 테이블이 뜹니다. 다른 스키마는 스키마.를 치는 순간 읽어 오고("객체 불러오는 중…" → 채워짐), 열린 문서가 더 이상 그 이름을 쓰지 않으면 바로 메모리에서 내립니다. 탐색기에서 펼친 것도 같은 저장소에 쌓이고, 접속을 끊으면 비워집니다. 완성이 서버에 따로 접속하지는 않습니다(탐색기의 메타 세션을 씁니다). 내장 함수·사전 뷰 표는 앱에 내장된 정적 표라 접속 없이도 뜹니다(빠진 함수는 문서 단어로 보완).

아웃라인

활동 막대의 아웃라인 아이콘(또는 View ▸ Outline)을 켜면 현재 탭의 심볼이 줄 번호와 함께 나열됩니다: 문장 머리(흐리게) · DEFINE/VARIABLE · CTE · CREATE … 대상 · PL/SQL PROCEDURE/FUNCTION(굵게 · 패키지 안이면 들여쓰기)/PACKAGE [BODY]/TRIGGER/TYPE/CURSOR/<<라벨>> · 선언부 변수 · T-SQL DECLARE @v. 클릭·Enter = 그 자리로 · 필터 틀은 다른 패널과 같습니다(한글 자모) · 타입어헤드(목록 포커스에서 글자 = 그 심볼로 · ↑/↓ = 일치하는 것들 사이 · 한글). 편집하면 잠시 뒤(유휴 때) 갱신되고 탭을 바꾸면 그 탭 것으로 바뀝니다.

주석 — Ctrl+/(맥 ⌘/) = 줄 주석 -- 토글 · Ctrl+Shift+?(맥 ⌘⌥/) = 블록 주석 /* … */ 토글(선택 영역, 없으면 현재 줄 · 다시 누르면 원복). 맥의 ⌘⇧?는 macOS "도움말 메뉴 검색"이 먼저 가져가므로 시스템 설정 ▸ 키보드 단축키 ▸ 앱 단축키에서 그 항목을 끄면 쓸 수 있습니다.

Goto Symbol — Ctrl+R(맥 ⌘R): 같은 목록을 팔레트에 띄워 이름을 치고 Enter로 바로 이동합니다(Sublime과 같은 키).

아직 없는 것(예정 · T-178 후속)

JOIN 조건 완성(FK 대상 정보가 메타에 들어온 뒤) · hover 카드(객체 정보 · T-179) · Ctrl+클릭 바로가기(T-180) · 후보 계산 워커(예산 초과가 실측되면) · 시그니처 도움을 상태줄 대신 캐럿 옆 카드로.

Clone this wiki locally