Feather 지시어
Feather 지시어는 GML 코드에 영향을 미치는 주석으로, 적용할 Feather 규칙, 사용할 프로필, 엄격한 타입 검증 적용 여부 등을 포함합니다. 기본적으로 Feather 지시어는 현재 스크립트와 그 안에 선언된 함수에 적용되며, 특정 경로를 제공하지 않는 한 해당 스크립트에만 적용됩니다.
지시어 문법
Feather 지시어의 문법은 다음과 같습니다:
// Feather 명령어 매개변수 [in PATH]
이것은 Feather로 시작하는 일반 스크립트 주석으로, 명령어와 그 매개변수가 뒤따릅니다. 선택적으로, 지시어가 적용될 스크립트, 객체 또는 그룹의 경로를 지정할 수 있습니다.
Feather 규칙 무시하기
특정 Feather 규칙을 무시하려면 Feather ignore
또는 Feather disable
지시어를 사용할 수 있습니다:
// Feather ignore GM1010
// Feather disable GM1010
예를 들어, 다음 코드를 고려해 보세요:
// Feather ignore GM1010
result = 5 + "5";
엄격한 타입 모드가 활성화된 경우, Feather는 일반적으로 "GM1010 - Cannot perform '+' operation between types 'real' and 'string'" 메시지를 표시합니다. 위의 지시어를 사용하면 해당 스크립트에서 이 유형의 메시지를 무시합니다. 지시어는 주석 이후의 줄에만 영향을 미치므로, 주석 이전의 문장은 여전히 경고를 표시합니다.
한 번만 무시하기
GM 메시지는 once
를 추가하여 한 번만 무시할 수 있습니다:
// Feather ignore once GM1010
이 명령어는 Feather가 이 유형의 메시지의 첫 번째 발생만 무시하게 합니다. 이후 발생하는 메시지는 무시되지 않습니다:
// Feather ignore once GM1010
result = 5 + "5"; // 무시됨
result = 6 + "6"; // 오류
복원하기
마지막으로, GM 메시지를 다시 활성화하려면 restore
또는 enable
을 사용할 수 있습니다:
// Feather restore GM1010
// Feather enable GM1010
프로필 설정
이 지시어는 스크립트의 프로필을 설정합니다:
// Feather use syntax-errors
// Feather use type-errors
// Feather use all
// Feather use none
이 Feather 지시어는 Feather 환경 설정의 프로필 기본 설정에 해당합니다.
타입 검증 모드
이 지시어는 사용할 타입 검증 모드를 설정합니다:
// Feather use strict
// Feather use relaxed
이 Feather 지시어는 Feather 환경 설정의 엄격한 타입 모드 기본 설정에 해당합니다.
결합된 지시어
프로필과 타입 검증 모드를 한 줄에서 설정할 수도 있습니다:
// Feather use all, strict
위의 주석은 Feather가 모든 오류를 찾고 엄격한 타입 모드를 사용하도록 합니다.
경로 옵션
선택적으로, in
지시어를 사용하여 특정 스크립트, 객체 또는 그룹에 Feather 지시어를 적용할 경로를 제공할 수 있습니다. 이 지시어는 외부 라이브러리의 주요 스크립트에 배치할 수 있지만, 다른 스크립트에도 배치할 수 있습니다. 예를 들어 빈 "FeatherConfig" 스크립트에 배치할 수 있습니다.
경로를 사용하여 많은 규칙을 설정하면 성능 문제가 발생할 수 있으며, *로 설정된 경로는 예외입니다. 경로에서 다음과 같은 특수 기호를 사용할 수 있습니다:
/
- 경로의 시작에 사용될 때, 자산 브라우저의 루트를 가리킵니다.*
- 이전 디렉토리 내의 모든 것을 일치시키는 와일드카드입니다.
이렇게 하면 자산 브라우저의 자산에 대한 경로를 정의할 수 있습니다. 예를 들어:
경로 | 적용 대상 |
---|---|
/Scripts/* | /Scripts/ 내의 모든 자산 |
/* | 모든 자산 |
./ | 현재 폴더 및 하위 폴더 내의 모든 자산 |
/Foo/Bar/obj_manager | /Foo/Bar 폴더 내의 obj_manager |
활용 예제
// Feather ignore GM2017 in *
result = "Hello" + " World"; // Naming Rule 무시
// Feather ignore GM1064 in ./*
result = 5 + "5"; // GM1064 무시
// Feather use type-errors in /Objects/System/*
result = 5 + "5"; // Objects/System 폴더에서 타입 오류 프로필 설정
// Feather use all in /Objects/System/obj_controller
result = 5 + "5"; // obj_controller에서 모든 오류 프로필 설정