2014-10-14 7 views
1

는 나는 내가 slideEditor.scss 파일이 내 사용자 폴더선택기를 사용하여이 사용자 지정 승화 - 빌드를 승화가 자동으로 감지하지 않는 이유는 무엇입니까?

{ 
    "shell_cmd": "node-sass.cmd $file", 
    "selector": "source.scss" 
} 

node-sass.sublime-build에 저장 다음있다. 명시 적으로 빌드 시스템을 node-sass으로 설정하면 ctrl + b는 정상적으로 작동하지만 "자동"으로 설정하면 Ctrl + b가 콘솔에 기록되는 데이터로 아무런 영향을주지 않습니다. 무슨 일이있을 수 있니? the limited documentation에 따르면 나는 모든 일을 올바르게하고 있습니다.

+0

구문 강조 표시에 어떤 패키지를 사용하고 있습니까? 기본 스코프가'source.scss '가 아닐 수도 있습니다. – MattDMo

+0

@MattDM 흥미 롭군요, 그게 무슨 뜻인지 모르겠습니까? [Sass 패키지] (https://sublime.wbond.net/packages/Sass)를 사용하고 있습니다. 나는 "기본 범위"라는 개념에 대해 들어 본 적이 없다. 숭고한 문서는'source '가 기본적으로 파일 이름의 와일드 카드라고 생각하게 만듭니다. 사실이 아닙니다. –

답변

2

첫 번째 질문에 대한 짧은 대답 : "source.scss"에서 "source.sass"으로 변경하면 자동 빌드 시스템이 정상적으로 작동합니다.

배경, 일부 대안 : (아이디어가 원래부터 와서 TextMate를) 숭고한에서

구문 강조는 각 언어에 대한 .tmLanguage 구문 정의를 기반으로합니다. 이러한 XML/Plist 파일은 기본적으로 일치 항목을 범위에 할당하는 일련의 정규식입니다. 예를 들어, 다음과 같은 CSS에서 :

body { 
    margin: 0; 
} 

단어 body는 범위 source.css meta.selector.css entity.name.tag.css 있습니다. source.css은 기본 범위 인 이거나 다른 모든 범위의 부모입니다. 파이썬 파일에서 기본 범위는 source.python, HTML은 text.html.basic, 자바 스크립트는 source.javascript 등입니다.이 기본 범위는 "selector"이 찾고있는 것으로 파일 이름과는 아무런 관련이 없습니다.

사용중인 구문 정의의 기본 범위는 source.sass입니다. 따라서 구체적으로 선택하지 않으면 빌드 시스템이 작동하지 않습니다 (selector 속성보다 우선 함). 이 문제를 해결하는 데는 두 가지 방법이 있습니다. 첫 번째는 위에서 언급 한대로 선택기를 source.sass으로 변경하면 모든 설정이 완료됩니다. 필자가 선호하는 두 번째 방법은 Package Control에서 제공되는 Syntax Highlighting for Sass 패키지를 사용하는 것입니다. 한 가지는 SASS와 SCSS에 대한 별도의 언어 정의가 있으므로 두 가지 모두에 대해 적절한 강조 표시를 얻을 수 있습니다. 예상대로 SCSS의 기본 범위는 source.scss이고 SASS의 경우 source.sass이므로 두 언어를 모두 사용하는 경우 별도의 빌드 시스템을 사용할 수 있습니다. 또한 구문 정의는 사용중인 패키지보다 훨씬 풍부하므로 recommended color schemes 중 하나를 사용하는 경우 다양한 요소, 키워드, 속성 등을 매우 잘 강조 할 수 있습니다. 마지막으로 패키지에는 다음이 포함됩니다 완성 된 스타일과 스타일 시트를 훨씬 쉽게 만들 수있는 다른 것들도 있습니다.