2014-03-19 4 views
6

의 적절한 배열 괄호 3 Reindent 나는 that숭고한 텍스트 PHP

같은 문제가 있지만, 위의 저를 도움이되지 않는 링크에 대답합니다. 코딩하는 동안 전체 파일을 다시 열어 보는 데 익숙해졌으며 숭고한 텍스트를 매우 좋아했습니다. 하지만이 버그로 인해 나를 화나게 만듭니다. 그래서 바로 가기로 전체 PHP 파일을 다시 열어야하고 잘못된 들여 쓰기가 발생하지 않아야합니다.

이 내가 필요로하는 방법입니다

을 그리고 이것은 그것을 수행하는 방법이다 : 나는 숭고한 텍스트 3을 사용하고 있는데 해당 페이지의 지침을 사용하여이 문제를 해결할 수

+0

어쩌면 시도 [숭고한 PHP 문법 (https://github.com/gerardroche/sublime-php-grammar)는 일부 들여 쓰기 버그 수정 및 개선 사항이 있습니다. 그것은 당신이 필요로하는 것을 할 것입니다. 또한 들여 쓰기 테스트 스위트를 가지고 있으며 요청을 요청하고 시작 문제를 환영합니다. –

답변

-1

. 나는 여기에 참고 용으로 동일한 지침을 복사하고 있는데, 왜 그것이 당신을 위해 작동하지 않는지 알아 내기위한 몇 가지 힌트를 제공하려고 노력할 것입니다.

먼저 내 키 바인딩 설정에서 그 라인을 추가했습니다 (환경 설정 -> 키 바인딩 - 사용자) :

{ "keys": ["enter"], "command": "run_macro_file", "args": {"file": "Packages/User/Add Line in Braces.sublime-macro"}, "context": 
    [ 
    { "key": "setting.auto_indent", "operator": "equal", "operand": true }, 
    { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }, 
    { "key": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true }, 
    { "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true } 
    ] 
} 
이 설정 파일은 JSON-배열이라고 당신은 여기에주의를 기울여야한다

및 위 코드는 괄호 안에 작성해야합니다 설정 파일에 일부 키 바인딩이 이미있다

[ 
    // Copy above configuration here 
] 

경우 쉼표로 구분해야합니다

[ 
    { 
    // Some existing keybindings 
    }, 
    // Copy above configuration here 
] 

그런 다음 Sublime Text 3의 사용자 폴더에 매크로 파일을 만들어야합니다.이 폴더를 찾을 수있는 위치는 사용중인 운영 체제에 따라 다릅니다. 예를 들어, 우분투에는 다음과 같습니다

~ /의 .config// 패키지/사용자

이 폴더에 새 파일을 작성하고 이름이 (경우에주의 텍스트-3 숭고한 공백) :

를 :

다음 스크립트를 복사하여 저장, Braces.sublime 매크로이 파일에서

에 라인을 추가

[ 
    {"command": "insert", "args": {"characters": "\n\n"} }, 
    {"command": "left_delete", "args": null}, 
    {"command": "move", "args": {"by": "lines", "forward": false} }, 
    {"command": "move_to", "args": {"to": "hardeol", "extend": false} }, 
    {"command": "reindent", "args": {"single_line": true} } 
] 

이것은 제대로 작동해야합니다. 저에게 좋습니다.

1

@BullfrogBlues mentions in a comment으로, Sublime PHP Grammar 플러그인에는이 문제가 수정되었습니다. 거기에서 그냥 배열 들여 쓰기 규칙을 추출하는 그 전체 패키지를 원하지 않았다, 그러나 다행히도 그것은 매우 간단합니다 :

https://github.com/gerardroche/sublime-php-grammar/blob/master/Indentation%20Rules%20-%20Arrays.tmPreferences

그냥 등 모든 사용자 정의 조각이 이동 같은 디렉토리에이 파일을 저장 (Mac의 경우 ~/Library/Application Support/Sublime Text 3/Packages/User, Windows/Linux는 확실하지 않음).

0

다음 솔루션은 SublimeText Forum에서 가져온 것입니다.

이 키 바인딩이 추가 :

{ "keys": ["enter"], "command": "insert_snippet", "args": { "contents": "\n\t$0\n" }, "context": 
    [ 
     { "key": "setting.auto_indent", "operator": "equal", "operand": true }, 
     { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }, 
     { "key": "selector", "operator": "equal", "operand": "punctuation.section.array.end.php", "match_all": true }, 
     { "key": "preceding_text", "operator": "regex_contains", "operand": "array\\($", "match_all": true }, 
     { "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }, 
    ] 
},