mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Merge branch 'master' into 3233-local
This commit is contained in:
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -202,9 +202,6 @@
|
||||
[submodule "vendor/grammars/sublime-robot-plugin"]
|
||||
path = vendor/grammars/sublime-robot-plugin
|
||||
url = https://github.com/shellderp/sublime-robot-plugin
|
||||
[submodule "vendor/grammars/actionscript3-tmbundle"]
|
||||
path = vendor/grammars/actionscript3-tmbundle
|
||||
url = https://github.com/honzabrecka/actionscript3-tmbundle
|
||||
[submodule "vendor/grammars/Sublime-QML"]
|
||||
path = vendor/grammars/Sublime-QML
|
||||
url = https://github.com/skozlovf/Sublime-QML
|
||||
@@ -797,3 +794,6 @@
|
||||
[submodule "vendor/grammars/MQL5-sublime"]
|
||||
path = vendor/grammars/MQL5-sublime
|
||||
url = https://github.com/mqsoft/MQL5-sublime
|
||||
[submodule "vendor/grammars/actionscript3-tmbundle"]
|
||||
path = vendor/grammars/actionscript3-tmbundle
|
||||
url = https://github.com/simongregory/actionscript3-tmbundle
|
||||
|
||||
@@ -17,7 +17,7 @@ To add support for a new extension:
|
||||
In addition, if this extension is already listed in [`languages.yml`][languages] then sometimes a few more steps will need to be taken:
|
||||
|
||||
0. Make sure that example `.yourextension` files are present in the [samples directory][samples] for each language that uses `.yourextension`.
|
||||
0. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.yourextension` files. (ping @arfon or @bkeepers to help with this) to ensure we're not misclassifying files.
|
||||
0. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.yourextension` files. (ping **@arfon** or **@bkeepers** to help with this) to ensure we're not misclassifying files.
|
||||
0. If the Bayesian classifier does a bad job with the sample `.yourextension` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help.
|
||||
|
||||
|
||||
@@ -28,10 +28,7 @@ We try only to add languages once they have some usage on GitHub. In most cases
|
||||
To add support for a new language:
|
||||
|
||||
0. Add an entry for your language to [`languages.yml`][languages]. Omit the `language_id` field for now.
|
||||
0. Add a grammar for your language. Please only add grammars that have [one of these licenses](https://github.com/github/linguist/blob/257425141d4e2a5232786bf0b13c901ada075f93/vendor/licenses/config.yml#L2-L11).
|
||||
0. Add your grammar as a submodule: `git submodule add https://github.com/JaneSmith/MyGrammar vendor/grammars/MyGrammar`.
|
||||
0. Add your grammar to [`grammars.yml`][grammars] by running `script/convert-grammars --add vendor/grammars/MyGrammar`.
|
||||
0. Download the license for the grammar: `script/licensed`. Be careful to only commit the file for the new grammar, as this script may update licenses for other grammars as well.
|
||||
0. Add a grammar for your language: `script/add-grammar https://github.com/JaneSmith/MyGrammar`. Please only add grammars that have [one of these licenses][licenses].
|
||||
0. Add samples for your language to the [samples directory][samples] in the correct subdirectory.
|
||||
0. Add a `language_id` for your language using `script/set-language-ids`. **You should only ever need to run `script/set-language-ids --update`. Anything other than this risks breaking GitHub search :cry:**
|
||||
0. Open a pull request, linking to a [GitHub search result](https://github.com/search?utf8=%E2%9C%93&q=extension%3Aboot+NOT+nothack&type=Code&ref=searchresults) showing in-the-wild usage.
|
||||
@@ -39,7 +36,7 @@ To add support for a new language:
|
||||
In addition, if your new language defines an extension that's already listed in [`languages.yml`][languages] (such as `.foo`) then sometimes a few more steps will need to be taken:
|
||||
|
||||
0. Make sure that example `.foo` files are present in the [samples directory][samples] for each language that uses `.foo`.
|
||||
0. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.foo` files. (ping @arfon or @bkeepers to help with this) to ensure we're not misclassifying files.
|
||||
0. Test the performance of the Bayesian classifier with a relatively large number (1000s) of sample `.foo` files. (ping **@arfon** or **@bkeepers** to help with this) to ensure we're not misclassifying files.
|
||||
0. If the Bayesian classifier does a bad job with the sample `.foo` files then a [heuristic](https://github.com/github/linguist/blob/master/lib/linguist/heuristics.rb) may need to be written to help.
|
||||
|
||||
Remember, the goal here is to try and avoid false positives!
|
||||
@@ -82,9 +79,9 @@ Here's our current build status: [
|
||||
- @larsbrinkhoff
|
||||
- @pchaigno
|
||||
- **@arfon** (GitHub Staff)
|
||||
- **@larsbrinkhoff**
|
||||
- **@pchaigno**
|
||||
|
||||
As Linguist is a production dependency for GitHub we have a couple of workflow restrictions:
|
||||
|
||||
@@ -113,5 +110,6 @@ If you are the current maintainer of this gem:
|
||||
|
||||
[grammars]: /grammars.yml
|
||||
[languages]: /lib/linguist/languages.yml
|
||||
[licenses]: https://github.com/github/linguist/blob/257425141d4e2a5232786bf0b13c901ada075f93/vendor/licenses/config.yml#L2-L11
|
||||
[samples]: /samples
|
||||
[new-issue]: https://github.com/github/linguist/issues/new
|
||||
|
||||
@@ -136,7 +136,7 @@ vendor/grammars/X10:
|
||||
- source.x10
|
||||
vendor/grammars/abap.tmbundle:
|
||||
- source.abap
|
||||
vendor/grammars/actionscript3-tmbundle:
|
||||
vendor/grammars/actionscript3-tmbundle/:
|
||||
- source.actionscript.3
|
||||
- text.html.asdoc
|
||||
- text.xml.flex-config
|
||||
|
||||
@@ -227,7 +227,6 @@ Apex:
|
||||
language_id: 17
|
||||
Apollo Guidance Computer:
|
||||
type: programming
|
||||
color: "#0B3D91"
|
||||
group: Assembly
|
||||
extensions:
|
||||
- ".agc"
|
||||
@@ -369,7 +368,6 @@ Bison:
|
||||
extensions:
|
||||
- ".bison"
|
||||
ace_mode: text
|
||||
color: "#6A463F"
|
||||
language_id: 31
|
||||
BitBake:
|
||||
type: programming
|
||||
@@ -563,6 +561,17 @@ COLLADA:
|
||||
codemirror_mode: xml
|
||||
codemirror_mime_type: text/xml
|
||||
language_id: 49
|
||||
CSON:
|
||||
type: data
|
||||
group: CoffeeScript
|
||||
tm_scope: source.coffee
|
||||
ace_mode: coffee
|
||||
codemirror_mode: coffeescript
|
||||
codemirror_mime_type: text/x-coffeescript
|
||||
searchable: false
|
||||
extensions:
|
||||
- ".cson"
|
||||
language_id: 424
|
||||
CSS:
|
||||
type: markup
|
||||
tm_scope: source.css
|
||||
@@ -693,7 +702,6 @@ CoffeeScript:
|
||||
- "._coffee"
|
||||
- ".cake"
|
||||
- ".cjsx"
|
||||
- ".cson"
|
||||
- ".iced"
|
||||
filenames:
|
||||
- Cakefile
|
||||
@@ -702,7 +710,6 @@ CoffeeScript:
|
||||
language_id: 63
|
||||
ColdFusion:
|
||||
type: programming
|
||||
group: ColdFusion
|
||||
ace_mode: coldfusion
|
||||
color: "#ed2cd6"
|
||||
search_term: cfm
|
||||
@@ -719,7 +726,6 @@ ColdFusion CFC:
|
||||
type: programming
|
||||
group: ColdFusion
|
||||
ace_mode: coldfusion
|
||||
color: "#ed2cd6"
|
||||
search_term: cfc
|
||||
aliases:
|
||||
- cfc
|
||||
@@ -1037,7 +1043,6 @@ ECLiPSe:
|
||||
language_id: 94
|
||||
EJS:
|
||||
type: markup
|
||||
color: "#a91e50"
|
||||
group: HTML
|
||||
extensions:
|
||||
- ".ejs"
|
||||
@@ -1725,11 +1730,9 @@ Haml:
|
||||
ace_mode: haml
|
||||
codemirror_mode: haml
|
||||
codemirror_mime_type: text/x-haml
|
||||
color: "#ECE2A9"
|
||||
language_id: 154
|
||||
Handlebars:
|
||||
type: markup
|
||||
color: "#01a9d6"
|
||||
group: HTML
|
||||
aliases:
|
||||
- hbs
|
||||
@@ -1834,6 +1837,8 @@ IRC log:
|
||||
- ".weechatlog"
|
||||
tm_scope: none
|
||||
ace_mode: text
|
||||
codemirror_mode: mirc
|
||||
codemirror_mime_type: text/mirc
|
||||
language_id: 164
|
||||
Idris:
|
||||
type: programming
|
||||
@@ -1908,7 +1913,6 @@ J:
|
||||
language_id: 172
|
||||
JFlex:
|
||||
type: programming
|
||||
color: "#DBCA00"
|
||||
group: Lex
|
||||
extensions:
|
||||
- ".flex"
|
||||
@@ -2040,19 +2044,6 @@ JavaScript:
|
||||
- ".pac"
|
||||
- ".sjs"
|
||||
- ".ssjs"
|
||||
- ".sublime-build"
|
||||
- ".sublime-commands"
|
||||
- ".sublime-completions"
|
||||
- ".sublime-keymap"
|
||||
- ".sublime-macro"
|
||||
- ".sublime-menu"
|
||||
- ".sublime-mousemap"
|
||||
- ".sublime-project"
|
||||
- ".sublime-settings"
|
||||
- ".sublime-theme"
|
||||
- ".sublime-workspace"
|
||||
- ".sublime_metrics"
|
||||
- ".sublime_session"
|
||||
- ".xsjs"
|
||||
- ".xsjslib"
|
||||
filenames:
|
||||
@@ -2064,6 +2055,8 @@ Julia:
|
||||
type: programming
|
||||
extensions:
|
||||
- ".jl"
|
||||
interpreters:
|
||||
- julia
|
||||
color: "#a270ba"
|
||||
ace_mode: julia
|
||||
codemirror_mode: julia
|
||||
@@ -2125,7 +2118,6 @@ LFE:
|
||||
type: programming
|
||||
extensions:
|
||||
- ".lfe"
|
||||
color: "#004200"
|
||||
group: Erlang
|
||||
tm_scope: source.lisp
|
||||
ace_mode: lisp
|
||||
@@ -2182,7 +2174,6 @@ Lasso:
|
||||
language_id: 195
|
||||
Latte:
|
||||
type: markup
|
||||
color: "#A8FF97"
|
||||
group: HTML
|
||||
extensions:
|
||||
- ".latte"
|
||||
@@ -2207,7 +2198,6 @@ Less:
|
||||
ace_mode: less
|
||||
codemirror_mode: css
|
||||
codemirror_mime_type: text/css
|
||||
color: "#A1D9A1"
|
||||
language_id: 198
|
||||
Lex:
|
||||
type: programming
|
||||
@@ -2405,7 +2395,7 @@ MQL4:
|
||||
- ".mqh"
|
||||
tm_scope: source.mql5
|
||||
ace_mode: c_cpp
|
||||
language_id: 422
|
||||
language_id: 426
|
||||
MQL5:
|
||||
type: programming
|
||||
color: "#4A76B8"
|
||||
@@ -2414,7 +2404,7 @@ MQL5:
|
||||
- ".mqh"
|
||||
tm_scope: source.mql5
|
||||
ace_mode: c_cpp
|
||||
language_id: 423
|
||||
language_id: 427
|
||||
MTML:
|
||||
type: markup
|
||||
color: "#b7e1f4"
|
||||
@@ -2455,6 +2445,7 @@ Makefile:
|
||||
- Kbuild
|
||||
- Makefile
|
||||
- Makefile.am
|
||||
- Makefile.boot
|
||||
- Makefile.frag
|
||||
- Makefile.in
|
||||
- Makefile.inc
|
||||
@@ -2813,7 +2804,6 @@ NumPy:
|
||||
ace_mode: text
|
||||
codemirror_mode: python
|
||||
codemirror_mime_type: text/x-python
|
||||
color: "#9C8AF9"
|
||||
language_id: 254
|
||||
OCaml:
|
||||
type: programming
|
||||
@@ -3163,6 +3153,17 @@ Perl6:
|
||||
codemirror_mode: perl
|
||||
codemirror_mime_type: text/x-perl
|
||||
language_id: 283
|
||||
Pic:
|
||||
type: markup
|
||||
group: Groff
|
||||
tm_scope: "source.pic"
|
||||
extensions:
|
||||
- ".pic"
|
||||
- ".chem"
|
||||
ace_mode: text
|
||||
codemirror_mode: troff
|
||||
codemirror_mime_type: text/troff
|
||||
language_id: 425
|
||||
Pickle:
|
||||
type: data
|
||||
extensions:
|
||||
@@ -3305,6 +3306,8 @@ Public Key:
|
||||
- ".pub"
|
||||
tm_scope: none
|
||||
ace_mode: text
|
||||
codemirror_mode: asciiarmor
|
||||
codemirror_mime_type: application/pgp
|
||||
language_id: 298
|
||||
Puppet:
|
||||
type: programming
|
||||
@@ -3697,7 +3700,6 @@ SCSS:
|
||||
codemirror_mime_type: text/x-scss
|
||||
extensions:
|
||||
- ".scss"
|
||||
color: "#CF649A"
|
||||
language_id: 329
|
||||
SMT:
|
||||
type: programming
|
||||
@@ -3823,7 +3825,6 @@ Sass:
|
||||
ace_mode: sass
|
||||
codemirror_mode: sass
|
||||
codemirror_mime_type: text/x-sass
|
||||
color: "#CF649A"
|
||||
language_id: 340
|
||||
Scala:
|
||||
type: programming
|
||||
@@ -3950,7 +3951,6 @@ Slash:
|
||||
Slim:
|
||||
group: HTML
|
||||
type: markup
|
||||
color: "#ff8f77"
|
||||
extensions:
|
||||
- ".slim"
|
||||
tm_scope: text.slim
|
||||
@@ -4058,6 +4058,28 @@ SubRip Text:
|
||||
ace_mode: text
|
||||
tm_scope: text.srt
|
||||
language_id: 360
|
||||
Sublime Text Config:
|
||||
type: data
|
||||
group: JSON
|
||||
tm_scope: source.js
|
||||
ace_mode: javascript
|
||||
codemirror_mode: javascript
|
||||
codemirror_mime_type: text/javascript
|
||||
extensions:
|
||||
- ".sublime-build"
|
||||
- ".sublime-commands"
|
||||
- ".sublime-completions"
|
||||
- ".sublime-keymap"
|
||||
- ".sublime-macro"
|
||||
- ".sublime-menu"
|
||||
- ".sublime-mousemap"
|
||||
- ".sublime-project"
|
||||
- ".sublime-settings"
|
||||
- ".sublime-theme"
|
||||
- ".sublime-workspace"
|
||||
- ".sublime_metrics"
|
||||
- ".sublime_session"
|
||||
language_id: 423
|
||||
SuperCollider:
|
||||
type: programming
|
||||
color: "#46390b"
|
||||
@@ -4090,6 +4112,17 @@ SystemVerilog:
|
||||
codemirror_mode: verilog
|
||||
codemirror_mime_type: text/x-systemverilog
|
||||
language_id: 363
|
||||
TI Program:
|
||||
type: programming
|
||||
ace_mode: text
|
||||
color: "#A0AA87"
|
||||
extensions:
|
||||
- ".8xp"
|
||||
- ".8xk"
|
||||
- ".8xk.txt"
|
||||
- ".8xp.txt"
|
||||
language_id: 422
|
||||
tm_scope: none
|
||||
TLA:
|
||||
type: programming
|
||||
extensions:
|
||||
@@ -4272,7 +4305,6 @@ Unified Parallel C:
|
||||
ace_mode: c_cpp
|
||||
codemirror_mode: clike
|
||||
codemirror_mime_type: text/x-csrc
|
||||
color: "#4e3617"
|
||||
extensions:
|
||||
- ".upc"
|
||||
tm_scope: source.c
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
# Dependencies
|
||||
- ^[Dd]ependencies/
|
||||
|
||||
# Distributions
|
||||
- (^|/)dist/
|
||||
|
||||
# C deps
|
||||
# https://github.com/joyent/node
|
||||
- ^deps/
|
||||
|
||||
72
samples/CSON/base.cson
Normal file
72
samples/CSON/base.cson
Normal file
@@ -0,0 +1,72 @@
|
||||
'atom-text-editor':
|
||||
# Platform Bindings
|
||||
'home': 'editor:move-to-first-character-of-line'
|
||||
'end': 'editor:move-to-end-of-screen-line'
|
||||
'shift-home': 'editor:select-to-first-character-of-line'
|
||||
'shift-end': 'editor:select-to-end-of-line'
|
||||
|
||||
'atom-text-editor:not([mini])':
|
||||
# Atom Specific
|
||||
'ctrl-C': 'editor:copy-path'
|
||||
|
||||
# Sublime Parity
|
||||
'tab': 'editor:indent'
|
||||
'enter': 'editor:newline'
|
||||
'shift-tab': 'editor:outdent-selected-rows'
|
||||
'ctrl-K': 'editor:delete-line'
|
||||
|
||||
'.select-list atom-text-editor[mini]':
|
||||
'enter': 'core:confirm'
|
||||
|
||||
'.tool-panel.panel-left, .tool-panel.panel-right':
|
||||
'escape': 'tool-panel:unfocus'
|
||||
|
||||
'atom-text-editor !important, atom-text-editor[mini] !important':
|
||||
'escape': 'editor:consolidate-selections'
|
||||
|
||||
# allow standard input fields to work correctly
|
||||
'body .native-key-bindings':
|
||||
'tab': 'core:focus-next'
|
||||
'shift-tab': 'core:focus-previous'
|
||||
'enter': 'native!'
|
||||
'backspace': 'native!'
|
||||
'shift-backspace': 'native!'
|
||||
'delete': 'native!'
|
||||
'up': 'native!'
|
||||
'down': 'native!'
|
||||
'shift-up': 'native!'
|
||||
'shift-down': 'native!'
|
||||
'alt-up': 'native!'
|
||||
'alt-down': 'native!'
|
||||
'alt-shift-up': 'native!'
|
||||
'alt-shift-down': 'native!'
|
||||
'cmd-up': 'native!'
|
||||
'cmd-down': 'native!'
|
||||
'cmd-shift-up': 'native!'
|
||||
'cmd-shift-down': 'native!'
|
||||
'ctrl-up': 'native!'
|
||||
'ctrl-down': 'native!'
|
||||
'ctrl-shift-up': 'native!'
|
||||
'ctrl-shift-down': 'native!'
|
||||
'left': 'native!'
|
||||
'right': 'native!'
|
||||
'shift-left': 'native!'
|
||||
'shift-right': 'native!'
|
||||
'alt-left': 'native!'
|
||||
'alt-right': 'native!'
|
||||
'alt-shift-left': 'native!'
|
||||
'alt-shift-right': 'native!'
|
||||
'cmd-left': 'native!'
|
||||
'cmd-right': 'native!'
|
||||
'cmd-shift-left': 'native!'
|
||||
'cmd-shift-right': 'native!'
|
||||
'ctrl-left': 'native!'
|
||||
'ctrl-right': 'native!'
|
||||
'ctrl-shift-left': 'native!'
|
||||
'ctrl-shift-right': 'native!'
|
||||
'ctrl-b': 'native!'
|
||||
'ctrl-f': 'native!'
|
||||
'ctrl-F': 'native!'
|
||||
'ctrl-B': 'native!'
|
||||
'ctrl-h': 'native!'
|
||||
'ctrl-d': 'native!'
|
||||
59
samples/CSON/config.cson
Normal file
59
samples/CSON/config.cson
Normal file
@@ -0,0 +1,59 @@
|
||||
directoryIcons:
|
||||
|
||||
Atom:
|
||||
icon: "atom"
|
||||
match: /^\.atom$/
|
||||
colour: "dark-green"
|
||||
|
||||
Bower:
|
||||
icon: "bower"
|
||||
match: /^bower[-_]components$/
|
||||
colour: "bower"
|
||||
|
||||
Dropbox:
|
||||
icon: "dropbox"
|
||||
match: /^(?:Dropbox|\.dropbox\.cache)$/
|
||||
colour: "medium-blue"
|
||||
|
||||
Git:
|
||||
icon: "git"
|
||||
match: /^\.git$/
|
||||
|
||||
GitHub:
|
||||
icon: "github"
|
||||
match: /^\.github$/
|
||||
|
||||
Meteor:
|
||||
icon: "meteor"
|
||||
match: /^\.meteor$/
|
||||
|
||||
NodeJS:
|
||||
icon: "node"
|
||||
match: /^node_modules$/
|
||||
colour: "medium-green"
|
||||
|
||||
Package:
|
||||
icon: "package"
|
||||
match: /^\.bundle$/i
|
||||
|
||||
TextMate:
|
||||
icon: "textmate"
|
||||
match: ".tmBundle"
|
||||
|
||||
|
||||
fileIcons:
|
||||
|
||||
ABAP:
|
||||
icon: "abap"
|
||||
scope: "abp"
|
||||
match: ".abap"
|
||||
colour: "medium-orange"
|
||||
|
||||
ActionScript: # Or Flash-related
|
||||
icon: "as"
|
||||
match: [
|
||||
[".swf", "medium-blue"]
|
||||
[".as", "medium-red", scope: /\.(?:flex-config|actionscript(?:\.\d+)?)$/i, alias: /ActionScript\s?3|as3/i]
|
||||
[".jsfl", "auto-yellow"]
|
||||
[".swc", "dark-red"]
|
||||
]
|
||||
108
samples/CSON/ff-sfd.cson
Normal file
108
samples/CSON/ff-sfd.cson
Normal file
@@ -0,0 +1,108 @@
|
||||
name: "Spline Font Database"
|
||||
scopeName: "text.sfd"
|
||||
fileTypes: ["sfd"]
|
||||
firstLineMatch: "^SplineFontDB: [\\d.]+"
|
||||
patterns: [include: "#main"]
|
||||
|
||||
repository:
|
||||
main:
|
||||
patterns: [
|
||||
{include: "#punctuation"}
|
||||
{include: "#private"}
|
||||
{include: "#image"}
|
||||
{include: "#pickleData"}
|
||||
{include: "#sections"}
|
||||
{include: "#copyright"}
|
||||
{include: "#property"}
|
||||
{include: "#control"}
|
||||
{include: "#address"}
|
||||
{include: "#encoding"}
|
||||
{include: "source.fontforge#shared"}
|
||||
{include: "#colour"}
|
||||
]
|
||||
|
||||
punctuation:
|
||||
patterns: [
|
||||
{match: "<|>", name: "punctuation.definition.brackets.angle.sfd"}
|
||||
{match: "[{}]", name: "punctuation.definition.brackets.curly.sfd"}
|
||||
]
|
||||
|
||||
private:
|
||||
name: "meta.section.private.sfd"
|
||||
begin: "^BeginPrivate(?=:)"
|
||||
end: "^EndPrivate\\b"
|
||||
beginCaptures: 0: name: "keyword.control.begin.private.sfd"
|
||||
endCaptures: 0: name: "keyword.control.end.private.sfd"
|
||||
patterns: [
|
||||
{match: "^\\S+", name: "entity.name.private.property.sfd"}
|
||||
{include: "$self"}
|
||||
]
|
||||
|
||||
image:
|
||||
name: "meta.image.sfd"
|
||||
begin: "^(Image)(?=:)(.+)$"
|
||||
end: "^(EndImage)\\b"
|
||||
contentName: "string.unquoted.raw.data.sfd"
|
||||
beginCaptures:
|
||||
1: name: "keyword.control.begin.image.sfd"
|
||||
2: patterns: [include: "$self"]
|
||||
endCaptures:
|
||||
1: name: "keyword.control.end.image.sfd"
|
||||
|
||||
pickleData:
|
||||
name: "meta.pickle-data.sfd"
|
||||
begin: "^(PickledData)(:)\\s*(\")"
|
||||
end: '"'
|
||||
beginCaptures:
|
||||
1: name: "entity.name.property.sfd"
|
||||
2: name: "punctuation.separator.dictionary.key-value.sfd"
|
||||
3: name: "punctuation.definition.string.begin.sfd"
|
||||
endCaptures:
|
||||
0: name: "punctuation.definition.string.end.sfd"
|
||||
patterns: [match: "\\\\.", name: "constant.character.escape.sfd"]
|
||||
|
||||
sections:
|
||||
name: "meta.section.${2:/downcase}.sfd"
|
||||
begin: "^(Start|Begin)([A-Z]\\w+)(?=:)"
|
||||
end: "^(End\\2)\\b"
|
||||
beginCaptures: 0: name: "keyword.control.begin.${2:/downcase}.sfd"
|
||||
endCaptures: 0: name: "keyword.control.end.${2:/downcase}.sfd"
|
||||
patterns: [include: "$self"]
|
||||
|
||||
control:
|
||||
name: "keyword.control.${1:/downcase}.sfd"
|
||||
match: "\\b(Fore|Back|SplineSet|^End\\w+)\\b"
|
||||
|
||||
colour:
|
||||
name: "constant.other.hex.colour.sfd"
|
||||
match: "(#)[A-Fa-f0-9]{3,}|(?<=\\s)[A-Fa-f0-9]{6,8}"
|
||||
captures:
|
||||
1: name: "punctuation.definition.colour.sfd"
|
||||
|
||||
encoding:
|
||||
name: "constant.language.encoding.sfd"
|
||||
match: "(?i)\\b(ISO[-\\w]+)(?<=\\d)(?=\\s|$)"
|
||||
|
||||
# Don't highlight numbers in freeform strings (years/version strings)
|
||||
copyright:
|
||||
name: "meta.${1:/downcase}-string.sfd"
|
||||
begin: "^(Copyright|U?Comments?|\\w+Name)(:)"
|
||||
end: "$"
|
||||
beginCaptures:
|
||||
1: name: "entity.name.property.sfd"
|
||||
2: name: "punctuation.separator.dictionary.key-value.sfd"
|
||||
patterns: [include: "source.fontforge#stringEscapes"]
|
||||
|
||||
# No idea what this is, but it looks distracting without a fix
|
||||
# Assuming it's referring to a memory register or something.
|
||||
address:
|
||||
match: "\\d+[xX][A-Fa-f0-9]+"
|
||||
name: "constant.numeric.hexadecimal.sfd"
|
||||
|
||||
property:
|
||||
match: "^([^:]+)(:)"
|
||||
name: "meta.dictionary.key-value.sfd"
|
||||
captures:
|
||||
1: name: "entity.name.property.sfd"
|
||||
2: name: "punctuation.separator.dictionary.key-value.sfd"
|
||||
|
||||
11
samples/CSON/wercker-status.cson
Normal file
11
samples/CSON/wercker-status.cson
Normal file
@@ -0,0 +1,11 @@
|
||||
'menu': [
|
||||
{
|
||||
'label': 'Packages'
|
||||
'submenu': [
|
||||
'label': 'Wercker Status'
|
||||
'submenu': [
|
||||
{ 'label': 'Check now!', 'command': 'wercker-status:checknow' }
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
60
samples/Julia/julia
Normal file
60
samples/Julia/julia
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env julia
|
||||
|
||||
# From https://github.com/JoshCheek/language-sampler-for-fullpath/blob/b766dcdbd249ec63516f491390a75315e78cba95/julia/fullpath
|
||||
help_screen = """
|
||||
usage: fullpath *[relative-paths] [-c]
|
||||
|
||||
Prints the fullpath of the paths
|
||||
If no paths are given as args, it will read them from stdin
|
||||
|
||||
If there is only one path, the trailing newline is omitted
|
||||
|
||||
The -c flag will copy the results into your pasteboard
|
||||
"""
|
||||
|
||||
help = false
|
||||
copy = false
|
||||
dir = pwd()
|
||||
paths = []
|
||||
|
||||
for arg = ARGS
|
||||
if arg == "-h" || arg == "--help"
|
||||
help = true
|
||||
elseif arg == "-c" || arg == "--copy"
|
||||
copy = true
|
||||
elseif arg != ""
|
||||
push!(paths, arg)
|
||||
end
|
||||
end
|
||||
|
||||
if help
|
||||
print(help_screen)
|
||||
exit()
|
||||
end
|
||||
|
||||
function notempty(string)
|
||||
return !isempty(string)
|
||||
end
|
||||
|
||||
if length(paths) == 0
|
||||
paths = filter(notempty, map(chomp, readlines()))
|
||||
end
|
||||
|
||||
function print_paths(stream, paths)
|
||||
if length(paths) == 1
|
||||
path = paths[1]
|
||||
print(stream, "$dir/$path")
|
||||
else
|
||||
for path = paths
|
||||
println(stream, "$dir/$path")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if copy
|
||||
read, write, process = readandwrite(`pbcopy`)
|
||||
print_paths(write, paths)
|
||||
close(write)
|
||||
end
|
||||
|
||||
print_paths(STDOUT, paths)
|
||||
13
samples/Pic/dextroamphetamine.chem
Normal file
13
samples/Pic/dextroamphetamine.chem
Normal file
@@ -0,0 +1,13 @@
|
||||
# Dextroamphetamine molecule
|
||||
.cstart
|
||||
.ps 26
|
||||
size 28
|
||||
R1:
|
||||
ring double 1,2 3,4 5,6
|
||||
bond 60 from R1.V2
|
||||
bond 120
|
||||
A1:
|
||||
front bond down ; CH3
|
||||
bond 60 from A1 ; NH2
|
||||
.ps
|
||||
.cend
|
||||
25
samples/Pic/graph.pic
Normal file
25
samples/Pic/graph.pic
Normal file
@@ -0,0 +1,25 @@
|
||||
.PS
|
||||
ellipse "Pic" "example"
|
||||
arrow
|
||||
box "This is" "a box"
|
||||
arrow right
|
||||
box "Another" "box" dashed
|
||||
move down then right;
|
||||
Thing: ellipse "This is a" "circle-thing"
|
||||
arrow <-> from last box.r to Thing.l
|
||||
move down then left;
|
||||
B: box "Still a box"
|
||||
arrow from Thing.l to B.r
|
||||
sprintf("Width = %g, Height = %g ", B.wid, B.ht) rjust at B.w
|
||||
move down
|
||||
.ps 15
|
||||
define sadness {
|
||||
boxwid = 3;
|
||||
boxht = 1;
|
||||
textht = .5;
|
||||
box "\"I run from my depression by" " " "burying myself in code\""
|
||||
arrow down from last box.s
|
||||
"Me"
|
||||
}
|
||||
sadness();
|
||||
.PE
|
||||
15
samples/Pic/ritalin.chem
Normal file
15
samples/Pic/ritalin.chem
Normal file
@@ -0,0 +1,15 @@
|
||||
.\" RITALIN: Methylphenidate Hydrochloride
|
||||
.cstart
|
||||
.ps 15
|
||||
size 15
|
||||
R1: ring double 1,2 3,4 5,6 pointing up
|
||||
bond 60 length .35 from R1.V2 ; BP
|
||||
bond 120 length .35 from BP
|
||||
R2: ring pointing up put N at 1
|
||||
H above R2
|
||||
bond up length .35 from BP ; BP
|
||||
bond -60 length .35 from BP ; O
|
||||
bond up
|
||||
double bond 60 length .35 from BP ; O
|
||||
.ps 10
|
||||
.cend
|
||||
14
samples/Sublime Text Config/AMPL.sublime-build
Normal file
14
samples/Sublime Text Config/AMPL.sublime-build
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"cmd": ["ampl", "${file_path}/${file_base_name}.run"],
|
||||
"file_regex": "^(?:[(]file )*[ ]*(...*?), line ([0-9]*)",
|
||||
"selector": "source.ampl",
|
||||
|
||||
"osx":
|
||||
{
|
||||
"env":
|
||||
{
|
||||
// "ILOG_LICENSE_FILE": "path/to/access.ilm"
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
8
samples/Sublime Text Config/CLIPS.sublime-settings
Normal file
8
samples/Sublime Text Config/CLIPS.sublime-settings
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"extensions":
|
||||
[
|
||||
"clp"
|
||||
],
|
||||
"tab_size": 8,
|
||||
"translate_tabs_to_spaces": false
|
||||
}
|
||||
13
samples/Sublime Text Config/Context.sublime-menu
Normal file
13
samples/Sublime Text Config/Context.sublime-menu
Normal file
@@ -0,0 +1,13 @@
|
||||
[
|
||||
{
|
||||
"id" : "nasm",
|
||||
"caption": "NASM Assembly",
|
||||
"children":
|
||||
[
|
||||
{
|
||||
"caption" : "Documentation",
|
||||
"command" : "assembly_doc"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
30
samples/Sublime Text Config/Dart.sublime-commands
Normal file
30
samples/Sublime Text Config/Dart.sublime-commands
Normal file
@@ -0,0 +1,30 @@
|
||||
[
|
||||
{ "caption": "Dart: Polymer: Generate Element", "command": "dart_generate_polymer_element" },
|
||||
{ "caption": "Dart: Polymer: Add Entry Point", "command": "dart_add_polymer_entry_point" },
|
||||
|
||||
{ "caption": "Dart: Check Configuration", "command": "dart_check_config" },
|
||||
{ "caption": "Dart: Browse API Reference", "command": "dart_open_browser", "args": {"url": "https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/home" } },
|
||||
{ "caption": "Dart: Set Default User Browser", "command": "dart_show_user_browsers" },
|
||||
|
||||
{ "caption": "Preferences: Dart Settings - Default", "command": "dart_open_settings", "args": {"kind": "default"} },
|
||||
{ "caption": "Preferences: Dart Settings - User", "command": "dart_open_settings", "args": {"kind": "user"} },
|
||||
{ "caption": "Preferences: Dart Settings - File Type (User)", "command": "dart_open_settings", "args": {"kind": "user", "scope": "file_type"} },
|
||||
|
||||
{ "caption": "Dart: Run", "command": "dart_smart_run" },
|
||||
{ "caption": "Dart: Run (This File)", "command": "dart_smart_run", "args": {"force_update": true} },
|
||||
{ "caption": "Dart: Stop", "command": "dart_smart_run", "args": {"kill_only": true} },
|
||||
|
||||
{ "caption": "Dart: Run In Observatory (This File)", "command": "dart_run_in_observatory" },
|
||||
|
||||
{ "caption": "Dart: Show Output Panel", "command": "show_panel", "args": {"panel": "output.dart.out"} },
|
||||
{ "caption": "Dart: Show Errors Panel", "command": "show_panel", "args": {"panel": "output.dart.errors"} },
|
||||
|
||||
{ "caption": "Dart: Format", "command": "dart_format" },
|
||||
|
||||
{ "caption": "Dart: Generate Documentation", "command": "dart_generate_docs" },
|
||||
{ "caption": "Dart: Serve Documentation", "command": "dart_serve_docs" },
|
||||
|
||||
{ "caption": "Dart: Stagehand", "command": "dart_stagehand_wizard" },
|
||||
|
||||
{ "caption": "Dart: Pub Get", "command": "dart_pub_get" }
|
||||
]
|
||||
40
samples/Sublime Text Config/Dart.sublime-project
Normal file
40
samples/Sublime Text Config/Dart.sublime-project
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"folders":
|
||||
[
|
||||
{
|
||||
"follow_symlinks": true,
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
|
||||
"SublimeLinter":
|
||||
{
|
||||
"@python": 3.4
|
||||
},
|
||||
|
||||
"build_systems":
|
||||
[
|
||||
{
|
||||
"name": "Run",
|
||||
"shell_cmd": "\"$project_path/scripts/build.sh\"",
|
||||
"windows":
|
||||
{
|
||||
"shell_cmd": "powershell -noninteractive -file \"$project_path\\build.ps1\""
|
||||
},
|
||||
"working_dir": "${project_path}",
|
||||
|
||||
"variants": [
|
||||
{
|
||||
"name": "Dart: Test (All)",
|
||||
"target": "run_dart_tests",
|
||||
},
|
||||
|
||||
{
|
||||
"name": "Dart: Test (This File Only)",
|
||||
"target": "run_dart_tests",
|
||||
"active_file_only": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
[
|
||||
{
|
||||
"button": "button1", "count": 1, "modifiers": ["alt"],
|
||||
"press_command": "drag_select",
|
||||
"command": "robot_go_to_keyword"
|
||||
}
|
||||
]
|
||||
6
samples/Sublime Text Config/Default.sublime-keymap
Normal file
6
samples/Sublime Text Config/Default.sublime-keymap
Normal file
@@ -0,0 +1,6 @@
|
||||
[
|
||||
// Disable auto-pair for single quote
|
||||
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'"}, "context":
|
||||
[{ "key": "selector", "operator": "equal", "operand": "source.rust" }]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,6 @@
|
||||
[
|
||||
{"command": "move_to", "args": {"to": "hardeol"}},
|
||||
{"command": "insert", "args": {"characters": "\n"}},
|
||||
{"command": "insert", "args": {"characters": "*"}},
|
||||
{"command": "insert", "args": {"characters": " "}}
|
||||
]
|
||||
5
samples/Sublime Text Config/RunBuild.sublime-macro
Normal file
5
samples/Sublime Text Config/RunBuild.sublime-macro
Normal file
@@ -0,0 +1,5 @@
|
||||
[
|
||||
{
|
||||
"command": "haxe_run_build"
|
||||
}
|
||||
]
|
||||
19
samples/Sublime Text Config/SourcePawn.sublime-build
Normal file
19
samples/Sublime Text Config/SourcePawn.sublime-build
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
// For default sourcemod scripting directory :
|
||||
"cmd": ["<spcomp_path>", "-o$file_path/../plugins/$file_name", "$file"],
|
||||
|
||||
// For custom sourcemod scripting directory :
|
||||
"cmd": ["<spcomp_path>", "-i<include_path>", "-o$file_path/$file_base_name.smx", "$file"],
|
||||
|
||||
// Windows example:
|
||||
"cmd": ["X:/somefolder/spcomp", "-iX:/somefolder", "-o$file_path/$file_base_name.smx", "$file"],
|
||||
"cmd": ["X:/game/csgo/addons/sourcemod/scripting/spcomp", "-o$file_path/../plugins/$file_name", "$file"],
|
||||
|
||||
// Linux or OSX example:
|
||||
"cmd": ["/home/User/sm/spcomp", "-i/home/User/sm/include", "-o$file_path/$file_base_name.smx", "$file"],
|
||||
"cmd": ["/home/User/game/csgo/addons/sourcemod/scripting/spcomp", "-o$file_path/../plugins/$file_name", "$file"],
|
||||
|
||||
|
||||
"file_regex": "(.*)\\((\\d+)\\) :",
|
||||
"selector": "source.sp"
|
||||
}
|
||||
861
samples/Sublime Text Config/Tubnil.sublime-theme
Normal file
861
samples/Sublime Text Config/Tubnil.sublime-theme
Normal file
@@ -0,0 +1,861 @@
|
||||
[
|
||||
// Tubnil theme for Sublime Text 2
|
||||
// https://github.com/nilium/st2-nil-theme
|
||||
//
|
||||
// TABS
|
||||
// ==========================================================
|
||||
// - Tabset
|
||||
// ------------------------------------------------------
|
||||
{
|
||||
"class": "tabset_control",
|
||||
"layer0.texture": "SourcePawn/assets/tabset-bg.png",
|
||||
"layer0.inner_margin": [2, 6],
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [-13, 0, -13,-6], // left, top, right, bottom
|
||||
"tab_overlap": 25,
|
||||
"tab_width": 150,
|
||||
"tab_min_width": 50,
|
||||
"tab_height": 35,
|
||||
"mouse_wheel_switch": false
|
||||
},
|
||||
{
|
||||
"class": "tabset_control",
|
||||
"settings": ["mouse_wheel_switches_tabs"],
|
||||
"mouse_wheel_switch": true
|
||||
},
|
||||
|
||||
// - Tab element
|
||||
// ------------------------------------------------------
|
||||
{
|
||||
"class": "tab_control",
|
||||
"content_margin": [25, 0, 25, 0],
|
||||
"max_margin_trim": 0,
|
||||
"hit_test_level": 0.5,
|
||||
|
||||
// - Inactive tab settings
|
||||
"layer0.texture": "SourcePawn/assets/tab-inactive.png",
|
||||
"layer0.inner_margin": [23, 8],
|
||||
"layer0.opacity": 1.0,
|
||||
|
||||
// - Active tab setting
|
||||
"layer1.texture": "SourcePawn/assets/tab-active.png",
|
||||
"layer1.inner_margin": [23, 8],
|
||||
"layer1.opacity": 0.0,
|
||||
|
||||
// - Hover tab setting
|
||||
"layer2.texture": "SourcePawn/assets/tab-hover.png",
|
||||
"layer2.inner_margin": [23, 8],
|
||||
"layer2.opacity": 0.0
|
||||
},
|
||||
{
|
||||
// - Tab close state
|
||||
"class": "tab_control",
|
||||
"settings": ["show_tab_close_buttons"],
|
||||
"content_margin": [20, 0, 20, 7]
|
||||
},
|
||||
{
|
||||
// - Hover tab state
|
||||
"class": "tab_control",
|
||||
"attributes": ["hover"],
|
||||
"layer2.opacity": 1.0
|
||||
},
|
||||
{
|
||||
// - Active tab state
|
||||
"class": "tab_control",
|
||||
"attributes": ["selected"],
|
||||
"layer0.opacity": 0.0,
|
||||
"layer1.opacity": 1.0,
|
||||
"layer2.opacity": 0.0
|
||||
},
|
||||
{
|
||||
// - Modified tab state
|
||||
"class": "tab_control",
|
||||
//"settings": ["highlight_modified_tabs"],
|
||||
"attributes": ["dirty"],
|
||||
"layer0.texture": "SourcePawn/assets/tab-inactive-modified.png",
|
||||
"layer1.texture": "SourcePawn/assets/tab-active-modified.png",
|
||||
"layer2.texture": "SourcePawn/assets/tab-hover-dirty.png"
|
||||
},
|
||||
|
||||
// - Tab labels
|
||||
// ------------------------------------------------------
|
||||
|
||||
// - Inactive tab label
|
||||
{
|
||||
"class": "tab_label",
|
||||
"fg": [180, 180, 180],
|
||||
"shadow_color": [0, 0, 0, 200],
|
||||
"shadow_offset": [0, 1]
|
||||
},
|
||||
|
||||
// - Active tab label
|
||||
{
|
||||
"class": "tab_label",
|
||||
"parents": [{"class": "tab_control", "attributes": ["selected"]}],
|
||||
"shadow_color": [0, 0, 0, 165],
|
||||
"shadow_offset": [0, 1],
|
||||
"fg": [240, 240, 240, 255]
|
||||
},
|
||||
|
||||
// - Hover tab label
|
||||
{
|
||||
"class": "tab_label",
|
||||
"parents": [{"class": "tab_control", "attributes": ["hover"]}],
|
||||
"shadow_color": [0, 0, 0, 165],
|
||||
"shadow_offset": [0, 1],
|
||||
"fg": [2, 196, 251, 255]
|
||||
},
|
||||
|
||||
// - Dirty Hover tab label
|
||||
{
|
||||
"class": "tab_label",
|
||||
"parents": [{"class": "tab_control", "attributes": ["hover", "dirty"]}],
|
||||
"shadow_color": [0, 0, 0, 165],
|
||||
"shadow_offset": [0, 1],
|
||||
"fg": [253, 113, 1, 255]
|
||||
},
|
||||
|
||||
// - Dirty inactive tab label
|
||||
{
|
||||
"class": "tab_label",
|
||||
"parents": [{"class": "tab_control", "attributes": ["dirty"]}],
|
||||
"settings": ["highlight_modified_tabs"]
|
||||
},
|
||||
|
||||
// - Dirty active tab label
|
||||
{
|
||||
"class": "tab_label",
|
||||
"parents": [{"class": "tab_control", "attributes": ["selected", "dirty"]}],
|
||||
"settings": ["highlight_modified_tabs"]
|
||||
},
|
||||
|
||||
// - Tab buttons
|
||||
// ------------------------------------------------------
|
||||
|
||||
// - Tab button
|
||||
{
|
||||
"class": "tab_close_button",
|
||||
"content_margin": [0, 0],
|
||||
|
||||
// - Tab close default settings
|
||||
"layer1.texture": "SourcePawn/assets/tab-button-close.png",
|
||||
"layer1.opacity": 0.0, // hide by default
|
||||
"layer1.inner_margin": 0.0,
|
||||
|
||||
// - Tab close hover settings
|
||||
"layer0.texture": "SourcePawn/assets/tab-button-close-hover.png",
|
||||
"layer0.opacity": 0.0
|
||||
},
|
||||
{
|
||||
// - Tab button size
|
||||
"class": "tab_close_button",
|
||||
"settings": ["show_tab_close_buttons"],
|
||||
"content_margin": [8, 8]
|
||||
},
|
||||
{
|
||||
"class": "tab_close_button",
|
||||
"parents": [{"class": "tab_control", "attributes": ["dirty"]}],
|
||||
"layer1.texture": "SourcePawn/assets/tab-button-close-dirty.png"
|
||||
},
|
||||
{
|
||||
// - Tab close hover action
|
||||
"class": "tab_close_button",
|
||||
"parents": [{"class": "tab_control", "attributes": ["hover"]}],
|
||||
"layer1.opacity": 0.0,
|
||||
"layer0.opacity": 1.0
|
||||
},
|
||||
{
|
||||
// - Tab close press action
|
||||
"class": "tab_close_button",
|
||||
"attributes": ["hover"],
|
||||
"layer1.opacity": 0.4,
|
||||
"layer0.opacity": 1.0
|
||||
},
|
||||
{
|
||||
// - Tab close press action
|
||||
"class": "tab_close_button",
|
||||
"attributes": ["pressed"],
|
||||
"layer1.opacity": 1.0,
|
||||
"layer0.opacity": 0.0
|
||||
},
|
||||
|
||||
// FOLD BUTTONS
|
||||
// ==========================================================
|
||||
|
||||
{
|
||||
"class": "fold_button_control",
|
||||
"layer0.texture": "SourcePawn/assets/arrow-right.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"layer0.inner_margin": 0,
|
||||
"layer1.texture": "SourcePawn/assets/arrow-right-hover.png",
|
||||
"layer1.opacity": 0.0,
|
||||
"layer1.inner_margin": 0,
|
||||
"content_margin": [9, 7, 8, 6]
|
||||
},
|
||||
{
|
||||
"class": "fold_button_control",
|
||||
"attributes": ["hover"],
|
||||
"layer0.opacity": 0.0,
|
||||
"layer1.opacity": 0.75
|
||||
},
|
||||
{
|
||||
"class": "fold_button_control",
|
||||
"attributes": ["pressed"],
|
||||
"layer0.opacity": 0.0,
|
||||
"layer1.opacity": 1.0
|
||||
},
|
||||
{
|
||||
"class": "fold_button_control",
|
||||
"attributes": ["expanded"],
|
||||
"layer0.texture": "SourcePawn/assets/arrow-down.png",
|
||||
"layer1.texture": "SourcePawn/assets/arrow-down-hover.png"
|
||||
},
|
||||
|
||||
// SCROLLBARS (overlay scrollbars from Default theme)
|
||||
// ==========================================================
|
||||
{
|
||||
"class": "scroll_bar_control",
|
||||
"layer0.texture": "SourcePawn/assets/scrollbar/well-vertical.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"layer0.inner_margin": [1, 1],
|
||||
"blur": false
|
||||
},
|
||||
{
|
||||
"class": "scroll_bar_control",
|
||||
"attributes": ["horizontal"],
|
||||
"layer0.texture": "SourcePawn/assets/scrollbar/well-horizontal.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"layer0.inner_margin": [1, 1],
|
||||
"blur": false
|
||||
},
|
||||
{
|
||||
"class": "scroll_corner_control",
|
||||
"layer0.texture": "SourcePawn/assets/scrollbar/well-corner.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"layer0.inner_margin": [1, 1]
|
||||
},
|
||||
{
|
||||
"class": "puck_control",
|
||||
"layer0.texture": "SourcePawn/assets/scrollbar/bar-vertical.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"layer0.inner_margin": [3, 3],
|
||||
"content_margin": [6, 6],
|
||||
"blur": false
|
||||
},
|
||||
{
|
||||
"class": "puck_control",
|
||||
"attributes": ["horizontal"],
|
||||
"layer0.texture": "SourcePawn/assets/scrollbar/bar-horizontal.png"
|
||||
},
|
||||
{
|
||||
"class": "scroll_area_control",
|
||||
"settings": ["overlay_scroll_bars"],
|
||||
"overlay": true
|
||||
},
|
||||
{
|
||||
"class": "scroll_area_control",
|
||||
"settings": ["!overlay_scroll_bars"],
|
||||
"overlay": false
|
||||
},
|
||||
{
|
||||
"class": "scroll_bar_control",
|
||||
"settings": ["overlay_scroll_bars"],
|
||||
"layer0.texture": "SourcePawn/assets/overlay/overlay_bar_vertical.png",
|
||||
"layer0.inner_margin": [0, 5],
|
||||
"blur": true
|
||||
},
|
||||
{
|
||||
"class": "scroll_bar_control",
|
||||
"settings": ["overlay_scroll_bars"],
|
||||
"attributes": ["horizontal"],
|
||||
"layer0.texture": "SourcePawn/assets/overlay/overlay_bar_horizontal.png",
|
||||
"layer0.inner_margin": [5, 0],
|
||||
"blur": true
|
||||
},
|
||||
{
|
||||
"class": "puck_control",
|
||||
"settings": ["overlay_scroll_bars"],
|
||||
"layer0.texture": "SourcePawn/assets/overlay/overlay_thumb_vertical.png",
|
||||
"layer0.inner_margin": [0, 5],
|
||||
"content_margin": [5, 20],
|
||||
"blur": true
|
||||
},
|
||||
{
|
||||
"class": "puck_control",
|
||||
"settings": ["overlay_scroll_bars"],
|
||||
"attributes": ["horizontal"],
|
||||
"layer0.texture": "SourcePawn/assets/overlay/overlay_thumb_horizontal.png",
|
||||
"layer0.inner_margin": [5, 0],
|
||||
"content_margin": [20, 5],
|
||||
"blur": true
|
||||
},
|
||||
{
|
||||
"class": "puck_control",
|
||||
"settings": ["overlay_scroll_bars"],
|
||||
"attributes": ["dark"],
|
||||
"layer0.texture": "SourcePawn/assets/overlay/overlay_dark_thumb_vertical.png"
|
||||
},
|
||||
{
|
||||
"class": "puck_control",
|
||||
"settings": ["overlay_scroll_bars"],
|
||||
"attributes": ["horizontal", "dark"],
|
||||
"layer0.texture": "SourcePawn/assets/overlay/overlay_dark_thumb_horizontal.png"
|
||||
},
|
||||
|
||||
// EMPTY WINDOW BACKGROUND
|
||||
// ==========================================================
|
||||
{
|
||||
"class": "sheet_container_control",
|
||||
"layer0.tint": [16, 16, 16],
|
||||
"layer0.opacity": 1.0
|
||||
},
|
||||
|
||||
// GRID LAYOUT
|
||||
// ==========================================================
|
||||
{
|
||||
"class": "grid_layout_control",
|
||||
"border_size": 1,
|
||||
"border_color": [32, 32, 32]
|
||||
},
|
||||
|
||||
// MINI MAP
|
||||
// ==========================================================
|
||||
{
|
||||
"class": "minimap_control",
|
||||
"viewport_color": [185, 185, 185, 50]
|
||||
},
|
||||
|
||||
// LABELS
|
||||
// ==========================================================
|
||||
// - General labels
|
||||
{
|
||||
"class": "label_control",
|
||||
"color": [230, 230, 230]
|
||||
},
|
||||
// - Text field labels
|
||||
{
|
||||
"class": "label_control",
|
||||
"parents": [{"class": "panel_control"}],
|
||||
"shadow_color": [0, 0, 0],
|
||||
"shadow_offset": [0, 1]
|
||||
},
|
||||
// - Button labels
|
||||
{
|
||||
"class": "label_control",
|
||||
"parents": [{"class": "button_control"}],
|
||||
"color": [230, 230, 230],
|
||||
"shadow_color": [0, 0, 0],
|
||||
"shadow_offset": [0, 1]
|
||||
},
|
||||
|
||||
// TOOLTIP
|
||||
// ==========================================================
|
||||
// - Tooltip container
|
||||
{
|
||||
"class": "tool_tip_control",
|
||||
"layer0.texture": "SourcePawn/assets/tooltip.png",
|
||||
"layer0.inner_margin": [4, 4],
|
||||
"layer0.opacity": 1,
|
||||
"content_margin": [6, 4]
|
||||
},
|
||||
// - Tooltip content
|
||||
{
|
||||
"class": "tool_tip_label_control",
|
||||
"color": [160, 160, 160],
|
||||
"shadow_offset": [0, 1],
|
||||
"shadow_color": [0, 0, 0, 255]
|
||||
},
|
||||
|
||||
// STATUS BAR
|
||||
// ==========================================================
|
||||
// - Status bar container
|
||||
{
|
||||
"class": "status_bar",
|
||||
"layer0.texture": "SourcePawn/assets/status-bar-bg.png",
|
||||
"layer0.opacity": 1,
|
||||
"layer0.inner_margin": [2, 2],
|
||||
"content_margin": [6, 5, 6, 5]
|
||||
},
|
||||
{
|
||||
"class": "status_button",
|
||||
"min_size": [100, 0]
|
||||
},
|
||||
|
||||
// - Status bar label
|
||||
{
|
||||
"class": "label_control",
|
||||
"parents": [{"class": "status_bar"}],
|
||||
"font.size": 10,
|
||||
"color": [160, 160, 160],
|
||||
"shadow_color": [0, 0, 0],
|
||||
"shadow_offset": [0, 1]
|
||||
},
|
||||
|
||||
// SIDEBAR
|
||||
// ==========================================================
|
||||
// - Sidebar container (border)
|
||||
{
|
||||
"class": "sidebar_container",
|
||||
"layer0.tint": [150, 150, 150],
|
||||
"layer0.opacity": 0.5,
|
||||
"layer0.draw_center": false,
|
||||
"layer0.inner_margin": [0, 0, 1, 0],
|
||||
"content_margin": [0, 0, 1, 0]
|
||||
},
|
||||
// - Sidebar tree (bg)
|
||||
{
|
||||
"class": "sidebar_tree",
|
||||
"row_padding": [8, 3],
|
||||
"indent": 15,
|
||||
"indent_offset": 13,
|
||||
"indent_top_level": false,
|
||||
"layer0.tint": [19, 20, 21], // darker gray
|
||||
"layer0.opacity": 1.0,
|
||||
"dark_content": true
|
||||
},
|
||||
// - Sidebar rows
|
||||
{
|
||||
"class": "tree_row",
|
||||
"layer0.texture": "SourcePawn/assets/row-active.png",
|
||||
"layer0.opacity": 0.0,
|
||||
"layer0.inner_margin": [8, 3],
|
||||
"layer1.opacity": 0.0,
|
||||
"layer1.inner_margin": [8, 3]
|
||||
},
|
||||
// - Sidebar row selected
|
||||
{
|
||||
"class": "tree_row",
|
||||
"attributes": ["selected"],
|
||||
"layer0.opacity": 1.0
|
||||
},
|
||||
// - Sidebar row dirty
|
||||
{
|
||||
"class": "tree_row",
|
||||
"attributes": ["dirty"],
|
||||
"layer0.texture": "SourcePawn/assets/row-inactive-modified.png",
|
||||
"layer0.opacity": 1.0
|
||||
},
|
||||
// - Sidebar row selected dirty
|
||||
{
|
||||
"class": "tree_row",
|
||||
"attributes": ["selected", "dirty"],
|
||||
"layer0.texture": "SourcePawn/assets/row-active-modified.png",
|
||||
"layer0.opacity": 1.0
|
||||
},
|
||||
// - Sidebar heading
|
||||
{
|
||||
"class": "sidebar_heading",
|
||||
"color": [2, 196, 251],
|
||||
"font.bold": true,
|
||||
"shadow_color": [0, 0, 0],
|
||||
"shadow_offset": [0, 1]
|
||||
},
|
||||
{
|
||||
"class": "sidebar_heading",
|
||||
"parents": [{"class": "tree_row", "attributes": ["selected"]}],
|
||||
"color": [180, 180, 180]
|
||||
},
|
||||
// - Sidebar entry label
|
||||
{
|
||||
"class": "sidebar_label",
|
||||
"color": [200, 200, 200],
|
||||
"shadow_color": [0, 0, 0],
|
||||
"shadow_offset": [0, 1]
|
||||
},
|
||||
{
|
||||
"class": "sidebar_label",
|
||||
"parents": [{"class": "tree_row", "attributes": ["expandable"]}],
|
||||
"settings": ["bold_folder_labels"],
|
||||
"font.bold": true
|
||||
},
|
||||
{ // Sidebar selected entry label
|
||||
"class": "sidebar_label",
|
||||
"parents": [{"class": "tree_row", "attributes": ["selected"]}],
|
||||
"color": [240, 240, 240],
|
||||
"shadow_color": [0, 0, 0],
|
||||
"shadow_offset": [0, 1]
|
||||
},
|
||||
{ // Sidebar Hover entry label
|
||||
"class": "sidebar_label",
|
||||
"parents": [{"class": "tree_row", "attributes": ["hover"]}],
|
||||
"color": [2, 196, 251],
|
||||
"shadow_color": [0, 0, 0],
|
||||
"shadow_offset": [0, 1]
|
||||
},
|
||||
{ // Sidebar Hover entry label
|
||||
"class": "sidebar_label",
|
||||
"parents": [{"class": "tree_row", "attributes": ["dirty"]}],
|
||||
"color": [253, 113, 1],
|
||||
"shadow_color": [0, 0, 0],
|
||||
"shadow_offset": [0, 1]
|
||||
},
|
||||
|
||||
// - Sidebar open files close/dirty
|
||||
{
|
||||
"class": "close_button",
|
||||
"layer0.texture": "SourcePawn/assets/tab-button-close-hover.png",
|
||||
"layer0.opacity": 0.5,
|
||||
"layer0.inner_margin": 4,
|
||||
"layer1.opacity": 0.0,
|
||||
"layer1.texture": "SourcePawn/assets/tab-button-close.png",
|
||||
"layer1.inner_margin": 4,
|
||||
"content_margin": [8, 8]
|
||||
},
|
||||
{
|
||||
"class": "close_button",
|
||||
"attributes": ["dirty"],
|
||||
"layer0.texture": "SourcePawn/assets/tab-button-dirty.png",
|
||||
"layer0.opacity": 0.5
|
||||
},
|
||||
{
|
||||
"class": "close_button",
|
||||
"attributes": ["hover"],
|
||||
"layer0.texture": "SourcePawn/assets/tab-button-close-hover.png",
|
||||
"layer1.opacity": 0.5,
|
||||
"layer1.texture": "SourcePawn/assets/tab-button-close.png"
|
||||
},
|
||||
{
|
||||
"class": "close_button",
|
||||
"attributes": ["hover", "dirty"],
|
||||
"layer1.opacity": 0.5,
|
||||
"layer1.texture": "SourcePawn/assets/tab-button-close-dirty.png"
|
||||
},
|
||||
{
|
||||
"class": "close_button",
|
||||
"attributes": ["pressed"],
|
||||
"layer1.opacity": 1.0,
|
||||
"layer1.texture": "SourcePawn/assets/tab-button-close.png"
|
||||
},
|
||||
{
|
||||
"class": "close_button",
|
||||
"attributes": ["pressed", "dirty"],
|
||||
"layer1.opacity": 1.0,
|
||||
"layer1.texture": "SourcePawn/assets/tab-button-close-dirty.png"
|
||||
},
|
||||
|
||||
// - Sidebar FOLDERS closed
|
||||
{
|
||||
"class": "disclosure_button_control",
|
||||
"content_margin": [9, 7, 8, 6],
|
||||
"layer0.texture": "SourcePawn/assets/folder/group-closed.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"layer0.inner_margin": 0
|
||||
},
|
||||
{
|
||||
"class": "disclosure_button_control",
|
||||
"parents": [{"class": "tree_row", "attributes": ["hover"]}],
|
||||
"layer0.texture": "SourcePawn/assets/folder/group-closed-hover.png"
|
||||
},
|
||||
{
|
||||
"class": "disclosure_button_control",
|
||||
"parents": [{"class": "tree_row", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/folder/group-closed-selected.png"
|
||||
},
|
||||
// - Sidebar Folders open
|
||||
{
|
||||
"class": "disclosure_button_control",
|
||||
"attributes": ["expanded"],
|
||||
"layer0.texture": "SourcePawn/assets/folder/group-open.png"
|
||||
},
|
||||
{
|
||||
"class": "disclosure_button_control",
|
||||
"attributes": ["expanded"],
|
||||
"parents": [{"class": "tree_row", "attributes": ["hover"]}],
|
||||
"layer0.texture": "SourcePawn/assets/folder/group-open-hover.png"
|
||||
},
|
||||
{
|
||||
"class": "disclosure_button_control",
|
||||
"attributes": ["expanded"],
|
||||
"parents": [{"class": "tree_row", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/folder/group-open-selected.png"
|
||||
},
|
||||
|
||||
// STANDARD TEXT BUTTONS
|
||||
// =========================================================
|
||||
// - Standard buttons (used for Find / Replace panel)
|
||||
{
|
||||
"class": "button_control",
|
||||
"content_margin": [6, 5, 6, 6],
|
||||
"min_size": [75, 0],
|
||||
|
||||
// Default button state
|
||||
"layer0.texture": "SourcePawn/assets/btn-large.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"layer0.inner_margin": [6, 6],
|
||||
|
||||
// Pressed button setup
|
||||
"layer1.texture": "SourcePawn/assets/btn-large-active.png",
|
||||
"layer1.opacity": 0.0,
|
||||
"layer1.inner_margin": [6, 6]
|
||||
},
|
||||
{
|
||||
// Pressed button state
|
||||
"class": "button_control",
|
||||
"attributes": ["pressed"],
|
||||
"layer1.opacity": 1.0,
|
||||
"content_margin": [6, 6, 6, 6]
|
||||
},
|
||||
|
||||
// TEXT INPUT FIELD
|
||||
// =========================================================
|
||||
|
||||
// - Text input field item
|
||||
{
|
||||
"class": "text_line_control",
|
||||
"layer0.texture": "SourcePawn/assets/text-field.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"layer0.inner_margin": [10, 10, 10, 10],
|
||||
"content_margin": [5, 5, 5, 5]
|
||||
},
|
||||
|
||||
// PANEL BACKGROUNDS
|
||||
// =========================================================
|
||||
// - Bottom panel background
|
||||
{
|
||||
"class": "panel_control",
|
||||
"layer0.texture": "SourcePawn/assets/panel-bg.png",
|
||||
"layer0.inner_margin": [4, 4, 4, 4],
|
||||
"layer0.opacity": 1.0
|
||||
},
|
||||
|
||||
// - Quick panel background
|
||||
{
|
||||
"class": "overlay_control",
|
||||
"layer0.texture": "SourcePawn/assets/overlay-bg.png",
|
||||
"layer0.inner_margin": [10, 5, 10, 20], // left, top, right, bottom
|
||||
"layer0.opacity": 1.0,
|
||||
"layer1.opacity": 0, // HIDDEN
|
||||
"content_margin": [11, 8, 11, 17]
|
||||
},
|
||||
|
||||
// QUICK PANEL
|
||||
// =========================================================
|
||||
{
|
||||
"class": "quick_panel",
|
||||
"row_padding": [4, 3],
|
||||
"layer0.tint": [45, 45, 45],
|
||||
"layer0.opacity": 1,
|
||||
"dark_content": true
|
||||
},
|
||||
{
|
||||
"class": "quick_panel_row",
|
||||
"layer0.texture": "SourcePawn/assets/qp-row.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"layer0.inner_margin": [4, 4, 4, 4],
|
||||
"layer1.draw_center": true
|
||||
},
|
||||
{
|
||||
"class": "quick_panel_row",
|
||||
"attributes": ["selected"],
|
||||
"layer0.texture": "SourcePawn/assets/qp-row-selected.png"
|
||||
},
|
||||
{
|
||||
"class": "quick_panel_label",
|
||||
"fg": [190, 190, 190, 255],
|
||||
"match_fg": [166, 229, 255, 255],
|
||||
"bg": [71, 71, 71, 255],
|
||||
"selected_fg": [220, 220, 220, 255],
|
||||
"selected_match_fg": [2, 196, 251, 255],
|
||||
"selected_bg": [134, 134, 134, 255]
|
||||
},
|
||||
{
|
||||
"class": "quick_panel_path_label",
|
||||
"fg": [100, 100, 100, 255],
|
||||
"match_fg": [166, 229, 255, 255],
|
||||
"bg": [41, 41, 41, 255],
|
||||
"selected_fg": [120, 120, 120, 255],
|
||||
"selected_match_fg": [2, 196, 251, 255],
|
||||
"selected_bg": [24, 24, 24, 255]
|
||||
},
|
||||
{
|
||||
"class": "quick_panel_score_label",
|
||||
"fg": [90, 90, 90, 255],
|
||||
"bg": [41, 41, 41, 255],
|
||||
"selected_fg": [114, 114, 114, 255],
|
||||
"selected_bg": [24, 24, 24, 255]
|
||||
},
|
||||
|
||||
// MINI QUICK PANEL
|
||||
// =========================================================
|
||||
{
|
||||
"class": "mini_quick_panel_row",
|
||||
"layer0.texture": "SourcePawn/assets/qp-row.png",
|
||||
"layer0.inner_margin": [4, 4, 4, 4],
|
||||
"layer0.opacity": 1.0
|
||||
},
|
||||
{
|
||||
"class": "mini_quick_panel_row",
|
||||
"attributes": ["selected"],
|
||||
"layer0.texture": "SourcePawn/assets/qp-row-selected.png"
|
||||
},
|
||||
|
||||
// CODE COMPLETION DROPDOWN
|
||||
// =========================================================
|
||||
{
|
||||
"class": "popup_control",
|
||||
"content_margin": [0, 0]
|
||||
},
|
||||
{
|
||||
"class": "auto_complete",
|
||||
"row_padding": [2, 2],
|
||||
"layer0.tint": [30, 30, 30],
|
||||
"layer0.opacity": 1.0,
|
||||
"dark_content": true
|
||||
},
|
||||
{
|
||||
"class": "auto_complete_label",
|
||||
"fg": [140, 140, 140],
|
||||
"match_fg": [255, 255, 255],
|
||||
"bg": [26, 26, 26],
|
||||
"selected_fg": [255, 255, 255],
|
||||
"selected_match_fg": [255, 255, 255],
|
||||
"selected_bg": [86, 86, 86]
|
||||
},
|
||||
{
|
||||
"class": "table_row",
|
||||
"layer0.tint": [45, 45, 45],
|
||||
"layer0.opacity": 0.0,
|
||||
"layer0.inner_margin": [1, 1]
|
||||
},
|
||||
{
|
||||
"class": "table_row",
|
||||
"attributes": ["selected"],
|
||||
"layer0.opacity": 1.0
|
||||
},
|
||||
|
||||
// BOTTOM PANEL BUTTONS
|
||||
// ==========================================================
|
||||
{
|
||||
"class": "icon_button_control",
|
||||
"content_margin": [4, 4]
|
||||
},
|
||||
{
|
||||
"class": "icon_button_control",
|
||||
"attributes": ["pressed"]
|
||||
},
|
||||
// - Regex search button
|
||||
{
|
||||
"class": "icon_regex",
|
||||
"layer0.texture": "SourcePawn/assets/icons/regex-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_regex",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/regex-on.png"
|
||||
},
|
||||
// - Case sensitive search button
|
||||
{
|
||||
"class": "icon_case",
|
||||
"layer0.texture": "SourcePawn/assets/icons/case-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_case",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/case-on.png"
|
||||
},
|
||||
// - Match whole word search button
|
||||
{
|
||||
"class": "icon_whole_word",
|
||||
"layer0.texture": "SourcePawn/assets/icons/whole-word-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_whole_word",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/whole-word-on.png"
|
||||
},
|
||||
// - Reverse search direction button
|
||||
{
|
||||
"class": "icon_reverse",
|
||||
"layer0.texture": "SourcePawn/assets/icons/reverse-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_reverse",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/reverse-on.png"
|
||||
},
|
||||
// - Search wrap button
|
||||
{
|
||||
"class": "icon_wrap",
|
||||
"layer0.texture": "SourcePawn/assets/icons/wrap-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_wrap",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/wrap-on.png"
|
||||
},
|
||||
// - Search in selection button
|
||||
{
|
||||
"class": "icon_in_selection",
|
||||
"layer0.texture": "SourcePawn/assets/icons/selection-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_in_selection",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/selection-on.png"
|
||||
},
|
||||
// - Preserve case button
|
||||
{
|
||||
"class": "icon_preserve_case",
|
||||
"layer0.texture": "SourcePawn/assets/icons/preserve-case-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_preserve_case",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/preserve-case-on.png"
|
||||
},
|
||||
// - Highlight results button
|
||||
{
|
||||
"class": "icon_highlight",
|
||||
"layer0.texture": "SourcePawn/assets/icons/highlight-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_highlight",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/highlight-on.png"
|
||||
},
|
||||
|
||||
// BOTTOM PANEL ICONS (EXTENDED: FIND IN FILES)
|
||||
// =========================================================
|
||||
|
||||
// - Show search context button
|
||||
{
|
||||
"class": "icon_context",
|
||||
"layer0.texture": "SourcePawn/assets/icons/context-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_context",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/context-on.png"
|
||||
},
|
||||
// - Use search buffer
|
||||
{
|
||||
"class": "icon_use_buffer",
|
||||
"layer0.texture": "SourcePawn/assets/icons/buffer-off.png",
|
||||
"layer0.opacity": 1.0,
|
||||
"content_margin": [9, 10]
|
||||
},
|
||||
{
|
||||
"class": "icon_use_buffer",
|
||||
"parents": [{"class": "icon_button_control", "attributes": ["selected"]}],
|
||||
"layer0.texture": "SourcePawn/assets/icons/buffer-on.png"
|
||||
}
|
||||
|
||||
]
|
||||
136
samples/Sublime Text Config/jade.sublime-completions
Normal file
136
samples/Sublime Text Config/jade.sublime-completions
Normal file
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"scope": "entity.name.tag.jade",
|
||||
"completions":
|
||||
[
|
||||
"a",// Defines a hyperlink
|
||||
"abbr",// Defines an abbreviation
|
||||
"acronym",// Not supported in HTML5. Use <abbr> instead.
|
||||
//Defines an acronym
|
||||
"address",// Defines contact information for the author/owner of a document
|
||||
"applet",// Not supported in HTML5. Use <object> instead.
|
||||
//Defines an embedded applet
|
||||
"area",// Defines an area inside an image-map
|
||||
"article",// Defines an article
|
||||
"aside",// Defines content aside from the page content
|
||||
"audio",// Defines sound content
|
||||
"b",// Defines bold text
|
||||
"base",// Specifies the base URL/target for all relative URLs in a document
|
||||
"basefont",// Not supported in HTML5. Use CSS instead.
|
||||
//Specifies a default color, size, and font for all text in a document
|
||||
"bdi",// Isolates a part of text that might be formatted in a different direction from other text outside it
|
||||
"bdo",// Overrides the current text direction
|
||||
"big",// Not supported in HTML5. Use CSS instead.
|
||||
//Defines big text
|
||||
"blockquote",// Defines a section that is quoted from another source
|
||||
"body",// Defines the document's body
|
||||
"br",// Defines a single line break
|
||||
"button",// Defines a clickable button
|
||||
"canvas",// Used to draw graphics, on the fly, via scripting (usually JavaScript)
|
||||
"caption",// Defines a table caption
|
||||
"center",// Not supported in HTML5. Use CSS instead.
|
||||
//Defines centered text
|
||||
"cite",// Defines the title of a work
|
||||
"code",// Defines a piece of computer code
|
||||
"col",// Specifies column properties for each column within a <colgroup> element
|
||||
"colgroup",// Specifies a group of one or more columns in a table for formatting
|
||||
"command",// Defines a command button that a user can invoke
|
||||
"datalist",// Specifies a list of pre-defined options for input controls
|
||||
"dd",// Defines a description/value of a term in a description list
|
||||
"del",// Defines text that has been deleted from a document
|
||||
"details",// Defines additional details that the user can view or hide
|
||||
"dfn",// Defines a definition term
|
||||
"dialog",// Defines a dialog box or window
|
||||
"dir",// Not supported in HTML5. Use <ul> instead.
|
||||
//Defines a directory list
|
||||
"div",// Defines a section in a document
|
||||
"dl",// Defines a description list
|
||||
"dt",// Defines a term/name in a description list
|
||||
"em",// Defines emphasized text
|
||||
"embed",// Defines a container for an external (non-HTML) application
|
||||
"fieldset",// Groups related elements in a form
|
||||
"figcaption",// Defines a caption for a <figure> element
|
||||
"figure",// Specifies self-contained content
|
||||
"font",// Not supported in HTML5. Use CSS instead.
|
||||
//Defines font, color, and size for text
|
||||
"footer",// Defines a footer for a document or section
|
||||
"form",// Defines an HTML form for user input
|
||||
"frame",// Not supported in HTML5.
|
||||
//Defines a window (a frame) in a frameset
|
||||
"frameset",// Not supported in HTML5.
|
||||
//Defines a set of frames
|
||||
"h1",// to <h6> Defines HTML headings
|
||||
"head",// Defines information about the document
|
||||
"header",// Defines a header for a document or section
|
||||
"hgroup",// Groups heading elements
|
||||
"hr",// Defines a thematic change in the content
|
||||
"html",// Defines the root of an HTML document
|
||||
"i",// Defines a part of text in an alternate voice or mood
|
||||
"iframe",// Defines an inline frame
|
||||
"img",// Defines an image
|
||||
"input",// Defines an input control
|
||||
"ins",// Defines a text that has been inserted into a document
|
||||
"kbd",// Defines keyboard input
|
||||
"keygen",// Defines a key-pair generator field (for forms)
|
||||
"label",// Defines a label for an <input> element
|
||||
"legend",// Defines a caption for a <fieldset> element
|
||||
"li",// Defines a list item
|
||||
"link",// Defines the relationship between a document and an external resource (most used to link to style sheets)
|
||||
"main",// Specifies the main content of a document
|
||||
"map",// Defines a client-side image-map
|
||||
"mark",// Defines marked/highlighted text
|
||||
"menu",// Defines a list/menu of commands
|
||||
"meta",// Defines metadata about an HTML document
|
||||
"meter",// Defines a scalar measurement within a known range (a gauge)
|
||||
"nav",// Defines navigation links
|
||||
"noframes",// Not supported in HTML5.
|
||||
//Defines an alternate content for users that do not support frames
|
||||
"noscript",// Defines an alternate content for users that do not support client-side scripts
|
||||
"object",// Defines an embedded object
|
||||
"ol",// Defines an ordered list
|
||||
"optgroup",// Defines a group of related options in a drop-down list
|
||||
"option",// Defines an option in a drop-down list
|
||||
"output",// Defines the result of a calculation
|
||||
"p",// Defines a paragraph
|
||||
"param",// Defines a parameter for an object
|
||||
"pre",// Defines preformatted text
|
||||
"progress",// Represents the progress of a task
|
||||
"q",// Defines a short quotation
|
||||
"rp",// Defines what to show in browsers that do not support ruby annotations
|
||||
"rt",// Defines an explanation/pronunciation of characters (for East Asian typography)
|
||||
"ruby",// Defines a ruby annotation (for East Asian typography)
|
||||
"s",// Defines text that is no longer correct
|
||||
"samp",// Defines sample output from a computer program
|
||||
"script",// Defines a client-side script
|
||||
"section",// Defines a section in a document
|
||||
"select",// Defines a drop-down list
|
||||
"small",// Defines smaller text
|
||||
"source",// Defines multiple media resources for media elements (<video> and <audio>)
|
||||
"span",// Defines a section in a document
|
||||
"strike",// Not supported in HTML5. Use <del> instead.
|
||||
//Defines strikethrough text
|
||||
"strong",// Defines important text
|
||||
"style",// Defines style information for a document
|
||||
"sub",// Defines subscripted text
|
||||
"summary",// Defines a visible heading for a <details> element
|
||||
"sup",// Defines superscripted text
|
||||
"table",// Defines a table
|
||||
"tbody",// Groups the body content in a table
|
||||
"td",// Defines a cell in a table
|
||||
"textarea",// Defines a multiline input control (text area)
|
||||
"tfoot",// Groups the footer content in a table
|
||||
"th",// Defines a header cell in a table
|
||||
"thead",// Groups the header content in a table
|
||||
"time",// Defines a date/time
|
||||
"title",// Defines a title for the document
|
||||
"tr",// Defines a row in a table
|
||||
"track",// Defines text tracks for media elements (<video> and <audio>)
|
||||
"tt",// Not supported in HTML5. Use CSS instead.
|
||||
//Defines teletype text
|
||||
"u",// Defines text that should be stylistically different from normal text
|
||||
"ul",// Defines an unordered list
|
||||
"var",// Defines a variable
|
||||
"video",// Defines a video or movie
|
||||
"wbr"
|
||||
]
|
||||
}
|
||||
|
||||
63
samples/TI Program/srcalpha.8xp.txt
Normal file
63
samples/TI Program/srcalpha.8xp.txt
Normal file
@@ -0,0 +1,63 @@
|
||||
.AlphaCS
|
||||
#ExprOff
|
||||
If getKey(41)
|
||||
sub(ADM)
|
||||
End
|
||||
Lbl START
|
||||
"appv alpha "->Str1
|
||||
"appvAlphaCS"->Str2
|
||||
.ALPHA CS
|
||||
[7EFFFFE7FFFFE7E7]->Pic11
|
||||
[E0E0E0E0E0FFFF7F]->Pic12
|
||||
[FEFFE7FFFEE0E0E0]->Pic13
|
||||
[E7E7E7FFFFE7E7E7]->Pic14
|
||||
[7EFFFFE7FFFFE7E7]->Pic15
|
||||
[7FFFFFE0E0FFFF7F]->Pic16
|
||||
[7FFFFF781EFFFFFE]->Pic17
|
||||
.arch
|
||||
[0038447C44440000]->Pic21
|
||||
.hide
|
||||
[0054004400540000]->Pic22
|
||||
.lock
|
||||
[0038447C7C7C0000]->Pic23
|
||||
.(c) Scott Mangiapane
|
||||
Data(72,8)->GDB0
|
||||
[42600A360008000100994DDF2A6C61B1B28091294A22AAAAAAAB005A6DCA226A69B9A9800000000000202000000000000000C0200000000000000000000000000000000000000000]
|
||||
.icon unknown
|
||||
Data(16,16)->GDB11
|
||||
[EFFEA803EB8308032BFB28032BFB0803EBFBA803EBFB08032B8328032FFF07FF]
|
||||
.icon SRC
|
||||
Data(16,16)->GDB12
|
||||
[01801A583E7C3FFC3FFC3E7C1A580A500240FFFFC471BDAFCC6FF5AF8DB1FFFF]
|
||||
.icon ASM
|
||||
Data(16,16)->GDB13
|
||||
[FFFFFFFFFFFFFFFFFFFFCE6BB5D586D5B75DB4DDFFFFFFFFFFFFFFFFFFFFFFFF]
|
||||
.icon shell
|
||||
Data(16,16)->GDB14
|
||||
[FFFFFFFFFFFFFFFFFFFFFFFF97B5B155D5359595FFFFFFFFFFFFFFFFFFFFFFFF]
|
||||
Goto SET
|
||||
prgmSRCFUNC
|
||||
prgmSRCGUI
|
||||
prgmSRCSORT
|
||||
Lbl SET
|
||||
.start, set up
|
||||
ClrDraw
|
||||
StoreGDB
|
||||
DiagnosticOff
|
||||
Fix 5
|
||||
Full
|
||||
!If GetCalc(Str1,[Y1])
|
||||
sub(NEW)
|
||||
StoreGDB
|
||||
End
|
||||
GetCalc(Str1,[Y1])
|
||||
If {[Y1]+0}
|
||||
!If sub(CODE)
|
||||
Goto END
|
||||
End
|
||||
End
|
||||
Asm(FDCB249E)
|
||||
If {[Y1]+6}
|
||||
Asm(FDCB24DE)
|
||||
End
|
||||
Goto DLIST
|
||||
194
samples/TI Program/srcfunc.8xp.txt
Normal file
194
samples/TI Program/srcfunc.8xp.txt
Normal file
@@ -0,0 +1,194 @@
|
||||
.FUNC AlphaCS
|
||||
Lbl ADM
|
||||
DiagnosticOff
|
||||
Fix 5
|
||||
Full
|
||||
StoreGDB
|
||||
sub(D2,13,17,70,29,"Admin Access")
|
||||
sub(D1,15,27)
|
||||
Text(15,37,"Admin Code: - - - -")
|
||||
DispGraph
|
||||
Repeat getKey->A
|
||||
End
|
||||
Text(55,37,"*")
|
||||
DispGraph
|
||||
Repeat getKey->B
|
||||
End
|
||||
Text(62,37,"*")
|
||||
DispGraph
|
||||
Repeat getKey->C
|
||||
End
|
||||
Text(69,37,"*")
|
||||
DispGraph
|
||||
Repeat getKey->D
|
||||
End
|
||||
Text(76,37,"*")
|
||||
DispGraph
|
||||
Normal
|
||||
Pause 100
|
||||
Full
|
||||
If (A!=20) or (B!=35) or (C!=18) or (D!=27)
|
||||
Goto END
|
||||
End
|
||||
sub(D2,13,17,70,29,"Author Info")
|
||||
sub(D1,15,27)
|
||||
Bitmap(15,38,GDB0)
|
||||
DispGraph
|
||||
Repeat (getKey) and (getKey(9))
|
||||
End
|
||||
DelVar "appv alpha "
|
||||
Return
|
||||
Lbl D1
|
||||
.draws title
|
||||
Pt-On([r1]+1,[r2]+1,Pic11)
|
||||
Pt-On([r1]+10,[r2]+1,Pic12)
|
||||
Pt-On([r1]+19,[r2]+1,Pic13)
|
||||
Pt-On([r1]+28,[r2]+1,Pic14)
|
||||
Pt-On([r1]+37,[r2]+1,Pic15)
|
||||
Pt-On([r1]+48,[r2]+1,Pic16)
|
||||
Pt-On([r1]+57,[r2]+1,Pic17)
|
||||
RectI([r1],[r2],66,10)
|
||||
Pxl-Off([r1],[r2])
|
||||
RectI([r1]+14,[r2],4,5)
|
||||
RectI([r1]+23,[r2]+7,4,3)
|
||||
RectI([r1]+46,[r2]+1,1,8)
|
||||
RectI([r1]+45,[r2],3,1)
|
||||
RectI([r1]+46,[r2]+9,2,1)
|
||||
Pxl-Off([r1]+65,[r2]+9)
|
||||
Return
|
||||
Lbl D2
|
||||
.windows
|
||||
Rect([r1]+1,[r2],[r3]-2,[r4])
|
||||
Rect([r1],[r2]+1,[r3],[r4]-2)
|
||||
RectI([r1]+1,[r2]+1,[r3]-2,[r4]-2)
|
||||
Text([r1]+2,[r2]+2,[r5])
|
||||
RectI([r1]+1,[r2]+1,[r3]-2,8)
|
||||
Pt-Off([r1]+[r3]-9,[r2]+1,[C1BEAAB6AABEC1FF])
|
||||
Pxl-On([r1]+1,[r2]+[r4]-2)
|
||||
Pxl-On([r1]+[r3]-2,[r2]+[r4]-2)
|
||||
Return
|
||||
Lbl D3
|
||||
.archiving box
|
||||
sub(D2,15,22,66,20,"Archiving...")
|
||||
Text(17,31,"Please wait...")
|
||||
Return
|
||||
Lbl CODE
|
||||
sub(D2,15,22,66,20,"Access Denied")
|
||||
Text(29,32," - - - - ")
|
||||
DispGraph
|
||||
1->[r2]
|
||||
Repeat getKey->[r1]
|
||||
End
|
||||
Text(29,32,"*")
|
||||
DispGraph
|
||||
If [r1]!=({[Y1]+1})
|
||||
0->[r2]
|
||||
End
|
||||
Repeat getKey->[r1]
|
||||
End
|
||||
Text(39,32,"*")
|
||||
DispGraph
|
||||
If [r1]!=({[Y1]+2})
|
||||
0->[r2]
|
||||
End
|
||||
Repeat getKey->[r1]
|
||||
End
|
||||
Text(49,32,"*")
|
||||
DispGraph
|
||||
If [r1]!=({[Y1]+3})
|
||||
0->[r2]
|
||||
End
|
||||
Repeat getKey->[r1]
|
||||
End
|
||||
Text(59,32,"*")
|
||||
DispGraph
|
||||
If [r1]!=({[Y1]+4})
|
||||
0->[r2]
|
||||
End
|
||||
Normal
|
||||
Pause 200
|
||||
Full
|
||||
Return[r2]
|
||||
Lbl NEW
|
||||
ClrDraw
|
||||
sub(D1,0,0)
|
||||
RectI(0,11,96,1)
|
||||
Text(1,12,"Installation")
|
||||
Text(1,20,"Enter your new keycode:")
|
||||
Text(1,26," - - - - ")
|
||||
DispGraph
|
||||
GetCalc(Str1,16)->[r1]
|
||||
Fill([r1],16,1)
|
||||
0->{[r1]}
|
||||
Repeat getKey->[r2]
|
||||
End
|
||||
[r2]->{[r1]+1}
|
||||
Text(1,26,"*")
|
||||
DispGraph
|
||||
Repeat getKey->[r2]
|
||||
End
|
||||
[r2]->{[r1]+2}
|
||||
Text(7,26,"*")
|
||||
DispGraph
|
||||
Repeat getKey->[r2]
|
||||
End
|
||||
[r2]->{[r1]+3}
|
||||
Text(13,26,"*")
|
||||
DispGraph
|
||||
Repeat getKey->[r2]
|
||||
End
|
||||
[r2]->{[r1]+4}
|
||||
Text(19,26,"*")
|
||||
DispGraph
|
||||
Fill(L1,50,0)
|
||||
Text(1,34,"Confirm keycode:")
|
||||
Text(1,40," - - - - ")
|
||||
DispGraph
|
||||
Repeat getKey->[r2]
|
||||
End
|
||||
[r2]->{L1+1}
|
||||
Text(1,40,"*")
|
||||
DispGraph
|
||||
Repeat getKey->[r2]
|
||||
End
|
||||
[r2]->{L1+2}
|
||||
Text(7,40,"*")
|
||||
DispGraph
|
||||
Repeat getKey->[r2]
|
||||
End
|
||||
[r2]->{L1+3}
|
||||
Text(13,40,"*")
|
||||
DispGraph
|
||||
Repeat getKey->[r2]
|
||||
End
|
||||
[r2]->{L1+4}
|
||||
Text(19,40,"*")
|
||||
DispGraph
|
||||
If ({[r1]+1}={L1+1}) and ({[r1]+2}={L1+2}) and ({[r1]+3}={L1+3}) and ({[r1]+4}={L1+4})
|
||||
sub(D3)
|
||||
DispGraph
|
||||
GetCalc(Str2,10)
|
||||
Archive Str1
|
||||
GetCalc(Str1,[Y1])
|
||||
ClrDraw
|
||||
Return
|
||||
Else
|
||||
Text(1,48,"ERROR keycodes do not")
|
||||
Text(1,54,"match.")
|
||||
DispGraph
|
||||
UnArchive Str1
|
||||
DelVar Str1
|
||||
Repeat getKey
|
||||
End
|
||||
Goto END
|
||||
End
|
||||
Return
|
||||
Lbl END
|
||||
Asm(FDCB249E)
|
||||
If {[Y1]+6}
|
||||
Asm(FDCB24DE)
|
||||
End
|
||||
ClrDraw
|
||||
ClrDraw^^r
|
||||
ClrHome
|
||||
Return^^r
|
||||
563
samples/TI Program/srcgui.8xp.txt
Normal file
563
samples/TI Program/srcgui.8xp.txt
Normal file
@@ -0,0 +1,563 @@
|
||||
.GUI AlphaCS
|
||||
#Axiom(RUNPRGM)
|
||||
#Axiom(ZSTAXE)
|
||||
Lbl DLIST
|
||||
ClrDraw
|
||||
ClrDraw^^r
|
||||
sub(D1,0,0)
|
||||
RectI(0,11,96,1)
|
||||
!If sub(POLAR,1)
|
||||
RectI(0,63,96,1)
|
||||
Text(1,13,"No programs found.")
|
||||
DispGraph
|
||||
Goto KLIST2
|
||||
Else
|
||||
Fill(L5,50,0)
|
||||
Copy(L1,L5,20)
|
||||
13->B->G
|
||||
0->I
|
||||
1->H
|
||||
Text(1,13,L2)
|
||||
If D
|
||||
Pt-On(77,13,Pic21)
|
||||
End
|
||||
If E
|
||||
Pt-On(83,13,Pic22)
|
||||
End
|
||||
If F
|
||||
Pt-On(89,13,Pic23)
|
||||
End
|
||||
For(S,1,6)
|
||||
If sub(ADJ,1)
|
||||
S*7+13->G
|
||||
Text(1,S*7+13,L2)
|
||||
If D
|
||||
Pt-On(77,S*7+13,Pic21)
|
||||
End
|
||||
If E
|
||||
Pt-On(83,S*7+13,Pic22)
|
||||
End
|
||||
If F
|
||||
Pt-On(89,S*7+13,Pic23)
|
||||
End
|
||||
End
|
||||
End
|
||||
End
|
||||
Fill(L4,50,0)
|
||||
Copy(L1,L4,20)
|
||||
Lbl KLIST1
|
||||
Rect(90,0,6,10)
|
||||
RectI(90,0,6,10)
|
||||
0->S->T
|
||||
sub(POLAR,1)
|
||||
If Equ>String(L1,L5)
|
||||
S++
|
||||
End
|
||||
sub(POLAR,0)
|
||||
If Equ>String(L1,L4)
|
||||
T++
|
||||
End
|
||||
If (S) and (T)
|
||||
Pt-On(90,6,[F870200000000000])
|
||||
Pt-On(90,2,[2070F80000000000])
|
||||
Else
|
||||
If S
|
||||
Pt-On(90,4,[2070F80000000000])
|
||||
End
|
||||
If T
|
||||
Pt-On(90,4,[F870200000000000])
|
||||
End
|
||||
End
|
||||
RectI(0,63,96,1)
|
||||
RectI(0,B,96,7)
|
||||
DispGraph
|
||||
RectI(0,B,96,7)
|
||||
RectI(0,63,96,1)
|
||||
If getKey(15)
|
||||
Goto DLIST
|
||||
End
|
||||
Repeat getKey
|
||||
If getKey(41)
|
||||
Repeat getKey(41)=0
|
||||
End
|
||||
Asm(3E01D303FB76)
|
||||
Repeat getKey(41)=0
|
||||
End
|
||||
End
|
||||
End
|
||||
If getKey(48)
|
||||
Goto DSET1
|
||||
End
|
||||
If (getKey(9)) or (getKey(54))
|
||||
Fill(L1,50,0)
|
||||
Copy(L5,L1,20)
|
||||
If (B-13/7)=0
|
||||
Fill(L1,50,0)
|
||||
Copy(L5+1,L1,20)
|
||||
sub(DATA)
|
||||
Else
|
||||
For(B-13/7)
|
||||
sub(ADJ,1)
|
||||
End
|
||||
End
|
||||
Goto DPRGM1
|
||||
End
|
||||
If getKey(4)
|
||||
If (B!=13)
|
||||
For(S,0,7)
|
||||
RectI(0,63,96,1)
|
||||
RectI(0,B-S,96,7)
|
||||
DispGraph
|
||||
RectI(0,B-S,96,7)
|
||||
RectI(0,63,96,1)
|
||||
End
|
||||
B-7->B
|
||||
Else
|
||||
sub(POLAR,1)
|
||||
If Equ>String(L1,L5)
|
||||
Fill(L1,50,0)
|
||||
Copy(L4,L1,20)
|
||||
sub(ADJ,0)
|
||||
Fill(L4,50,0)
|
||||
Copy(L1,L4,20)
|
||||
Fill(L1,50,0)
|
||||
Copy(L5,L1,20)
|
||||
sub(ADJ,0)
|
||||
Fill(L5,50,0)
|
||||
Copy(L1,L5,20)
|
||||
Fill(L1,50,0)
|
||||
Copy(L4,L1,20)
|
||||
Rect(0,0,96,13)
|
||||
RectI(0,0,96,13)
|
||||
For(7)
|
||||
Vertical+
|
||||
End
|
||||
Rect(0,62,96,2)
|
||||
RectI(0,62,96,2)
|
||||
Text(1,13,L2)
|
||||
If D
|
||||
Pt-On(77,13,Pic21)
|
||||
End
|
||||
If E
|
||||
Pt-On(83,13,Pic22)
|
||||
End
|
||||
If F
|
||||
Pt-On(89,13,Pic23)
|
||||
End
|
||||
Rect(0,0,96,13)
|
||||
RectI(0,0,96,13)
|
||||
sub(D1,0,0)
|
||||
RectI(0,11,96,1)
|
||||
End
|
||||
End
|
||||
End
|
||||
If getKey(1)
|
||||
If (B!=G)
|
||||
For(S,0,7)
|
||||
RectI(0,63,96,1)
|
||||
RectI(0,B+S,96,7)
|
||||
DispGraph
|
||||
RectI(0,B+S,96,7)
|
||||
RectI(0,63,96,1)
|
||||
End
|
||||
B+7->B
|
||||
Else
|
||||
sub(POLAR,0)
|
||||
If Equ>String(L1,L4)
|
||||
Fill(L1,50,0)
|
||||
Copy(L5,L1,20)
|
||||
sub(ADJ,1)
|
||||
Fill(L5,50,0)
|
||||
Copy(L1,L5,20)
|
||||
Fill(L1,50,0)
|
||||
Copy(L4,L1,20)
|
||||
sub(ADJ,1)
|
||||
Fill(L4,50,0)
|
||||
Copy(L1,L4,20)
|
||||
For(7)
|
||||
Vertical-
|
||||
End
|
||||
Text(1,55,L2)
|
||||
If D
|
||||
Pt-On(77,55,Pic21)
|
||||
End
|
||||
If E
|
||||
Pt-On(83,55,Pic22)
|
||||
End
|
||||
If F
|
||||
Pt-On(89,55,Pic23)
|
||||
End
|
||||
Rect(0,0,96,13)
|
||||
RectI(0,0,96,13)
|
||||
sub(D1,0,0)
|
||||
RectI(0,11,96,1)
|
||||
End
|
||||
End
|
||||
End
|
||||
If getKey(15)
|
||||
Goto END
|
||||
End
|
||||
Goto KLIST1
|
||||
Lbl KLIST2
|
||||
If getKey(15)
|
||||
Goto DLIST
|
||||
End
|
||||
Repeat getKey
|
||||
If getKey(41)
|
||||
Repeat getKey(41)=0
|
||||
End
|
||||
Asm(3E01D303FB76)
|
||||
Repeat getKey(41)=0
|
||||
End
|
||||
End
|
||||
End
|
||||
If getKey(48)
|
||||
Goto DSET1
|
||||
End
|
||||
If getKey(15)
|
||||
Goto END
|
||||
End
|
||||
Goto KLIST2
|
||||
Lbl DPRGM1
|
||||
GetCalc("appv alpha ",[Y1])
|
||||
13->B
|
||||
D->X
|
||||
E->Y
|
||||
F->Z
|
||||
Lbl DPRGM2
|
||||
GetCalc(L1,[Y3])
|
||||
0->H
|
||||
If ({[Y3]+0}=187) and ({[Y3]+1}=109)
|
||||
1->H
|
||||
If {[Y3]+2}=201
|
||||
2->H
|
||||
End
|
||||
If {[Y3]+3}=201
|
||||
3->H
|
||||
End
|
||||
End
|
||||
If {[Y3]+0}=58
|
||||
4->H
|
||||
End
|
||||
ClrDraw
|
||||
ClrDraw^^r
|
||||
sub(D1,0,0)
|
||||
RectI(0,11,96,1)
|
||||
Text(1,49,L2)
|
||||
RectI(0,48,96,16)
|
||||
69->S
|
||||
If Z
|
||||
Pt-Change(S,56,Pic23)
|
||||
S-6->S
|
||||
End
|
||||
If Y
|
||||
Pt-Change(S,56,Pic22)
|
||||
S-6->S
|
||||
End
|
||||
If X
|
||||
Pt-Change(S,56,Pic21)
|
||||
End
|
||||
RectI(1,56,94,7)
|
||||
Text(2,56,"size: ",{[Y3]-2}^^r>Dec)
|
||||
Text(1,13,"Run (with zStart)")
|
||||
If X
|
||||
Text(1,20,"Unarchive PRGM")
|
||||
Else
|
||||
Text(1,20,"Archive PRGM")
|
||||
End
|
||||
If Y
|
||||
Text(1,27,"Unhide PRGM")
|
||||
Else
|
||||
Text(1,27,"Hide PRGM")
|
||||
End
|
||||
If Z
|
||||
Text(1,34,"Unlock PRGM")
|
||||
Else
|
||||
Text(1,34,"Lock PRGM")
|
||||
End
|
||||
Rect(76,44,20,20)
|
||||
RectI(77,45,18,18)
|
||||
If H=0
|
||||
Bitmap(78,46,GDB11)
|
||||
End
|
||||
If H=1
|
||||
Bitmap(78,46,GDB13)
|
||||
End
|
||||
If H=2
|
||||
Bitmap(78,46,GDB14)
|
||||
End
|
||||
If H=3
|
||||
Bitmap(78,46,GDB14)
|
||||
End
|
||||
If H=4
|
||||
Bitmap(78,46,GDB12)
|
||||
End
|
||||
Lbl KPRGM
|
||||
RectI(0,B,96,7)
|
||||
DispGraph
|
||||
RectI(0,B,96,7)
|
||||
Repeat getKey
|
||||
End
|
||||
If (getKey(9)) or (getKey(54))
|
||||
If B=13
|
||||
sub(SETPRGM)
|
||||
Goto RUN
|
||||
Else
|
||||
Fill(L2,20,0)
|
||||
Copy(L1+1,L2,20)
|
||||
Fill(L1,20,0)
|
||||
Copy(L2,L1,20)
|
||||
sub(DATA)
|
||||
If B=20
|
||||
If X
|
||||
0->X
|
||||
Else
|
||||
1->X
|
||||
End
|
||||
Goto DPRGM2
|
||||
End
|
||||
If B=27
|
||||
If Y
|
||||
0->Y
|
||||
Else
|
||||
1->Y
|
||||
End
|
||||
Goto DPRGM2
|
||||
End
|
||||
If B=34
|
||||
If Z
|
||||
0->Z
|
||||
Else
|
||||
1->Z
|
||||
End
|
||||
Goto DPRGM2
|
||||
End
|
||||
End
|
||||
End
|
||||
If (getKey(4)) and (B!=13)
|
||||
For(S,0,7)
|
||||
RectI(0,B-S,96,7)
|
||||
DispGraph
|
||||
RectI(0,B-S,96,7)
|
||||
Normal
|
||||
Pause 3
|
||||
Full
|
||||
End
|
||||
B-7->B
|
||||
End
|
||||
If ((getKey(1)) and (B!=34)
|
||||
For(S,0,7)
|
||||
RectI(0,B+S,96,7)
|
||||
DispGraph
|
||||
RectI(0,B+S,96,7)
|
||||
Normal
|
||||
Pause 3
|
||||
Full
|
||||
End
|
||||
B+7->B
|
||||
End
|
||||
If getKey(15)
|
||||
sub(SETPRGM)
|
||||
Goto DLIST
|
||||
End
|
||||
Goto KPRGM
|
||||
Lbl SETPRGM
|
||||
If (X!=D) or (Y!=E) or (Z!=F)
|
||||
If X
|
||||
sub(D3)
|
||||
DispGraph
|
||||
End
|
||||
UnArchive L1
|
||||
X->D
|
||||
If (E!=Y)
|
||||
If Y
|
||||
{C-7}-64->{C-7}
|
||||
{L1+1}-64->{L1+1}
|
||||
Else
|
||||
{C-7}+64->{C-7}
|
||||
{L1+1}+64->{L1+1}
|
||||
End
|
||||
Y->E
|
||||
End
|
||||
If (F!=Z)
|
||||
If Z
|
||||
6->{C}
|
||||
|E06->{L1}
|
||||
Else
|
||||
5->{C}
|
||||
|E05->{L1}
|
||||
End
|
||||
Z->F
|
||||
End
|
||||
If X
|
||||
Archive L1
|
||||
End
|
||||
End
|
||||
GetCalc(L1,[Y3])
|
||||
Return
|
||||
Lbl RUN
|
||||
GetCalc("appv hold ",20)->S
|
||||
Fill(S,20,0)
|
||||
Copy(L1+1,S,10)
|
||||
A->{S+15}
|
||||
DiagnosticOn
|
||||
Fix 4
|
||||
Normal
|
||||
If D
|
||||
GetCalc("appvzRun",{[Y3]-2}^^r)->S
|
||||
Copy([Y3],S,{[Y3]-2}^^r)
|
||||
End
|
||||
2-SampZInt(|LRUNERR)
|
||||
If D
|
||||
Fpdf("appvzRun")
|
||||
Else
|
||||
Fpdf(L1)
|
||||
End
|
||||
2-SampTInt
|
||||
DelVar "appvzRun"
|
||||
GetCalc("appv hold ")->S
|
||||
Fill(L1,20,0)
|
||||
Copy(S,L1,10)
|
||||
{S+15}->A
|
||||
sub(DATA)
|
||||
DelVar "appv hold "
|
||||
DiagnosticOff
|
||||
Fix 5
|
||||
Full
|
||||
Repeat getKey=0
|
||||
End
|
||||
Goto DPRGM1
|
||||
Lbl RUNERR
|
||||
2-SampFTest ->S
|
||||
DelVar "appvzRun"
|
||||
DiagnosticOff
|
||||
Fix 5
|
||||
Full
|
||||
sub(D2,10,22,76,20,"Error")
|
||||
If S=8
|
||||
Text(12,31,"Syntax")
|
||||
Else
|
||||
Text(12,31,"Error "[23]"",S>Dec)
|
||||
End
|
||||
DispGraph
|
||||
Repeat (getKey) and (getKey(9))
|
||||
End
|
||||
GetCalc("appv hold ")->S
|
||||
Fill(L1,20,0)
|
||||
Copy(S,L1,10)
|
||||
{S+15}->A
|
||||
sub(DATA)
|
||||
DelVar "appv hold "
|
||||
DiagnosticOff
|
||||
Fix 5
|
||||
Full
|
||||
Repeat getKey=0
|
||||
End
|
||||
Goto DPRGM1
|
||||
Lbl DSET1
|
||||
21->B
|
||||
{[Y1]+5}->X
|
||||
{[Y1]}->Y
|
||||
{[Y1]+6}->Z
|
||||
Lbl DSET2
|
||||
ClrDraw
|
||||
sub(D1,0,0)
|
||||
RectI(0,11,96,1)
|
||||
Text(1,12,"by ClrDraw, Nov 2013, v 1")
|
||||
RectI(0,19,96,1)
|
||||
RectI(0,63,96,1)
|
||||
If X
|
||||
Text(1,21,"Show Hidden On")
|
||||
Else
|
||||
Text(1,21,"Show Hidden Off")
|
||||
End
|
||||
If Y
|
||||
Text(1,28,"Password On")
|
||||
Else
|
||||
Text(1,28,"Password Off")
|
||||
End
|
||||
If Z
|
||||
Text(1,35,"Lowercase On")
|
||||
Else
|
||||
Text(1,35,"Lowercase Off")
|
||||
End
|
||||
Text(1,42,"Uninstall AlphaCS")
|
||||
Lbl KSET
|
||||
RectI(0,B,96,7)
|
||||
DispGraph
|
||||
RectI(0,B,96,7)
|
||||
Repeat getKey
|
||||
End
|
||||
If (getKey(54)) or (getKey(9))
|
||||
If B=21
|
||||
If X
|
||||
0->X
|
||||
Else
|
||||
1->X
|
||||
End
|
||||
Goto DSET2
|
||||
End
|
||||
If B=28
|
||||
If Y
|
||||
0->Y
|
||||
Else
|
||||
1->Y
|
||||
End
|
||||
Goto DSET2
|
||||
End
|
||||
If B=35
|
||||
If Z
|
||||
0->Z
|
||||
Else
|
||||
1->Z
|
||||
End
|
||||
Goto DSET2
|
||||
End
|
||||
If B=42
|
||||
If sub(CODE)
|
||||
DelVar Str1
|
||||
Goto END
|
||||
Else
|
||||
Goto DSET2
|
||||
End
|
||||
End
|
||||
End
|
||||
If (getKey(4)) and (B!=21)
|
||||
For(7)
|
||||
RectI(0,B,96,7)
|
||||
DispGraph
|
||||
RectI(0,B,96,7)
|
||||
B--
|
||||
Normal
|
||||
Pause 3
|
||||
Full
|
||||
End
|
||||
End
|
||||
If (getKey(1)) and (B!=42)
|
||||
For(7)
|
||||
RectI(0,B,96,7)
|
||||
DispGraph
|
||||
RectI(0,B,96,7)
|
||||
B++
|
||||
Normal
|
||||
Pause 3
|
||||
Full
|
||||
End
|
||||
End
|
||||
If getKey(15)
|
||||
If ({[Y1]+5}!=X) or ({[Y1]}!=Y) or ({[Y1]+6}!=Z)
|
||||
UnArchive Str1
|
||||
GetCalc(Str1)->S
|
||||
X->{S+5}
|
||||
Y->{S}
|
||||
Z->{S+6}
|
||||
sub(D3)
|
||||
DispGraph
|
||||
Archive Str1
|
||||
GetCalc(Str1,[Y1])
|
||||
End
|
||||
Repeat getKey=0
|
||||
End
|
||||
Goto DLIST
|
||||
End
|
||||
Goto KSET
|
||||
138
samples/TI Program/srcsort.8xp.txt
Normal file
138
samples/TI Program/srcsort.8xp.txt
Normal file
@@ -0,0 +1,138 @@
|
||||
.SORT AlphaCS
|
||||
Lbl POLAR
|
||||
Fill(L1,50,0)
|
||||
{|E9830}^^r->[r2]
|
||||
Repeat (({[r2]}=5) or ({[r2]}=6)) and (({[r2]-7}>48) or (({[Y1]+5}) and ({[r2]-7}<28)))
|
||||
[r2]-{[r2]-6}-7->[r2]
|
||||
If [r2]<={|E982E}^^r
|
||||
Return0
|
||||
End
|
||||
End
|
||||
For([r3],1,{[r2]-6})
|
||||
{[r2]-6-[r3]}->{L1+[r3]-1}
|
||||
End
|
||||
[r2]-{[r2]-6}-7->[r2]
|
||||
Repeat 0
|
||||
If (({[r2]}=5) or ({[r2]}=6)) and (({[r2]-7}>48) or (({[Y1]+5}) and ({[r2]-7}<28)))
|
||||
Fill(L2,50,0)
|
||||
For([r3],1,{[r2]-6}
|
||||
{[r2]-6-[r3]}->{L2+[r3]-1
|
||||
End
|
||||
0->[r3]
|
||||
Repeat ({L1+[r3]}!={L2+[r3]}) or ([r3]=20)
|
||||
[r3]++
|
||||
End
|
||||
If (({L1+[r3]}>{L2+[r3]}) and ([r1]=1)) or (({L1+[r3]}<{L2+[r3]}) and ([r1]=0))
|
||||
Fill(L1,50,0)
|
||||
Copy(L2,L1,20)
|
||||
End
|
||||
Else
|
||||
If [r2]<{|E982E}^^r
|
||||
sub(DATA)
|
||||
Return1
|
||||
End
|
||||
End
|
||||
[r2]-{[r2]-6}-7->[r2]
|
||||
End
|
||||
Lbl ADJ
|
||||
Fill(L2,50,0)
|
||||
Copy(L1+1,L2,20)
|
||||
Fill(L1,50,0)
|
||||
Copy(L2,L1)
|
||||
Fill(L3,50,0)
|
||||
Copy(L1,L3,20)
|
||||
Fill(L1,50,0)
|
||||
{|E9830}^^r->[r2]
|
||||
sub(CHECK)
|
||||
Repeat (({[r2]}=5) or ({[r2]}=6)) and ([r4]) and (({[r2]-7}>48) or ({[r2]-7}<28))
|
||||
[r2]-{[r2]-6}-7->[r2]
|
||||
If [r2]<{|E982E}^^r
|
||||
Fill(L1,50,0)
|
||||
Copy(L3,L1,20)
|
||||
Fill(L3,50,0)
|
||||
sub(DATA)
|
||||
Return0
|
||||
End
|
||||
sub(CHECK)
|
||||
End
|
||||
For([r3],1,{[r2]-6})
|
||||
{[r2]-6-[r3]}->{L1+[r3]-1}
|
||||
End
|
||||
[r2]-{[r2]-6}-7->[r2]
|
||||
Repeat 0
|
||||
sub(CHECK)
|
||||
If (({[r2]}=5) or ({[r2]}=6)) and ([r4]) and (({[r2]-7}>48) or ({[r2]-7}<28))
|
||||
Fill(L2,50,0)
|
||||
For([r3],1,{[r2]-6}
|
||||
{[r2]-6-[r3]}->{L2+[r3]-1
|
||||
End
|
||||
0->[r3]
|
||||
Repeat ({L1+[r3]}!={L2+[r3]}) or ([r3]=20)
|
||||
[r3]++
|
||||
End
|
||||
If (({L1+[r3]}>{L2+[r3]}) and ([r1]=1)) or (({L1+[r3]}<{L2+[r3]}) and ([r1]=0))
|
||||
Fill(L1,50,0)
|
||||
Copy(L2,L1,20)
|
||||
End
|
||||
Else
|
||||
If [r2]<{|E982E}^^r
|
||||
sub(DATA)
|
||||
Return1
|
||||
End
|
||||
End
|
||||
[r2]-{[r2]-6}-7->[r2]
|
||||
End
|
||||
Lbl CHECK
|
||||
0->[r4]
|
||||
Repeat ({[r2]-7-[r4]}!={L3+[r4]}) or (([r4]>={[r2]-6}) and ({L3+[r4]}=0))
|
||||
[r4]++
|
||||
End
|
||||
If ((({[r2]-7-[r4]}<{L3+[r4]}) and ([r1]=1)) or (({[r2]-7-[r4]}>{L3+[r4]}) and ([r1]=0))) or (([r4]>={[r2]-6}) and ({L3+[r4]}=0))
|
||||
0->[r4]
|
||||
Else
|
||||
1->[r4]
|
||||
End
|
||||
Return
|
||||
Lbl DATA
|
||||
{|E9830}^^r->C
|
||||
Repeat 0
|
||||
Repeat ({C}=5) or ({C}=6) and (({[r1]-7}>48) or ({[r1]-7}<28))
|
||||
C-{C-6}-7->C
|
||||
End
|
||||
Fill(L2,50,0)
|
||||
For([r1],1,{C-6})
|
||||
{C-6-[r1]}->{L2+[r1]-1}
|
||||
End
|
||||
!If Equ>String(L1,L2)
|
||||
If {C-5}=0
|
||||
0->D
|
||||
Else
|
||||
1->D
|
||||
End
|
||||
If {C-7}<28
|
||||
1->E
|
||||
Else
|
||||
0->E
|
||||
End
|
||||
If {C}=6
|
||||
1->F
|
||||
Else
|
||||
0->F
|
||||
End
|
||||
Fill(L2,50,0)
|
||||
Copy(L1,L2,20)
|
||||
Fill(L1,50,0)
|
||||
Copy(L2,L1+1,20)
|
||||
If E
|
||||
{L2}+64->{L2}
|
||||
End
|
||||
If F
|
||||
|E06->{L1}
|
||||
Else
|
||||
|E05->{L1}
|
||||
End
|
||||
Return
|
||||
End
|
||||
C-{C-6}-7->C
|
||||
End
|
||||
Return
|
||||
93
script/add-grammar
Executable file
93
script/add-grammar
Executable file
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require "optparse"
|
||||
|
||||
ROOT = File.expand_path("../../", __FILE__)
|
||||
|
||||
|
||||
# Break a repository URL into its separate components
|
||||
def parse_url(input)
|
||||
hosts = "github\.com|bitbucket\.org|gitlab\.com"
|
||||
|
||||
# HTTPS/HTTP link pointing to recognised hosts
|
||||
if input =~ /^(?:https?:\/\/)?(?:[^.@]+@)?(?:www\.)?(#{hosts})\/([^\/]+)\/([^\/]+)/i
|
||||
{ host: $1.downcase(), user: $2, repo: $3.sub(/\.git$/, "") }
|
||||
# SSH
|
||||
elsif input =~ /^git@(#{hosts}):([^\/]+)\/([^\/]+)\.git$/i
|
||||
{ host: $1.downcase(), user: $2, repo: $3 }
|
||||
# provider:user/repo
|
||||
elsif input =~ /^(github|bitbucket|gitlab):\/?([^\/]+)\/([^\/]+)\/?$/i
|
||||
{ host: $1.downcase(), user: $2, repo: $3 }
|
||||
# user/repo - Common GitHub shorthand
|
||||
elsif input =~ /^\/?([^\/]+)\/([^\/]+)\/?$/
|
||||
{ host: "github.com", user: $1, repo: $2 }
|
||||
else
|
||||
raise "Unsupported URL: #{input}"
|
||||
end
|
||||
end
|
||||
|
||||
# Isolate the vendor-name component of a submodule path
|
||||
def parse_submodule(name)
|
||||
name =~ /^(?:.*(?:vendor\/)?grammars\/)?([^\/]+)/i
|
||||
path = "vendor/grammars/#{$1}"
|
||||
unless File.exist?("#{ROOT}/" + path)
|
||||
warn "Submodule '#{path}' does not exist. Aborting."
|
||||
exit 1
|
||||
end
|
||||
path
|
||||
end
|
||||
|
||||
# Print debugging feedback to STDOUT if running with --verbose
|
||||
def log(msg)
|
||||
puts msg if $verbose
|
||||
end
|
||||
|
||||
|
||||
usage = """Usage:
|
||||
#{$0} [-v|--verbose] [--replace grammar] url
|
||||
Examples:
|
||||
#{$0} https://github.com/Alhadis/language-roff
|
||||
#{$0} --replace sublime-apl https://github.com/Alhadis/language-apl
|
||||
"""
|
||||
|
||||
$replace = nil
|
||||
$verbose = false
|
||||
|
||||
OptionParser.new do |opts|
|
||||
opts.banner = usage
|
||||
opts.on("-v", "--verbose", "Print verbose feedback to STDOUT") do
|
||||
$verbose = true
|
||||
end
|
||||
opts.on("-rSUBMODULE", "--replace=SUBMODDULE", "Replace an existing grammar submodule.") do |name|
|
||||
$replace = name
|
||||
end
|
||||
end.parse!
|
||||
|
||||
|
||||
$url = ARGV[0]
|
||||
|
||||
# No URL? Print a usage message and bail.
|
||||
unless $url
|
||||
warn usage
|
||||
exit 1;
|
||||
end
|
||||
|
||||
# Ensure the given URL is an HTTPS link
|
||||
parts = parse_url $url
|
||||
https = "https://#{parts[:host]}/#{parts[:user]}/#{parts[:repo]}"
|
||||
repo_new = "vendor/grammars/#{parts[:repo]}"
|
||||
repo_old = parse_submodule($replace) if $replace
|
||||
|
||||
if repo_old
|
||||
log "Deregistering: #{repo_old}"
|
||||
`git submodule deinit #{repo_old}`
|
||||
`git rm -rf #{repo_old}`
|
||||
end
|
||||
|
||||
log "Registering new submodule: #{repo_new}"
|
||||
`git submodule add -f #{https} #{repo_new}`
|
||||
exit 1 if $?.exitstatus > 0
|
||||
`script/convert-grammars --add #{repo_new}`
|
||||
|
||||
log "Confirming license"
|
||||
`script/licensed --module "#{repo_new}"`
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
require "bundler/setup"
|
||||
require "licensed/cli"
|
||||
require "optparse"
|
||||
|
||||
module Licensed
|
||||
module Source
|
||||
@@ -32,7 +33,14 @@ module Licensed
|
||||
end
|
||||
end
|
||||
|
||||
source = Licensed::Source::Filesystem.new("vendor/grammars/*/", type: "grammar")
|
||||
module_path = nil
|
||||
OptionParser.new do |opts|
|
||||
opts.on("-mPATH", "--module=PATH", "Cache license file for specific grammar") do |p|
|
||||
module_path = p
|
||||
end
|
||||
end.parse!
|
||||
|
||||
source = Licensed::Source::Filesystem.new(module_path || "vendor/grammars/*/", type: "grammar")
|
||||
config = Licensed::Configuration.new
|
||||
config.sources << source
|
||||
|
||||
@@ -43,4 +51,5 @@ else
|
||||
end
|
||||
|
||||
command.run
|
||||
`git checkout -- vendor/licenses/grammar/` if module_path
|
||||
exit command.success?
|
||||
|
||||
@@ -29,7 +29,6 @@ class TestGrammars < Minitest::Test
|
||||
"9f0c0b0926a18f5038e455e8df60221125fc3111", # elixir-tmbundle
|
||||
"90af581219debd4e90ef041b46c294e8b4ae6d14", # mako-tmbundle
|
||||
"b9b24778619dce325b651f0d77cbc72e7ae0b0a3", # Julia.tmbundle
|
||||
"2d4f8807be850efd925751a8e1839cfc539985b0", # actionscript3-tmbundle
|
||||
"e06722add999e7428048abcc067cd85f1f7ca71c", # r.tmbundle
|
||||
"50b14a0e3f03d7ca754dac42ffb33302b5882b78", # smalltalk-tmbundle
|
||||
"eafbc4a2f283752858e6908907f3c0c90188785b", # gap-tmbundle
|
||||
|
||||
@@ -497,7 +497,8 @@ class TestLanguage < Minitest::Test
|
||||
|
||||
def test_no_unused_colours
|
||||
Language.all.each do |language|
|
||||
next unless language.type == :data || language.type == :prose
|
||||
next unless language.type == :data || language.type == :prose ||
|
||||
language.group.to_s != language.name
|
||||
assert !language.color, "Unused colour assigned to #{language.name}"
|
||||
end
|
||||
end
|
||||
|
||||
2
vendor/grammars/actionscript3-tmbundle
vendored
2
vendor/grammars/actionscript3-tmbundle
vendored
Submodule vendor/grammars/actionscript3-tmbundle updated: d24ad7dec9...bb76f18706
Reference in New Issue
Block a user