Sublime2 (또는 textMate?)의 범위 목록은 어디에서 찾을 수 있습니까?
.tmTheme 파일에서 범위 키는 요소가 강조 표시되는 방법을 정의합니다.
<dict>
<key>name</key>
<string>HTML: Attribute Values</string>
<key>scope</key>
<string>meta.tag string.quoted, meta.tag string.quoted constant.character.entity</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#FFFFFF</string>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2aa198</string>
</dict>
</dict>
이러한 앱에서 지원하는 모든 범위의 목록을 어디서 찾을 수 있습니까? 내 스타일을 만들 수 있습니까?
불행히도 그러한 포괄적 인 목록은없는 것 같습니다.
그러나 SublimeText 2에서 Shift + Ctrl + P를 누르면 화면 하단의 상태 표시 줄에 커서 위치 바로 다음 문자에 적용되는 모든 범위 키의 전체 목록이 표시됩니다.
이 메서드를 사용하여 SublimeText 내에서 필요한 모든 항목에 대한 범위 키를 찾을 수 있습니다.
TextMate Language Grammar Guide 의 "Naming Conventions"섹션의 현재 버전에서 복사 / 붙여 넣기 (HTML을 Markdown으로 변환) :
comment
— 주석.line
— 줄 주석, 우리는 주석 시작 문자의 유형을 범위에서 추출 할 수 있도록 더 전문화합니다.double-slash
—// comment
double-dash
—-- comment
number-sign
—# comment
percentage
—% comment
- character — 다른 유형의 줄 주석.
block
—/* … */
및과 같은 여러 줄 주석<!-- … -->
.documentation
— 포함 된 문서.
constant
-다양한 형태의 상수.numeric
- 예를 들어 번호를 대표하는 그42
,1.3f
,0x4AB1U
.character
- 예를 들어 문자를 표현하는 그<
,\e
,\031
.escape
- 같은 이스케이프 시퀀스\e
가 될 것입니다constant.character.escape
.
language
- 상수는 (일반적으로) "특별한"같이있는 언어가 제공하는true
,false
,nil
,YES
,NO
, 등other
— 기타 상수, 예를 들어 CSS의 색상.
entity
— 엔티티는 장, 클래스, 함수 또는 태그와 같이 문서의 더 큰 부분을 나타냅니다. 우리는 전체 엔티티를entity.*
(우리가 사용meta.*
하는) 범위로 지정하지 않습니다 . 그러나 우리는entity.*
더 큰 엔터티에서 "자리 표시 자"를 사용합니다. 예를 들어 엔터티가 장인entity.name.section
경우 장 제목으로 사용 합니다.name
— 우리는 더 큰 엔티티를 명명하고 있습니다.function
— 함수의 이름.type
— 유형 선언 또는 클래스의 이름.tag
— 태그 이름.section
— 이름은 섹션 / 제목의 이름입니다.
other
— 다른 엔티티.inherited-class
— 수퍼 클래스 /베이스 클래스 이름.attribute-name
— 속성의 이름 (주로 태그에 있음).
invalid
— "무효"한 것.illegal
— 불법, 예 : HTML의 앰퍼샌드 또는보다 작은 문자 (엔티티 / 태그의 일부가 아님).deprecated
— 더 이상 사용되지 않는 항목 (예 : 더 이상 사용되지 않는 API 함수 사용 또는 엄격한 HTML로 스타일링 사용).
keyword
— 키워드 (다른 그룹에 속하지 않는 경우).control
- 주로 같은 흐름 제어 관련continue
,while
,return
등operator
— 연산자는 텍스트 (예 :)or
이거나 문자 일 수 있습니다.other
— 다른 키워드.
markup
— 이것은 마크 업 언어 용이며 일반적으로 텍스트의 더 큰 하위 집합에 적용됩니다.underline
— 밑줄이 그어진 텍스트.link
— 이것은 링크를위한 것입니다. 편의상 이것은markup.underline
특별히 대상이되는 테마 규칙이없는 경우markup.underline.link
밑줄 스타일을 상속 할 수 있도록 파생되었습니다 .
bold
— 굵은 텍스트 (강하고 유사한 텍스트는이 이름에서 파생 된 것이 좋습니다).heading
— 섹션 헤더. 선택적으로 제목 수준을 다음 요소로 제공합니다 (예markup.heading.2.html
:<h2>…</h2>
HTML).italic
— 기울임 꼴 텍스트 (강조되고 유사한 텍스트는이 이름에서 파생되어야 함).list
— 목록 항목.numbered
— 번호가 매겨진 목록 항목.unnumbered
— 번호가없는 목록 항목.
quote
— 인용 된 (때로는 인용 된 블록) 텍스트.raw
— 축어적인 텍스트 (예 : 코드 목록). 일반적으로 맞춤법 검사는에 대해 비활성화되어markup.raw
있습니다.other
— 기타 마크 업 구성.
meta
— the meta scope is generally used to markup larger parts of the document. For example the entire line which declares a function would bemeta.function
and the subsets would bestorage.type
,entity.name.function
,variable.parameter
etc. and only the latter would be styled. Sometimes the meta part of the scope will be used only to limit the more general element that is styled, most of the time meta scopes are however used in scope selectors for activation of bundle items. For example in Objective-C there is a meta scope for the interface declaration of a class and the implementation, allowing the same tab-triggers to expand differently, depending on context.storage
— things relating to “storage”.type
— the type of something,class
,function
,int
,var
, etc.modifier
— a storage modifier likestatic
,final
,abstract
, etc.
string
— strings.quoted
— quoted strings.single
— single quoted strings:'foo'
.double
— double quoted strings:"foo"
.triple
— triple quoted strings:"""Python"""
.other
— other types of quoting:$'shell'
,%s{...}
.
unquoted
— for things like here-docs and here-strings.interpolated
— strings which are “evaluated”:date
,$(pwd)
.regexp
— regular expressions:/(\w+)/
.other
— other types of strings (should rarely be used).
support
— things provided by a framework or library should be belowsupport
.function
— functions provided by the framework/library. For exampleNSLog
in Objective-C issupport.function
.class
— when the framework/library provides classes.type
— types provided by the framework/library, this is probably only used for languages derived from C, which hastypedef
(andstruct
). Most other languages would introduce new types as classes.constant
— constants (magic values) provided by the framework/library.variable
— variables provided by the framework/library. For exampleNSApp
in AppKit.other
— the above should be exhaustive, but for everything else usesupport.other
.
variable
— variables. Not all languages allow easy identification (and thus markup) of these.parameter
— when the variable is declared as the parameter.language
— reserved language variables likethis
,super
,self
, etc.other
— other variables, like$some_variables
.
There are a couple of sublime text packages you can use to do this.
Installing Package Control
Go to https://sublime.wbond.net/ and click "Installation" and follow the instructions to install sublime text package manager.
Packages Which Display the Current Scope
I know of a couple of sublime text packages which display the current scope in the status bar.
- ScopeStatus (Sublime Text 2 Only)
- ScopeHunter
- ScopeAlways (Created By Me)
- CurrentScope(Sublime Text 2 Only)
Installing One of the Above Packages
To install a package with sublime text package manager open sublime text's command palette (ctrl+shift+p
) and choose the command Package Control: Install Package
and then select one of the above packages.
Scopes are from tmLanguage files which are different for each syntax. You can find a list of scope naming conventions at http://manual.macromates.com/en/language_grammars
In addition to the excellent answers already posted, the Scopes Stats tab of TMTheme Editor displays a useful list of all the scopes in its 236 colour themes, with the most commonly-supported scopes at the top.
See a reference guide on the sublime site below:
Each syntax can name their own scopes, but they are based off of this list. For instance your syntax might specify that function
is storage.type.function.js
scope. If your theme supports that directly it will use that color, otherwise it will fallback to storage.type.function
then storage.type
then finally storage
trying to find a color in your theme.
Since you are creating your own style, I would recommend installing ScopeStatus (CTRL+SHIFT+P, then Install Package, then ScopeStatus). Looking at a file using the syntax you want to concentrate on, do CTRL+SHIFT+P, then "Scope: Show in Status Bar". Now you can move the cursor to various elements to see what scope they give and you can use those to define colors.
You can check your themes to see what they do, go to "Preferences->Browse Packages" to open the folder where your packages are stored. I installed "Theme - Phoenix" which has a folder and a "Color Scheme" folder underneath. In one of the theme files I found 16 colors that were used for various scopes:
keyword.operator.class, constant.other, source.php.embedded.line
variable, support.other.variable, string.other.link, entity.name.tag, entity.other.attribute-name, meta.tag, declaration.tag
constant.numeric, constant.language, support.constant, constant.character, variable.parameter, punctuation.section.embedded, keyword.other.unit
entity.name.class, entity.name.type.class, support.type, support.class
string, constant.other.symbol, entity.other.inherited-class, markup.heading
keyword.operator, constant.other.color
entity.name.function, meta.function-call, support.function, keyword.other.special-method, meta.block-level
keyword, storage, storage.type, entity.name.tag.css
invalid
meta.separator
invalid.deprecated
markup.inserted.diff, markup.deleted.diff, meta.diff.header.to-file, meta.diff.header.from-file
markup.inserted.diff, meta.diff.header.to-file
markup.deleted.diff, meta.diff.header.from-file
meta.diff.header.from-file, meta.diff.header.to-file
meta.diff.range
Different themes might have different settings, for keyword.operator.class in the first group might have its own color or be the same as meta.diff.range.
ReferenceURL : https://stackoverflow.com/questions/10834765/where-to-find-a-list-of-scopes-for-sublime2-or-textmate
'Programing' 카테고리의 다른 글
SQL Server에서 증분 ID의 시작 값을 재설정하는 방법 (0) | 2021.01.10 |
---|---|
기존 클래스가있을 때 인터페이스가 다중 상속의 필요성을 대체 할 수있는 방법 (0) | 2021.01.10 |
GIT_SSH 오류를 사용하는 사용자 지정 SSH로 Git 복제 (0) | 2021.01.10 |
iPhone X의 상단 막대 높이는 얼마입니까? (0) | 2021.01.10 |
HTML 5 대 XHTML 1.0 전환? (0) | 2021.01.10 |