Kate는 정렬된 공백을 탭으로 바꿉니다.

Kate는 정렬된 공백을 탭으로 바꿉니다.

Kate(3.11.2)에서 코드 블록을 들여쓰기할 때 정렬에 사용된 공백이 탭으로 대체되어 모든 정렬이 깨지고 모든 공백을 복원하게 됩니다.

예:

if (true)
{
—→$foo = 'bar'.
—→•••••••'baz';
}

( —→탭, 공백)

나는 두 글자의 넓은 탭 들여쓰기를 사용합니다. 문제는 줄을 선택하고 키를 눌러 들여 Tab쓰기 수준을 추가할 때 두 개의 공백 그룹이 탭으로 대체된다는 것입니다.

—→if (true)
—→{
—→—→$foo = 'bar'.
—→—→—→—→—→'baz';
—→}

마지막(홀수) 공백을 제거합니다. 탭 너비가 정의되지 않았고 코드 표현을 손상시키지 않고 변경될 수 있어야 하기 때문에 이것은 잘못된 것입니다.

내 설정( )에서 켜짐 Editor Component → Editing → Indentation으로 설정했는데 저장되지 않고 바로 돌아옵니다 .Indent usingTabulators and SpacesTabulators

이것은 버그입니까? 아니면 내 Kate가 잘못 구성되었나요?

답변1

케이트 개발자로서 답변은 다음과 같습니다.

Kate의 주름 시스템 지원들여쓰기와 정렬의 개념:

또는 두 요소의 배열이 반환될 수 있습니다.

   return [ indent, align ];

이 경우 첫 번째 요소는 위의 들여쓰기 깊이로, 특수값과 같은 의미를 갖는다. 그러나 두 번째 요소는 "정렬"을 나타내는 열의 절대값입니다. 값이 들여쓰기 값보다 큰 경우 첫 번째 인수 들여쓰기 뒤에 추가된 공백 수만큼 차이가 납니다. 그렇지 않으면 두 번째 숫자는 무시됩니다. 들여쓰기를 위해 탭과 공백을 사용하는 것을 종종 "혼합 모드"라고 합니다.

이론적으로는 작동합니다. 그러나 실제로 "C 유형" 압입기와 대부분의 다른 압입기는 이를 지원하지 않습니다. 대신 들여쓰기와 정렬을 구분하지 않고 단순히 들여쓰기 수준을 반환합니다.

즉, 원하는 기능이 구현되지 않았습니다.

좋은 소식은 이러한 헤더가 모두 JavaScript로 작성되어 있다는 것입니다.변경하기가 매우 쉽습니다.. 귀하의 기여는 언제나 환영입니다[이메일 보호됨]. 그러니 이 분야에서 일하고 싶다면 저희에게 연락주세요!

관련 정보