LazarusCompleteGuide:1.1

From 흡혈양파의 번역工房
Revision as of 09:14, 2 February 2013 by Onionmixer (talk | contribs) (LCG 1.1 페이지 미완부분 추가 밎 wiki기술상 오류수정)
Jump to navigation Jump to search

소스코드 에디터

소스 에디터는(Source Editor)는 IDE에서 통합의 개념을 완벽하게 보여준다. 소스 에디터는 SynEdit 컴포넌트를 기반으로 하고, 크로스 프로젝트 탐색 (cross-project navigation) 및 편집을 위해 codetools라 불리는 자체 도구들을 사용한다. 폼 에디터 (Form Editor), 디버거(debugger), FPDoc 편집기 또한 소스 코드 에디터와 밀접하게 연관되어 있다. 이는 라자루스의 강점 중 하나인데, 많은 면에서 델파이 편집기의 성능을 뛰어넘는다.


모든 함수는 키보드 단축키로 할당할 수 있으며, Environment ⇒ Options ⇒ Editor ⇒ Key Mappings 에서 구성하면 된다. 키보드 단축키는 조합키를 조합해 하나 또는 두 개의 키로 구성할 수 있다. Windows에서 조합키는 [Ctrl], [Shift], [Alt] 이다.


코드 툴(Code tool)

IDE는 소스 코드를 읽을 때 컴파일러를 이용하기보다는 codetools 를 사용한다. 코드 툴은 컴파일러에 비해 다음과 같은 이점을 가진다:

  • 오류 관용적(error-tolerant), 특히 누락된 유닛과 관련해 그러하다. Delphi, Kylix, FPC 코드를 읽을 수 있다.
  • 고유의 컴파일러 파라미터로서 모든 디렉터리에서 사용 가능하다.
  • 크로스 플랫폼을 편집 시 특정 플랫폼에서 작업하는 사용자들이 마치 다른 플랫폼에서 작업하는 것처럼 다른 플랫폼에 대한 코드를 편집할 수 있도록 해준다. 예를 들어, 리눅스 플랫폼에서 윈도우 코드를 편집하고자 할 때 크로스 컴파일러를 설치할 필요가 없다.
  • 속도: 큰 프로젝트의 베이스 유닛(base unit)을 편집할 경우 컴파일러가 모든 의존 유닛을 재컴파일해야 한다. 코드 툴은 사실상 필요한 내용만 업데이트하도록 최적화되어 있다.
  • 주석문(comment)에 대한 문법 검사의 신뢰도가 덜하기 하지만 코드 툴은 IFDEF에서 비활성화된 주석문과 코드로 작업한다.


코드를 통한 빠른 탐색

[Ctrl]+[Shift]+↑와 [Ctrl]+[Shift]+↓의 키 조합을 이용해 프로시저의 선언과 구현을 건너뛸 수 있다. Find procedure definitionFind procedure method 라 불리는 종류의 함수들은 메소드들 간, interface 섹션 내 프로시저들 간, 그리고 forward 프로시저들 간 건너뛰는 데 사용할 수 있다. 거의 모든 곳에서 사용이 가능하다:

procedure DoSomething(i: Integer); // from here

implementation

procedure DoSomething(i: Integer);
begin
	// to here, or vice versa
end;


일치하는 프로시저를 찾을 수 없는 경우 함수는 가장 가깝게 일치하는 프로시저를 검색하여 커서를 가장 처음으로 차이가 나는 지점에 위치시킨다.


예를 들어, 위의 파라미터 i 를 Parameter1으로 이름을 변경한 경우 [Ctrl]+[Shift]+↑를 누르면 구현으로 건너뛴다. IDE는 커서를 처음으로 차이나는 지점으로 위치시키며, 이번 경우 파라미터 i 가 되겠다. 여기서 변수의 이름을 변경할 수 있다.

procedure DoSomething(Parameter1: Integer); // from here

implementation

procedure DoSomething(i: Integer);
begin             // ? to here


Find declaration 함수([Alt]+↑ 키 조합)는 식별자의 선언을 검색하고, 항상 가장 가까운 선언으로 건너뛴다. 예를 들자면 다음과 같다.

type    TMyInteger = 1..2; // does not find any other
        TMyInteger = 1..3; // jumps to the first TMyInteger
var i:  TMyInteger; // jumps to the second TMyInteger


커서가 forward 선언에 위치한 경우 함수는 실제 선언으로 건너뛴다. forward 선언을 사용하는 식별자의 경우 함수가 주로 forward 선언으로 건너뛰는 이유는 가장 가깝기 때문이다. IDE가 실제 선언으로 직접 건너뛰길 원하는 경우 코드 툴에서 구성할 수 있다.

type TDog = class; // jumps downward to the actual declaraion
     TPaw = class

     public
       Dog: TDog;  // jumps upward
                   // or directly downward, depending on the setting
     end;

     TDog = class
     public
       Paws: array[1..4] of TPaw;
     end;

Code context ([Ctrl]+[Shift]+[Space])BR 커서가 파라미터 목록에 위치한 경우, Code context 함수는 선언을 표시한다.BR 커서가 소스 코드 내 생성자(constructor) 파라미터 목록의 parenthese 내부에 위치한 경우:

fs := TFilestream.Create();


Code context는 파라미터 목록을 포함해 TFileStream 클래스의 모든 생성자를 표시하고, 현재 커서 아래에 위치한 파라미터가 강조된다. 사용자가 [Escape] 키를 누르거나 커서를 파라미터 목록에서 치우면 컨텍스트(context) 정보가 사라진다.

그림 1.2: [Ctrl]+[Shift]+[Space]를 누르면 파라미터 도움말을 표시할 수 있다.


코드 익스플로러

코드 익스플로러는 현재 유닛에 대한 파스칼 식별자를 모두 보여주는 (델파이에서와 같이) 하나의 구분된 창이다 (View ⇒ Code Explorer). 알파벳 또는 카테고리별로 정렬된다. 두 번째 창에는 지시어 브라우저를 표시하고 소스 코드 내 모든 지시어 목록을 제공한다. 이는 조건부 코드를 검색하거나 include 지시어를 찾는 작업을 간소화한다.

그림 1.3: 코드 익스플로러 창(window)에 열린 두 개의 창(pane)


라자루스 0.9.28 버전부터는 뷰(View) 메뉴에 Code Observer라 불리는 새로운 옵션이 추가되었는데, 이를 선택 시 부적절하게 코딩될 수 있는 코드 세그먼트(code segment)를 열거한 창이 나타난다.