From 3c5bcb434c68a2c6c6d3a346b70ec35961627e8e Mon Sep 17 00:00:00 2001 From: Keith Rarick Date: Thu, 3 Sep 2015 10:27:28 -0700 Subject: [PATCH 001/114] Add Go dependencies to generated.rb and test_blob.rb --- lib/linguist/generated.rb | 9 +++++++++ test/test_blob.rb | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index f1fb2d19..cc64c824 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -56,6 +56,7 @@ module Linguist generated_net_specflow_feature_file? || composer_lock? || node_modules? || + go_vendor? || godeps? || generated_by_zephir? || minified_files? || @@ -280,6 +281,14 @@ module Linguist !!name.match(/node_modules\//) end + # Internal: Is the blob part of the Go vendor/ tree, + # not meant for humans in pull requests. + # + # Returns true or false. + def go_vendor? + !!name.match(/vendor\//) + end + # Internal: Is the blob part of Godeps/, # which are not meant for humans in pull requests. # diff --git a/test/test_blob.rb b/test/test_blob.rb index 1ba647b0..74cffc2b 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -245,6 +245,10 @@ class TestBlob < Minitest::Test assert sample_blob("node_modules/grunt/lib/grunt.js").generated? + # Go vendored dependencies + assert sample_blob("vendor/vendor.json").generated? + assert sample_blob("vendor/github.com/kr/s3/sign.go").generated? + # Godep saved dependencies assert sample_blob("Godeps/Godeps.json").generated? assert sample_blob("Godeps/_workspace/src/github.com/kr/s3/sign.go").generated? From d46530989c93e036721487dbfd16e9a9b8f1082c Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Thu, 18 Feb 2016 19:57:34 -0500 Subject: [PATCH 002/114] Only treat `.go` files in ^vendor/ as generated --- lib/linguist/generated.rb | 4 +++- test/fixtures/go/food_vendor/candy.go | 1 + test/test_blob.rb | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/go/food_vendor/candy.go diff --git a/lib/linguist/generated.rb b/lib/linguist/generated.rb index cc64c824..8c2c1bcd 100644 --- a/lib/linguist/generated.rb +++ b/lib/linguist/generated.rb @@ -286,7 +286,9 @@ module Linguist # # Returns true or false. def go_vendor? - !!name.match(/vendor\//) + return false unless extname == '.go' + + !!name.match(/\Avendor\//) end # Internal: Is the blob part of Godeps/, diff --git a/test/fixtures/go/food_vendor/candy.go b/test/fixtures/go/food_vendor/candy.go new file mode 100644 index 00000000..ce65385b --- /dev/null +++ b/test/fixtures/go/food_vendor/candy.go @@ -0,0 +1 @@ +// empty file for testing that paths with vendor in them don't get ingored diff --git a/test/test_blob.rb b/test/test_blob.rb index 74cffc2b..2e50853d 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -246,8 +246,9 @@ class TestBlob < Minitest::Test assert sample_blob("node_modules/grunt/lib/grunt.js").generated? # Go vendored dependencies - assert sample_blob("vendor/vendor.json").generated? + refute sample_blob("vendor/vendor.json").generated? assert sample_blob("vendor/github.com/kr/s3/sign.go").generated? + refute fixture_blob("go/food_vendor/candy.go").generated? # Godep saved dependencies assert sample_blob("Godeps/Godeps.json").generated? From 742faebd8bc52d14009caa0ac44ecf8fc1acafe5 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Mon, 29 Aug 2016 00:25:33 +1000 Subject: [PATCH 003/114] Add RPM Spec files to languages list --- .gitmodules | 3 +++ grammars.yml | 3 +++ lib/linguist/languages.yml | 9 +++++++ vendor/grammars/language-rpm-spec | 1 + vendor/licenses/grammar/language-rpm-spec.txt | 25 +++++++++++++++++++ 5 files changed, 41 insertions(+) create mode 160000 vendor/grammars/language-rpm-spec create mode 100644 vendor/licenses/grammar/language-rpm-spec.txt diff --git a/.gitmodules b/.gitmodules index f245c920..4d513637 100644 --- a/.gitmodules +++ b/.gitmodules @@ -785,3 +785,6 @@ url = https://github.com/austinwagner/sublime-sourcepawn [submodule "vendor/grammars/xquery"] path = vendor/grammars/xquery url = https://github.com/textmate/xquery.tmbundle +[submodule "vendor/grammars/language-rpm-spec"] + path = vendor/grammars/language-rpm-spec + url = https://github.com/waveclaw/language-rpm-spec diff --git a/grammars.yml b/grammars.yml index 72c5b422..1bb97490 100755 --- a/grammars.yml +++ b/grammars.yml @@ -398,6 +398,9 @@ vendor/grammars/language-roff: - source.pic - text.roff - text.runoff +vendor/grammars/language-rpm-spec: +- source.changelogs.rpm-spec +- source.rpm-spec vendor/grammars/language-shellscript: - source.shell - text.shell-session diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f8e97318..7c646105 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3195,6 +3195,15 @@ RMarkdown: - .rmd tm_scope: source.gfm +RPM Spec: + type: data + tm_scope: source.rpm-spec + extensions: + - .spec + aliases: + - specfile + ace_mode: text + RUNOFF: type: markup color: "#665a4e" diff --git a/vendor/grammars/language-rpm-spec b/vendor/grammars/language-rpm-spec new file mode 160000 index 00000000..549b4241 --- /dev/null +++ b/vendor/grammars/language-rpm-spec @@ -0,0 +1 @@ +Subproject commit 549b4241074bfb81557173377efb6681673648ac diff --git a/vendor/licenses/grammar/language-rpm-spec.txt b/vendor/licenses/grammar/language-rpm-spec.txt new file mode 100644 index 00000000..533fb6fa --- /dev/null +++ b/vendor/licenses/grammar/language-rpm-spec.txt @@ -0,0 +1,25 @@ +--- +type: grammar +name: language-rpm-spec +license: mit +--- +Copyright (c) 2015 Jeremiah Powell + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From ed718556122d62882346befb1ac9766b5220332a Mon Sep 17 00:00:00 2001 From: Alhadis Date: Mon, 29 Aug 2016 00:28:18 +1000 Subject: [PATCH 004/114] Add sample .spec files --- samples/RPM Spec/apache.spec | 673 +++++++++++++++++++++++++++ samples/RPM Spec/erlang-erlydtl.spec | 62 +++ samples/RPM Spec/manos.spec | 46 ++ 3 files changed, 781 insertions(+) create mode 100644 samples/RPM Spec/apache.spec create mode 100644 samples/RPM Spec/erlang-erlydtl.spec create mode 100644 samples/RPM Spec/manos.spec diff --git a/samples/RPM Spec/apache.spec b/samples/RPM Spec/apache.spec new file mode 100644 index 00000000..6e34ba98 --- /dev/null +++ b/samples/RPM Spec/apache.spec @@ -0,0 +1,673 @@ +%define _prefix /usr/local +%define _mandir /usr/local/man +%define _sysconfdir /etc + +%define apache_ver 1.3.42 +%define mod_ssl_ver 2.8.31 +%define mod_perl_ver 1.31 +%define libapreq_ver 1.34 + + +%define aname apache +%define pname httpd13 +%define contentdir %{_var}/www +%define suexec_caller apache + +Summary: The 1.x Apache webserver (with static mod_perl, mod_ssl) +Name: apache +Version: %{apache_ver} +Release: 4%{?dist} +License: Apache Software License 2.0 +URL: http://httpd.apache.org/ +Group: System Environment/Daemons + +Requires: initscripts >= 3.25 +Requires: openssl >= 0.9.6 + +BuildRequires: openssl-devel mm-devel krb5-devel pkgconfig +BuildRequires: perl-ExtUtils-MakeMaker perl-libwww-perl perl-HTML-Parser perl-ExtUtils-Embed +BuildRequires: gdbm-devel flex +Requires: /sbin/chkconfig /bin/mktemp /usr/sbin/useradd +Requires: findutils procps + +Provides: webserver +Provides: mod_perl = %{mod_perl_ver} +Provides: perl(mod_perl) = %{mod_perl_ver} +Provides: mod_ssl = %{mod_ssl_ver} +Provides: apache = %{apache_ver} + +Source0: http://httpd.apache.org/dist/apache_%{apache_ver}.tar.bz2 +Source1: http://www.modssl.org/source/mod_ssl-%{mod_ssl_ver}-%{apache_ver}.tar.gz +Source2: http://perl.apache.org/dist/mod_perl-%{mod_perl_ver}.tar.gz +Source3: httpd.init +Source4: apache.logrotate +Source5: SSL-Certificate-Creation +Source6: ftp://ftp.cpan.org/authors/id/J/JO/JOESUF/libapreq-%{libapreq_ver}.tar.gz + +Patch0: sslcfg.patch +Patch1: apache_1.3.39-config.patch +Patch3: apache_1.3.39-Makefile.patch +Patch5: apache_1.3.20-apachectl-init.patch +Patch11: mod_ssl-2.8.4-openssl.patch +Patch12: apache_1.3.42-db.patch +Patch13: apache-1.3.39-gcc44.patch +Patch14: mod_ssl-2.8.31-STACK.patch +Patch15: apache_1.3.39-ap_getline.patch +Patch16: mod_ssl-openssl-x86_64.patch +Patch17: mp1+perl5.14.diff +Patch18: apache_1.3.42-64bits.patch + + +%description +This package contains a powerful, full-featured, efficient, and +freely-available Web server based on work done by the Apache Software +Foundation. It is also the most popular Web server on the Internet. + +------------------------------------------------------------------------------ +This package is a custom release containing the httpd server (v%{apache_ver}) +bundled with: mod_perl v.%{mod_ssl_ver}, +and mod_ssl v%{mod_ssl_ver}, all BUILT-IN. +------------------------------------------------------------------------------ + + The Apache/Perl integration project brings together the full power +of the Perl programming language and the Apache HTTP server. + With mod_perl it is possible to write Apache modules entirely in Perl. +In addition, the persistent interpreter embedded in the server avoids the +overhead of starting an external interpreter and the penalty of Perl +start-up time. + Mod_SSL provides strong cryptography for the Apache 1.3 webserver +via the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security +(TLSv1) protocols by the help of the Open Source SSL/TLS toolkit OpenSSL. + + +%package devel +Group: Development/Libraries +Summary: Module development tools for apache-mod_ssl +Provides: eapi = %{mod_ssl_ver} +Requires: %{name} = %{version} +Provides: mod_perl-devel = %{mod_perl_ver} +Provides: mod_ssl-devel = %{mod_ssl_ver} +Provides: apache-devel = %{apache_ver} + +%description devel +The apache-devel package contains the APXS binary and other files +that you need to build Dynamic Shared Objects (DSOs) for Apache. +If you are installing the Apache Web server and you want to be able +to compile or develop additional modules for Apache, you need to install +this package. + + +%package manual +Group: Documentation +Summary: Documentation for the Apache Web server + +%description manual +The apache-manual package contains the complete manual and reference +guide for the Apache Web server. +It also contains the basic web content (icons, default welcome messages, +etc) provided with Apache's HTTPD distribution. + + +%prep +%setup -q -c -T -n %{name}-%{version} -a 0 +%setup -q -c -T -D -n %{name}-%{version} -a 1 +%setup -q -c -T -D -n %{name}-%{version} -a 2 +%setup -q -c -T -D -n %{name}-%{version} -a 6 + +pushd %{aname}_%{apache_ver} +%patch0 -p0 -b .sslcfg +%patch1 -p1 -b .config +%patch3 -p0 -b .make +%patch5 -p1 -b .apachectl-init +%ifarch x86_64 +%patch18 -p1 -b .apache-x86_64 +%endif + +#patch12 -p1 -b .dbmdb +%patch13 -p1 -b .compile +%patch15 -p0 -b .ap_getline + + +patch -p0 < ../libapreq-%{libapreq_ver}/patches/apache-1.3+apreq.patch +cp ../libapreq-%{libapreq_ver}/c/*.[ch] src/lib/apreq/ +popd + +pushd mod_ssl-%{mod_ssl_ver}-%{apache_ver} +%patch11 -p1 -b .openssl +%patch14 -p0 -b .stack +%ifarch x86_64 +%patch16 -p1 -b .openssl-x86_64 +%endif +popd + +pushd mod_perl-%{mod_perl_ver} +%patch17 -p1 -b .mp1+perl5.14.diff +popd + +# Substitute values to match the configuration. The first two are +# for the default httpd.conf file, the rest is for the mod_ssl +# additions. +pushd %{aname}_%{apache_ver} +sed -e 's,@@ServerRoot@@,%{_sysconfdir}/%{pname},g' \ + -e 's,@@ContentRoot@@,%{contentdir},g' \ + -e 's,^DocumentRoot "@@ContentRoot@@",#DocumentRoot "%{_sysconfdir}/%{pname}/htdocs",g' \ + -e 's,^,,g' \ + -e 's,^ServerName new.host.name,#ServerName new.host.name,g' \ + -e 's,^ServerAdmin you@your.address,#ServerAdmin you@your.address,g' \ + -e 's,^SSLCipherSuite,#SSLCipherSuite,g' \ + -e 's,^SSLLogLevel info,SSLLogLevel error,g' \ + -e 's,^SSLSessionCache dbm:logs/ssl_scache,SSLSessionCache shm:logs/ssl_scache(512000),g' \ + conf/httpd.conf-dist > conf/httpd.conf +popd + +cp %{SOURCE5} . + +#cp %{_tmppath}/rpm-tmp* /tmp/01prep.sh + +%build +export CFLAGS="$RPM_OPT_FLAGS -fPIC $(pkg-config --cflags openssl)" +export LIBS="-lpthread" +export EAPI_MM=SYSTEM + +############################################### +echo mod_perl ... +pushd mod_perl-%{mod_perl_ver} + perl Makefile.PL CCFLAGS="$RPM_OPT_FLAGS -fPIC" \ + APACHE_SRC=../%{aname}_%{apache_ver}/src \ + DO_HTTPD=1 USE_APACI=1 PREP_HTTPD=1 EVERYTHING=1 + make %{?_smp_mflags} + ## put mod_perl docs in a safe place ;-]~ + mkdir mod_perl-doc + cp -a eg/ faq/ mod_perl-doc/ + cp {CREDITS,LICENSE,README,SUPPORT,STATUS,Changes,INSTALL*} mod_perl-doc/ + cp *.{pod,html,gif} mod_perl-doc/ + find mod_perl-doc -type f -exec chmod 644 {} \; +popd + +############################################### +echo mod_ssl ... +export SSL_COMPAT=yes +export SSL_EXPERIMENTAL=yes +pushd mod_ssl-%{mod_ssl_ver}-%{apache_ver} + ./configure --with-apache=../apache_%{apache_ver} \ + --with-mm=SYSTEM --force +popd + +############################################### +echo apache ... +pushd %{aname}_%{apache_ver} + ./configure \ + --prefix=%{_prefix} \ + --exec-prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --sbindir=%{_sbindir} \ + --mandir=%{_mandir} \ + --sysconfdir=%{_sysconfdir}/%{pname}/conf \ + --libexecdir=%{_libdir}/apache \ + --datadir=%{contentdir} \ + --iconsdir=%{contentdir}/icons \ + --htdocsdir=%{contentdir}/html \ + --manualdir=%{contentdir}/html/manual \ + --cgidir=%{contentdir}/cgi-bin \ + --localstatedir=%{_localstatedir} \ + --runtimedir=%{_sysconfdir}/%{pname}/run \ + --logfiledir=logs \ + --proxycachedir=%{_localstatedir}/cache/%{pname} \ + --with-perl=%{__perl} \ + --enable-rule=EAPI \ + --enable-rule=SSL_COMPAT \ + --enable-rule=SSL_EXPERIMENTAL \ + --disable-rule=SSL_VENDOR \ + --disable-rule=WANTHSREGEX \ + --disable-rule=EXPAT \ + %{?_with_backtrace:--activate-module=src/modules/experimental/mod_backtrace.c} \ + %{?_with_whatkilledus:--activate-module=src/modules/experimental/mod_whatkilledus.c} \ + --activate-module=src/modules/perl/libperl.a \ + --enable-module=auth_dbm \ + --enable-module=ssl \ + --enable-module=all \ + --enable-shared=max \ + --disable-shared=perl \ + --disable-shared=ssl \ + --disable-module=example \ + --disable-module=auth_db \ + --without-execstrip \ + %{?_with_suexec:--enable-suexec --suexec-docroot=%{contentdir}} \ + %{?_with_suexec:--suexec-uidmin=300 --suexec-gidmin=300} \ + %{?_with_suexec:--suexec-umask=022 --suexec-caller=%{suexec_caller}} + + make %{?_smp_mflags} + +popd +#cp %{_tmppath}/rpm-tmp* /tmp/02build.sh + +%install +############################################################################### +### install basic apache stuff +pushd apache_%{apache_ver} + make install root="$RPM_BUILD_ROOT" +popd + +### rename +mv $RPM_BUILD_ROOT%{_sbindir}/httpd $RPM_BUILD_ROOT%{_sbindir}/%{pname} + +### install SYSV init stuff +mkdir -p $RPM_BUILD_ROOT%{_initrddir} +install -m755 %{SOURCE3} $RPM_BUILD_ROOT%{_initrddir}/%{pname} + +### install log rotation stuff +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d +install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/apache + +### default rootdir links +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/%{pname} +pushd $RPM_BUILD_ROOT%{_sysconfdir}/%{pname} + ln -s %{_localstatedir}/log/%{pname} logs + ln -s %{_libdir}/%{aname} modules + ln -s %{_localstatedir}/run run +popd + +### replace Apache's default config file with our patched version +install -m644 apache_%{apache_ver}/conf/httpd.conf \ + $RPM_BUILD_ROOT%{_sysconfdir}/%{pname}/conf/httpd.conf + +# fix up apxs so that it doesn't think it's in the build root +perl -pi -e "s^$RPM_BUILD_ROOT^^g" $RPM_BUILD_ROOT%{_sbindir}/apxs + +# fixup the documentation file naming +find $RPM_BUILD_ROOT%{contentdir} -name "*.html.html" | xargs rename .html.html .html + +############################################################################### +### install mod_perl files +pushd mod_perl-%{mod_perl_ver} + export PERL_INSTALL_ROOT=$RPM_BUILD_ROOT + make pure_install PREFIX=/usr INSTALLDIRS=vendor + + # convert man pages to UTF-8 + recode() { + iconv -f "$2" -t utf-8 < "$1" > "${1}_" + %{__mv} -f "${1}_" "$1" + } + pushd $RPM_BUILD_ROOT/usr/share/man/man3/ + for i in * ; do + recode "${i}" iso-8859-1 + done + popd + + # fix files mod + find $RPM_BUILD_ROOT%{perl_vendorarch} -iname '*.pm' -exec chmod 0644 {} \; + + # bake web docs... + mkdir -p $RPM_BUILD_ROOT%{contentdir}/html/manual/mod/mod_perl + install -c -m 644 htdocs/manual/mod/mod_perl.html \ + $RPM_BUILD_ROOT%{contentdir}/html/manual/mod/mod_perl/ + make -C faq + rm -f faq/pod2htm* + install -m644 faq/*.html \ + $RPM_BUILD_ROOT%{contentdir}/html/manual/mod/mod_perl/ + +popd + +# remove special perl files this is specific for rpms , already have in own .packlist +find $RPM_BUILD_ROOT%{perl_vendorarch}/.. -name perllocal.pod -o -name .packlist \ + -o -name '*.bs' | xargs -r -i rm -f {} + +### ssl leftovers +# point to the right makefile. +ln -sf ../../../etc/pki/tls/certs/Makefile $RPM_BUILD_ROOT%{_sysconfdir}/%{pname}/conf +# create a prototype session cache +touch $RPM_BUILD_ROOT%{_localstatedir}/cache/ssl_gcache_data.{dir,pag,sem} + +# drop shellbang from .exp files +for exp in $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Apache/mod_perl.exp $RPM_BUILD_ROOT%{_libdir}/%{aname}/httpd.exp +do + sed -i '/^#!/ d' $exp +done + +#cp %{_tmppath}/rpm-tmp* /tmp/03install.sh + +%post +/sbin/chkconfig --add %{pname} +/sbin/ldconfig + +# safely build a test certificate +umask 077 +if [ ! -f %{_sysconfdir}/%{pname}/conf/ssl.key/server.key ] ; then +openssl genrsa -rand /proc/apm:/proc/cpuinfo:/proc/dma:/proc/filesystems:/proc/interrupts:/proc/ioports:/proc/pci:/proc/rtc:/proc/uptime 1024 > %{_sysconfdir}/%{pname}/conf/ssl.key/server.key 2> /dev/null +fi + +if [ ! -f %{_sysconfdir}/%{pname}/conf/ssl.crt/server.crt ] ; then +cat << EOF | openssl req -new -key %{_sysconfdir}/%{pname}/conf/ssl.key/server.key -x509 -days 365 -out %{_sysconfdir}/%{pname}/conf/ssl.crt/server.crt 2>/dev/null +-- +SomeState +SomeCity +SomeOrganization +SomeOrganizationalUnit +localhost.localdomain +root@localhost.localdomain +EOF +fi + +# safely add .htm to mime types if it is not already there +[ -f %{_sysconfdir}/mime.types ] || exit 0 +TEMPTYPES=`/bin/mktemp /tmp/mimetypes.XXXXXX` +[ -z "$TEMPTYPES" ] && { + echo "could not make temporary file, htm not added to %{_sysconfdir}/mime.types" >&2 + exit 1 +} +( grep -v "^text/html" %{_sysconfdir}/mime.types + types=$(grep "^text/html" %{_sysconfdir}/mime.types | cut -f2-) + echo -en "text/html\t\t\t" + for val in $types ; do + if [ "$val" = "htm" ] ; then + continue + fi + echo -n "$val " + done + echo "htm" +) > $TEMPTYPES +cat $TEMPTYPES > %{_sysconfdir}/mime.types && /bin/rm -f $TEMPTYPES + +cp %{_tmppath}/rpm-tmp* /tmp/04post.sh + +%pre +# Add the "apache" user +/usr/sbin/useradd -c "Apache" -u 48 \ + -s /sbin/nologin -r -d "%{contentdir}" apache 2> /dev/null || : + +%preun +if [ $1 = 0 ]; then + if [ -f /var/lock/subsys/%{pname} ]; then + %{_initrddir}/%{pname} stop + fi + if [ -f %{_initrddir}/%{pname} ]; then + /sbin/chkconfig --del %{pname} + fi +fi + +%files +%defattr(-,root,root) +%dir %{_sysconfdir}/%{pname} +%dir %{_sysconfdir}/%{pname}/conf +%config(noreplace) %{_sysconfdir}/%{pname}/conf/*.conf +%config(noreplace) %{_sysconfdir}/%{pname}/conf/Makefile +%config(noreplace) %{_sysconfdir}/%{pname}/conf/magic +%config(noreplace) %{_sysconfdir}/%{pname}/conf/mime.types +%config(noreplace) %{_sysconfdir}/logrotate.d/* +%config(noreplace) %{_sysconfdir}/%{pname}/conf/ssl.* +%doc %{_sysconfdir}/%{pname}/conf/*.default +%attr(755,root,root) %{_initrddir}/* +%{_sysconfdir}/%{pname}/logs +%{_sysconfdir}/%{pname}/modules +%{_sysconfdir}/%{pname}/run +%{_libdir}/%{aname} +%{perl_vendorarch}/Apache +%{perl_vendorarch}/Bundle +%{perl_vendorarch}/*.pm +%{perl_vendorarch}/*.PL +%dir %{perl_vendorarch}/auto/Apache +%{perl_vendorarch}/auto/Apache/Leak +%{perl_vendorarch}/auto/Apache/Symbol +%{perl_vendorarch}/auto/Apache/mod_perl.exp +%{perl_vendorarch}/auto/Apache/typemap +%attr(0755,root,root) %{_bindir}/* +%attr(0755,root,root) %{_sbindir}/ab +%attr(0755,root,root) %{_sbindir}/apachectl +%attr(0755,root,root) %{_sbindir}/httpd13 +%attr(0755,root,root) %{_sbindir}/logresolve +%attr(0755,root,root) %{_sbindir}/rotatelogs +%{?_with_suexec:%attr(4710,root,%{suexec_caller}) %{_sbindir}/suexec} +%{_mandir}/man1*/* +%{_mandir}/man8/ab.8* +%{_mandir}/man8/apachectl.8* +%{_mandir}/man8/httpd.8* +%{_mandir}/man8/logresolve.8* +%{_mandir}/man8/rotatelogs.8* +%{?_with_suexec:%{_mandir}/man8/suexec.8*} +%attr(0755,apache,root) %dir %{_localstatedir}/cache/%{pname} +%attr(0640,apache,root) %{_localstatedir}/cache/ssl_* +%attr(0750,root,apache) %dir %{_localstatedir}/log/%{pname} + + +%files devel +%defattr(-,root,root) +%{_includedir} +%attr(0755,root,root) %{_sbindir}/apxs +%{_mandir}/man8/apxs.8* +%doc %{perl_vendorarch}/*.pod +%{perl_vendorarch}/auto/Apache/include + +%files manual +%defattr(-,root,root) +%doc apache_%{apache_ver}/cgi-bin +%dir %{contentdir} +%dir %{contentdir}/cgi-bin +%config(noreplace) %{contentdir}/cgi-bin/* +%dir %{contentdir}/html +%config(noreplace) %{contentdir}/html/*.html* +%config(noreplace) %{contentdir}/html/*.gif +%dir %{contentdir}/icons +%dir %{contentdir}/icons/small +%config(noreplace) %{contentdir}/icons/*.* +%config(noreplace) %{contentdir}/icons/small/*.* +%doc %{contentdir}/icons/README + +%doc apache_%{apache_ver}/{ABOUT_APACHE,LICENSE*,NOTICE,README*,cgi-bin} +%doc apache_%{apache_ver}/src/{CHANGES,README}* +%doc mod_ssl-%{mod_ssl_ver}-%{apache_ver}/README.* +%doc mod_ssl-%{mod_ssl_ver}-%{apache_ver}/NEWS +%doc mod_perl-%{mod_perl_ver}/mod_perl-doc +%doc SSL-Certificate-Creation + +%doc %{contentdir}/html/manual +%exclude %{contentdir}/html/manual/mod/mod_ssl/ssl_cover.wml +#man3 conflicts with mod_perl2 +/usr/share/man/man3*/* + + +%changelog +* Sun May 13 2012 Sérgio Basto - 1.3.42-4 +- Many improvements on defaults directories +- Separate libapreq in other package, to compile libapreq is need other sources installed. +- more cleanups. + +* Wed Nov 16 2011 Sérgio Basto +- build for F16 +- mp1+perl5.14.diff (mod_perl1 + perl5.14) +- many improvents. + +* Sat Oct 29 2011 Sérgio Basto +- mock build add many buildrequires +- many improvemts on confs + +* Tue Oct 16 2007 Sérgio Basto +- UNDROPPED CONFIGURATION COMPLETELY: rpm it suposed do all alone. +- rename httpd to http13 to work independently of apache 2.2 +- add patch to Makefile.tmp, resolve all problems at once +- change server port number to run out of the box. +- Update link to certs/Makefile. + +* Tue Sep 11 2007 Marius FERARU - 1.3.39-1.n0i.23.MPSSL +- apache 1.3.39 +- mod_ssl 2.8.29 + +* Mon Apr 02 2007 Marius FERARU - 1.3.37-3.n0i.22.MPSSL +- mod_perl 1.30 +- initscript: use a "$pidfile" variable for all operations +- initscript: added a dummy "alias" for "reload" (will do a 'restart'!) +- initscript: added missing "fullstatus" option (will run through "apachectl") +- dropped shellbang from .exp files +- dropped 2 explicit provides (mod_perl and Apache::Constants) + +* Fri Sep 08 2006 Marius FERARU - 1.3.37-2.n0i.21.MPSSL +- BR: gdbm-devel, db4-devel + +* Mon Aug 21 2006 Marius FERARU - 1.3.37-1.n0i.20.MPSSL +- apache 1.3.37 +- mod_ssl 2.8.28 +- Dist macro +- URL update +- updated description +- spec cleanups +- use "--with backtrace" to activate "mod_backtrace" +- use "--with whatkilledus" to activate "mod_whatkilledus" +- use "--with suexec" to activate suexec functionality +- moved default web content into documentation package + +* Tue Jun 06 2006 Marius FERARU - 1.3.36-2.n0i.19.MPSSL +- changed "runtimedir" and "logfiledir" to relative paths, + letting users run apache on their own + +* Tue Jun 06 2006 Marius FERARU - 1.3.36-1.n0i.19.MPSSL +- apache 1.3.36 +- mod_ssl version 2.8.27 +- spec cleanups + +* Mon Mar 13 2006 Marius FERARU - 1.3.34-2.n0i.18.MPSSL +- rebuild + +* Thu Nov 24 2005 Marius FERARU 1.3.34-1.n0i.17.MPSSL +- apache 1.3.34 +- mod_ssl version 2.8.25 + +* Tue Sep 20 2005 Marius FERARU 1.3.33-5.n0i.16.MPSSL +- mod_ssl version 2.8.24 + +* Fri Sep 02 2005 Marius FERARU 1.3.33-4.n0i.15.MPSSL +- rebuild +- dropped more requirements (which Fedora considers to "always have") + +* Sat Jul 23 2005 Marius FERARU 1.3.33-3.n0i.14.MPSSL +- dropped Epoch +- changed Summary and Description +- rebuild (perl 5.8.7) + +* Tue Jan 04 2005 Marius FERARU 1.3.33-2.n0i.13.MPSSL +- libapreq version 1.33 + +* Mon Dec 06 2004 Marius FERARU 1.3.33-1.n0i.12.MPSSL +- apache version 1.3.33 +- mod_ssl version 2.8.22 +- description update + +* Tue Aug 17 2004 Marius FERARU 1.3.31-5.n0i.11.MPSSL +- mod_ssl version 2.8.19 + +* Thu Jul 15 2004 Marius FERARU 1.3.31-4.n0i.10.MPSSL +- mod_ssl version 2.8.18 + +* Tue Jul 13 2004 Marius FERARU 1.3.31-3.n0i.9.MPSSL +- tweaked rotatelog's build: drop linking with apache libs + +* Tue Jul 13 2004 Marius FERARU 1.3.31-2.n0i.8.MPSSL +- applied some fixing patches from current CVS version + +* Thu May 13 2004 Marius FERARU 1.3.31-1.n0i.7.MPSSL +- apache version 1.3.31 +- mod_ssl version 2.8.17 +- updated apxs patch +- slight spec tweaks +- enabled backtrace experimental module +- updated config patch + +* Fri Apr 30 2004 Marius Feraru 1.3.29-6.n0i.6.MPSSL +- automatic rebuild + +* Thu Apr 22 2004 Marius FERARU 1.3.29-5.n0i.5.MPSSL +- rebuild (perl 5.8.4) + +* Tue Feb 10 2004 Marius FERARU 1.3.29-4.n0i.4.MPSSL +- fixed the shameful bugs from my httpd.init script + +* Fri Jan 23 2004 Marius FERARU 1.3.29-3.n0i.3.MPSSL +- rebuild (perl 5.8.3) + +* Fri Jan 16 2004 Marius FERARU 1.3.29-2.n0i.2.MPSSL +- rebuilt on perl 5.8.2 / Fedora 1 Devel (tobe FC2) +- finally clearly enabled modperl.c in apache_1.3.23-config.patch +as many helpless people seem to use this dumb default configuration file :( +- also updated the same patch to properly define SSL too :) +- added a lame "MPSSL" extra tag in release to make people understand this +is a !SPECIAL! apache + mod_perl + mod_ssl + libapreq package suite!!! +- updated init script to do "real" server shutdown (in squid style) and to NOT +shutdown all the apache servers, just the one started with /var/run/httpd.pid +- added USE_MODULEARGS=[yes/no] and SHUTDOWN_TIMEOUT=[seconds] configuration +parameters to init script + +* Thu Nov 13 2003 Marius FERARU 1.3.29-1.n0i.1 +- apache 1.3.29 +- modssl 2.8.16 +- dropped zombie patch +- dropped fderr patch +- dropped for good thttpd conflict note as THERE IS NO CONFLICT!!! In fact +we really use them both for long time without a problem :)) +- added more Prereq stuff +- more Fedora style spec updates + +* Thu Oct 16 2003 Marius FERARU 1.3.28-2.n0i +- mod_perl 1.29 +- libapreq 1.3 +- replaced ALL direct 'etc' occurences to macros (some for other stuff) +- perl %%files are now more properly quested. +- switched krb5-config to pkg-config +- switched textutils to coreutils +- using mm 1.3 +- disabled internal expat linking +- added the 'zombie' patch +- added the 'file descriptors are erroneously closed' patch + +* Mon Jul 28 2003 Marius FERARU 1.3.28-1.n0i +- mod_perl 1.28 +- added builtin libapreq + +* Fri Jul 25 2003 Marius FERARU 1.3.28-0.n0i +- apache version 1.3.28 +- mod_ssl version 2.8.15 +- switched the old dbm-gdbm patch with a more elegant one (apache_1.3.27-db); +yet, more tests are to be done on other systems before dropping the old one +from our src.rpm +- disabled suexec SSL env support patch as Apache ppl changed their code heavily +and I do not yet have time to update this patch +- moved mod_perl header files into apache-devel (are they needed by someone?!) +- dropped using RPM_SOURCE_DIR/ stuff. +- disabled auth_db module (db4 API changes?!) + +* Mon Apr 21 2003 Marius FERARU 1.3.27-2.n0i +- automatic rebuild on RHL9 + +* Wed Mar 26 2003 Marius FERARU 1.3.27-1.n0i +- mod_ssl version 2.8.14 +- dropped thttpd conflict note as THERE IS NO CONFLICT!!! In fact we really +use them both :)) + +* Fri Oct 18 2002 Marius Feraru +- apache version 1.3.27 +- mod_ssl version 2.8.11 +- eliminated db4 patch +- disabled thttpd conflict flag + +* Tue Sep 24 2002 Marius Feraru +- automatic rebuild (to conform with the openssl update) + +* Wed Sep 4 2002 Marius Feraru +- some spec cleanups (rpm 4.1.x compatibility) + +* Tue Jul 23 2002 Marius FERARU +- apache 1.3.26 +- mod_perl 1.27 +- mod_ssl 2.8.10 +- lots of new tweaks to the spec file (hopefully it will be easier now for others to +rebuild this package =] ) + + +* Sat Sep 1 2001 Marius FERARU +- updated apache to 1.3.22 +- reparsed and tweaked all RedHat patches +- lots of spec file tweaks: optimisations, + file location/integration/modes fixes... + +* Sat Sep 1 2001 Marius FERARU +- updated mod_perl to version 1.26 +- based on apache-1.3.20-15.src.rpm from Red Hat RawHide +- used apache_modperl-1.3.19-1.24-1.src.rpm from + perl.apache.org as example spec. diff --git a/samples/RPM Spec/erlang-erlydtl.spec b/samples/RPM Spec/erlang-erlydtl.spec new file mode 100644 index 00000000..eea3fb2b --- /dev/null +++ b/samples/RPM Spec/erlang-erlydtl.spec @@ -0,0 +1,62 @@ +%global debug_package %{nil} + +Name: erlang-erlydtl +Version: 0.6.0 +Release: 1%{?dist} +Summary: Erlang implementation of the Django Template Language. + +Group: Development/Libraries +License: MIT +URL: http://code.google.com/p/erlydtl/ +Source0: http://erlydtl.googlecode.com/files/erlydtl-0.6.0.tar.gz +Patch0: erlang-erlydtl-0.6.0-tests.patch +Patch1: erlang-erlydtl-0.6.0-r14a.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +Provides: ErlyDTL = %{version}-%{release} +BuildRequires: erlang +Requires: erlang + +%description +ErlyDTL is an Erlang implementation of the Django Template Language. The +erlydtl module compiles Django Template source code into Erlang bytecode. The +compiled template has a "render" function that takes a list of variables and +returns a fully rendered document + +%prep +%setup -q -n erlydtl-%{version} +find examples/ -type f -executable -exec chmod -x {} \; + +%patch0 -p0 +%patch1 -p0 + +%build +make %{?_smp_mflags} + +%check +make test + + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}/%{_libdir}/erlang/lib/erlydtl-%{version}/ +cp -r ebin %{buildroot}/%{_libdir}/erlang/lib/erlydtl-%{version}/ +cp -r bin %{buildroot}/%{_libdir}/erlang/lib/erlydtl-%{version}/ +cp -r priv %{buildroot}/%{_libdir}/erlang/lib/erlydtl-%{version}/ + + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%dir %{_libdir}/erlang/lib/erlydtl-%{version} +%{_libdir}/erlang/lib/erlydtl-%{version}/* +%doc README +%doc examples + + +%changelog +* Sun Aug 1 2010 Ilia Cheishvili - 0.6.0-1 +- Initial Package diff --git a/samples/RPM Spec/manos.spec b/samples/RPM Spec/manos.spec new file mode 100644 index 00000000..5674d3ce --- /dev/null +++ b/samples/RPM Spec/manos.spec @@ -0,0 +1,46 @@ +# +# spec file for package manos +# +# Copyright (c) 2010 Jackson Harper (jackson@novell.com) +# +# + +Name: manos-devel +Version: 0.1.1 +Release: 1 +License: MIT/X11 +BuildRoot: %{_tmppath}/manos-%{version}-build +BuildRequires: mono-devel >= 2.6 +BuildRequires: mono-nunit >= 2.6 +Source0: manos-%{version}.tar.bz2 +Source1: rpmlintrc +Summary: The Manos Web Application Framework +Group: Development/Web/Servers +BuildArch: noarch + +%description +Manos is an easy to use, easy to test, high performance web application framework that stays out of your way and makes your life ridiculously simple. + +%files +%defattr(-, root, root) +%{_prefix}/lib/manos +%{_bindir}/manos +%{_datadir}/manos +%{_prefix}/lib/pkgconfig/manos.pc +%{_datadir}/man/man1/manos.1.gz + +%prep +%setup -q -n manos-%{version} + + +%build +./configure --prefix=%{buildroot}%{_prefix} --install-prefix=%{_prefix} +make + +%install +make install + +%clean +rm -rf %{buildroot} + +%changelog \ No newline at end of file From f95365946c3f25cf236e9d96fdf2bb54dbdd29d7 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Mon, 29 Aug 2016 01:43:44 +1000 Subject: [PATCH 005/114] Separate CSON from CoffeeScript --- lib/linguist/languages.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f8e97318..ad13c8f9 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -526,6 +526,15 @@ COLLADA: tm_scope: text.xml ace_mode: xml +CSON: + type: data + group: CoffeeScript + tm_scope: source.coffee + ace_mode: coffee + searchable: false + extensions: + - .cson + CSS: type: markup tm_scope: source.css @@ -648,7 +657,6 @@ CoffeeScript: - ._coffee - .cake - .cjsx - - .cson - .iced filenames: - Cakefile From 48b64c2d31831ff1039fd5e190b8162aa2473c5c Mon Sep 17 00:00:00 2001 From: Alhadis Date: Mon, 29 Aug 2016 01:57:32 +1000 Subject: [PATCH 006/114] Add CSON samples --- samples/CSON/base.cson | 72 +++++++++++++++++++++ samples/CSON/config.cson | 59 +++++++++++++++++ samples/CSON/ff-sfd.cson | 108 +++++++++++++++++++++++++++++++ samples/CSON/wercker-status.cson | 11 ++++ 4 files changed, 250 insertions(+) create mode 100644 samples/CSON/base.cson create mode 100644 samples/CSON/config.cson create mode 100644 samples/CSON/ff-sfd.cson create mode 100644 samples/CSON/wercker-status.cson diff --git a/samples/CSON/base.cson b/samples/CSON/base.cson new file mode 100644 index 00000000..d9941643 --- /dev/null +++ b/samples/CSON/base.cson @@ -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!' diff --git a/samples/CSON/config.cson b/samples/CSON/config.cson new file mode 100644 index 00000000..5b0415b2 --- /dev/null +++ b/samples/CSON/config.cson @@ -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"] + ] diff --git a/samples/CSON/ff-sfd.cson b/samples/CSON/ff-sfd.cson new file mode 100644 index 00000000..409d5caa --- /dev/null +++ b/samples/CSON/ff-sfd.cson @@ -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" + diff --git a/samples/CSON/wercker-status.cson b/samples/CSON/wercker-status.cson new file mode 100644 index 00000000..f4572b7a --- /dev/null +++ b/samples/CSON/wercker-status.cson @@ -0,0 +1,11 @@ +'menu': [ + { + 'label': 'Packages' + 'submenu': [ + 'label': 'Wercker Status' + 'submenu': [ + { 'label': 'Check now!', 'command': 'wercker-status:checknow' } + ] + ] + } +] From 00647be11339df96198b6003b946386cb438bd0a Mon Sep 17 00:00:00 2001 From: Adrian Sieber Date: Wed, 31 Aug 2016 14:56:07 +0000 Subject: [PATCH 007/114] Exclude "dist" directory from language statistics --- lib/linguist/vendor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 6b8c7364..5f9d6bcc 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -15,6 +15,9 @@ # Dependencies - ^[Dd]ependencies/ +# Distributions +- (^|/)dist/ + # C deps # https://github.com/joyent/node - ^deps/ From 50bd2cc3c8e8f391168aedb0e88eeeee997deba8 Mon Sep 17 00:00:00 2001 From: Shaun Akhtar Date: Wed, 31 Aug 2016 12:56:02 -0400 Subject: [PATCH 008/114] Add support for Schematron XML validation files (.sch) Update languages.yml and add three public domain sample documents. --- lib/linguist/languages.yml | 1 + samples/XML/HITSP_C32.sch | 207 +++++++++++++++++++++++++++++++ samples/XML/namespace-strict.sch | 84 +++++++++++++ samples/XML/oasis-table.sch | 151 ++++++++++++++++++++++ 4 files changed, 443 insertions(+) create mode 100644 samples/XML/HITSP_C32.sch create mode 100644 samples/XML/namespace-strict.sch create mode 100644 samples/XML/oasis-table.sch diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f8e97318..18977873 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4139,6 +4139,7 @@ XML: - .rdf - .resx - .rss + - .sch - .scxml - .sfproj - .srdf diff --git a/samples/XML/HITSP_C32.sch b/samples/XML/HITSP_C32.sch new file mode 100644 index 00000000..62750fdd --- /dev/null +++ b/samples/XML/HITSP_C32.sch @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + +]> + + + HITSP_C32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &ent-2.16.840.1.113883.3.88.11.32.1; + + + + + &ent-2.16.840.1.113883.3.88.11.32.2; + + + + + &ent-2.16.840.1.113883.3.88.11.32.3; + + + + + &ent-2.16.840.1.113883.3.88.11.32.4; + + + + + &ent-2.16.840.1.113883.3.88.11.32.5; + + + + + &ent-2.16.840.1.113883.3.88.11.32.6; + + + + + &ent-2.16.840.1.113883.3.88.11.32.7; + + + + + &ent-2.16.840.1.113883.3.88.11.32.8; + + + + + &ent-2.16.840.1.113883.3.88.11.32.9; + + + + + &ent-2.16.840.1.113883.3.88.11.32.10; + + + + + &ent-2.16.840.1.113883.3.88.11.32.11; + + + + + &ent-2.16.840.1.113883.3.88.11.32.12; + + + + + &ent-2.16.840.1.113883.3.88.11.32.13; + + + + + &ent-2.16.840.1.113883.3.88.11.32.14; + + + + + &ent-2.16.840.1.113883.3.88.11.32.15; + + + + + &ent-2.16.840.1.113883.3.88.11.32.16; + + + + + &ent-2.16.840.1.113883.3.88.11.32.17; + + diff --git a/samples/XML/namespace-strict.sch b/samples/XML/namespace-strict.sch new file mode 100644 index 00000000..f55a5143 --- /dev/null +++ b/samples/XML/namespace-strict.sch @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + > + + + + + + + + + + + + + Unrecognized namespace prefix: + + + + Unrecognized namespace URI: + + + + + + Prefix + assigned incorrectly: + + + + + + + Namespace may not be declared here. + + + Namespace may not be undeclared here. + + + + + + + + + + \ No newline at end of file diff --git a/samples/XML/oasis-table.sch b/samples/XML/oasis-table.sch new file mode 100644 index 00000000..c947aeb2 --- /dev/null +++ b/samples/XML/oasis-table.sch @@ -0,0 +1,151 @@ + + + + + + + + + OASIS/CALS table validation + + + + + + + + + + + + + + + + tgroup/@cols is not given + @cols should be a natural number + (integer greater than zero). + The tgroup has + colspec, + but its @cols is given as ''. + tgroup/@cols is given as + , but all rows have entr. + + Without assigning @char or @charoff to everything, + assigning @align='char' to tgroup only aligns contents to right of center. + + + + + Malformed @colwidth. + @colwidth unit + () is not consistent with the + units on other colspecs. + + @colwidth must be positive + The same unit of measure should be used on every + colspec/@colwidth. + + @colnum + '' does not correspond to + the column's actual number () + The same @colname is assigned to more than + one colspec. + @align='char', but no @char is given. + @char is given, but alignment is not 'char'. + @charoff is given, but alignment is not 'char'. + + + + + + + + The row doesn't have enough entries ( + expected; + given). + + + + + No colspec is + named . + Entry's end + column () must follow its start column + (). + No colspec is + named . + No colspec is + named . + Entry is assigned an end + column () but not a start column. + Entry is assigned to column , + so it can't start at column . + + + + Entry must be assigned to a free column (after its preceding entries). + + + This entry doesn't fit into + its . + + + A row in which this entry appears has too many entries. + + + + Entry does not fit in row. ( are allowed; entry + is in column .) + + + + @char is given, but alignment is not 'char'. + @charoff is given, but alignment is not 'char'. + @charoff must be a whole number between 0 and 100. + + Entry is designated for character alignment, but no character (@char) is given on it or its colspec. + + + Entry is assigned an alignment character () + different from its column's (). + With @align='char', markup of + entry contents () will be ignored. + + + \ No newline at end of file From f382abc2f30a9cd53a6ba59b2fe47b27363c46dd Mon Sep 17 00:00:00 2001 From: Alhadis Date: Wed, 7 Sep 2016 03:14:49 +1000 Subject: [PATCH 009/114] Add logic to consume and parse options --- script/add-grammar | 85 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100755 script/add-grammar diff --git a/script/add-grammar b/script/add-grammar new file mode 100755 index 00000000..11bb1889 --- /dev/null +++ b/script/add-grammar @@ -0,0 +1,85 @@ +#!/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 + +usage = """Usage: + #{$0} [--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]}" +path = "vendor/grammars/#{parts[:repo]}" +repl = parse_submodule($replace) if $replace + +if $verbose + puts "Adding grammar" + puts "\tFrom: #{https}" + puts "\tInto: #{path}" + puts "\tReplacing: #{repl}" if repl + puts "\nRegistering submodule..." +end + +#`git submodule add #{https} #{path}` From 4584963dd209e510b74f5d0f86924b0805c3d3f9 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Wed, 7 Sep 2016 04:25:00 +1000 Subject: [PATCH 010/114] Add logic to update submodules and licenses --- script/add-grammar | 34 +++++++++++++++++++++------------- script/licensed | 11 ++++++++++- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/script/add-grammar b/script/add-grammar index 11bb1889..584b9cdf 100755 --- a/script/add-grammar +++ b/script/add-grammar @@ -37,6 +37,13 @@ def parse_submodule(name) path end +# Print debugging feedback to STDOUT if running with --verbose +def log(msg) + puts msg if $verbose +end + + + usage = """Usage: #{$0} [--replace grammar] url Examples: @@ -44,7 +51,6 @@ Examples: #{$0} --replace sublime-apl https://github.com/Alhadis/language-apl """ - $replace = nil $verbose = false @@ -67,19 +73,21 @@ unless $url exit 1; end - # Ensure the given URL is an HTTPS link -parts = parse_url $url -https = "https://#{parts[:host]}/#{parts[:user]}/#{parts[:repo]}" -path = "vendor/grammars/#{parts[:repo]}" -repl = parse_submodule($replace) if $replace +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 $verbose - puts "Adding grammar" - puts "\tFrom: #{https}" - puts "\tInto: #{path}" - puts "\tReplacing: #{repl}" if repl - puts "\nRegistering submodule..." +if repo_old + log "Deregistering: #{repo_old}" + `git submodule deinit #{repo_old}` + `git rm -rf #{repo_old}` end -#`git submodule add #{https} #{path}` +log "Registering new submodule: #{repo_new}" +`git submodule add -f #{https} #{repo_new}` +`script/convert-grammars --add #{repo_new}` + +log "Confirming license" +`script/licensed --module "#{repo_new}"` diff --git a/script/licensed b/script/licensed index ea3f538f..68214d34 100755 --- a/script/licensed +++ b/script/licensed @@ -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? From 68c45be47da1205df5a52840265cb58c92e35bef Mon Sep 17 00:00:00 2001 From: Alhadis Date: Wed, 7 Sep 2016 04:37:04 +1000 Subject: [PATCH 011/114] Flatten whitespace --- script/add-grammar | 75 +++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/script/add-grammar b/script/add-grammar index 584b9cdf..779dd62b 100755 --- a/script/add-grammar +++ b/script/add-grammar @@ -7,43 +7,42 @@ 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 + 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 + 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 + puts msg if $verbose end - usage = """Usage: #{$0} [--replace grammar] url Examples: @@ -55,13 +54,13 @@ $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 + 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! @@ -69,8 +68,8 @@ $url = ARGV[0] # No URL? Print a usage message and bail. unless $url - warn usage - exit 1; + warn usage + exit 1; end # Ensure the given URL is an HTTPS link @@ -80,9 +79,9 @@ 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}` + log "Deregistering: #{repo_old}" + `git submodule deinit #{repo_old}` + `git rm -rf #{repo_old}` end log "Registering new submodule: #{repo_new}" From be316c29434b62c79aa989174986948ad02394fb Mon Sep 17 00:00:00 2001 From: Alhadis Date: Wed, 7 Sep 2016 05:36:00 +1000 Subject: [PATCH 012/114] Update contributor notes to mention new script --- CONTRIBUTING.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ec00ae14..c3059d98 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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,17 +28,14 @@ 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]. -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. 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. 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! @@ -81,9 +78,9 @@ Here's our current build status: [![Build Status](https://api.travis-ci.org/gith Linguist is maintained with :heart: by: -- @arfon (GitHub Staff) -- @larsbrinkhoff -- @pchaigno +- **@arfon** (GitHub Staff) +- **@larsbrinkhoff** +- **@pchaigno** As Linguist is a production dependency for GitHub we have a couple of workflow restrictions: @@ -112,5 +109,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 From 3112e6dedad51f921d8fe822c57dbd153ae5f0b7 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Tue, 6 Sep 2016 16:20:58 +1000 Subject: [PATCH 013/114] Normalise .gitmodules formatting --- .gitmodules | 6 +-- grammars.yml | 106 +++++++++++++++++++++++++-------------------------- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/.gitmodules b/.gitmodules index ea5847d7..326a2a06 100644 --- a/.gitmodules +++ b/.gitmodules @@ -559,7 +559,7 @@ url = https://github.com/ShaneWilton/sublime-smali [submodule "vendor/grammars/language-jsoniq"] path = vendor/grammars/language-jsoniq - url = http://github.com/wcandillon/language-jsoniq + url = https://github.com/wcandillon/language-jsoniq [submodule "vendor/grammars/atom-fsharp"] path = vendor/grammars/atom-fsharp url = https://github.com/fsprojects/atom-fsharp @@ -669,8 +669,8 @@ path = vendor/grammars/pig-latin url = https://github.com/goblindegook/sublime-text-pig-latin [submodule "vendor/grammars/sourcepawn"] -path = vendor/grammars/sourcepawn -url = https://github.com/austinwagner/sublime-sourcepawn + path = vendor/grammars/sourcepawn + url = https://github.com/austinwagner/sublime-sourcepawn [submodule "vendor/grammars/gdscript"] path = vendor/grammars/gdscript url = https://github.com/beefsack/GDScript-sublime diff --git a/grammars.yml b/grammars.yml index 916e3156..caa14213 100755 --- a/grammars.yml +++ b/grammars.yml @@ -8,9 +8,9 @@ vendor/grammars/Agda.tmbundle: - source.agda vendor/grammars/Alloy.tmbundle: - source.alloy -vendor/grammars/AutoHotkey/: +vendor/grammars/AutoHotkey: - source.ahk -vendor/grammars/BrightScript.tmbundle/: +vendor/grammars/BrightScript.tmbundle: - source.brightauthorproject - source.brightscript vendor/grammars/ColdFusion: @@ -20,13 +20,13 @@ vendor/grammars/ColdFusion: - text.html.cfm vendor/grammars/Docker.tmbundle: - source.dockerfile -vendor/grammars/Elm/: +vendor/grammars/Elm: - source.elm - text.html.mediawiki.elm-build-output - text.html.mediawiki.elm-documentation vendor/grammars/FreeMarker.tmbundle: - text.html.ftl -vendor/grammars/G-Code/: +vendor/grammars/G-Code: - source.LS - source.MCPOST - source.MOD @@ -39,7 +39,7 @@ vendor/grammars/IDL-Syntax: vendor/grammars/Isabelle.tmbundle: - source.isabelle.root - source.isabelle.theory -vendor/grammars/JSyntax/: +vendor/grammars/JSyntax: - source.j vendor/grammars/Julia.tmbundle: - source.julia @@ -50,7 +50,7 @@ vendor/grammars/LiveScript.tmbundle: vendor/grammars/MagicPython: - source.python - source.regexp.python -vendor/grammars/Modelica/: +vendor/grammars/Modelica: - source.modelica vendor/grammars/NSIS: - source.nsis @@ -60,7 +60,7 @@ vendor/grammars/NimLime: - source.nimcfg vendor/grammars/PHP-Twig.tmbundle: - text.html.twig -vendor/grammars/PogoScript.tmbundle/: +vendor/grammars/PogoScript.tmbundle: - source.pogoscript vendor/grammars/RDoc.tmbundle: - text.rdoc @@ -75,10 +75,10 @@ vendor/grammars/Scalate.tmbundle: - text.html.ssp vendor/grammars/Slash.tmbundle: - text.html.slash -vendor/grammars/Stata.tmbundle/: +vendor/grammars/Stata.tmbundle: - source.mata - source.stata -vendor/grammars/Stylus/: +vendor/grammars/Stylus: - source.stylus vendor/grammars/Sublime-Coq: - source.coq @@ -88,7 +88,7 @@ vendor/grammars/Sublime-Lasso: - file.lasso vendor/grammars/Sublime-Loom: - source.loomscript -vendor/grammars/Sublime-Modula-2/: +vendor/grammars/Sublime-Modula-2: - source.modula2 vendor/grammars/Sublime-Nit: - source.nit @@ -107,22 +107,22 @@ vendor/grammars/Sublime-VimL: - source.viml vendor/grammars/SublimeBrainfuck: - source.bf -vendor/grammars/SublimeClarion/: +vendor/grammars/SublimeClarion: - source.clarion -vendor/grammars/SublimeGDB/: +vendor/grammars/SublimeGDB: - source.disasm - source.gdb - source.gdb.session - source.gdbregs -vendor/grammars/SublimePapyrus/: +vendor/grammars/SublimePapyrus: - source.papyrus.skyrim -vendor/grammars/SublimePuppet/: +vendor/grammars/SublimePuppet: - source.puppet vendor/grammars/SublimeXtend: - source.xtend vendor/grammars/TLA: - source.tla -vendor/grammars/TXL/: +vendor/grammars/TXL: - source.txl vendor/grammars/Textmate-Gosu-Bundle: - source.gosu.2 @@ -151,20 +151,20 @@ vendor/grammars/antlr.tmbundle: vendor/grammars/apache.tmbundle: - source.apache-config - source.apache-config.mod_perl -vendor/grammars/api-blueprint-sublime-plugin/: +vendor/grammars/api-blueprint-sublime-plugin: - text.html.markdown.source.gfm.apib - text.html.markdown.source.gfm.mson vendor/grammars/applescript.tmbundle: - source.applescript -vendor/grammars/asciidoc.tmbundle/: +vendor/grammars/asciidoc.tmbundle: - text.html.asciidoc vendor/grammars/asp.tmbundle: - source.asp - text.html.asp -vendor/grammars/assembly/: +vendor/grammars/assembly: - objdump.x86asm - source.x86asm -vendor/grammars/atom-fsharp/: +vendor/grammars/atom-fsharp: - source.fsharp - source.fsharp.fsi - source.fsharp.fsl @@ -174,16 +174,16 @@ vendor/grammars/atom-language-1c-bsl: - source.sdbl vendor/grammars/atom-language-clean: - source.clean -vendor/grammars/atom-language-purescript/: +vendor/grammars/atom-language-purescript: - source.purescript vendor/grammars/atom-language-srt: - text.srt -vendor/grammars/atom-language-stan/: +vendor/grammars/atom-language-stan: - source.stan vendor/grammars/atom-salt: - source.python.salt - source.yaml.salt -vendor/grammars/atomic-dreams/: +vendor/grammars/atomic-dreams: - source.dm - source.dmf vendor/grammars/ats: @@ -194,7 +194,7 @@ vendor/grammars/bison.tmbundle: - source.bison vendor/grammars/blitzmax: - source.blitzmax -vendor/grammars/boo/: +vendor/grammars/boo: - source.boo vendor/grammars/bro-sublime: - source.bro @@ -219,7 +219,7 @@ vendor/grammars/cool-tmbundle: vendor/grammars/cpp-qt.tmbundle: - source.c++.qt - source.qmake -vendor/grammars/creole/: +vendor/grammars/creole: - text.html.creole vendor/grammars/css.tmbundle: - source.css @@ -245,7 +245,7 @@ vendor/grammars/dylan.tmbundle: - source.makegen vendor/grammars/ebundles/Bundles/MSDOS batch file.tmbundle: - source.dosbatch -vendor/grammars/ec.tmbundle/: +vendor/grammars/ec.tmbundle: - source.c.ec vendor/grammars/eiffel.tmbundle: - source.eiffel @@ -270,9 +270,9 @@ vendor/grammars/forth: vendor/grammars/fortran.tmbundle: - source.fortran - source.fortran.modern -vendor/grammars/gap-tmbundle/: +vendor/grammars/gap-tmbundle: - source.gap -vendor/grammars/gdscript/: +vendor/grammars/gdscript: - source.gdscript vendor/grammars/gettext.tmbundle: - source.po @@ -300,7 +300,7 @@ vendor/grammars/idl.tmbundle: - source.idl - source.idl-dlm - text.idl-idldoc -vendor/grammars/idris/: +vendor/grammars/idris: - source.idris vendor/grammars/ini.tmbundle: - source.ini @@ -332,12 +332,12 @@ vendor/grammars/language-apl: - source.apl vendor/grammars/language-asn1: - source.asn -vendor/grammars/language-babel/: +vendor/grammars/language-babel: - source.js.jsx - source.regexp.babel -vendor/grammars/language-blade/: +vendor/grammars/language-blade: - text.html.php.blade -vendor/grammars/language-click/: +vendor/grammars/language-click: - source.click vendor/grammars/language-clojure: - source.clojure @@ -379,10 +379,10 @@ vendor/grammars/language-javascript: - source.js - source.js.regexp - source.js.regexp.replacement -vendor/grammars/language-jsoniq/: +vendor/grammars/language-jsoniq: - source.jq - source.xq -vendor/grammars/language-less/: +vendor/grammars/language-less: - source.css.less vendor/grammars/language-maxscript: - source.maxscript @@ -418,7 +418,7 @@ vendor/grammars/language-xbase: - source.harbour vendor/grammars/language-yaml: - source.yaml -vendor/grammars/language-yang/: +vendor/grammars/language-yang: - source.yang vendor/grammars/latex.tmbundle: - text.bibtex @@ -452,11 +452,11 @@ vendor/grammars/matlab.tmbundle: - source.octave vendor/grammars/maven.tmbundle: - text.xml.pom -vendor/grammars/mediawiki.tmbundle/: +vendor/grammars/mediawiki.tmbundle: - text.html.mediawiki vendor/grammars/mercury-tmlanguage: - source.mercury -vendor/grammars/monkey/: +vendor/grammars/monkey: - source.monkey vendor/grammars/moonscript-tmbundle: - source.moonscript @@ -490,9 +490,9 @@ vendor/grammars/parrot: - source.parrot.pir vendor/grammars/pascal.tmbundle: - source.pascal -vendor/grammars/pawn-sublime-language/: +vendor/grammars/pawn-sublime-language: - source.pawn -vendor/grammars/perl.tmbundle/: +vendor/grammars/perl.tmbundle: - source.perl - source.perl.6 vendor/grammars/perl6fe: @@ -503,7 +503,7 @@ vendor/grammars/php-smarty.tmbundle: - text.html.smarty vendor/grammars/php.tmbundle: - text.html.php -vendor/grammars/pig-latin/: +vendor/grammars/pig-latin: - source.pig_latin vendor/grammars/pike-textmate: - source.pike @@ -542,11 +542,11 @@ vendor/grammars/scilab.tmbundle: - source.scilab vendor/grammars/secondlife-lsl: - source.lsl -vendor/grammars/smali-sublime/smali.tmLanguage: +vendor/grammars/smali-sublime: - source.smali vendor/grammars/smalltalk-tmbundle: - source.smalltalk -vendor/grammars/sourcepawn/: +vendor/grammars/sourcepawn: - source.sp vendor/grammars/sql.tmbundle: - source.sql @@ -557,9 +557,9 @@ vendor/grammars/standard-ml.tmbundle: - source.ml vendor/grammars/sublime-MuPAD: - source.mupad -vendor/grammars/sublime-aspectj/: +vendor/grammars/sublime-aspectj: - source.aspectj -vendor/grammars/sublime-autoit/: +vendor/grammars/sublime-autoit: - source.autoit vendor/grammars/sublime-befunge: - source.befunge @@ -567,12 +567,12 @@ vendor/grammars/sublime-bsv: - source.bsv vendor/grammars/sublime-cirru: - source.cirru -vendor/grammars/sublime-clips/: +vendor/grammars/sublime-clips: - source.clips vendor/grammars/sublime-glsl: - source.essl - source.glsl -vendor/grammars/sublime-golo/: +vendor/grammars/sublime-golo: - source.golo vendor/grammars/sublime-mask: - source.mask @@ -581,27 +581,27 @@ vendor/grammars/sublime-netlinx: - source.netlinx.erb vendor/grammars/sublime-nginx: - source.nginx -vendor/grammars/sublime-opal/: +vendor/grammars/sublime-opal: - source.opal - source.opalsysdefs vendor/grammars/sublime-pony: - source.pony -vendor/grammars/sublime-rexx/: +vendor/grammars/sublime-rexx: - source.rexx vendor/grammars/sublime-robot-plugin: - text.robot vendor/grammars/sublime-rust: - source.rust -vendor/grammars/sublime-spintools/: +vendor/grammars/sublime-spintools: - source.regexp.spin - source.spin vendor/grammars/sublime-tea: - source.tea vendor/grammars/sublime-terra: - source.terra -vendor/grammars/sublime-text-ox/: +vendor/grammars/sublime-text-ox: - source.ox -vendor/grammars/sublime-typescript/: +vendor/grammars/sublime-typescript: - source.ts - source.tsx - text.error-list @@ -613,9 +613,9 @@ vendor/grammars/sublime_cobol: - source.cobol - source.jcl - source.opencobol -vendor/grammars/sublimeassembly/: +vendor/grammars/sublimeassembly: - source.assembly -vendor/grammars/sublimeprolog/: +vendor/grammars/sublimeprolog: - source.prolog - source.prolog.eclipse vendor/grammars/sublimetext-cuda-cpp: @@ -638,7 +638,7 @@ vendor/grammars/vhdl: - source.vhdl vendor/grammars/vue-syntax-highlight: - text.html.vue -vendor/grammars/xc.tmbundle/: +vendor/grammars/xc.tmbundle: - source.xc vendor/grammars/xml.tmbundle: - text.xml From 1ec84da2775965e942b05e1b2528e30871edaccd Mon Sep 17 00:00:00 2001 From: Alhadis Date: Tue, 6 Sep 2016 16:41:37 +1000 Subject: [PATCH 014/114] Remove dangling submodules --- vendor/grammars/Sublime-Inform/.gitignore | 2 - .../Inform7/book.sublime-snippet | 6 - .../Inform7/chapter.sublime-snippet | 6 - .../Inform7/door.sublime-snippet | 7 - .../Inform7/inform7.JSON-tmLanguage | 34 -- .../Sublime-Inform/Inform7/inform7.tmLanguage | 74 --- .../Inform7/object.sublime-snippet | 8 - .../Inform7/part.sublime-snippet | 6 - .../Inform7/room.sublime-snippet | 7 - .../Inform7/scene.sublime-snippet | 11 - .../Inform7/section.sublime-snippet | 6 - .../Inform7/volume.sublime-snippet | 6 - vendor/grammars/Sublime-Inform/LICENSE.txt | 21 - vendor/grammars/Sublime-Inform/README.md | 8 - .../Commands/Save to CSS.tmCommand | 47 -- .../Commands/Save to Minified CSS.tmCommand | 47 -- .../Insert inline Image.tmDragCommand | 38 -- .../Preferences/Comment.tmPreferences | 36 -- vendor/grammars/less.tmbundle/README.md | 25 - .../less.tmbundle/Syntaxes/LESS.tmLanguage | 434 ------------------ vendor/grammars/less.tmbundle/info.plist | 26 -- vendor/licenses/grammar/Sublime-Inform.txt | 26 -- vendor/licenses/grammar/less.tmbundle.txt | 14 - 23 files changed, 895 deletions(-) delete mode 100644 vendor/grammars/Sublime-Inform/.gitignore delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage delete mode 100755 vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet delete mode 100644 vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet delete mode 100644 vendor/grammars/Sublime-Inform/LICENSE.txt delete mode 100644 vendor/grammars/Sublime-Inform/README.md delete mode 100644 vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand delete mode 100644 vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand delete mode 100644 vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand delete mode 100644 vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences delete mode 100644 vendor/grammars/less.tmbundle/README.md delete mode 100644 vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage delete mode 100644 vendor/grammars/less.tmbundle/info.plist delete mode 100644 vendor/licenses/grammar/Sublime-Inform.txt delete mode 100644 vendor/licenses/grammar/less.tmbundle.txt diff --git a/vendor/grammars/Sublime-Inform/.gitignore b/vendor/grammars/Sublime-Inform/.gitignore deleted file mode 100644 index 9bea4330..00000000 --- a/vendor/grammars/Sublime-Inform/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ - -.DS_Store diff --git a/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet deleted file mode 100644 index d00b609b..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/book.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - book - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet deleted file mode 100644 index 344ae92d..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/chapter.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - chapter - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet deleted file mode 100644 index 9504585b..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/door.sublime-snippet +++ /dev/null @@ -1,7 +0,0 @@ - - - door - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage b/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage deleted file mode 100644 index e5b6e92b..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/inform7.JSON-tmLanguage +++ /dev/null @@ -1,34 +0,0 @@ -{ "name": "Inform7", - "scopeName": "source.Inform7", - "fileTypes": ["i7x"], - "patterns": [ - { "name": "keyword.control.Inform7", - "match": "\\b(Include|Release)\\b" - }, - { "name" : "comment.block.Inform7", - "begin" : "\\[", - "end" : "\\]", - "comment" : "All comments in Inform7 are delimited this way." - }, - { "name" : "string.quoted.double.Inform7", - "begin" : "\"", - "end" : "\"", - "patterns": [ - { "name" : "keyword.operator.Inform7", - "begin" : "\\[", - "end" : "\\]", - "comment" : "For logic inside of strings." - } - ] - }, - { "name" : "storage.type.Inform7", - "match" : "(Volume|Book|Chapter|Part|Section|Table)\\s+\\d?\\s+-?\\s+((?:\\w|\\s|-)*)", - "comment": "Matches headings for major sections in Inform7" - }, - { "name": "constant.numeric.Inform7", - "match": "([0-9])+", - "comment":"Gotta call out the numbers!" - } - ], - "uuid": "0c4cbdee-beb7-4ea6-af56-27246d479373" -} \ No newline at end of file diff --git a/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage b/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage deleted file mode 100755 index 5609885e..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/inform7.tmLanguage +++ /dev/null @@ -1,74 +0,0 @@ - - - - - fileTypes - - i7x - inform - ni - - name - Inform7 - patterns - - - match - \b(Include|Release)\b - name - keyword.control.Inform7 - - - begin - \[ - comment - All comments in Inform7 are delimited this way. - end - \] - name - comment.block.Inform7 - - - begin - " - end - " - name - string.quoted.double.Inform7 - patterns - - - begin - \[ - comment - For logic inside of strings. - end - \] - name - keyword.operator.Inform7 - - - - - comment - Matches headings for major sections in Inform7 - match - (Volume|Book|Chapter|Part|Section|Table)\s+\d?\s+-?\s+((?:\w|\s|-)*) - name - storage.type.Inform7 - - - comment - Gotta call out the numbers! - match - ([0-9])+ - name - constant.numeric.Inform7 - - - scopeName - source.Inform7 - uuid - 0c4cbdee-beb7-4ea6-af56-27246d479373 - - diff --git a/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet deleted file mode 100644 index 65f040af..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/object.sublime-snippet +++ /dev/null @@ -1,8 +0,0 @@ - - - object - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet deleted file mode 100644 index 9e161cca..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/part.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - part - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet deleted file mode 100644 index b6abef45..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/room.sublime-snippet +++ /dev/null @@ -1,7 +0,0 @@ - - - room - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet deleted file mode 100644 index fd4be030..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/scene.sublime-snippet +++ /dev/null @@ -1,11 +0,0 @@ - - - scene - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet deleted file mode 100644 index 7ab043cb..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/section.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - section - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet b/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet deleted file mode 100644 index 0721fcbf..00000000 --- a/vendor/grammars/Sublime-Inform/Inform7/volume.sublime-snippet +++ /dev/null @@ -1,6 +0,0 @@ - - - volume - source.Inform7 - diff --git a/vendor/grammars/Sublime-Inform/LICENSE.txt b/vendor/grammars/Sublime-Inform/LICENSE.txt deleted file mode 100644 index cda6f052..00000000 --- a/vendor/grammars/Sublime-Inform/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Nate Dickson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/grammars/Sublime-Inform/README.md b/vendor/grammars/Sublime-Inform/README.md deleted file mode 100644 index 3b907f1e..00000000 --- a/vendor/grammars/Sublime-Inform/README.md +++ /dev/null @@ -1,8 +0,0 @@ -#Inform7 Package for Sublime Text 2 -This package has a lot of little files that make Inform7 easier to edit in Sublime Text 2. that's why it's called what it is, you see. -##Usage -Grab the zip file, unzip it, and put it in your ```Packages``` Directory. -That's pretty much it. Open an ```i7x``` file in Sublime Text 2 and it'll be all highlighted and there's a bunch of snippets you can use and all that. - -##Want to submit a pull request for this readme file? -Please, please do. \ No newline at end of file diff --git a/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand b/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand deleted file mode 100644 index 9f8e7561..00000000 --- a/vendor/grammars/less.tmbundle/Commands/Save to CSS.tmCommand +++ /dev/null @@ -1,47 +0,0 @@ - - - - - beforeRunningCommand - saveActiveFile - command - #!/usr/bin/env ruby18 - -file = ENV["TM_FILEPATH"] -target = file.sub(/\.less$/, ".css") -system("lessc \"#{file}\" \"#{target}\"") -puts "Compiled CSS to '#{target}'" - input - document - inputFormat - text - keyEquivalent - @b - name - Save to CSS - outputCaret - afterOutput - outputFormat - text - outputLocation - toolTip - requiredCommands - - - command - lessc - locations - - /opt/local/bin/lessc - /usr/local/bin/lessc - - - - scope - source.css.less - uuid - 78788223-5E5E-434E-98BE-17BCDF600611 - version - 2 - - diff --git a/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand b/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand deleted file mode 100644 index fc8fe21f..00000000 --- a/vendor/grammars/less.tmbundle/Commands/Save to Minified CSS.tmCommand +++ /dev/null @@ -1,47 +0,0 @@ - - - - - beforeRunningCommand - saveActiveFile - command - #!/usr/bin/env ruby18 - -file = ENV["TM_FILEPATH"] -target = file.sub(/\.less$/, ".css") -system("lessc -x \"#{file}\" \"#{target}\"") -puts "Compiled Minified CSS to '#{target}'" - input - document - inputFormat - text - keyEquivalent - ~@b - name - Save to Minified CSS - outputCaret - afterOutput - outputFormat - text - outputLocation - toolTip - requiredCommands - - - command - lessc - locations - - /opt/local/bin/lessc - /usr/local/bin/lessc - - - - scope - source.css.less - uuid - 448D3A8D-260E-4949-BA33-654886ECDCAF - version - 2 - - diff --git a/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand b/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand deleted file mode 100644 index 21ce88f4..00000000 --- a/vendor/grammars/less.tmbundle/DragCommands/Insert inline Image.tmDragCommand +++ /dev/null @@ -1,38 +0,0 @@ - - - - - beforeRunningCommand - nop - command - #!/usr/bin/env php -<?php -$path = getenv('TM_DROPPED_FILE'); -$path_parts = pathinfo($path); -$info = getimagesize($path); -list($width, $height) = $info; -$mime = $info['mime']; -$contents = base64_encode(file_get_contents($path)); - -echo "@gfx-{$path_parts['filename']}: \"data:{$mime};base64,{$contents}\";\n"; -echo "@gfx-{$path_parts['filename']}-width: {$width}px;\n"; -echo "@gfx-{$path_parts['filename']}-height: {$height}px;"; - draggedFileExtensions - - png - jpeg - jpg - gif - - input - selection - name - Insert inline Image - output - insertAsSnippet - scope - source.css.less - uuid - 7B0CA307-CC1C-4EE2-9F63-4825800ACDA7 - - diff --git a/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences b/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences deleted file mode 100644 index 1d8bf1fe..00000000 --- a/vendor/grammars/less.tmbundle/Preferences/Comment.tmPreferences +++ /dev/null @@ -1,36 +0,0 @@ - - - - - name - Comments - scope - source.css.less - settings - - shellVariables - - - name - TM_COMMENT_START - value - // - - - name - TM_COMMENT_START_2 - value - /* - - - name - TM_COMMENT_END_2 - value - */ - - - - uuid - D0CC551B-751D-4A7C-A738-2513E3C7F285 - - diff --git a/vendor/grammars/less.tmbundle/README.md b/vendor/grammars/less.tmbundle/README.md deleted file mode 100644 index ed6ac672..00000000 --- a/vendor/grammars/less.tmbundle/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Installation - -You can install this bundle in TextMate by opening the preferences and going to the bundles tab. After installation it will be automatically updated for you. - -# License (MIT) - -Copyright (c) 2010 Scott Kyle and Rasmus Andersson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage b/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage deleted file mode 100644 index ac6ff8ba..00000000 --- a/vendor/grammars/less.tmbundle/Syntaxes/LESS.tmLanguage +++ /dev/null @@ -1,434 +0,0 @@ - - - - - comment - LeSS - fileTypes - - less - - foldingStartMarker - /\*\*(?!\*)|\{\s*($|/\*(?!.*?\*/.*\S)) - foldingStopMarker - (?<!\*)\*\*/|^\s*\} - keyEquivalent - ^~L - name - LESS - patterns - - - match - \b(a|abbr|acronym|address|applet|article|area|audio|video|b|base|big|blockquote|body|br|button|caption|canvas|center|cite|code|col|colgroup|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figure|figcaption|form|frame|frameset|(h[1-6])|head|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|meta|menu|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|q|ruby|s|samp|script|select|small|span|strike|strong|style|sub|sup|summary|svg|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|ul|var|header|section|footer|aside|hgroup|time)\b - name - keyword.control.html.elements - - - begin - " - beginCaptures - - 0 - - name - punctuation.definition.string.begin.css - - - end - " - endCaptures - - 0 - - name - punctuation.definition.string.end.css - - - name - string.quoted.double.css - patterns - - - match - \\. - name - constant.character.escaped.css - - - - - begin - ' - beginCaptures - - 0 - - name - punctuation.definition.string.begin.css - - - end - ' - endCaptures - - 0 - - name - punctuation.definition.string.end.css - - - name - string.quoted.single.css - patterns - - - match - \\. - name - constant.character.escaped.css - - - - - captures - - 1 - - name - entity.other.attribute-name.class.css - - - match - (\.[a-zA-Z0-9_-]+) - - - begin - url\( - contentName - variable.parameter.url - end - \) - name - support.function.any-method.builtin.css - - - match - (#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b - name - constant.other.rgb-value.css - - - captures - - 0 - - name - entity.other.attribute-name.id - - - match - #[a-zA-Z0-9_:\(\)-]+ - name - meta.selector.css - - - begin - /\* - beginCaptures - - 0 - - name - punctuation.definition.comment.begin.css - - - end - \*/ - endCaptures - - 0 - - name - punctuation.definition.comment.end.css - - - name - comment.block.css - - - match - (-|\+)?\s*[0-9]+(\.[0-9]+)? - name - constant.numeric.css - - - match - (?<=[\d])(px|pt|cm|mm|in|em|ex|pc)\b|% - name - keyword.other.unit.css - - - captures - - 1 - - name - entity.other.attribute-name.pseudo-element.css - - - match - (:+(after|before|not|last-child|nth-of-type|nth-child|first-child|first-letter|first-line|selection|root)) - - - captures - - 1 - - name - entity.other.attribute-name.pseudo-class.css - - - match - (:+(active|hover|link|visited|focus)) - - - captures - - 1 - - name - punctuation.definition.entity.css - - 2 - - name - entity.other.attribute-name.attribute.css - - 3 - - name - punctuation.separator.operator.css - - 4 - - name - string.unquoted.attribute-value.css - - 5 - - name - string.quoted.double.attribute-value.css - - 6 - - name - punctuation.definition.string.begin.css - - 7 - - name - punctuation.definition.string.end.css - - - match - (?i)(\[)\s*(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)(?:\s*([~|^$*]?=)\s*(?:(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)|((?>(['"])(?:[^\\]|\\.)*?(\6)))))?\s*(\]) - name - meta.attribute-selector.css - - - captures - - 1 - - name - keyword.control.at-rule.import.css - - 2 - - name - punctuation.definition.keyword.css - - - match - ^\s*((@)import\b) - name - meta.at-rule.import.css - - - captures - - 1 - - name - support.type.property-name.css.vendor - - - match - (-(?:webkit|moz|khtml|o|icab|ms)-(?:background-size|border-radius|box-shadow|opacity|border-image))\s*: - - - captures - - 1 - - name - support.type.property-name.css - - - match - \b(azimuth|background-attachment|background-color|background-clip|background-image|background-position|background-repeat|background-size|background|behavior|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border-radius|border|box-shadow|bottom|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|filter|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow(-[xy])?|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|pre-wrap|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|word-wrap|z-index|zoom) - - - match - \b(absolute|all-scroll|always|auto|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|col-resize|collapse|crosshair|dashed|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|groove|hand|help|hidden|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|keep-all|left|lighter|line-edge|line-through|line|linear|list-item|loose|lower-alpha|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|padding-box)\b - name - support.constant.property-value.css - - - match - (\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\b) - name - support.constant.font-name.css - - - comment - http://www.w3.org/TR/CSS21/syndata.html#value-def-color - match - \b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\b - name - support.constant.color.w3c-standard-color-name.css - - - match - \b(saturate|desaturate|lighten|darken|grayscale)\b - name - support.function.any-method.builtin.less - - - match - \b(rgb|rgba|hsl|hsla|url)\b - name - support.function.any-method.builtin.css - - - captures - - 1 - - name - support.function.any-method.vendor.css - - - match - (-(?:webkit|moz|khtml|o|icab)-(?:gradient|linear-gradient)) - - - match - \b(color-stop|from|to)\b - name - support.function.any-method.webkit.gradient.css - - - captures - - 1 - - name - support.function.less - - - match - (\.[a-zA-Z0-9_-]+)\s*(;|\() - - - begin - (^[ \t]+)?(?=//) - beginCaptures - - 1 - - name - punctuation.whitespace.comment.leading.less - - - end - (?!\G) - patterns - - - begin - // - beginCaptures - - 0 - - name - punctuation.definition.comment.less - - - end - \n - name - comment.line.double-slash.less - - - - - match - @[a-zA-Z0-9_-][\w-]* - name - variable.other.less - - - match - \$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|(?<!\()/=|%=|\+=|\-=|&=|\^=|\/\b - name - keyword.operator.less - - - captures - - 1 - - name - punctuation.section.property-list.begin.css - - 2 - - name - punctuation.section.property-list.end.css - - - comment - Match empty braces to give proper ↩ action - match - (\{)(\}) - name - meta.brace.curly.less - - - match - \{|\} - name - meta.brace.curly.less - - - match - \(|\) - name - meta.brace.round.less - - - match - \[|\] - name - meta.brace.square.less - - - scopeName - source.css.less - uuid - 9343D324-75A1-4733-A5C0-5D1D4B6182D0 - - diff --git a/vendor/grammars/less.tmbundle/info.plist b/vendor/grammars/less.tmbundle/info.plist deleted file mode 100644 index e555f0ba..00000000 --- a/vendor/grammars/less.tmbundle/info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - contactEmailRot13 - zfurrgf@juvgrsnyyf.bet - contactName - Michael Sheets - description - Extends CSS with dynamic behavior such as variables, mixins, operations and functions. - mainMenu - - items - - 78788223-5E5E-434E-98BE-17BCDF600611 - 448D3A8D-260E-4949-BA33-654886ECDCAF - - submenus - - - name - LESS - uuid - D1D51EE5-E89F-4B14-8AE4-FC364E540B47 - - diff --git a/vendor/licenses/grammar/Sublime-Inform.txt b/vendor/licenses/grammar/Sublime-Inform.txt deleted file mode 100644 index 15d8edfb..00000000 --- a/vendor/licenses/grammar/Sublime-Inform.txt +++ /dev/null @@ -1,26 +0,0 @@ ---- -type: grammar -name: Sublime-Inform -license: mit ---- -The MIT License (MIT) - -Copyright (c) 2014 Nate Dickson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/licenses/grammar/less.tmbundle.txt b/vendor/licenses/grammar/less.tmbundle.txt deleted file mode 100644 index 5d12ca2e..00000000 --- a/vendor/licenses/grammar/less.tmbundle.txt +++ /dev/null @@ -1,14 +0,0 @@ ---- -type: grammar -name: less.tmbundle -license: mit -curated: true ---- - -Copyright (c) 2010 Scott Kyle and Rasmus Andersson - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From 98118eb70bffbf3dc0e1348c1a1af74913174a00 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Tue, 6 Sep 2016 16:50:52 +1000 Subject: [PATCH 015/114] Add new grammar for MSDOS Batchfile highlighting --- .gitmodules | 6 ++--- grammars.yml | 4 +-- lib/linguist/languages.yml | 2 +- vendor/grammars/ebundles | 1 - vendor/grammars/language-batchfile | 1 + vendor/licenses/grammar/ebundles.txt | 26 ------------------- .../licenses/grammar/language-batchfile.txt | 24 +++++++++++++++++ 7 files changed, 31 insertions(+), 33 deletions(-) delete mode 160000 vendor/grammars/ebundles create mode 160000 vendor/grammars/language-batchfile delete mode 100644 vendor/licenses/grammar/ebundles.txt create mode 100644 vendor/licenses/grammar/language-batchfile.txt diff --git a/.gitmodules b/.gitmodules index 326a2a06..58b676d6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -412,9 +412,9 @@ [submodule "vendor/grammars/oz-tmbundle"] path = vendor/grammars/oz-tmbundle url = https://github.com/eregon/oz-tmbundle -[submodule "vendor/grammars/ebundles"] - path = vendor/grammars/ebundles - url = https://github.com/ericzou/ebundles +[submodule "vendor/grammars/language-batchfile"] + path = vendor/grammars/language-batchfile + url = https://github.com/mmims/language-batchfile [submodule "vendor/grammars/sublime-mask"] path = vendor/grammars/sublime-mask url = https://github.com/tenbits/sublime-mask diff --git a/grammars.yml b/grammars.yml index caa14213..0ca7a6a9 100755 --- a/grammars.yml +++ b/grammars.yml @@ -243,8 +243,6 @@ vendor/grammars/dylan.tmbundle: - source.dylan - source.lid - source.makegen -vendor/grammars/ebundles/Bundles/MSDOS batch file.tmbundle: -- source.dosbatch vendor/grammars/ec.tmbundle: - source.c.ec vendor/grammars/eiffel.tmbundle: @@ -335,6 +333,8 @@ vendor/grammars/language-asn1: vendor/grammars/language-babel: - source.js.jsx - source.regexp.babel +vendor/grammars/language-batchfile: +- source.batchfile vendor/grammars/language-blade: - text.html.php.blade vendor/grammars/language-click: diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 829b0446..0699a5dd 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -331,7 +331,7 @@ Batchfile: extensions: - .bat - .cmd - tm_scope: source.dosbatch + tm_scope: source.batchfile ace_mode: batchfile color: "#C1F12E" diff --git a/vendor/grammars/ebundles b/vendor/grammars/ebundles deleted file mode 160000 index d9b80213..00000000 --- a/vendor/grammars/ebundles +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d9b802135a533abf113c164d25b23143a47283e7 diff --git a/vendor/grammars/language-batchfile b/vendor/grammars/language-batchfile new file mode 160000 index 00000000..100b6829 --- /dev/null +++ b/vendor/grammars/language-batchfile @@ -0,0 +1 @@ +Subproject commit 100b682992acf511ab330de2c54b8c42493964e4 diff --git a/vendor/licenses/grammar/ebundles.txt b/vendor/licenses/grammar/ebundles.txt deleted file mode 100644 index eccf4579..00000000 --- a/vendor/licenses/grammar/ebundles.txt +++ /dev/null @@ -1,26 +0,0 @@ ---- -type: grammar -name: ebundles -license: mit -curated: true ---- -If not otherwise specified (see below), files in this repository (located at https://ebundles.googlecode.com/svn/) fall under the MIT License: - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - the Software, and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -An exception is made for files in readable text which contain their own license information, or files where an accompanying file exists (in the same directory) with a “-license” suffix added to the base-name name of the original file, and an extension of txt, html, or similar. For example “tidy” is accompanied by “tidy-license.txt”. diff --git a/vendor/licenses/grammar/language-batchfile.txt b/vendor/licenses/grammar/language-batchfile.txt new file mode 100644 index 00000000..4f9ab62e --- /dev/null +++ b/vendor/licenses/grammar/language-batchfile.txt @@ -0,0 +1,24 @@ +--- +type: grammar +name: language-batchfile +license: mit +--- +Copyright (c) 2014 Michael Mims + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. From 2d51a5dba48cddd5c940fff01f8165a4475253f1 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Wed, 7 Sep 2016 08:05:22 +0200 Subject: [PATCH 016/114] Recognise R comments in heuristic. --- lib/linguist/heuristics.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 48b7e54f..ad4f4504 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -354,7 +354,7 @@ module Linguist disambiguate ".r" do |data| if /\bRebol\b/i.match(data) Language["Rebol"] - elsif data.include?("<-") + elsif /<-|^\s*#/.match(data) Language["R"] end end From 35a13b363372b77542c4d712868eff29d3147a96 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Fri, 9 Sep 2016 05:41:46 +1000 Subject: [PATCH 017/114] Add .spec as a supported Python and Ruby extension --- lib/linguist/languages.yml | 2 ++ samples/Python/spec.linux.spec | 22 +++++++++++++++++ samples/Ruby/any.spec | 44 ++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 samples/Python/spec.linux.spec create mode 100644 samples/Ruby/any.spec diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4ff0200f..15465a3e 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3078,6 +3078,7 @@ Python: - .pyt - .pyw - .rpy + - .spec - .tac - .wsgi - .xpy @@ -3340,6 +3341,7 @@ Ruby: - .rbx - .ru - .ruby + - .spec - .thor - .watchr interpreters: diff --git a/samples/Python/spec.linux.spec b/samples/Python/spec.linux.spec new file mode 100644 index 00000000..c5806cd3 --- /dev/null +++ b/samples/Python/spec.linux.spec @@ -0,0 +1,22 @@ +a = Analysis(['portablizer.pyqt4.py'], + hiddenimports=[], + hookspath=None, + runtime_hooks=None) +pyz = PYZ(a.pure) +exe = EXE(pyz, + a.scripts, + exclude_binaries=True, + name='Portablizer', + debug=False, + strip=None, + upx=True, + console=False) +node = Tree('node', prefix='node') +collect = COLLECT(exe, + a.binaries, + a.zipfiles, + a.datas, + node, + strip=None, + upx=True, + name='Portablizer') diff --git a/samples/Ruby/any.spec b/samples/Ruby/any.spec new file mode 100644 index 00000000..50188314 --- /dev/null +++ b/samples/Ruby/any.spec @@ -0,0 +1,44 @@ +require File.dirname(File.expand_path(__FILE__)) + '/../spec_helper' + +describe Spira::Types::Any do + + before :all do + @uri = RDF::URI('http://example.org') + end + + # this spec is going to be necessarily loose. The 'Any' type is defined to + # use RDF.rb's automatic RDF Literal boxing and unboxing, which may or may + # not change between verions. + # + context "when serializing" do + it "should serialize literals to RDF Literals" do + serialized = Spira::Types::Any.serialize(15) + serialized.should be_a RDF::Literal + serialized = Spira::Types::Any.serialize("test") + serialized.should be_a RDF::Literal + end + + it "should keep RDF::URIs as URIs" do + Spira::Types::Any.serialize(@uri).should == @uri + end + + it "should fail to serialize collections" do + lambda { Spira::Types::Any.serialize([]) }.should raise_error TypeError + end + end + + context "when unserializing" do + it "should unserialize to ruby types" do + value = Spira::Types::Any.unserialize(RDF::Literal.new(5, :datatype => RDF::XSD.integer)) + value.should == 5 + value = Spira::Types::Any.unserialize(RDF::Literal.new("a string")) + value.should == "a string" + end + + it "should unserialize URIs to URIs" do + Spira::Types::Any.unserialize(@uri).should == @uri + end + end + + +end From dad3191238d2a40ed83ed63eec584311115d756c Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 9 Sep 2016 08:27:17 +0200 Subject: [PATCH 018/114] Add Filebench Workload Model Language. Sample file from filebench project, Sun CDDL license. --- lib/linguist/heuristics.rb | 16 ++++++++-- lib/linguist/languages.yml | 7 +++++ samples/Filebench WML/copyfiles.f | 51 +++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 samples/Filebench WML/copyfiles.f diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 48b7e54f..1f963ce4 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -144,10 +144,22 @@ module Linguist end end - disambiguate ".for", ".f" do |data| + fortran_rx = /^([c*][^abd-z]| (subroutine|program|end)\s|\s*!)/i + + disambiguate ".f" do |data| if /^: /.match(data) Language["Forth"] - elsif /^([c*][^abd-z]| (subroutine|program|end)\s|\s*!)/i.match(data) + elsif data.include?("flowop") + Language["Filebench WML"] + elsif fortran_rx.match(data) + Language["FORTRAN"] + end + end + + disambiguate ".for" do |data| + if /^: /.match(data) + Language["Forth"] + elsif fortran_rx.match(data) Language["FORTRAN"] end end diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4b352472..5b2fff4f 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1135,6 +1135,13 @@ Fantom: tm_scope: none ace_mode: text +Filebench WML: + type: programming + extensions: + - .f + tm_scope: none + ace_mode: text + Filterscript: type: programming group: RenderScript diff --git a/samples/Filebench WML/copyfiles.f b/samples/Filebench WML/copyfiles.f new file mode 100644 index 00000000..dc7f66fa --- /dev/null +++ b/samples/Filebench WML/copyfiles.f @@ -0,0 +1,51 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +set $dir=/tmp +set $nfiles=1000 +set $meandirwidth=20 +set $meanfilesize=16k +set $iosize=1m +set $nthreads=1 + +set mode quit firstdone + +define fileset name=bigfileset,path=$dir,size=$meanfilesize,entries=$nfiles,dirwidth=$meandirwidth,prealloc=100,paralloc +define fileset name=destfiles,path=$dir,size=$meanfilesize,entries=$nfiles,dirwidth=$meandirwidth + +define process name=filereader,instances=1 +{ + thread name=filereaderthread,memsize=10m,instances=$nthreads + { + flowop openfile name=openfile1,filesetname=bigfileset,fd=1 + flowop readwholefile name=readfile1,fd=1,iosize=$iosize + flowop createfile name=createfile2,filesetname=destfiles,fd=2 + flowop writewholefile name=writefile2,fd=2,srcfd=1,iosize=$iosize + flowop closefile name=closefile1,fd=1 + flowop closefile name=closefile2,fd=2 + } +} + +echo "Copyfiles Version 3.0 personality successfully loaded" From 22d4865c52aae3e625836e1f06e08d4741644517 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Sun, 11 Sep 2016 00:51:03 +1000 Subject: [PATCH 019/114] Revise patterns for Vim modeline detection The current expressions fail to match certain permutations of options: vim: noexpandtab: ft=javascript: vim: titlestring=foo\ ft=notperl ft=javascript: Version-specific modelines are also unaccounted for: vim600: set foldmethod=marker ft=javascript: # >= Vim 6.0 vim<600: set ft=javascript: # < Vim 6.0 See http://vimdoc.sourceforge.net/htmldoc/options.html#modeline --- lib/linguist/strategy/modeline.rb | 67 ++++++++++++++++++++++---- test/fixtures/Data/Modelines/iamjs.pl | 3 ++ test/fixtures/Data/Modelines/iamjs2.pl | 4 ++ test/test_modelines.rb | 4 ++ 4 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 test/fixtures/Data/Modelines/iamjs.pl create mode 100644 test/fixtures/Data/Modelines/iamjs2.pl diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 4e16a03c..d9ddf9c3 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -2,18 +2,67 @@ module Linguist module Strategy class Modeline EMACS_MODELINE = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i + VIM_MODELINE = / - # First form vim modeline - # [text]{white}{vi:|vim:|ex:}[white]{options} - # ex: 'vim: syntax=ruby' - VIM_MODELINE_1 = /(?:vim|vi|ex):\s*(?:ft|filetype|syntax)=(\w+)\s?/i + # Start modeline. Could be `vim:`, `vi:` or `ex:` + (?: + (?:\s|^) + vi + (?:m[<=>]?\d+|m)? # Version-specific modeline + | + (?!^)\s + ex + ) - # Second form vim modeline (compatible with some versions of Vi) - # [text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text] - # ex: 'vim set syntax=ruby:' - VIM_MODELINE_2 = /(?:vim|vi|Vim|ex):\s*se(?:t)?.*\s(?:ft|filetype|syntax)=(\w+)\s?.*:/i + # If the option-list begins with `set ` or `se `, it indicates an alternative + # modeline syntax partly-compatible with older versions of Vi. Here, the colon + # serves as a terminator for an option sequence, delimited by whitespace. + (?= + # So we have to ensure the modeline ends with a colon + : (?=\s* set? \s [^\n:]+ :) | - MODELINES = [EMACS_MODELINE, VIM_MODELINE_1, VIM_MODELINE_2] + # Otherwise, it isn't valid syntax and should be ignored + : (?!\s* set? \s) + ) + + # Possible (unrelated) `option=value` pairs to skip past + (?: + # Option separator. Vim uses whitespace or colons to separate options (except if + # the alternate "vim: set " form is used, where only whitespace is used) + (?: + \s + | + \s* : \s* # Note that whitespace around colons is accepted too: + ) # vim: noai : ft=ruby:noexpandtab + + # Option's name. All recognised Vim options have an alphanumeric form. + \w* + + # Possible value. Not every option takes an argument. + (?: + # Whitespace between name and value is allowed: `vim: ft =ruby` + \s*= + + # Option's value. Might be blank; `vim: ft= ` says "use no filetype". + (?: + [^\\\s] # Beware of escaped characters: titlestring=\ ft=ruby + | # will be read by Vim as { titlestring: " ft=ruby" }. + \\. + )* + )? + )* + + # The actual filetype declaration + [\s:] (?:filetype|ft|syntax) \s*= + + # Language's name + (\w+) + + # Ensure it's followed by a legal separator + (?=\s|:|$) + /xi + + MODELINES = [EMACS_MODELINE, VIM_MODELINE] # Scope of the search for modelines # Number of lines to check at the beginning and at the end of the file diff --git a/test/fixtures/Data/Modelines/iamjs.pl b/test/fixtures/Data/Modelines/iamjs.pl new file mode 100644 index 00000000..b5d8f236 --- /dev/null +++ b/test/fixtures/Data/Modelines/iamjs.pl @@ -0,0 +1,3 @@ +# vim: noexpandtab: ft=javascript + +"It's JavaScript, baby"; diff --git a/test/fixtures/Data/Modelines/iamjs2.pl b/test/fixtures/Data/Modelines/iamjs2.pl new file mode 100644 index 00000000..623b827a --- /dev/null +++ b/test/fixtures/Data/Modelines/iamjs2.pl @@ -0,0 +1,4 @@ +# vim:noexpandtab titlestring=hi\|there\\\ ft=perl ts=4 +# vim:noexpandtab titlestring=hi|there\\ ft=javascript ts=4 + +"Still JavaScript, bruh"; diff --git a/test/test_modelines.rb b/test/test_modelines.rb index 192da9d4..b2eba82a 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -30,6 +30,8 @@ class TestModelines < Minitest::Test assert_modeline Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c") assert_modeline Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl") assert_modeline Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md") + assert_modeline Language["JavaScript"], fixture_blob("Data/Modelines/iamjs.pl") + assert_modeline Language["JavaScript"], fixture_blob("Data/Modelines/iamjs2.pl") assert_modeline Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc") assert_modeline nil, sample_blob("C/main.c") end @@ -51,6 +53,8 @@ class TestModelines < Minitest::Test assert_equal Language["Text"], fixture_blob("Data/Modelines/fundamentalEmacs.c").language assert_equal Language["Prolog"], fixture_blob("Data/Modelines/not_perl.pl").language assert_equal Language["Smalltalk"], fixture_blob("Data/Modelines/example_smalltalk.md").language + assert_equal Language["JavaScript"], fixture_blob("Data/Modelines/iamjs.pl").language + assert_equal Language["JavaScript"], fixture_blob("Data/Modelines/iamjs2.pl").language assert_equal Language["PHP"], fixture_blob("Data/Modelines/iamphp.inc").language end end From 5e4e38b39a8441a57da5a7f36627e3583609b000 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 11 Sep 2016 16:46:40 +0200 Subject: [PATCH 020/114] Lock language-babel grammar to v2.22.0 Use our own fork to make sure we don't update it by mistake --- .gitmodules | 6 +++--- vendor/grammars/language-babel | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index ea5847d7..a8d265fc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -602,9 +602,6 @@ [submodule "vendor/grammars/X10"] path = vendor/grammars/X10 url = https://github.com/x10-lang/x10-highlighting -[submodule "vendor/grammars/language-babel"] - path = vendor/grammars/language-babel - url = https://github.com/gandm/language-babel [submodule "vendor/grammars/UrWeb-Language-Definition"] path = vendor/grammars/UrWeb-Language-Definition url = https://github.com/gwalborn/UrWeb-Language-Definition.git @@ -788,3 +785,6 @@ url = https://github.com/austinwagner/sublime-sourcepawn [submodule "vendor/grammars/language-emacs-lisp"] path = vendor/grammars/language-emacs-lisp url = https://github.com/Alhadis/language-emacs-lisp +[submodule "vendor/grammars/language-babel"] + path = vendor/grammars/language-babel + url = https://github.com/github-linguist/language-babel diff --git a/vendor/grammars/language-babel b/vendor/grammars/language-babel index c9d6dbf4..656d5d3b 160000 --- a/vendor/grammars/language-babel +++ b/vendor/grammars/language-babel @@ -1 +1 @@ -Subproject commit c9d6dbf4637c0c703aa9ada87afdca5a9cfb3e30 +Subproject commit 656d5d3b42e317f28c7fce248709abda6fc70b95 From e6c849d92cb538183b2db6541004c16ad2617e28 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Mon, 12 Sep 2016 02:08:52 +1000 Subject: [PATCH 021/114] Document --verbose option in usage message --- script/add-grammar | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/add-grammar b/script/add-grammar index 779dd62b..e72fe89b 100755 --- a/script/add-grammar +++ b/script/add-grammar @@ -44,7 +44,7 @@ end usage = """Usage: - #{$0} [--replace grammar] url + #{$0} [-v|--verbose] [--replace grammar] url Examples: #{$0} https://github.com/Alhadis/language-roff #{$0} --replace sublime-apl https://github.com/Alhadis/language-apl From b61fe90d120d24b2ec138729fc860703373f16ff Mon Sep 17 00:00:00 2001 From: Alhadis Date: Mon, 12 Sep 2016 02:17:10 +1000 Subject: [PATCH 022/114] Terminate script if submodule registration failed --- script/add-grammar | 1 + 1 file changed, 1 insertion(+) diff --git a/script/add-grammar b/script/add-grammar index e72fe89b..25c12176 100755 --- a/script/add-grammar +++ b/script/add-grammar @@ -86,6 +86,7 @@ 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" From 6e40de47da9e774b7de722cf2dacf2d74f40595b Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sun, 11 Sep 2016 22:05:40 -0700 Subject: [PATCH 023/114] Grammar update --- vendor/grammars/Docker.tmbundle | 2 +- vendor/grammars/NSIS | 2 +- vendor/grammars/c.tmbundle | 2 +- vendor/grammars/d.tmbundle | 2 +- vendor/grammars/diff.tmbundle | 2 +- vendor/grammars/html.tmbundle | 2 +- vendor/grammars/jade-tmbundle | 2 +- vendor/grammars/language-clojure | 2 +- vendor/grammars/language-graphql | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-python | 2 +- vendor/grammars/language-roff | 2 +- vendor/grammars/latex.tmbundle | 2 +- vendor/grammars/objective-c.tmbundle | 2 +- vendor/grammars/pawn-sublime-language | 2 +- vendor/grammars/r.tmbundle | 2 +- vendor/grammars/sublime-typescript | 2 +- vendor/grammars/vue-syntax-highlight | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/vendor/grammars/Docker.tmbundle b/vendor/grammars/Docker.tmbundle index 08585643..2d7d56af 160000 --- a/vendor/grammars/Docker.tmbundle +++ b/vendor/grammars/Docker.tmbundle @@ -1 +1 @@ -Subproject commit 08585643c0b84eb6f76ef56fbba7183185e65548 +Subproject commit 2d7d56af17fdf425fdebb34019b8cbd71110250a diff --git a/vendor/grammars/NSIS b/vendor/grammars/NSIS index b9be931f..171bb32a 160000 --- a/vendor/grammars/NSIS +++ b/vendor/grammars/NSIS @@ -1 +1 @@ -Subproject commit b9be931f41ac6039208494f8e98fd53a2394e517 +Subproject commit 171bb32ae1bade20f933675b046a101f26970123 diff --git a/vendor/grammars/c.tmbundle b/vendor/grammars/c.tmbundle index fa4b7e21..88cc9b71 160000 --- a/vendor/grammars/c.tmbundle +++ b/vendor/grammars/c.tmbundle @@ -1 +1 @@ -Subproject commit fa4b7e211463973328b5334d55d0b10dafa27122 +Subproject commit 88cc9b71faf9f1406c5a6a5b08741e6242c15e06 diff --git a/vendor/grammars/d.tmbundle b/vendor/grammars/d.tmbundle index 8763c4c5..080e5343 160000 --- a/vendor/grammars/d.tmbundle +++ b/vendor/grammars/d.tmbundle @@ -1 +1 @@ -Subproject commit 8763c4c5f2169d48d725d946838428f50abe12a5 +Subproject commit 080e5343d8979d2b9c0502e80ac82d906bb7996f diff --git a/vendor/grammars/diff.tmbundle b/vendor/grammars/diff.tmbundle index 62de2cca..372abaae 160000 --- a/vendor/grammars/diff.tmbundle +++ b/vendor/grammars/diff.tmbundle @@ -1 +1 @@ -Subproject commit 62de2cca5cc5cfb77308fdc94d963f35e2d808d1 +Subproject commit 372abaaeb12620db3f9d5d984c4ee8c3c6224117 diff --git a/vendor/grammars/html.tmbundle b/vendor/grammars/html.tmbundle index 2e9e024a..9f812c89 160000 --- a/vendor/grammars/html.tmbundle +++ b/vendor/grammars/html.tmbundle @@ -1 +1 @@ -Subproject commit 2e9e024a1b20c8bf8e68ba241359b4bbdb1045e1 +Subproject commit 9f812c89f4990a98391701caa77824c94860538f diff --git a/vendor/grammars/jade-tmbundle b/vendor/grammars/jade-tmbundle index 7c1304aa..f311a516 160000 --- a/vendor/grammars/jade-tmbundle +++ b/vendor/grammars/jade-tmbundle @@ -1 +1 @@ -Subproject commit 7c1304aa5a0d916a93fd296d3dd994219ecdc90f +Subproject commit f311a516bb29296fcebfdc7da8149b1c79dfb0a1 diff --git a/vendor/grammars/language-clojure b/vendor/grammars/language-clojure index bc86668c..51484ae2 160000 --- a/vendor/grammars/language-clojure +++ b/vendor/grammars/language-clojure @@ -1 +1 @@ -Subproject commit bc86668c40817aefbba2164032fcd24c2438b576 +Subproject commit 51484ae2f76b59fe0ea4688a1b27d127d392bd07 diff --git a/vendor/grammars/language-graphql b/vendor/grammars/language-graphql index d88cbb73..4be0d1ae 160000 --- a/vendor/grammars/language-graphql +++ b/vendor/grammars/language-graphql @@ -1 +1 @@ -Subproject commit d88cbb73e2e90f290911cf707550e2c0011140f9 +Subproject commit 4be0d1ae7b847182d4a743f43f44416d7f7d6423 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index e7b00e4d..c30e13f9 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit e7b00e4d15f1d11842ca9f5d61fdc02d4719bf6b +Subproject commit c30e13f94a3e5d725afb0acc70e05774a6c0026b diff --git a/vendor/grammars/language-python b/vendor/grammars/language-python index bc204508..719e4404 160000 --- a/vendor/grammars/language-python +++ b/vendor/grammars/language-python @@ -1 +1 @@ -Subproject commit bc204508498b1695a4448bd2cf9a3d31c1cdaf5e +Subproject commit 719e4404d2cd25a888a8111c62abd31a22a15ef3 diff --git a/vendor/grammars/language-roff b/vendor/grammars/language-roff index bef44851..f37fb6b7 160000 --- a/vendor/grammars/language-roff +++ b/vendor/grammars/language-roff @@ -1 +1 @@ -Subproject commit bef448515021f7112d42403c0a3d5814a13b193f +Subproject commit f37fb6b7c45837de47cdb0bcb9e7a5a257b1ea24 diff --git a/vendor/grammars/latex.tmbundle b/vendor/grammars/latex.tmbundle index cb0c7590..b973d17a 160000 --- a/vendor/grammars/latex.tmbundle +++ b/vendor/grammars/latex.tmbundle @@ -1 +1 @@ -Subproject commit cb0c75906cdead220f45acc27225245dd966ef55 +Subproject commit b973d17a03744d8184689c37d5b9be1511bb3b21 diff --git a/vendor/grammars/objective-c.tmbundle b/vendor/grammars/objective-c.tmbundle index 583d31f6..d80c2bbd 160000 --- a/vendor/grammars/objective-c.tmbundle +++ b/vendor/grammars/objective-c.tmbundle @@ -1 +1 @@ -Subproject commit 583d31f6734589a6ea1e2da1be9da57cf25a63f9 +Subproject commit d80c2bbdef8433b3d2cf0af660ea460d97009735 diff --git a/vendor/grammars/pawn-sublime-language b/vendor/grammars/pawn-sublime-language index 1916b03b..2940b429 160000 --- a/vendor/grammars/pawn-sublime-language +++ b/vendor/grammars/pawn-sublime-language @@ -1 +1 @@ -Subproject commit 1916b03ba0f61f488637310c7608b3244fc80c0e +Subproject commit 2940b429a66f300ccf07020e63a799afab6522bd diff --git a/vendor/grammars/r.tmbundle b/vendor/grammars/r.tmbundle index 44691a07..d005a0f1 160000 --- a/vendor/grammars/r.tmbundle +++ b/vendor/grammars/r.tmbundle @@ -1 +1 @@ -Subproject commit 44691a07734715b11a130a4af409508f53f83aa1 +Subproject commit d005a0f1055020757b797e4959d1b43ece3708aa diff --git a/vendor/grammars/sublime-typescript b/vendor/grammars/sublime-typescript index 27529a65..cfe1d982 160000 --- a/vendor/grammars/sublime-typescript +++ b/vendor/grammars/sublime-typescript @@ -1 +1 @@ -Subproject commit 27529a651f1aea441c3a8c809b0858d0900d82aa +Subproject commit cfe1d982384e2434bfea0cc5159387d942f8f2e6 diff --git a/vendor/grammars/vue-syntax-highlight b/vendor/grammars/vue-syntax-highlight index 8e729750..909afa53 160000 --- a/vendor/grammars/vue-syntax-highlight +++ b/vendor/grammars/vue-syntax-highlight @@ -1 +1 @@ -Subproject commit 8e729750bc181d3d05d5e74cf7cb8f8c4c19627d +Subproject commit 909afa5384d6dcd01f7d883fe2b8b6067f970a26 From fdec52c89a902c631936fa1364f70fc1b089beda Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sun, 11 Sep 2016 22:12:38 -0700 Subject: [PATCH 024/114] Bumping to v4.8.10 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 8c15a584..0b373538 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.8.9" + VERSION = "4.8.10" end From e73a4ecd0ece2a6599625e28aace649f5fa0eba3 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Mon, 12 Sep 2016 19:59:08 +1000 Subject: [PATCH 025/114] Allow " ex:" to match at beginning of file Although unlikely to be valid syntax in most programming languages, such a modeline is valid syntax in Vim, and will trigger any filetype modes. --- lib/linguist/strategy/modeline.rb | 2 +- test/fixtures/Data/Modelines/ruby10 | 3 +++ test/test_modelines.rb | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/Data/Modelines/ruby10 diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index d9ddf9c3..61ba723a 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -10,7 +10,7 @@ module Linguist vi (?:m[<=>]?\d+|m)? # Version-specific modeline | - (?!^)\s + [\t\x20] # `ex:` requires whitespace, because "ex:" might be short for "example:" ex ) diff --git a/test/fixtures/Data/Modelines/ruby10 b/test/fixtures/Data/Modelines/ruby10 new file mode 100644 index 00000000..67dd4864 --- /dev/null +++ b/test/fixtures/Data/Modelines/ruby10 @@ -0,0 +1,3 @@ + ex: noexpandtab: ft=ruby + +# Still Ruby diff --git a/test/test_modelines.rb b/test/test_modelines.rb index b2eba82a..1437ee6a 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -17,6 +17,7 @@ class TestModelines < Minitest::Test assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby7") assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby8") assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby9") + assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby10") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplus") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2") From abf7bee4645b392a35e49c1ab4505c30fd2c4333 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Mon, 12 Sep 2016 20:00:05 +1000 Subject: [PATCH 026/114] Include tests for version-specific Vim modelines --- test/fixtures/Data/Modelines/ruby11 | 3 +++ test/fixtures/Data/Modelines/ruby12 | 3 +++ test/test_modelines.rb | 2 ++ 3 files changed, 8 insertions(+) create mode 100644 test/fixtures/Data/Modelines/ruby11 create mode 100644 test/fixtures/Data/Modelines/ruby12 diff --git a/test/fixtures/Data/Modelines/ruby11 b/test/fixtures/Data/Modelines/ruby11 new file mode 100644 index 00000000..3d167468 --- /dev/null +++ b/test/fixtures/Data/Modelines/ruby11 @@ -0,0 +1,3 @@ +# vim600: ft=ruby + +# Targets Vim 6.0 or later diff --git a/test/fixtures/Data/Modelines/ruby12 b/test/fixtures/Data/Modelines/ruby12 new file mode 100644 index 00000000..a7ef89a9 --- /dev/null +++ b/test/fixtures/Data/Modelines/ruby12 @@ -0,0 +1,3 @@ +vim<520: ft=ruby + +# Targets Vim 5.20 and earlier diff --git a/test/test_modelines.rb b/test/test_modelines.rb index 1437ee6a..16a68a17 100644 --- a/test/test_modelines.rb +++ b/test/test_modelines.rb @@ -18,6 +18,8 @@ class TestModelines < Minitest::Test assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby8") assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby9") assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby10") + assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby11") + assert_modeline Language["Ruby"], fixture_blob("Data/Modelines/ruby12") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplus") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs1") assert_modeline Language["C++"], fixture_blob("Data/Modelines/seeplusplusEmacs2") From e0d890240bb5bc6ded6280cee5c506791145926a Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 12 Sep 2016 21:35:10 -0700 Subject: [PATCH 027/114] Adding basic script for adding language_id fields to languages.yml --- CONTRIBUTING.md | 3 +- lib/linguist/languages.yml | 3001 ++++++++++++++++++------------------ script/set-language-ids | 82 + 3 files changed, 1584 insertions(+), 1502 deletions(-) create mode 100755 script/set-language-ids diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ec00ae14..eb7532e0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,6 +33,7 @@ To add support for a new language: 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 samples for your language to the [samples directory][samples] in the correct subdirectory. +0. Add a `language_id` for your language. See `script/set-language-ids` for more information. **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. 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: @@ -84,7 +85,7 @@ Linguist is maintained with :heart: by: - @arfon (GitHub Staff) - @larsbrinkhoff - @pchaigno - + As Linguist is a production dependency for GitHub we have a couple of workflow restrictions: - Anyone with commit rights can merge Pull Requests provided that there is a :+1: from a GitHub member of staff diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 16ceb6bc..861a7efa 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -14,6 +14,9 @@ # searchable - Boolean flag to enable searching (defaults to true) # search_term - Deprecated: Some languages may be indexed under a # different alias. Avoid defining new exceptions. +# language_id - Integer used as a language-name-independent indexed field so that we can rename +# languages in Linguist without reindexing all the code on GitHub. Must not be +# changed for existing languages without the explicit permission of GitHub staff. # color - CSS hex color to represent the language. # tm_scope - The TextMate scope that represents this programming # language. This should match one of the scopes listed in @@ -27,79 +30,80 @@ # # Please keep this list alphabetized. Capitalization comes before lowercase. +--- 1C Enterprise: type: programming color: "#814CCC" extensions: - - .bsl - - .os + - ".bsl" + - ".os" tm_scope: source.bsl ace_mode: text - + language_id: 0 ABAP: type: programming color: "#E8274B" extensions: - - .abap + - ".abap" ace_mode: abap - + language_id: 1 AGS Script: type: programming color: "#B9D9FF" aliases: - ags extensions: - - .asc - - .ash + - ".asc" + - ".ash" tm_scope: source.c++ ace_mode: c_cpp - + language_id: 2 AMPL: type: programming color: "#E6EFBB" extensions: - - .ampl - - .mod + - ".ampl" + - ".mod" tm_scope: source.ampl ace_mode: text - + language_id: 3 ANTLR: type: programming color: "#9DC3FF" extensions: - - .g4 + - ".g4" ace_mode: text - + language_id: 4 API Blueprint: type: markup color: "#2ACCA8" ace_mode: markdown extensions: - - .apib + - ".apib" tm_scope: text.html.markdown.source.gfm.apib - + language_id: 5 APL: type: programming color: "#5A8164" extensions: - - .apl - - .dyalog + - ".apl" + - ".dyalog" interpreters: - apl - aplx - dyalog tm_scope: source.apl ace_mode: text - + language_id: 6 ASN.1: type: data color: "#aeead0" extensions: - - .asn - - .asn1 + - ".asn" + - ".asn1" tm_scope: source.asn ace_mode: text - + language_id: 7 ASP: type: programming color: "#6a40fd" @@ -109,27 +113,27 @@ ASP: - aspx - aspx-vb extensions: - - .asp - - .asax - - .ascx - - .ashx - - .asmx - - .aspx - - .axd + - ".asp" + - ".asax" + - ".ascx" + - ".ashx" + - ".asmx" + - ".aspx" + - ".axd" ace_mode: text - + language_id: 8 ATS: type: programming color: "#1ac620" aliases: - ats2 extensions: - - .dats - - .hats - - .sats + - ".dats" + - ".hats" + - ".sats" tm_scope: source.ats ace_mode: ocaml - + language_id: 9 ActionScript: type: programming tm_scope: source.actionscript.3 @@ -140,35 +144,35 @@ ActionScript: - actionscript3 - as3 extensions: - - .as + - ".as" ace_mode: actionscript - + language_id: 10 Ada: type: programming color: "#02f88c" extensions: - - .adb - - .ada - - .ads + - ".adb" + - ".ada" + - ".ads" aliases: - ada95 - ada2005 ace_mode: ada - + language_id: 11 Agda: type: programming color: "#315665" extensions: - - .agda + - ".agda" ace_mode: text - + language_id: 12 Alloy: - type: programming # 'modeling' would be more appropiate + type: programming color: "#64C800" extensions: - - .als + - ".als" ace_mode: text - + language_id: 13 Alpine Abuild: type: programming group: Shell @@ -179,7 +183,7 @@ Alpine Abuild: - APKBUILD tm_scope: source.shell ace_mode: sh - + language_id: 14 Ant Build System: type: data tm_scope: text.xml.ant @@ -187,80 +191,80 @@ Ant Build System: - ant.xml - build.xml ace_mode: xml - + language_id: 15 ApacheConf: type: markup aliases: - aconf - apache extensions: - - .apacheconf - - .vhost + - ".apacheconf" + - ".vhost" tm_scope: source.apache-config ace_mode: apache_conf - + language_id: 16 Apex: type: programming extensions: - - .cls + - ".cls" tm_scope: source.java ace_mode: java - + language_id: 17 Apollo Guidance Computer: type: programming color: "#0B3D91" group: Assembly extensions: - - .agc + - ".agc" tm_scope: source.agc ace_mode: assembly_x86 - + language_id: 18 AppleScript: type: programming aliases: - osascript extensions: - - .applescript - - .scpt + - ".applescript" + - ".scpt" interpreters: - osascript ace_mode: applescript color: "#101F1F" - + language_id: 19 Arc: type: programming color: "#aa2afe" extensions: - - .arc + - ".arc" tm_scope: none ace_mode: text - + language_id: 20 Arduino: type: programming color: "#bd79d1" extensions: - - .ino + - ".ino" tm_scope: source.c++ ace_mode: c_cpp - + language_id: 21 AsciiDoc: type: prose ace_mode: asciidoc wrap: true extensions: - - .asciidoc - - .adoc - - .asc + - ".asciidoc" + - ".adoc" + - ".asc" tm_scope: text.html.asciidoc - + language_id: 22 AspectJ: type: programming color: "#a957b0" extensions: - - .aj + - ".aj" tm_scope: source.aspectj ace_mode: text - + language_id: 23 Assembly: type: programming color: "#6E4C13" @@ -268,31 +272,31 @@ Assembly: aliases: - nasm extensions: - - .asm - - .a51 - - .inc - - .nasm + - ".asm" + - ".a51" + - ".inc" + - ".nasm" tm_scope: source.assembly ace_mode: assembly_x86 - + language_id: 24 Augeas: type: programming extensions: - - .aug + - ".aug" tm_scope: none ace_mode: text - + language_id: 25 AutoHotkey: type: programming color: "#6594b9" aliases: - ahk extensions: - - .ahk - - .ahkl + - ".ahk" + - ".ahkl" tm_scope: source.ahk ace_mode: autohotkey - + language_id: 26 AutoIt: type: programming color: "#1C3552" @@ -301,25 +305,25 @@ AutoIt: - AutoIt3 - AutoItScript extensions: - - .au3 + - ".au3" tm_scope: source.autoit ace_mode: autohotkey - + language_id: 27 Awk: type: programming extensions: - - .awk - - .auk - - .gawk - - .mawk - - .nawk + - ".awk" + - ".auk" + - ".gawk" + - ".mawk" + - ".nawk" interpreters: - awk - gawk - mawk - nawk ace_mode: text - + language_id: 28 Batchfile: type: programming search_term: bat @@ -329,43 +333,43 @@ Batchfile: - dosbatch - winbatch extensions: - - .bat - - .cmd + - ".bat" + - ".cmd" tm_scope: source.batchfile ace_mode: batchfile color: "#C1F12E" - + language_id: 29 Befunge: type: programming extensions: - - .befunge + - ".befunge" ace_mode: text - + language_id: 30 Bison: type: programming group: Yacc tm_scope: source.bison extensions: - - .bison + - ".bison" ace_mode: text color: "#6A463F" - + language_id: 31 BitBake: type: programming tm_scope: none extensions: - - .bb + - ".bb" ace_mode: text - + language_id: 32 Blade: type: markup group: HTML extensions: - - .blade - - .blade.php + - ".blade" + - ".blade.php" tm_scope: text.html.php.blade ace_mode: text - + language_id: 33 BlitzBasic: type: programming aliases: @@ -374,70 +378,70 @@ BlitzBasic: - blitzplus - bplus extensions: - - .bb - - .decls + - ".bb" + - ".decls" tm_scope: source.blitzmax ace_mode: text - + language_id: 34 BlitzMax: type: programming color: "#cd6400" extensions: - - .bmx + - ".bmx" aliases: - bmax ace_mode: text - + language_id: 35 Bluespec: type: programming extensions: - - .bsv + - ".bsv" tm_scope: source.bsv ace_mode: verilog - + language_id: 36 Boo: type: programming color: "#d4bec1" extensions: - - .boo + - ".boo" ace_mode: text tm_scope: source.boo - + language_id: 37 Brainfuck: type: programming color: "#2F2530" extensions: - - .b - - .bf + - ".b" + - ".bf" tm_scope: source.bf ace_mode: text - + language_id: 38 Brightscript: type: programming extensions: - - .brs + - ".brs" tm_scope: source.brightscript ace_mode: text - + language_id: 39 Bro: type: programming extensions: - - .bro + - ".bro" ace_mode: text - + language_id: 40 C: type: programming color: "#555555" extensions: - - .c - - .cats - - .h - - .idc - - .w + - ".c" + - ".cats" + - ".h" + - ".idc" + - ".w" interpreters: - tcc ace_mode: c_cpp - + language_id: 41 C#: type: programming ace_mode: csharp @@ -447,11 +451,11 @@ C#: aliases: - csharp extensions: - - .cs - - .cake - - .cshtml - - .csx - + - ".cs" + - ".cake" + - ".cshtml" + - ".csx" + language_id: 42 C++: type: programming ace_mode: c_cpp @@ -460,181 +464,181 @@ C++: aliases: - cpp extensions: - - .cpp - - .c++ - - .cc - - .cp - - .cxx - - .h - - .h++ - - .hh - - .hpp - - .hxx - - .inc - - .inl - - .ipp - - .tcc - - .tpp - + - ".cpp" + - ".c++" + - ".cc" + - ".cp" + - ".cxx" + - ".h" + - ".h++" + - ".hh" + - ".hpp" + - ".hxx" + - ".inc" + - ".inl" + - ".ipp" + - ".tcc" + - ".tpp" + language_id: 43 C-ObjDump: type: data extensions: - - .c-objdump + - ".c-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - + language_id: 44 C2hs Haskell: type: programming group: Haskell aliases: - c2hs extensions: - - .chs + - ".chs" tm_scope: source.haskell ace_mode: haskell - + language_id: 45 CLIPS: type: programming extensions: - - .clp + - ".clp" tm_scope: source.clips ace_mode: text - + language_id: 46 CMake: type: programming extensions: - - .cmake - - .cmake.in + - ".cmake" + - ".cmake.in" filenames: - CMakeLists.txt ace_mode: text - + language_id: 47 COBOL: type: programming extensions: - - .cob - - .cbl - - .ccp - - .cobol - - .cpy + - ".cob" + - ".cbl" + - ".ccp" + - ".cobol" + - ".cpy" ace_mode: cobol - + language_id: 48 COLLADA: type: data extensions: - - .dae + - ".dae" tm_scope: text.xml ace_mode: xml - + language_id: 49 CSS: type: markup tm_scope: source.css ace_mode: css color: "#563d7c" extensions: - - .css - + - ".css" + language_id: 50 CSV: type: data ace_mode: text tm_scope: none extensions: - - .csv - + - ".csv" + language_id: 51 Cap'n Proto: type: programming tm_scope: source.capnp extensions: - - .capnp + - ".capnp" ace_mode: text - + language_id: 52 CartoCSS: type: programming aliases: - Carto extensions: - - .mss + - ".mss" ace_mode: text tm_scope: source.css.mss - + language_id: 53 Ceylon: type: programming extensions: - - .ceylon + - ".ceylon" ace_mode: text - + language_id: 54 Chapel: type: programming color: "#8dc63f" aliases: - chpl extensions: - - .chpl + - ".chpl" ace_mode: text - + language_id: 55 Charity: type: programming extensions: - - .ch + - ".ch" tm_scope: none ace_mode: text - + language_id: 56 ChucK: type: programming extensions: - - .ck + - ".ck" tm_scope: source.java ace_mode: java - + language_id: 57 Cirru: type: programming color: "#ccccff" ace_mode: cirru extensions: - - .cirru - + - ".cirru" + language_id: 58 Clarion: type: programming color: "#db901e" ace_mode: text extensions: - - .clw + - ".clw" tm_scope: source.clarion - + language_id: 59 Clean: type: programming color: "#3F85AF" extensions: - - .icl - - .dcl + - ".icl" + - ".dcl" tm_scope: source.clean ace_mode: text - + language_id: 60 Click: type: programming color: "#E4E6F3" extensions: - - .click + - ".click" tm_scope: source.click ace_mode: text - + language_id: 61 Clojure: type: programming ace_mode: clojure color: "#db5855" extensions: - - .clj - - .boot - - .cl2 - - .cljc - - .cljs - - .cljs.hl - - .cljscm - - .cljx - - .hic + - ".clj" + - ".boot" + - ".cl2" + - ".cljc" + - ".cljs" + - ".cljs.hl" + - ".cljscm" + - ".cljx" + - ".hic" filenames: - riemann.config - + language_id: 62 CoffeeScript: type: programming tm_scope: source.coffee @@ -644,17 +648,17 @@ CoffeeScript: - coffee - coffee-script extensions: - - .coffee - - ._coffee - - .cake - - .cjsx - - .cson - - .iced + - ".coffee" + - "._coffee" + - ".cake" + - ".cjsx" + - ".cson" + - ".iced" filenames: - Cakefile interpreters: - coffee - + language_id: 63 ColdFusion: type: programming group: ColdFusion @@ -666,10 +670,10 @@ ColdFusion: - cfml - coldfusion html extensions: - - .cfm - - .cfml + - ".cfm" + - ".cfml" tm_scope: text.html.cfm - + language_id: 64 ColdFusion CFC: type: programming group: ColdFusion @@ -679,9 +683,9 @@ ColdFusion CFC: aliases: - cfc extensions: - - .cfc + - ".cfc" tm_scope: source.cfscript - + language_id: 65 Common Lisp: type: programming tm_scope: source.lisp @@ -689,14 +693,14 @@ Common Lisp: aliases: - lisp extensions: - - .lisp - - .asd - - .cl - - .l - - .lsp - - .ny - - .podsl - - .sexp + - ".lisp" + - ".asd" + - ".cl" + - ".l" + - ".lsp" + - ".ny" + - ".podsl" + - ".sexp" interpreters: - lisp - sbcl @@ -704,327 +708,327 @@ Common Lisp: - clisp - ecl ace_mode: lisp - + language_id: 66 Component Pascal: type: programming color: "#B0CE4E" extensions: - - .cp - - .cps + - ".cp" + - ".cps" tm_scope: source.pascal aliases: - delphi - objectpascal ace_mode: pascal - + language_id: 67 Cool: type: programming extensions: - - .cl + - ".cl" tm_scope: source.cool ace_mode: text - + language_id: 68 Coq: type: programming extensions: - - .coq - - .v + - ".coq" + - ".v" ace_mode: text - + language_id: 69 Cpp-ObjDump: type: data extensions: - - .cppobjdump - - .c++-objdump - - .c++objdump - - .cpp-objdump - - .cxx-objdump + - ".cppobjdump" + - ".c++-objdump" + - ".c++objdump" + - ".cpp-objdump" + - ".cxx-objdump" tm_scope: objdump.x86asm aliases: - c++-objdump ace_mode: assembly_x86 - + language_id: 70 Creole: type: prose wrap: true extensions: - - .creole + - ".creole" tm_scope: text.html.creole ace_mode: text - + language_id: 71 Crystal: type: programming color: "#776791" extensions: - - .cr + - ".cr" ace_mode: ruby tm_scope: source.crystal interpreters: - crystal - + language_id: 72 Csound: type: programming aliases: - csound-orc extensions: - - .orc - - .udo + - ".orc" + - ".udo" tm_scope: source.csound ace_mode: text - + language_id: 73 Csound Document: type: programming aliases: - csound-csd extensions: - - .csd + - ".csd" tm_scope: source.csound-document ace_mode: text - + language_id: 74 Csound Score: type: programming aliases: - csound-sco extensions: - - .sco + - ".sco" tm_scope: source.csound-score ace_mode: text - + language_id: 75 Cucumber: type: programming extensions: - - .feature + - ".feature" tm_scope: text.gherkin.feature aliases: - gherkin ace_mode: text color: "#5B2063" - + language_id: 76 Cuda: type: programming extensions: - - .cu - - .cuh + - ".cu" + - ".cuh" tm_scope: source.cuda-c++ ace_mode: c_cpp color: "#3A4E3A" - + language_id: 77 Cycript: type: programming extensions: - - .cy + - ".cy" tm_scope: source.js ace_mode: javascript - + language_id: 78 Cython: type: programming group: Python extensions: - - .pyx - - .pxd - - .pxi + - ".pyx" + - ".pxd" + - ".pxi" aliases: - pyrex ace_mode: text - + language_id: 79 D: type: programming color: "#ba595e" extensions: - - .d - - .di + - ".d" + - ".di" ace_mode: d - + language_id: 80 D-ObjDump: type: data extensions: - - .d-objdump + - ".d-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - + language_id: 81 DIGITAL Command Language: type: programming aliases: - dcl extensions: - - .com + - ".com" tm_scope: none ace_mode: text - + language_id: 82 DM: type: programming color: "#447265" extensions: - - .dm + - ".dm" aliases: - byond tm_scope: source.dm ace_mode: c_cpp - + language_id: 83 DNS Zone: type: data extensions: - - .zone - - .arpa + - ".zone" + - ".arpa" tm_scope: text.zone_file ace_mode: text - + language_id: 84 DTrace: type: programming aliases: - dtrace-script extensions: - - .d + - ".d" interpreters: - dtrace tm_scope: source.c ace_mode: c_cpp - + language_id: 85 Darcs Patch: type: data search_term: dpatch aliases: - dpatch extensions: - - .darcspatch - - .dpatch + - ".darcspatch" + - ".dpatch" tm_scope: none ace_mode: text - + language_id: 86 Dart: type: programming color: "#00B4AB" extensions: - - .dart + - ".dart" interpreters: - dart ace_mode: dart - + language_id: 87 Diff: type: data extensions: - - .diff - - .patch + - ".diff" + - ".patch" aliases: - udiff tm_scope: source.diff ace_mode: diff - + language_id: 88 Dockerfile: type: data tm_scope: source.dockerfile extensions: - - .dockerfile + - ".dockerfile" filenames: - Dockerfile ace_mode: dockerfile - + language_id: 89 Dogescript: type: programming color: "#cca760" extensions: - - .djs + - ".djs" tm_scope: none ace_mode: text - + language_id: 90 Dylan: type: programming color: "#6c616e" extensions: - - .dylan - - .dyl - - .intr - - .lid + - ".dylan" + - ".dyl" + - ".intr" + - ".lid" ace_mode: text - + language_id: 91 E: type: programming color: "#ccce35" extensions: - - .E + - ".E" interpreters: - rune tm_scope: none ace_mode: text - + language_id: 92 ECL: type: programming color: "#8a1267" extensions: - - .ecl - - .eclxml + - ".ecl" + - ".eclxml" tm_scope: none ace_mode: text - + language_id: 93 ECLiPSe: type: programming group: prolog extensions: - - .ecl + - ".ecl" tm_scope: source.prolog.eclipse ace_mode: prolog - + language_id: 94 EJS: type: markup color: "#a91e50" group: HTML extensions: - - .ejs + - ".ejs" tm_scope: text.html.js ace_mode: ejs - + language_id: 95 EQ: type: programming color: "#a78649" extensions: - - .eq + - ".eq" tm_scope: source.cs ace_mode: csharp - + language_id: 96 Eagle: type: markup color: "#814C05" extensions: - - .sch - - .brd + - ".sch" + - ".brd" tm_scope: text.xml ace_mode: xml - + language_id: 97 Ecere Projects: type: data group: JavaScript extensions: - - .epj + - ".epj" tm_scope: source.json ace_mode: json - + language_id: 98 Eiffel: type: programming color: "#946d57" extensions: - - .e + - ".e" ace_mode: eiffel - + language_id: 99 Elixir: type: programming color: "#6e4a7e" extensions: - - .ex - - .exs + - ".ex" + - ".exs" ace_mode: elixir filenames: - mix.lock interpreters: - elixir - + language_id: 100 Elm: type: programming color: "#60B5CC" extensions: - - .elm + - ".elm" tm_scope: source.elm ace_mode: elm - + language_id: 101 Emacs Lisp: type: programming tm_scope: source.emacs.lisp @@ -1033,35 +1037,35 @@ Emacs Lisp: - elisp - emacs filenames: - - .emacs - - .emacs.desktop - - .spacemacs + - ".emacs" + - ".emacs.desktop" + - ".spacemacs" extensions: - - .el - - .emacs - - .emacs.desktop + - ".el" + - ".emacs" + - ".emacs.desktop" ace_mode: lisp - + language_id: 102 EmberScript: type: programming color: "#FFF4F3" extensions: - - .em - - .emberscript + - ".em" + - ".emberscript" tm_scope: source.coffee ace_mode: coffee - + language_id: 103 Erlang: type: programming color: "#B83998" extensions: - - .erl - - .app.src - - .es - - .escript - - .hrl - - .xrl - - .yrl + - ".erl" + - ".app.src" + - ".es" + - ".escript" + - ".hrl" + - ".xrl" + - ".yrl" filenames: - rebar.config - rebar.config.lock @@ -1069,7 +1073,7 @@ Erlang: ace_mode: erlang interpreters: - escript - + language_id: 104 F#: type: programming color: "#b845fc" @@ -1077,232 +1081,232 @@ F#: aliases: - fsharp extensions: - - .fs - - .fsi - - .fsx + - ".fs" + - ".fsi" + - ".fsx" tm_scope: source.fsharp ace_mode: text - + language_id: 105 FLUX: type: programming color: "#88ccff" extensions: - - .fx - - .flux + - ".fx" + - ".flux" tm_scope: none ace_mode: text - + language_id: 106 FORTRAN: type: programming color: "#4d41b1" extensions: - - .f90 - - .f - - .f03 - - .f08 - - .f77 - - .f95 - - .for - - .fpp + - ".f90" + - ".f" + - ".f03" + - ".f08" + - ".f77" + - ".f95" + - ".for" + - ".fpp" tm_scope: source.fortran.modern ace_mode: text - + language_id: 107 Factor: type: programming color: "#636746" extensions: - - .factor + - ".factor" filenames: - - .factor-boot-rc - - .factor-rc + - ".factor-boot-rc" + - ".factor-rc" ace_mode: text - + language_id: 108 Fancy: type: programming color: "#7b9db4" extensions: - - .fy - - .fancypack + - ".fy" + - ".fancypack" filenames: - Fakefile ace_mode: text - + language_id: 109 Fantom: type: programming color: "#dbded5" extensions: - - .fan + - ".fan" tm_scope: none ace_mode: text - + language_id: 110 Filebench WML: type: programming extensions: - - .f + - ".f" tm_scope: none ace_mode: text - + language_id: 111 Filterscript: type: programming group: RenderScript extensions: - - .fs + - ".fs" tm_scope: none ace_mode: text - + language_id: 112 Formatted: type: data extensions: - - .for - - .eam.fs + - ".for" + - ".eam.fs" tm_scope: none ace_mode: text - + language_id: 113 Forth: type: programming color: "#341708" extensions: - - .fth - - .4th - - .f - - .for - - .forth - - .fr - - .frt - - .fs + - ".fth" + - ".4th" + - ".f" + - ".for" + - ".forth" + - ".fr" + - ".frt" + - ".fs" ace_mode: forth - + language_id: 114 FreeMarker: type: programming color: "#0050b2" aliases: - ftl extensions: - - .ftl + - ".ftl" tm_scope: text.html.ftl ace_mode: ftl - + language_id: 115 Frege: type: programming color: "#00cafe" extensions: - - .fr + - ".fr" tm_scope: source.haskell ace_mode: haskell - + language_id: 116 G-code: type: data extensions: - - .g - - .gco - - .gcode + - ".g" + - ".gco" + - ".gcode" tm_scope: source.gcode ace_mode: gcode - + language_id: 117 GAMS: type: programming extensions: - - .gms + - ".gms" tm_scope: none ace_mode: text - + language_id: 118 GAP: type: programming extensions: - - .g - - .gap - - .gd - - .gi - - .tst + - ".g" + - ".gap" + - ".gd" + - ".gi" + - ".tst" tm_scope: source.gap ace_mode: text - + language_id: 119 GAS: type: programming group: Assembly extensions: - - .s - - .ms + - ".s" + - ".ms" tm_scope: source.assembly ace_mode: assembly_x86 - + language_id: 120 GCC Machine Description: type: programming extensions: - - .md + - ".md" tm_scope: source.lisp ace_mode: lisp - + language_id: 121 GDB: type: programming extensions: - - .gdb - - .gdbinit + - ".gdb" + - ".gdbinit" tm_scope: source.gdb ace_mode: text - + language_id: 122 GDScript: type: programming extensions: - - .gd + - ".gd" tm_scope: source.gdscript ace_mode: text - + language_id: 123 GLSL: type: programming extensions: - - .glsl - - .fp - - .frag - - .frg - - .fs - - .fsh - - .fshader - - .geo - - .geom - - .glslv - - .gshader - - .shader - - .vert - - .vrx - - .vsh - - .vshader + - ".glsl" + - ".fp" + - ".frag" + - ".frg" + - ".fs" + - ".fsh" + - ".fshader" + - ".geo" + - ".geom" + - ".glslv" + - ".gshader" + - ".shader" + - ".vert" + - ".vrx" + - ".vsh" + - ".vshader" ace_mode: glsl - + language_id: 124 Game Maker Language: type: programming color: "#8fb200" extensions: - - .gml + - ".gml" tm_scope: source.c++ ace_mode: c_cpp - + language_id: 125 Genshi: type: programming extensions: - - .kid + - ".kid" tm_scope: text.xml.genshi aliases: - xml+genshi - xml+kid ace_mode: xml - + language_id: 126 Gentoo Ebuild: type: programming group: Shell extensions: - - .ebuild + - ".ebuild" tm_scope: source.shell ace_mode: sh - + language_id: 127 Gentoo Eclass: type: programming group: Shell extensions: - - .eclass + - ".eclass" tm_scope: source.shell ace_mode: sh - + language_id: 128 Gettext Catalog: type: prose search_term: pot @@ -1310,134 +1314,134 @@ Gettext Catalog: aliases: - pot extensions: - - .po - - .pot + - ".po" + - ".pot" tm_scope: source.po ace_mode: text - + language_id: 129 Glyph: type: programming color: "#e4cc98" extensions: - - .glf + - ".glf" tm_scope: source.tcl ace_mode: tcl - + language_id: 130 Gnuplot: type: programming color: "#f0a9f0" extensions: - - .gp - - .gnu - - .gnuplot - - .plot - - .plt + - ".gp" + - ".gnu" + - ".gnuplot" + - ".plot" + - ".plt" interpreters: - gnuplot ace_mode: text - + language_id: 131 Go: type: programming color: "#375eab" extensions: - - .go + - ".go" ace_mode: golang - + language_id: 132 Golo: type: programming color: "#88562A" extensions: - - .golo + - ".golo" tm_scope: source.golo ace_mode: text - + language_id: 133 Gosu: type: programming color: "#82937f" extensions: - - .gs - - .gst - - .gsx - - .vark + - ".gs" + - ".gst" + - ".gsx" + - ".vark" tm_scope: source.gosu.2 ace_mode: text - + language_id: 134 Grace: type: programming extensions: - - .grace + - ".grace" tm_scope: source.grace ace_mode: text - + language_id: 135 Gradle: type: data extensions: - - .gradle + - ".gradle" tm_scope: source.groovy.gradle ace_mode: text - + language_id: 136 Grammatical Framework: type: programming aliases: - gf wrap: false extensions: - - .gf + - ".gf" searchable: true color: "#79aa7a" tm_scope: source.haskell ace_mode: haskell - + language_id: 137 Graph Modeling Language: type: data extensions: - - .gml + - ".gml" tm_scope: none ace_mode: text - + language_id: 138 GraphQL: type: data extensions: - - .graphql + - ".graphql" tm_scope: source.graphql ace_mode: text - + language_id: 139 Graphviz (DOT): type: data tm_scope: source.dot extensions: - - .dot - - .gv + - ".dot" + - ".gv" ace_mode: text - + language_id: 140 Groff: type: markup color: "#ecdebe" extensions: - - .man - - '.1' - - .1in - - .1m - - .1x - - '.2' - - '.3' - - .3in - - .3m - - .3qt - - .3x - - '.4' - - '.5' - - '.6' - - '.7' - - '.8' - - '.9' - - .l - - .me - - .ms - - .n - - .rno - - .roff - - .tmac + - ".man" + - ".1" + - ".1in" + - ".1m" + - ".1x" + - ".2" + - ".3" + - ".3in" + - ".3m" + - ".3qt" + - ".3x" + - ".4" + - ".5" + - ".6" + - ".7" + - ".8" + - ".9" + - ".l" + - ".me" + - ".ms" + - ".n" + - ".rno" + - ".roff" + - ".tmac" filenames: - mmn - mmt @@ -1446,21 +1450,21 @@ Groff: - nroff - troff ace_mode: text - + language_id: 141 Groovy: type: programming ace_mode: groovy color: "#e69f56" extensions: - - .groovy - - .grt - - .gtpl - - .gvy + - ".groovy" + - ".grt" + - ".gtpl" + - ".gvy" interpreters: - groovy filenames: - Jenkinsfile - + language_id: 142 Groovy Server Pages: type: programming group: Groovy @@ -1468,28 +1472,28 @@ Groovy Server Pages: - gsp - java server page extensions: - - .gsp + - ".gsp" tm_scope: text.html.jsp ace_mode: jsp - + language_id: 143 HCL: type: programming extensions: - - .hcl - - .tf + - ".hcl" + - ".tf" ace_mode: ruby tm_scope: source.ruby - + language_id: 144 HLSL: type: programming extensions: - - .hlsl - - .fx - - .fxh - - .hlsli + - ".hlsl" + - ".fx" + - ".fxh" + - ".hlsli" ace_mode: text tm_scope: none - + language_id: 145 HTML: type: markup tm_scope: text.html.basic @@ -1498,28 +1502,28 @@ HTML: aliases: - xhtml extensions: - - .html - - .htm - - .html.hl - - .inc - - .st - - .xht - - .xhtml - + - ".html" + - ".htm" + - ".html.hl" + - ".inc" + - ".st" + - ".xht" + - ".xhtml" + language_id: 146 HTML+Django: type: markup tm_scope: text.html.django group: HTML extensions: - - .mustache - - .jinja + - ".mustache" + - ".jinja" aliases: - django - html+django/jinja - html+jinja - htmldjango ace_mode: django - + language_id: 147 HTML+ECR: type: markup tm_scope: text.html.ecr @@ -1527,9 +1531,9 @@ HTML+ECR: aliases: - ecr extensions: - - .ecr + - ".ecr" ace_mode: text - + language_id: 148 HTML+EEX: type: markup tm_scope: text.html.elixir @@ -1537,9 +1541,9 @@ HTML+EEX: aliases: - eex extensions: - - .eex + - ".eex" ace_mode: text - + language_id: 149 HTML+ERB: type: markup tm_scope: text.html.erb @@ -1547,43 +1551,43 @@ HTML+ERB: aliases: - erb extensions: - - .erb - - .erb.deface + - ".erb" + - ".erb.deface" ace_mode: text - + language_id: 150 HTML+PHP: type: markup tm_scope: text.html.php group: HTML extensions: - - .phtml + - ".phtml" ace_mode: php - + language_id: 151 HTTP: type: data extensions: - - .http + - ".http" tm_scope: source.httpspec ace_mode: text - + language_id: 152 Hack: type: programming ace_mode: php extensions: - - .hh - - .php + - ".hh" + - ".php" tm_scope: text.html.php color: "#878787" - + language_id: 153 Haml: group: HTML type: markup extensions: - - .haml - - .haml.deface + - ".haml" + - ".haml.deface" ace_mode: haml color: "#ECE2A9" - + language_id: 154 Handlebars: type: markup color: "#01a9d6" @@ -1592,86 +1596,86 @@ Handlebars: - hbs - htmlbars extensions: - - .handlebars - - .hbs + - ".handlebars" + - ".hbs" tm_scope: text.html.handlebars ace_mode: handlebars - + language_id: 155 Harbour: type: programming color: "#0e60e3" extensions: - - .hb + - ".hb" tm_scope: source.harbour ace_mode: text - + language_id: 156 Haskell: type: programming color: "#29b544" extensions: - - .hs - - .hsc + - ".hs" + - ".hsc" interpreters: - runhaskell ace_mode: haskell - + language_id: 157 Haxe: type: programming ace_mode: haxe color: "#df7900" extensions: - - .hx - - .hxsl + - ".hx" + - ".hxsl" tm_scope: source.haxe.2 - + language_id: 158 Hy: type: programming ace_mode: text color: "#7790B2" extensions: - - .hy + - ".hy" aliases: - hylang tm_scope: source.hy - + language_id: 159 HyPhy: type: programming ace_mode: text extensions: - - .bf + - ".bf" tm_scope: none - + language_id: 160 IDL: type: programming color: "#a3522f" extensions: - - .pro - - .dlm + - ".pro" + - ".dlm" ace_mode: text - + language_id: 161 IGOR Pro: type: programming extensions: - - .ipf + - ".ipf" aliases: - igor - igorpro tm_scope: none ace_mode: text - + language_id: 162 INI: type: data extensions: - - .ini - - .cfg - - .prefs - - .pro - - .properties + - ".ini" + - ".cfg" + - ".prefs" + - ".pro" + - ".properties" tm_scope: source.ini aliases: - dosini ace_mode: ini - + language_id: 163 IRC log: type: data search_term: irc @@ -1679,64 +1683,64 @@ IRC log: - irc - irc logs extensions: - - .irclog - - .weechatlog + - ".irclog" + - ".weechatlog" tm_scope: none ace_mode: text - + language_id: 164 Idris: type: programming extensions: - - .idr - - .lidr + - ".idr" + - ".lidr" ace_mode: text tm_scope: source.idris - + language_id: 165 Inform 7: type: programming wrap: true extensions: - - .ni - - .i7x + - ".ni" + - ".i7x" tm_scope: source.inform7 aliases: - i7 - inform7 ace_mode: text - + language_id: 166 Inno Setup: type: programming extensions: - - .iss + - ".iss" tm_scope: none ace_mode: text - + language_id: 167 Io: type: programming color: "#a9188d" extensions: - - .io + - ".io" interpreters: - io ace_mode: io - + language_id: 168 Ioke: type: programming color: "#078193" extensions: - - .ik + - ".ik" interpreters: - ioke ace_mode: text - + language_id: 169 Isabelle: type: programming color: "#FEFE00" extensions: - - .thy + - ".thy" tm_scope: source.isabelle.theory ace_mode: text - + language_id: 170 Isabelle ROOT: type: programming group: Isabelle @@ -1744,27 +1748,27 @@ Isabelle ROOT: - ROOT tm_scope: source.isabelle.root ace_mode: text - + language_id: 171 J: type: programming color: "#9EEDFF" extensions: - - .ijs + - ".ijs" interpreters: - jconsole tm_scope: source.j ace_mode: text - + language_id: 172 JFlex: type: programming color: "#DBCA00" group: Lex extensions: - - .flex - - .jflex + - ".flex" + - ".jflex" tm_scope: source.jflex ace_mode: text - + language_id: 173 JSON: type: data tm_scope: source.json @@ -1772,70 +1776,70 @@ JSON: ace_mode: json searchable: false extensions: - - .json - - .geojson - - .JSON-tmLanguage - - .topojson + - ".json" + - ".geojson" + - ".JSON-tmLanguage" + - ".topojson" filenames: - - .arcconfig - - .jshintrc + - ".arcconfig" + - ".jshintrc" - composer.lock - mcmod.info - + language_id: 174 JSON5: type: data extensions: - - .json5 + - ".json5" tm_scope: source.js ace_mode: javascript - + language_id: 175 JSONLD: type: data group: JavaScript ace_mode: javascript extensions: - - .jsonld + - ".jsonld" tm_scope: source.js - + language_id: 176 JSONiq: color: "#40d47e" type: programming ace_mode: jsoniq extensions: - - .jq + - ".jq" tm_scope: source.jq - + language_id: 177 JSX: type: programming group: JavaScript extensions: - - .jsx + - ".jsx" tm_scope: source.js.jsx ace_mode: javascript - + language_id: 178 Jade: group: HTML type: markup extensions: - - .jade - - .pug + - ".jade" + - ".pug" tm_scope: text.jade ace_mode: jade - + language_id: 179 Jasmin: type: programming ace_mode: java extensions: - - .j + - ".j" tm_scope: source.jasmin - + language_id: 180 Java: type: programming ace_mode: java color: "#b07219" extensions: - - .java - + - ".java" + language_id: 181 Java Server Pages: type: programming group: Java @@ -1843,10 +1847,10 @@ Java Server Pages: aliases: - jsp extensions: - - .jsp + - ".jsp" tm_scope: text.html.jsp ace_mode: jsp - + language_id: 182 JavaScript: type: programming tm_scope: source.js @@ -1856,247 +1860,246 @@ JavaScript: - js - node extensions: - - .js - - ._js - - .bones - - .es - - .es6 - - .frag - - .gs - - .jake - - .jsb - - .jscad - - .jsfl - - .jsm - - .jss - - .njs - - .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 + - ".js" + - "._js" + - ".bones" + - ".es" + - ".es6" + - ".frag" + - ".gs" + - ".jake" + - ".jsb" + - ".jscad" + - ".jsfl" + - ".jsm" + - ".jss" + - ".njs" + - ".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: - Jakefile interpreters: - node - + language_id: 183 Julia: type: programming extensions: - - .jl + - ".jl" color: "#a270ba" ace_mode: julia - + language_id: 184 Jupyter Notebook: type: markup ace_mode: json tm_scope: source.json color: "#DA5B0B" extensions: - - .ipynb + - ".ipynb" filenames: - Notebook aliases: - IPython Notebook - + language_id: 185 KRL: type: programming color: "#28431f" extensions: - - .krl + - ".krl" tm_scope: none ace_mode: text - + language_id: 186 KiCad: type: programming extensions: - - .sch - - .brd - - .kicad_pcb + - ".sch" + - ".brd" + - ".kicad_pcb" tm_scope: none ace_mode: text - + language_id: 187 Kit: type: markup ace_mode: html extensions: - - .kit + - ".kit" tm_scope: text.html.basic - + language_id: 188 Kotlin: type: programming color: "#F18E33" extensions: - - .kt - - .ktm - - .kts + - ".kt" + - ".ktm" + - ".kts" tm_scope: source.Kotlin ace_mode: text - + language_id: 189 LFE: type: programming extensions: - - .lfe + - ".lfe" color: "#004200" group: Erlang tm_scope: source.lisp ace_mode: lisp - + language_id: 190 LLVM: type: programming extensions: - - .ll + - ".ll" ace_mode: text color: "#185619" - + language_id: 191 LOLCODE: type: programming extensions: - - .lol + - ".lol" color: "#cc9900" tm_scope: none ace_mode: text - + language_id: 192 LSL: type: programming ace_mode: lsl extensions: - - .lsl - - .lslp + - ".lsl" + - ".lslp" interpreters: - lsl - color: '#3d9970' - + color: "#3d9970" + language_id: 193 LabVIEW: type: programming extensions: - - .lvproj + - ".lvproj" tm_scope: text.xml ace_mode: xml - + language_id: 194 Lasso: type: programming color: "#999999" extensions: - - .lasso - - .las - - .lasso8 - - .lasso9 - - .ldml + - ".lasso" + - ".las" + - ".lasso8" + - ".lasso9" + - ".ldml" tm_scope: file.lasso aliases: - lassoscript ace_mode: text - + language_id: 195 Latte: type: markup color: "#A8FF97" group: HTML extensions: - - .latte + - ".latte" tm_scope: text.html.smarty ace_mode: smarty - + language_id: 196 Lean: type: programming extensions: - - .lean - - .hlean + - ".lean" + - ".hlean" ace_mode: text - + language_id: 197 Less: type: markup group: CSS extensions: - - .less + - ".less" tm_scope: source.css.less ace_mode: less color: "#A1D9A1" - + language_id: 198 Lex: type: programming color: "#DBCA00" aliases: - flex extensions: - - .l - - .lex + - ".l" + - ".lex" tm_scope: none ace_mode: text - + language_id: 199 LilyPond: type: programming extensions: - - .ly - - .ily + - ".ly" + - ".ily" ace_mode: text - + language_id: 200 Limbo: type: programming extensions: - - .b - - .m + - ".b" + - ".m" tm_scope: none ace_mode: text - + language_id: 201 Linker Script: type: data extensions: - - .ld - - .lds + - ".ld" + - ".lds" filenames: - ld.script tm_scope: none ace_mode: text - + language_id: 202 Linux Kernel Module: type: data extensions: - - .mod + - ".mod" tm_scope: none ace_mode: text - + language_id: 203 Liquid: type: markup extensions: - - .liquid + - ".liquid" tm_scope: text.html.liquid ace_mode: liquid - + language_id: 204 Literate Agda: type: programming group: Agda extensions: - - .lagda + - ".lagda" tm_scope: none ace_mode: text - + language_id: 205 Literate CoffeeScript: type: programming tm_scope: source.litcoffee group: CoffeeScript - ace_mode: markdown + ace_mode: text wrap: true search_term: litcoffee aliases: - litcoffee extensions: - - .litcoffee - ace_mode: text - + - ".litcoffee" + language_id: 206 Literate Haskell: type: programming group: Haskell @@ -2105,10 +2108,10 @@ Literate Haskell: - lhaskell - lhs extensions: - - .lhs + - ".lhs" tm_scope: text.tex.latex.haskell ace_mode: text - + language_id: 207 LiveScript: type: programming color: "#499886" @@ -2116,112 +2119,112 @@ LiveScript: - live-script - ls extensions: - - .ls - - ._ls + - ".ls" + - "._ls" filenames: - Slakefile ace_mode: livescript - + language_id: 208 Logos: type: programming extensions: - - .xm - - .x - - .xi + - ".xm" + - ".x" + - ".xi" ace_mode: text tm_scope: source.logos - + language_id: 209 Logtalk: type: programming extensions: - - .lgt - - .logtalk + - ".lgt" + - ".logtalk" ace_mode: text - + language_id: 210 LookML: type: programming ace_mode: yaml color: "#652B81" extensions: - - .lookml + - ".lookml" tm_scope: source.yaml - + language_id: 211 LoomScript: type: programming extensions: - - .ls + - ".ls" tm_scope: source.loomscript ace_mode: text - + language_id: 212 Lua: type: programming ace_mode: lua color: "#000080" extensions: - - .lua - - .fcgi - - .nse - - .pd_lua - - .rbxs - - .wlua + - ".lua" + - ".fcgi" + - ".nse" + - ".pd_lua" + - ".rbxs" + - ".wlua" interpreters: - lua - + language_id: 213 M: type: programming aliases: - mumps extensions: - - .mumps - - .m + - ".mumps" + - ".m" tm_scope: source.lisp ace_mode: lisp - + language_id: 214 M4: type: programming extensions: - - .m4 + - ".m4" tm_scope: none ace_mode: text - + language_id: 215 M4Sugar: type: programming group: M4 aliases: - autoconf extensions: - - .m4 + - ".m4" filenames: - configure.ac tm_scope: none ace_mode: text - + language_id: 216 MAXScript: type: programming color: "#00a6a6" extensions: - - .ms - - .mcr + - ".ms" + - ".mcr" tm_scope: source.maxscript ace_mode: text - + language_id: 217 MTML: type: markup color: "#b7e1f4" extensions: - - .mtml + - ".mtml" tm_scope: text.html.basic ace_mode: html - + language_id: 218 MUF: type: programming group: Forth extensions: - - .muf - - .m + - ".muf" + - ".m" tm_scope: none ace_mode: forth - + language_id: 219 Makefile: type: programming color: "#427819" @@ -2230,10 +2233,10 @@ Makefile: - make - mf extensions: - - .mak - - .d - - .mk - - .mkfile + - ".mak" + - ".d" + - ".mk" + - ".mkfile" filenames: - BSDmakefile - GNUmakefile @@ -2249,69 +2252,69 @@ Makefile: interpreters: - make ace_mode: makefile - + language_id: 220 Mako: type: programming extensions: - - .mako - - .mao + - ".mako" + - ".mao" tm_scope: text.html.mako ace_mode: text - + language_id: 221 Markdown: type: prose ace_mode: markdown wrap: true extensions: - - .md - - .markdown - - .mkd - - .mkdn - - .mkdown - - .ron + - ".md" + - ".markdown" + - ".mkd" + - ".mkdn" + - ".mkdown" + - ".ron" tm_scope: source.gfm - + language_id: 222 Mask: type: markup color: "#f97732" ace_mode: mask extensions: - - .mask + - ".mask" tm_scope: source.mask - + language_id: 223 Mathematica: type: programming extensions: - - .mathematica - - .cdf - - .m - - .ma - - .mt - - .nb - - .nbp - - .wl - - .wlt + - ".mathematica" + - ".cdf" + - ".m" + - ".ma" + - ".mt" + - ".nb" + - ".nbp" + - ".wl" + - ".wlt" aliases: - mma ace_mode: text - + language_id: 224 Matlab: type: programming color: "#bb92ac" aliases: - octave extensions: - - .matlab - - .m + - ".matlab" + - ".m" ace_mode: matlab - + language_id: 225 Maven POM: type: data tm_scope: text.xml.pom filenames: - pom.xml ace_mode: xml - + language_id: 226 Max: type: programming color: "#c4a79c" @@ -2320,23 +2323,23 @@ Max: - maxmsp search_term: max/msp extensions: - - .maxpat - - .maxhelp - - .maxproj - - .mxt - - .pat + - ".maxpat" + - ".maxhelp" + - ".maxproj" + - ".mxt" + - ".pat" tm_scope: source.json ace_mode: json - + language_id: 227 MediaWiki: type: prose wrap: true extensions: - - .mediawiki - - .wiki + - ".mediawiki" + - ".wiki" tm_scope: text.html.mediawiki ace_mode: text - + language_id: 228 Mercury: type: programming color: "#ff2b2b" @@ -2344,166 +2347,165 @@ Mercury: interpreters: - mmi extensions: - - .m - - .moo + - ".m" + - ".moo" tm_scope: source.mercury - ace_mode: prolog - + language_id: 229 Metal: type: programming color: "#8f14e9" extensions: - - .metal + - ".metal" tm_scope: source.c++ ace_mode: c_cpp - -MiniD: # Legacy + language_id: 230 +MiniD: type: programming searchable: false extensions: - - .minid # Dummy extension + - ".minid" tm_scope: none ace_mode: text - + language_id: 231 Mirah: type: programming search_term: mirah color: "#c7a938" extensions: - - .druby - - .duby - - .mir - - .mirah + - ".druby" + - ".duby" + - ".mir" + - ".mirah" tm_scope: source.ruby ace_mode: ruby - + language_id: 232 Modelica: type: programming extensions: - - .mo + - ".mo" tm_scope: source.modelica ace_mode: text - + language_id: 233 Modula-2: type: programming extensions: - - .mod + - ".mod" tm_scope: source.modula2 ace_mode: text - + language_id: 234 Module Management System: type: programming extensions: - - .mms - - .mmk + - ".mms" + - ".mmk" filenames: - descrip.mmk - descrip.mms tm_scope: none ace_mode: text - + language_id: 235 Monkey: type: programming extensions: - - .monkey + - ".monkey" ace_mode: text tm_scope: source.monkey - + language_id: 236 Moocode: type: programming extensions: - - .moo + - ".moo" tm_scope: none ace_mode: text - + language_id: 237 MoonScript: type: programming extensions: - - .moon + - ".moon" interpreters: - moon ace_mode: text - + language_id: 238 Myghty: type: programming extensions: - - .myt + - ".myt" tm_scope: none ace_mode: text - + language_id: 239 NCL: type: programming color: "#28431f" extensions: - - .ncl + - ".ncl" tm_scope: source.ncl ace_mode: text - + language_id: 240 NL: type: data extensions: - - .nl + - ".nl" tm_scope: none ace_mode: text - + language_id: 241 NSIS: type: programming extensions: - - .nsi - - .nsh + - ".nsi" + - ".nsh" ace_mode: text - + language_id: 242 Nemerle: type: programming color: "#3d3c6e" extensions: - - .n + - ".n" ace_mode: text - + language_id: 243 NetLinx: type: programming color: "#0aa0ff" extensions: - - .axs - - .axi + - ".axs" + - ".axi" tm_scope: source.netlinx ace_mode: text - + language_id: 244 NetLinx+ERB: type: programming color: "#747faa" extensions: - - .axs.erb - - .axi.erb + - ".axs.erb" + - ".axi.erb" tm_scope: source.netlinx.erb ace_mode: text - + language_id: 245 NetLogo: type: programming color: "#ff6375" extensions: - - .nlogo + - ".nlogo" tm_scope: source.lisp ace_mode: lisp - + language_id: 246 NewLisp: type: programming lexer: NewLisp color: "#87AED7" extensions: - - .nl - - .lisp - - .lsp + - ".nl" + - ".lisp" + - ".lsp" interpreters: - newlisp tm_scope: source.lisp ace_mode: lisp - + language_id: 247 Nginx: type: markup extensions: - - .nginxconf - - .vhost + - ".nginxconf" + - ".vhost" filenames: - nginx.conf tm_scope: source.nginx @@ -2511,91 +2513,91 @@ Nginx: - nginx configuration file ace_mode: text color: "#9469E9" - + language_id: 248 Nimrod: type: programming color: "#37775b" extensions: - - .nim - - .nimrod + - ".nim" + - ".nimrod" ace_mode: text tm_scope: source.nim - + language_id: 249 Ninja: type: data tm_scope: source.ninja extensions: - - .ninja + - ".ninja" ace_mode: text - + language_id: 250 Nit: type: programming color: "#009917" extensions: - - .nit + - ".nit" tm_scope: source.nit ace_mode: text - + language_id: 251 Nix: type: programming color: "#7e7eff" extensions: - - .nix + - ".nix" aliases: - nixos tm_scope: source.nix ace_mode: nix - + language_id: 252 Nu: type: programming color: "#c9df40" aliases: - nush extensions: - - .nu + - ".nu" filenames: - Nukefile tm_scope: source.nu ace_mode: scheme interpreters: - nush - + language_id: 253 NumPy: type: programming group: Python extensions: - - .numpy - - .numpyw - - .numsc + - ".numpy" + - ".numpyw" + - ".numsc" tm_scope: none ace_mode: text color: "#9C8AF9" - + language_id: 254 OCaml: type: programming ace_mode: ocaml color: "#3be133" extensions: - - .ml - - .eliom - - .eliomi - - .ml4 - - .mli - - .mll - - .mly + - ".ml" + - ".eliom" + - ".eliomi" + - ".ml4" + - ".mli" + - ".mll" + - ".mly" interpreters: - ocaml - ocamlrun - ocamlscript tm_scope: source.ocaml - + language_id: 255 ObjDump: type: data extensions: - - .objdump + - ".objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - + language_id: 256 Objective-C: type: programming tm_scope: source.objc @@ -2605,10 +2607,10 @@ Objective-C: - objc - objectivec extensions: - - .m - - .h + - ".m" + - ".h" ace_mode: objectivec - + language_id: 257 Objective-C++: type: programming tm_scope: source.objc++ @@ -2618,9 +2620,9 @@ Objective-C++: - objc++ - objectivec++ extensions: - - .mm + - ".mm" ace_mode: objectivec - + language_id: 258 Objective-J: type: programming color: "#ff0c5a" @@ -2629,42 +2631,42 @@ Objective-J: - objectivej - objj extensions: - - .j - - .sj + - ".j" + - ".sj" tm_scope: source.js.objj ace_mode: text - + language_id: 259 Omgrofl: type: programming extensions: - - .omgrofl + - ".omgrofl" color: "#cabbff" tm_scope: none ace_mode: text - + language_id: 260 Opa: type: programming extensions: - - .opa + - ".opa" ace_mode: text - + language_id: 261 Opal: type: programming color: "#f7ede0" extensions: - - .opal + - ".opal" tm_scope: source.opal ace_mode: text - + language_id: 262 OpenCL: type: programming group: C extensions: - - .cl - - .opencl + - ".cl" + - ".opencl" tm_scope: source.c ace_mode: c_cpp - + language_id: 263 OpenEdge ABL: type: programming aliases: @@ -2672,11 +2674,11 @@ OpenEdge ABL: - openedge - abl extensions: - - .p - - .cls + - ".p" + - ".cls" tm_scope: source.abl ace_mode: text - + language_id: 264 OpenRC runscript: type: programming group: Shell @@ -2686,148 +2688,146 @@ OpenRC runscript: - openrc-run tm_scope: source.shell ace_mode: sh - + language_id: 265 OpenSCAD: type: programming extensions: - - .scad + - ".scad" tm_scope: none ace_mode: scad - + language_id: 266 Org: type: prose wrap: true extensions: - - .org + - ".org" tm_scope: none ace_mode: text - + language_id: 267 Ox: type: programming extensions: - - .ox - - .oxh - - .oxo + - ".ox" + - ".oxh" + - ".oxo" tm_scope: source.ox ace_mode: text - + language_id: 268 Oxygene: type: programming color: "#cdd0e3" extensions: - - .oxygene + - ".oxygene" tm_scope: none ace_mode: text - + language_id: 269 Oz: type: programming color: "#fab738" extensions: - - .oz + - ".oz" tm_scope: source.oz ace_mode: text - + language_id: 270 PAWN: type: programming color: "#dbb284" extensions: - - .pwn - - .inc + - ".pwn" + - ".inc" tm_scope: source.pawn ace_mode: text - + language_id: 271 PHP: type: programming tm_scope: text.html.php ace_mode: php color: "#4F5D95" extensions: - - .php - - .aw - - .ctp - - .fcgi - - .inc - - .php3 - - .php4 - - .php5 - - .phps - - .phpt + - ".php" + - ".aw" + - ".ctp" + - ".fcgi" + - ".inc" + - ".php3" + - ".php4" + - ".php5" + - ".phps" + - ".phpt" filenames: - Phakefile interpreters: - php aliases: - inc - -#Oracle + language_id: 272 PLSQL: type: programming ace_mode: sql tm_scope: none color: "#dad8d8" extensions: - - .pls - - .pck - - .pkb - - .pks - - .plb - - .plsql - - .sql - -#Postgres + - ".pls" + - ".pck" + - ".pkb" + - ".pks" + - ".plb" + - ".plsql" + - ".sql" + language_id: 273 PLpgSQL: type: programming ace_mode: pgsql tm_scope: source.sql extensions: - - .sql - + - ".sql" + language_id: 274 POV-Ray SDL: type: programming aliases: - pov-ray - povray extensions: - - .pov - - .inc + - ".pov" + - ".inc" ace_mode: text - + language_id: 275 Pan: type: programming - color: '#cc0000' + color: "#cc0000" extensions: - - .pan + - ".pan" tm_scope: none ace_mode: text - + language_id: 276 Papyrus: type: programming color: "#6600cc" extensions: - - .psc + - ".psc" tm_scope: source.papyrus.skyrim ace_mode: text - + language_id: 277 Parrot: type: programming color: "#f3ca0a" extensions: - - .parrot # Dummy extension + - ".parrot" tm_scope: none ace_mode: text - + language_id: 278 Parrot Assembly: group: Parrot type: programming aliases: - pasm extensions: - - .pasm + - ".pasm" interpreters: - parrot tm_scope: none ace_mode: text - + language_id: 279 Parrot Internal Representation: group: Parrot tm_scope: source.parrot.pir @@ -2835,260 +2835,260 @@ Parrot Internal Representation: aliases: - pir extensions: - - .pir + - ".pir" interpreters: - parrot ace_mode: text - + language_id: 280 Pascal: type: programming color: "#E3F171" extensions: - - .pas - - .dfm - - .dpr - - .inc - - .lpr - - .pascal - - .pp + - ".pas" + - ".dfm" + - ".dpr" + - ".inc" + - ".lpr" + - ".pascal" + - ".pp" interpreters: - instantfpc ace_mode: pascal - + language_id: 281 Perl: type: programming tm_scope: source.perl ace_mode: perl color: "#0298c3" extensions: - - .pl - - .al - - .cgi - - .fcgi - - .perl - - .ph - - .plx - - .pm - - .pod - - .psgi - - .t + - ".pl" + - ".al" + - ".cgi" + - ".fcgi" + - ".perl" + - ".ph" + - ".plx" + - ".pm" + - ".pod" + - ".psgi" + - ".t" interpreters: - perl - + language_id: 282 Perl6: type: programming color: "#0000fb" extensions: - - .6pl - - .6pm - - .nqp - - .p6 - - .p6l - - .p6m - - .pl - - .pl6 - - .pm - - .pm6 - - .t + - ".6pl" + - ".6pm" + - ".nqp" + - ".p6" + - ".p6l" + - ".p6m" + - ".pl" + - ".pl6" + - ".pm" + - ".pm6" + - ".t" filenames: - Rexfile interpreters: - perl6 tm_scope: source.perl6fe ace_mode: perl - + language_id: 283 Pickle: type: data extensions: - - .pkl + - ".pkl" tm_scope: none ace_mode: text - + language_id: 284 PicoLisp: type: programming extensions: - - .l + - ".l" interpreters: - picolisp - pil tm_scope: source.lisp ace_mode: lisp - + language_id: 285 PigLatin: type: programming color: "#fcd7de" extensions: - - .pig + - ".pig" tm_scope: source.pig_latin ace_mode: text - + language_id: 286 Pike: type: programming color: "#005390" extensions: - - .pike - - .pmod + - ".pike" + - ".pmod" interpreters: - pike ace_mode: text - + language_id: 287 Pod: type: prose ace_mode: perl wrap: true extensions: - - .pod + - ".pod" tm_scope: none - + language_id: 288 PogoScript: type: programming color: "#d80074" extensions: - - .pogo + - ".pogo" tm_scope: source.pogoscript ace_mode: text - + language_id: 289 Pony: type: programming extensions: - - .pony + - ".pony" tm_scope: source.pony ace_mode: text - + language_id: 290 PostScript: type: markup color: "#da291c" extensions: - - .ps - - .eps + - ".ps" + - ".eps" tm_scope: source.postscript aliases: - postscr ace_mode: text - + language_id: 291 PowerBuilder: type: programming color: "#8f0f8d" extensions: - - .pbt - - .sra - - .sru - - .srw + - ".pbt" + - ".sra" + - ".sru" + - ".srw" tm_scope: none ace_mode: text - + language_id: 292 PowerShell: type: programming ace_mode: powershell aliases: - posh extensions: - - .ps1 - - .psd1 - - .psm1 - + - ".ps1" + - ".psd1" + - ".psm1" + language_id: 293 Processing: type: programming color: "#0096D8" extensions: - - .pde + - ".pde" ace_mode: text - + language_id: 294 Prolog: type: programming color: "#74283c" extensions: - - .pl - - .pro - - .prolog - - .yap + - ".pl" + - ".pro" + - ".prolog" + - ".yap" interpreters: - swipl - yap tm_scope: source.prolog ace_mode: prolog - + language_id: 295 Propeller Spin: type: programming color: "#7fa2a7" extensions: - - .spin + - ".spin" tm_scope: source.spin ace_mode: text - + language_id: 296 Protocol Buffer: type: markup aliases: - protobuf - Protocol Buffers extensions: - - .proto + - ".proto" tm_scope: source.protobuf ace_mode: protobuf - + language_id: 297 Public Key: type: data extensions: - - .asc - - .pub + - ".asc" + - ".pub" tm_scope: none ace_mode: text - + language_id: 298 Puppet: type: programming color: "#302B6D" extensions: - - .pp + - ".pp" filenames: - Modulefile ace_mode: text tm_scope: source.puppet - + language_id: 299 Pure Data: type: programming color: "#91de79" extensions: - - .pd + - ".pd" tm_scope: none ace_mode: text - + language_id: 300 PureBasic: type: programming color: "#5a6986" extensions: - - .pb - - .pbi + - ".pb" + - ".pbi" tm_scope: none ace_mode: text - + language_id: 301 PureScript: type: programming color: "#1D222D" extensions: - - .purs + - ".purs" tm_scope: source.purescript ace_mode: haskell - + language_id: 302 Python: type: programming ace_mode: python color: "#3572A5" extensions: - - .py - - .bzl - - .cgi - - .fcgi - - .gyp - - .lmi - - .pyde - - .pyp - - .pyt - - .pyw - - .rpy - - .spec - - .tac - - .wsgi - - .xpy + - ".py" + - ".bzl" + - ".cgi" + - ".fcgi" + - ".gyp" + - ".lmi" + - ".pyde" + - ".pyp" + - ".pyt" + - ".pyw" + - ".rpy" + - ".spec" + - ".tac" + - ".wsgi" + - ".xpy" filenames: - BUCK - BUILD @@ -3102,34 +3102,34 @@ Python: - python3 aliases: - rusthon - + language_id: 303 Python traceback: type: data group: Python searchable: false extensions: - - .pytb + - ".pytb" tm_scope: text.python.traceback ace_mode: text - + language_id: 304 QML: type: programming color: "#44a51c" extensions: - - .qml - - .qbs + - ".qml" + - ".qbs" tm_scope: source.qml ace_mode: text - + language_id: 305 QMake: type: programming extensions: - - .pro - - .pri + - ".pro" + - ".pri" interpreters: - qmake ace_mode: text - + language_id: 306 R: type: programming color: "#198CE7" @@ -3138,188 +3138,187 @@ R: - Rscript - splus extensions: - - .r - - .rd - - .rsx + - ".r" + - ".rd" + - ".rsx" filenames: - - .Rprofile + - ".Rprofile" interpreters: - Rscript ace_mode: r - + language_id: 307 RAML: type: markup ace_mode: yaml tm_scope: source.yaml color: "#77d9fb" extensions: - - .raml - + - ".raml" + language_id: 308 RDoc: type: prose ace_mode: rdoc wrap: true extensions: - - .rdoc + - ".rdoc" tm_scope: text.rdoc - + language_id: 309 REALbasic: type: programming extensions: - - .rbbas - - .rbfrm - - .rbmnu - - .rbres - - .rbtbar - - .rbuistate + - ".rbbas" + - ".rbfrm" + - ".rbmnu" + - ".rbres" + - ".rbtbar" + - ".rbuistate" tm_scope: source.vbnet ace_mode: text - + language_id: 310 REXX: type: programming aliases: - arexx extensions: - - .rexx - - .pprx - - .rex + - ".rexx" + - ".pprx" + - ".rex" tm_scope: source.rexx ace_mode: text - + language_id: 311 RHTML: type: markup group: HTML extensions: - - .rhtml + - ".rhtml" tm_scope: text.html.erb aliases: - html+ruby ace_mode: rhtml - + language_id: 312 RMarkdown: type: prose wrap: true ace_mode: markdown extensions: - - .rmd + - ".rmd" tm_scope: source.gfm - + language_id: 313 RPM Spec: type: data tm_scope: source.rpm-spec extensions: - - .spec + - ".spec" aliases: - specfile ace_mode: text - + language_id: 314 RUNOFF: type: markup color: "#665a4e" extensions: - - .rnh - - .rno + - ".rnh" + - ".rno" tm_scope: text.runoff ace_mode: text - + language_id: 315 Racket: type: programming color: "#22228f" extensions: - - .rkt - - .rktd - - .rktl - - .scrbl + - ".rkt" + - ".rktd" + - ".rktl" + - ".scrbl" interpreters: - racket tm_scope: source.racket ace_mode: lisp - + language_id: 316 Ragel in Ruby Host: type: programming color: "#9d5200" extensions: - - .rl + - ".rl" aliases: - ragel-rb - ragel-ruby tm_scope: none ace_mode: text - + language_id: 317 Raw token data: type: data search_term: raw aliases: - raw extensions: - - .raw + - ".raw" tm_scope: none ace_mode: text - + language_id: 318 Rebol: type: programming color: "#358a5b" extensions: - - .reb - - .r - - .r2 - - .r3 - - .rebol + - ".reb" + - ".r" + - ".r2" + - ".r3" + - ".rebol" ace_mode: text tm_scope: source.rebol - + language_id: 319 Red: type: programming color: "#f50000" extensions: - - .red - - .reds + - ".red" + - ".reds" aliases: - red/system tm_scope: source.red ace_mode: text - + language_id: 320 Redcode: type: programming extensions: - - .cw + - ".cw" tm_scope: none ace_mode: text - + language_id: 321 Ren'Py: type: programming aliases: - renpy color: "#ff7f7f" extensions: - - .rpy + - ".rpy" tm_scope: source.renpy ace_mode: python - + language_id: 322 RenderScript: type: programming extensions: - - .rs - - .rsh + - ".rs" + - ".rsh" tm_scope: none ace_mode: text - + language_id: 323 RobotFramework: type: programming extensions: - - .robot - # - .txt + - ".robot" tm_scope: text.robot ace_mode: text - + language_id: 324 Rouge: type: programming ace_mode: clojure color: "#cc0088" extensions: - - .rg + - ".rg" tm_scope: source.clojure - + language_id: 325 Ruby: type: programming ace_mode: ruby @@ -3331,26 +3330,26 @@ Ruby: - rb - rbx extensions: - - .rb - - .builder - - .fcgi - - .gemspec - - .god - - .irbrc - - .jbuilder - - .mspec - - .pluginspec - - .podspec - - .rabl - - .rake - - .rbuild - - .rbw - - .rbx - - .ru - - .ruby - - .spec - - .thor - - .watchr + - ".rb" + - ".builder" + - ".fcgi" + - ".gemspec" + - ".god" + - ".irbrc" + - ".jbuilder" + - ".mspec" + - ".pluginspec" + - ".podspec" + - ".rabl" + - ".rake" + - ".rbuild" + - ".rbw" + - ".rbx" + - ".ru" + - ".ruby" + - ".spec" + - ".thor" + - ".watchr" interpreters: - ruby - macruby @@ -3358,7 +3357,7 @@ Ruby: - jruby - rbx filenames: - - .pryrc + - ".pryrc" - Appraisals - Berksfile - Brewfile @@ -3376,37 +3375,37 @@ Ruby: - Thorfile - Vagrantfile - buildfile - + language_id: 326 Rust: type: programming color: "#dea584" extensions: - - .rs - - .rs.in + - ".rs" + - ".rs.in" ace_mode: rust - + language_id: 327 SAS: type: programming color: "#B34936" extensions: - - .sas + - ".sas" tm_scope: source.sas ace_mode: text - + language_id: 328 SCSS: type: markup tm_scope: source.scss group: CSS ace_mode: scss extensions: - - .scss + - ".scss" color: "#CF649A" - + language_id: 329 SMT: type: programming extensions: - - .smt2 - - .smt + - ".smt2" + - ".smt" interpreters: - boolector - cvc4 @@ -3420,79 +3419,78 @@ SMT: - z3 tm_scope: source.smt ace_mode: text - + language_id: 330 SPARQL: type: data tm_scope: source.sparql ace_mode: text extensions: - - .sparql - - .rq - + - ".sparql" + - ".rq" + language_id: 331 SQF: type: programming color: "#3F3F3F" extensions: - - .sqf - - .hqf + - ".sqf" + - ".hqf" tm_scope: source.sqf ace_mode: text - + language_id: 332 SQL: type: data tm_scope: source.sql ace_mode: sql extensions: - - .sql - - .cql - - .ddl - - .inc - - .prc - - .tab - - .udf - - .viw - -#IBM DB2 + - ".sql" + - ".cql" + - ".ddl" + - ".inc" + - ".prc" + - ".tab" + - ".udf" + - ".viw" + language_id: 333 SQLPL: type: programming ace_mode: sql tm_scope: source.sql extensions: - - .sql - - .db2 - + - ".sql" + - ".db2" + language_id: 334 SRecode Template: type: markup color: "#348a34" tm_scope: source.lisp ace_mode: lisp extensions: - - .srt - + - ".srt" + language_id: 335 STON: type: data group: Smalltalk extensions: - - .ston + - ".ston" tm_scope: source.smalltalk ace_mode: text - + language_id: 336 SVG: type: data extensions: - - .svg + - ".svg" tm_scope: text.xml ace_mode: xml - + language_id: 337 Sage: type: programming group: Python extensions: - - .sage - - .sagews + - ".sage" + - ".sagews" tm_scope: source.python ace_mode: python - + language_id: 338 SaltStack: type: programming color: "#646464" @@ -3500,47 +3498,47 @@ SaltStack: - saltstate - salt extensions: - - .sls + - ".sls" tm_scope: source.yaml.salt ace_mode: yaml - + language_id: 339 Sass: type: markup tm_scope: source.sass group: CSS extensions: - - .sass + - ".sass" ace_mode: sass color: "#CF649A" - + language_id: 340 Scala: type: programming ace_mode: scala color: "#c22d40" extensions: - - .scala - - .sbt - - .sc + - ".scala" + - ".sbt" + - ".sc" interpreters: - scala - + language_id: 341 Scaml: group: HTML type: markup extensions: - - .scaml + - ".scaml" tm_scope: source.scaml ace_mode: text - + language_id: 342 Scheme: type: programming color: "#1e4aec" extensions: - - .scm - - .sld - - .sls - - .sps - - .ss + - ".scm" + - ".sld" + - ".sls" + - ".sps" + - ".ss" interpreters: - guile - bigloo @@ -3549,23 +3547,23 @@ Scheme: - gosh - r6rs ace_mode: scheme - + language_id: 343 Scilab: type: programming extensions: - - .sci - - .sce - - .tst + - ".sci" + - ".sce" + - ".tst" ace_mode: text - + language_id: 344 Self: type: programming color: "#0579aa" extensions: - - .self + - ".self" tm_scope: none ace_mode: text - + language_id: 345 Shell: type: programming search_term: bash @@ -3576,22 +3574,22 @@ Shell: - bash - zsh extensions: - - .sh - - .bash - - .bats - - .cgi - - .command - - .fcgi - - .ksh - - .sh.in - - .tmux - - .tool - - .zsh + - ".sh" + - ".bash" + - ".bats" + - ".cgi" + - ".command" + - ".fcgi" + - ".ksh" + - ".sh.in" + - ".tmux" + - ".tool" + - ".zsh" filenames: - - .bash_history - - .bash_logout - - .bash_profile - - .bashrc + - ".bash_history" + - ".bash_logout" + - ".bash_profile" + - ".bashrc" - PKGBUILD - gradlew interpreters: @@ -3600,204 +3598,204 @@ Shell: - sh - zsh ace_mode: sh - + language_id: 346 ShellSession: type: programming extensions: - - .sh-session + - ".sh-session" aliases: - bash session - console tm_scope: text.shell-session ace_mode: sh - + language_id: 347 Shen: type: programming color: "#120F14" extensions: - - .shen + - ".shen" tm_scope: none ace_mode: text - + language_id: 348 Slash: type: programming color: "#007eff" extensions: - - .sl + - ".sl" tm_scope: text.html.slash ace_mode: text - + language_id: 349 Slim: group: HTML type: markup color: "#ff8f77" extensions: - - .slim + - ".slim" tm_scope: text.slim ace_mode: text - + language_id: 350 Smali: type: programming extensions: - - .smali + - ".smali" ace_mode: text tm_scope: source.smali - + language_id: 351 Smalltalk: type: programming color: "#596706" extensions: - - .st - - .cs + - ".st" + - ".cs" aliases: - squeak ace_mode: text - + language_id: 352 Smarty: type: programming extensions: - - .tpl + - ".tpl" ace_mode: smarty tm_scope: text.html.smarty - + language_id: 353 SourcePawn: type: programming color: "#5c7611" aliases: - sourcemod extensions: - - .sp - - .inc - - .sma + - ".sp" + - ".inc" + - ".sma" tm_scope: source.sp ace_mode: text - + language_id: 354 Squirrel: type: programming color: "#800000" extensions: - - .nut + - ".nut" tm_scope: source.c++ ace_mode: c_cpp - + language_id: 355 Stan: type: programming color: "#b2011d" extensions: - - .stan + - ".stan" ace_mode: text tm_scope: source.stan - + language_id: 356 Standard ML: type: programming color: "#dc566d" aliases: - sml extensions: - - .ML - - .fun - - .sig - - .sml + - ".ML" + - ".fun" + - ".sig" + - ".sml" tm_scope: source.ml ace_mode: text - + language_id: 357 Stata: type: programming extensions: - - .do - - .ado - - .doh - - .ihlp - - .mata - - .matah - - .sthlp + - ".do" + - ".ado" + - ".doh" + - ".ihlp" + - ".mata" + - ".matah" + - ".sthlp" ace_mode: text - + language_id: 358 Stylus: type: markup group: CSS extensions: - - .styl + - ".styl" tm_scope: source.stylus ace_mode: stylus - + language_id: 359 SubRip Text: type: data extensions: - - .srt + - ".srt" ace_mode: text tm_scope: text.srt - + language_id: 360 SuperCollider: type: programming color: "#46390b" extensions: - - .sc - - .scd + - ".sc" + - ".scd" interpreters: - sclang - scsynth tm_scope: source.supercollider ace_mode: text - + language_id: 361 Swift: type: programming color: "#ffac45" extensions: - - .swift + - ".swift" ace_mode: text - + language_id: 362 SystemVerilog: type: programming color: "#DAE1C2" extensions: - - .sv - - .svh - - .vh + - ".sv" + - ".svh" + - ".vh" ace_mode: verilog - + language_id: 363 TLA: type: programming extensions: - - .tla + - ".tla" tm_scope: source.tla ace_mode: text - + language_id: 364 TOML: type: data extensions: - - .toml + - ".toml" tm_scope: source.toml ace_mode: toml - + language_id: 365 TXL: type: programming extensions: - - .txl + - ".txl" tm_scope: source.txl ace_mode: text - + language_id: 366 Tcl: type: programming color: "#e4cc98" extensions: - - .tcl - - .adp - - .tm + - ".tcl" + - ".adp" + - ".tm" interpreters: - tclsh - wish ace_mode: tcl - + language_id: 367 Tcsh: type: programming group: Shell extensions: - - .tcsh - - .csh + - ".tcsh" + - ".csh" tm_scope: source.shell ace_mode: sh - + language_id: 368 TeX: type: markup color: "#3D6117" @@ -3806,49 +3804,49 @@ TeX: aliases: - latex extensions: - - .tex - - .aux - - .bbx - - .bib - - .cbx - - .cls - - .dtx - - .ins - - .lbx - - .ltx - - .mkii - - .mkiv - - .mkvi - - .sty - - .toc - + - ".tex" + - ".aux" + - ".bbx" + - ".bib" + - ".cbx" + - ".cls" + - ".dtx" + - ".ins" + - ".lbx" + - ".ltx" + - ".mkii" + - ".mkiv" + - ".mkvi" + - ".sty" + - ".toc" + language_id: 369 Tea: type: markup extensions: - - .tea + - ".tea" tm_scope: source.tea ace_mode: text - + language_id: 370 Terra: type: programming extensions: - - .t + - ".t" color: "#00004c" ace_mode: lua interpreters: - lua - + language_id: 371 Text: type: prose wrap: true aliases: - fundamental extensions: - - .txt - - .fr - - .nb - - .ncl - - .no + - ".txt" + - ".fr" + - ".nb" + - ".ncl" + - ".no" filenames: - COPYING - INSTALL @@ -3863,142 +3861,142 @@ Text: - test.me tm_scope: none ace_mode: text - + language_id: 372 Textile: type: prose ace_mode: textile wrap: true extensions: - - .textile + - ".textile" tm_scope: none - + language_id: 373 Thrift: type: programming tm_scope: source.thrift extensions: - - .thrift + - ".thrift" ace_mode: text - + language_id: 374 Turing: type: programming color: "#cf142b" extensions: - - .t - - .tu + - ".t" + - ".tu" tm_scope: source.turing ace_mode: text - + language_id: 375 Turtle: type: data extensions: - - .ttl + - ".ttl" tm_scope: source.turtle ace_mode: text - + language_id: 376 Twig: type: markup group: HTML extensions: - - .twig + - ".twig" tm_scope: text.html.twig ace_mode: twig - + language_id: 377 TypeScript: type: programming color: "#2b7489" aliases: - ts extensions: - - .ts - - .tsx + - ".ts" + - ".tsx" tm_scope: source.ts ace_mode: typescript - + language_id: 378 Unified Parallel C: type: programming group: C ace_mode: c_cpp color: "#4e3617" extensions: - - .upc + - ".upc" tm_scope: source.c - + language_id: 379 Unity3D Asset: type: data ace_mode: yaml extensions: - - .anim - - .asset - - .mat - - .meta - - .prefab - - .unity + - ".anim" + - ".asset" + - ".mat" + - ".meta" + - ".prefab" + - ".unity" tm_scope: source.yaml - + language_id: 380 Uno: type: programming extensions: - - .uno + - ".uno" ace_mode: csharp tm_scope: source.cs - + language_id: 381 UnrealScript: type: programming color: "#a54c4d" extensions: - - .uc + - ".uc" tm_scope: source.java ace_mode: java - + language_id: 382 UrWeb: type: programming aliases: - Ur/Web - Ur extensions: - - .ur - - .urs + - ".ur" + - ".urs" tm_scope: source.ur ace_mode: text - + language_id: 383 VCL: group: Perl type: programming extensions: - - .vcl + - ".vcl" tm_scope: source.varnish.vcl ace_mode: text - + language_id: 384 VHDL: type: programming color: "#adb2cb" extensions: - - .vhdl - - .vhd - - .vhf - - .vhi - - .vho - - .vhs - - .vht - - .vhw + - ".vhdl" + - ".vhd" + - ".vhf" + - ".vhi" + - ".vho" + - ".vhs" + - ".vht" + - ".vhw" ace_mode: vhdl - + language_id: 385 Vala: type: programming color: "#fbe5cd" extensions: - - .vala - - .vapi + - ".vala" + - ".vapi" ace_mode: vala - + language_id: 386 Verilog: type: programming color: "#b2b7f8" extensions: - - .v - - .veo + - ".v" + - ".veo" ace_mode: verilog - + language_id: 387 VimL: type: programming color: "#199f4b" @@ -4007,104 +4005,104 @@ VimL: - vim - nvim extensions: - - .vim + - ".vim" filenames: - - .nvimrc - - .vimrc + - ".nvimrc" + - ".vimrc" - _vimrc - gvimrc - nvimrc - vimrc ace_mode: text - + language_id: 388 Visual Basic: type: programming color: "#945db7" extensions: - - .vb - - .bas - - .cls - - .frm - - .frx - - .vba - - .vbhtml - - .vbs + - ".vb" + - ".bas" + - ".cls" + - ".frm" + - ".frx" + - ".vba" + - ".vbhtml" + - ".vbs" tm_scope: source.vbnet aliases: - vb.net - vbnet ace_mode: text - + language_id: 389 Volt: type: programming color: "#1F1F1F" extensions: - - .volt + - ".volt" tm_scope: source.d ace_mode: d - + language_id: 390 Vue: type: markup color: "#2c3e50" extensions: - - .vue + - ".vue" tm_scope: text.html.vue ace_mode: html - + language_id: 391 Wavefront Material: type: data extensions: - - .mtl + - ".mtl" tm_scope: source.wavefront.mtl ace_mode: text - + language_id: 392 Wavefront Object: type: data extensions: - - .obj + - ".obj" tm_scope: source.wavefront.obj ace_mode: text - + language_id: 393 Web Ontology Language: type: markup color: "#9cc9dd" extensions: - - .owl + - ".owl" tm_scope: text.xml ace_mode: xml - + language_id: 394 WebIDL: type: programming extensions: - - .webidl + - ".webidl" tm_scope: source.webidl ace_mode: text - + language_id: 395 World of Warcraft Addon Data: type: data extensions: - - .toc + - ".toc" tm_scope: source.toc ace_mode: text - + language_id: 396 X10: type: programming aliases: - xten ace_mode: text extensions: - - .x10 + - ".x10" color: "#4B6BEF" tm_scope: source.x10 - + language_id: 397 XC: type: programming color: "#99DA07" extensions: - - .xc + - ".xc" tm_scope: source.xc ace_mode: c_cpp - + language_id: 398 XML: type: data ace_mode: xml @@ -4113,94 +4111,94 @@ XML: - xsd - wsdl extensions: - - .xml - - .ant - - .axml - - .builds - - .ccxml - - .clixml - - .cproject - - .csl - - .csproj - - .ct - - .dita - - .ditamap - - .ditaval - - .dll.config - - .dotsettings - - .filters - - .fsproj - - .fxml - - .glade - - .gml - - .grxml - - .iml - - .ivy - - .jelly - - .jsproj - - .kml - - .launch - - .mdpolicy - - .mm - - .mod - - .mxml - - .nproj - - .nuspec - - .odd - - .osm - - .pkgproj - - .plist - - .pluginspec - - .props - - .ps1xml - - .psc1 - - .pt - - .rdf - - .resx - - .rss - - .sch - - .scxml - - .sfproj - - .srdf - - .storyboard - - .stTheme - - .sublime-snippet - - .targets - - .tmCommand - - .tml - - .tmLanguage - - .tmPreferences - - .tmSnippet - - .tmTheme - - .ts - - .tsx - - .ui - - .urdf - - .ux - - .vbproj - - .vcxproj - - .vssettings - - .vxml - - .wsdl - - .wsf - - .wxi - - .wxl - - .wxs - - .x3d - - .xacro - - .xaml - - .xib - - .xlf - - .xliff - - .xmi - - .xml.dist - - .xproj - - .xsd - - .xul - - .zcml + - ".xml" + - ".ant" + - ".axml" + - ".builds" + - ".ccxml" + - ".clixml" + - ".cproject" + - ".csl" + - ".csproj" + - ".ct" + - ".dita" + - ".ditamap" + - ".ditaval" + - ".dll.config" + - ".dotsettings" + - ".filters" + - ".fsproj" + - ".fxml" + - ".glade" + - ".gml" + - ".grxml" + - ".iml" + - ".ivy" + - ".jelly" + - ".jsproj" + - ".kml" + - ".launch" + - ".mdpolicy" + - ".mm" + - ".mod" + - ".mxml" + - ".nproj" + - ".nuspec" + - ".odd" + - ".osm" + - ".pkgproj" + - ".plist" + - ".pluginspec" + - ".props" + - ".ps1xml" + - ".psc1" + - ".pt" + - ".rdf" + - ".resx" + - ".rss" + - ".sch" + - ".scxml" + - ".sfproj" + - ".srdf" + - ".storyboard" + - ".stTheme" + - ".sublime-snippet" + - ".targets" + - ".tmCommand" + - ".tml" + - ".tmLanguage" + - ".tmPreferences" + - ".tmSnippet" + - ".tmTheme" + - ".ts" + - ".tsx" + - ".ui" + - ".urdf" + - ".ux" + - ".vbproj" + - ".vcxproj" + - ".vssettings" + - ".vxml" + - ".wsdl" + - ".wsf" + - ".wxi" + - ".wxl" + - ".wxs" + - ".x3d" + - ".xacro" + - ".xaml" + - ".xib" + - ".xlf" + - ".xliff" + - ".xmi" + - ".xml.dist" + - ".xproj" + - ".xsd" + - ".xul" + - ".zcml" filenames: - - .classpath - - .project + - ".classpath" + - ".project" - App.config - NuGet.config - Settings.StyleCop @@ -4208,178 +4206,178 @@ XML: - Web.Release.config - Web.config - packages.config - + language_id: 399 XPages: type: programming extensions: - - .xsp-config - - .xsp.metadata + - ".xsp-config" + - ".xsp.metadata" tm_scope: none ace_mode: xml - + language_id: 400 XProc: type: programming extensions: - - .xpl - - .xproc + - ".xpl" + - ".xproc" tm_scope: text.xml ace_mode: xml - + language_id: 401 XQuery: type: programming color: "#5232e7" extensions: - - .xquery - - .xq - - .xql - - .xqm - - .xqy + - ".xquery" + - ".xq" + - ".xql" + - ".xqm" + - ".xqy" ace_mode: xquery tm_scope: source.xq - + language_id: 402 XS: type: programming extensions: - - .xs + - ".xs" tm_scope: source.c ace_mode: c_cpp - + language_id: 403 XSLT: type: programming aliases: - xsl extensions: - - .xslt - - .xsl + - ".xslt" + - ".xsl" tm_scope: text.xml.xsl ace_mode: xml color: "#EB8CEB" - + language_id: 404 Xojo: type: programming extensions: - - .xojo_code - - .xojo_menu - - .xojo_report - - .xojo_script - - .xojo_toolbar - - .xojo_window + - ".xojo_code" + - ".xojo_menu" + - ".xojo_report" + - ".xojo_script" + - ".xojo_toolbar" + - ".xojo_window" tm_scope: source.vbnet ace_mode: text - + language_id: 405 Xtend: type: programming extensions: - - .xtend + - ".xtend" ace_mode: text - + language_id: 406 YAML: type: data tm_scope: source.yaml aliases: - yml extensions: - - .yml - - .reek - - .rviz - - .sublime-syntax - - .syntax - - .yaml - - .yaml-tmlanguage + - ".yml" + - ".reek" + - ".rviz" + - ".sublime-syntax" + - ".syntax" + - ".yaml" + - ".yaml-tmlanguage" filenames: - - .clang-format + - ".clang-format" ace_mode: yaml - + language_id: 407 YANG: type: data extensions: - - .yang + - ".yang" tm_scope: source.yang ace_mode: text - + language_id: 408 Yacc: type: programming extensions: - - .y - - .yacc - - .yy + - ".y" + - ".yacc" + - ".yy" tm_scope: source.bison ace_mode: text color: "#4B6C4B" - + language_id: 409 Zephir: type: programming color: "#118f9e" extensions: - - .zep + - ".zep" tm_scope: source.php.zephir ace_mode: php - + language_id: 410 Zimpl: type: programming extensions: - - .zimpl - - .zmpl - - .zpl + - ".zimpl" + - ".zmpl" + - ".zpl" tm_scope: none ace_mode: text - + language_id: 411 desktop: type: data extensions: - - .desktop - - .desktop.in + - ".desktop" + - ".desktop.in" tm_scope: source.desktop ace_mode: text - + language_id: 412 eC: type: programming color: "#913960" search_term: ec extensions: - - .ec - - .eh + - ".ec" + - ".eh" tm_scope: source.c.ec ace_mode: text - + language_id: 413 edn: type: data ace_mode: clojure extensions: - - .edn + - ".edn" tm_scope: source.clojure - + language_id: 414 fish: type: programming group: Shell interpreters: - fish extensions: - - .fish + - ".fish" tm_scope: source.fish ace_mode: text - + language_id: 415 mupad: type: programming extensions: - - .mu + - ".mu" ace_mode: text - + language_id: 416 nesC: type: programming color: "#94B0C7" extensions: - - .nc + - ".nc" ace_mode: text tm_scope: source.nesc - + language_id: 417 ooc: type: programming color: "#b0b77e" extensions: - - .ooc + - ".ooc" ace_mode: text - + language_id: 418 reStructuredText: type: prose wrap: true @@ -4387,20 +4385,20 @@ reStructuredText: aliases: - rst extensions: - - .rst - - .rest - - .rest.txt - - .rst.txt + - ".rst" + - ".rest" + - ".rest.txt" + - ".rst.txt" ace_mode: text - + language_id: 419 wisp: type: programming ace_mode: clojure color: "#7582D1" extensions: - - .wisp + - ".wisp" tm_scope: source.clojure - + language_id: 420 xBase: type: programming color: "#403a40" @@ -4409,8 +4407,9 @@ xBase: - clipper - foxpro extensions: - - .prg - - .ch - - .prw + - ".prg" + - ".ch" + - ".prw" tm_scope: source.harbour ace_mode: text + language_id: 421 diff --git a/script/set-language-ids b/script/set-language-ids new file mode 100755 index 00000000..ecbe1e76 --- /dev/null +++ b/script/set-language-ids @@ -0,0 +1,82 @@ +#!/usr/bin/env ruby +require 'yaml' +require 'pry' + +header = <<-EOF +# Defines all Languages known to GitHub. +# +# type - Either data, programming, markup, prose, or nil +# aliases - An Array of additional aliases (implicitly +# includes name.downcase) +# ace_mode - A String name of the Ace Mode used for highlighting whenever +# a file is edited. This must match one of the filenames in http://git.io/3XO_Cg. +# Use "text" if a mode does not exist. +# wrap - Boolean wrap to enable line wrapping (default: false) +# extensions - An Array of associated extensions (the first one is +# considered the primary extension, the others should be +# listed alphabetically) +# interpreters - An Array of associated interpreters +# searchable - Boolean flag to enable searching (defaults to true) +# search_term - Deprecated: Some languages may be indexed under a +# different alias. Avoid defining new exceptions. +# language_id - Integer used as a language-name-independent indexed field so that we can rename +# languages in Linguist without reindexing all the code on GitHub. Must not be +# changed for existing languages without the explicit permission of GitHub staff. +# color - CSS hex color to represent the language. +# tm_scope - The TextMate scope that represents this programming +# language. This should match one of the scopes listed in +# the grammars.yml file. Use "none" if there is no grammar +# for this language. +# group - Name of the parent language. Languages in a group are counted +# in the statistics as the parent language. +# +# Any additions or modifications (even trivial) should have corresponding +# test changes in `test/test_blob.rb`. +# +# Please keep this list alphabetized. Capitalization comes before lowercase. + +EOF + +generated = true if ARGV[0] == "--force" +update = true if ARGV[0] == "--update" + +if generated + puts "You're regenerating all of the language_id attributes for all Linguist " + puts "languages defined in languages.yml. This is almost certainly NOT what" + puts "you meant to do!" + + language_index = 0 + + languages = YAML.load(File.read("lib/linguist/languages.yml")) + languages.each do |name, vals| + vals.merge!('language_id' => language_index) + language_index += 1 + end + + File.write("lib/linguist/languages.yml", header + YAML.dump(languages)) +elsif update + puts "Adding new language_id attributes to languages.yml that don't have one set" + languages = YAML.load(File.read("lib/linguist/languages.yml")) + + # First grab the maximum language_id + language_ids = [] + languages.each { |name, vals| language_ids << vals['language_id'] if vals.has_key?('language_id')} + max_language_id = language_ids.max + puts "Current maximum language_id is #{max_language_id}" + + missing_count = 0 + language_index = max_language_id + + languages.each do |name, vals| + unless vals.has_key?('language_id') + language_index += 1 + missing_count += 1 + vals.merge!('language_id' => language_index) + end + end + + File.write("lib/linguist/languages.yml", header + YAML.dump(languages)) + puts "Updated language_id attributes for #{missing_count} languages" +else + puts "Whatever you want me to do, I can't figure it out. Giving up..." +end From 7cda13afcb85ead78acbb71488c808cbe6e3217f Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 12 Sep 2016 22:02:49 -0700 Subject: [PATCH 028/114] A Language should know about it's language_id --- lib/linguist/language.rb | 15 +++++++++++++++ test/test_language.rb | 8 ++++++++ 2 files changed, 23 insertions(+) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 9498e5a8..44c08401 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -289,6 +289,9 @@ module Linguist # Set legacy search term @search_term = attributes[:search_term] || default_alias_name + # Set the language_id + @language_id = attributes[:language_id] + # Set extensions or default to []. @extensions = attributes[:extensions] || [] @interpreters = attributes[:interpreters] || [] @@ -351,6 +354,17 @@ module Linguist # Returns the name String attr_reader :search_term + # Public: Get language_id (used in GitHub search) + # + # Examples + # + # # => "1" + # # => "2" + # # => "3" + # + # Returns the integer language_id + attr_reader :language_id + # Public: Get the name of a TextMate-compatible scope # # Returns the scope @@ -547,6 +561,7 @@ module Linguist :group_name => options['group'], :searchable => options.fetch('searchable', true), :search_term => options['search_term'], + :language_id => options['language_id'], :extensions => Array(options['extensions']), :interpreters => options['interpreters'].sort, :filenames => options['filenames'], diff --git a/test/test_language.rb b/test/test_language.rb index 5613f235..c743f089 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -386,6 +386,14 @@ class TestLanguage < Minitest::Test assert missing.empty?, message end + def test_all_languages_have_a_language_id_set + missing = Language.all.select { |language| language.language_id.nil? } + + message = "The following languages do not have a language_id listed in languages.yml. Please add language_id fields for all new languages.\n" + missing.each { |language| message << "#{language.name}\n" } + assert missing.empty?, message + end + def test_all_languages_have_a_valid_ace_mode ace_fixture_path = File.join('test', 'fixtures', 'ace_modes.json') skip("No ace_modes.json file") unless File.exist?(ace_fixture_path) From 1f43664a519de7341199cbc43393e3e28d264e16 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 12 Sep 2016 22:10:59 -0700 Subject: [PATCH 029/114] Adding some tests for some known language_ids --- test/test_language.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/test_language.rb b/test/test_language.rb index c743f089..3db33b54 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -67,6 +67,16 @@ class TestLanguage < Minitest::Test assert_nil Language.find_by_alias(nil) end + # Note these are set by script/set-language-ids. If these tests fail then someone + # has changed the language_id fields set in languages.yml which is almost certainly + # not what you want to happen (these fields are used in GitHub's search indexes) + def test_language_ids + assert_equal 4, Language['ANTLR'].language_id + assert_equal 54, Language['Ceylon'].language_id + assert_equal 326, Language['Ruby'].language_id + assert_equal 421, Language['xBase'].language_id + end + def test_groups # Test a couple identity cases assert_equal Language['Perl'], Language['Perl'].group From b71bf19e37f9164609bdf4961b7503fdca69c602 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 13 Sep 2016 11:04:49 +0200 Subject: [PATCH 030/114] Fix Elm highlighting Elm grammar repository contains several YAML files with a source.elm scope We need to restrict the path to the Syntaxes directory to make sure we select the appropriate YAML file --- grammars.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grammars.yml b/grammars.yml index 08d15e64..e51e8848 100755 --- a/grammars.yml +++ b/grammars.yml @@ -20,7 +20,7 @@ vendor/grammars/ColdFusion: - text.html.cfm vendor/grammars/Docker.tmbundle: - source.dockerfile -vendor/grammars/Elm: +vendor/grammars/Elm/Syntaxes: - source.elm - text.html.mediawiki.elm-build-output - text.html.mediawiki.elm-documentation From 65201b322a8965b2c6a682057c89d2ccbb01a43d Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 13 Sep 2016 13:10:07 +0200 Subject: [PATCH 031/114] Test the uniqueness of language ids --- test/test_language.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/test_language.rb b/test/test_language.rb index 3db33b54..618da726 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -404,6 +404,14 @@ class TestLanguage < Minitest::Test assert missing.empty?, message end + def test_all_language_id_are_unique + duplicates = Language.all.group_by{ |language| language.language_id }.select { |k, v| v.size > 1 }.map(&:first) + + message = "The following language_id are used several times in languages.yml. Please use script/set-language-ids --update as per the contribution guidelines.\n" + duplicates.each { |language_id| message << "#{language_id}\n" } + assert duplicates.empty?, message + end + def test_all_languages_have_a_valid_ace_mode ace_fixture_path = File.join('test', 'fixtures', 'ace_modes.json') skip("No ace_modes.json file") unless File.exist?(ace_fixture_path) From 3310d925b68d0336a8158afb567023b52e7a7db0 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 13 Sep 2016 13:33:29 +0200 Subject: [PATCH 032/114] Lock awk grammar to last working version --- .gitmodules | 2 +- vendor/grammars/awk-sublime | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index f45edd4d..1cacfda2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,7 +12,7 @@ url = https://github.com/Drako/SublimeBrainfuck [submodule "vendor/grammars/awk-sublime"] path = vendor/grammars/awk-sublime - url = https://github.com/JohnNilsson/awk-sublime + url = https://github.com/github-linguist/awk-sublime [submodule "vendor/grammars/Sublime-SQF-Language"] path = vendor/grammars/Sublime-SQF-Language url = https://github.com/JonBons/Sublime-SQF-Language diff --git a/vendor/grammars/awk-sublime b/vendor/grammars/awk-sublime index 792d9215..72b487a1 160000 --- a/vendor/grammars/awk-sublime +++ b/vendor/grammars/awk-sublime @@ -1 +1 @@ -Subproject commit 792d9215315758c505a44a325b910bedc87bd10b +Subproject commit 72b487a1046d86b8a195b38fa18802d2abe30370 From 8a622823b013a2191e660b1695607a36176b3afb Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 13 Sep 2016 13:47:03 +0200 Subject: [PATCH 033/114] Lock NSIS grammar to last working version --- .gitmodules | 2 +- vendor/grammars/NSIS | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 1cacfda2..011e6e4f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -30,7 +30,7 @@ url = https://github.com/SublimeText/ColdFusion [submodule "vendor/grammars/NSIS"] path = vendor/grammars/NSIS - url = https://github.com/SublimeText/NSIS + url = https://github.com/github-linguist/NSIS [submodule "vendor/grammars/NimLime"] path = vendor/grammars/NimLime url = https://github.com/Varriount/NimLime diff --git a/vendor/grammars/NSIS b/vendor/grammars/NSIS index 171bb32a..696d06cb 160000 --- a/vendor/grammars/NSIS +++ b/vendor/grammars/NSIS @@ -1 +1 @@ -Subproject commit 171bb32ae1bade20f933675b046a101f26970123 +Subproject commit 696d06cb2bd0dfc619c989c746e4b43eea689161 From b4a77abd82d9613f35790bc8e0b251ffd028542b Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 13 Sep 2016 13:50:57 +0200 Subject: [PATCH 034/114] Lock SourcePawn grammar to last working version --- .gitmodules | 2 +- vendor/grammars/sourcepawn | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 011e6e4f..fa4fd377 100644 --- a/.gitmodules +++ b/.gitmodules @@ -667,7 +667,7 @@ url = https://github.com/goblindegook/sublime-text-pig-latin [submodule "vendor/grammars/sourcepawn"] path = vendor/grammars/sourcepawn - url = https://github.com/austinwagner/sublime-sourcepawn + url = https://github.com/github-linguist/sublime-sourcepawn [submodule "vendor/grammars/gdscript"] path = vendor/grammars/gdscript url = https://github.com/beefsack/GDScript-sublime diff --git a/vendor/grammars/sourcepawn b/vendor/grammars/sourcepawn index 294d3ba0..d5e1022a 160000 --- a/vendor/grammars/sourcepawn +++ b/vendor/grammars/sourcepawn @@ -1 +1 @@ -Subproject commit 294d3ba0972f0456d9d3f554dcd8f97b51aa4d40 +Subproject commit d5e1022a4e09cdba32b416e682a2c31c72240733 From a3227c2c27f9a3b76ebae727c3eb2386e3aa3582 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 13 Sep 2016 11:09:05 -0700 Subject: [PATCH 035/114] Adding basic find_by_id functionality to Language --- lib/linguist/language.rb | 24 ++++++++++++++++++++---- test/test_language.rb | 6 ++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 44c08401..7ae48b17 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -20,10 +20,11 @@ module Linguist # # Languages are defined in `lib/linguist/languages.yml`. class Language - @languages = [] - @index = {} - @name_index = {} - @alias_index = {} + @languages = [] + @index = {} + @name_index = {} + @alias_index = {} + @language_id_index = {} @extension_index = Hash.new { |h,k| h[k] = [] } @interpreter_index = Hash.new { |h,k| h[k] = [] } @@ -84,6 +85,8 @@ module Linguist @filename_index[filename] << language end + @language_id_index[language.language_id] = language + language end @@ -193,6 +196,19 @@ module Linguist @interpreter_index[interpreter] end + # Public: Look up Languages by its language_id. + # + # language_id - Integer of language_id + # + # Examples + # + # Language.find_by_id(100) + # # => [#] + # + # Returns the matching Language + def self.find_by_id(language_id) + @language_id_index[language_id.to_i] + end # Public: Look up Language by its name. # diff --git a/test/test_language.rb b/test/test_language.rb index 3db33b54..58430455 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -77,6 +77,12 @@ class TestLanguage < Minitest::Test assert_equal 421, Language['xBase'].language_id end + def test_find_by_id + assert_equal Language['Elixir'], Language.find_by_id(100) + assert_equal Language['Ruby'], Language.find_by_id(326) + assert_equal Language['xBase'], Language.find_by_id(421) + end + def test_groups # Test a couple identity cases assert_equal Language['Perl'], Language['Perl'].group From a53423b6e070603006f790d9d480ce0542da05df Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 13 Sep 2016 11:33:20 -0700 Subject: [PATCH 036/114] Grammar updates --- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-shellscript | 2 +- vendor/grammars/sublime-autoit | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index c30e13f9..b3d2bb64 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit c30e13f94a3e5d725afb0acc70e05774a6c0026b +Subproject commit b3d2bb649a2a2b2f1e8bf391bcd50c603ac1e127 diff --git a/vendor/grammars/language-shellscript b/vendor/grammars/language-shellscript index 6b936dae..6d66ca58 160000 --- a/vendor/grammars/language-shellscript +++ b/vendor/grammars/language-shellscript @@ -1 +1 @@ -Subproject commit 6b936daeca50d0551a44b0d014e9debbf02516e9 +Subproject commit 6d66ca58c030a9509b9e01ce57456511c529eb6a diff --git a/vendor/grammars/sublime-autoit b/vendor/grammars/sublime-autoit index eeca5030..6d87c55f 160000 --- a/vendor/grammars/sublime-autoit +++ b/vendor/grammars/sublime-autoit @@ -1 +1 @@ -Subproject commit eeca5030567213210108fb24d123399575fd94ae +Subproject commit 6d87c55fd089950a456c864ce50f7d227f2bb06a From 6841b4d25994bfc5b8cd638a64867ecfa0401a8d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 13 Sep 2016 11:37:42 -0700 Subject: [PATCH 037/114] Updating to v4.8.11 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 0b373538..cc20528a 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.8.10" + VERSION = "4.8.11" end From 65491d460e3eb9905cf0e6712a95f28d247cf49f Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Wed, 14 Sep 2016 22:49:00 +0200 Subject: [PATCH 038/114] Remove support for .sublime-syntax --- script/convert-grammars | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/script/convert-grammars b/script/convert-grammars index e267907d..2155827f 100755 --- a/script/convert-grammars +++ b/script/convert-grammars @@ -42,7 +42,7 @@ class DirectoryPackage case File.extname(path.downcase) when '.plist' path.split('/')[-2] == 'Syntaxes' - when '.tmlanguage', '.yaml-tmlanguage', '.sublime-syntax' + when '.tmlanguage', '.yaml-tmlanguage' true when '.cson', '.json' path.split('/')[-2] == 'grammars' @@ -114,7 +114,7 @@ class SVNPackage def fetch(tmp_dir) `svn export -q "#{url}/Syntaxes" "#{tmp_dir}/Syntaxes"` raise "Failed to export SVN repository: #{url}: #{$?.to_s}" unless $?.success? - Dir["#{tmp_dir}/Syntaxes/*.{plist,tmLanguage,tmlanguage,YAML-tmLanguage,sublime-syntax}"] + Dir["#{tmp_dir}/Syntaxes/*.{plist,tmLanguage,tmlanguage,YAML-tmLanguage}"] end end @@ -148,7 +148,7 @@ def load_grammar(path) case File.extname(path.downcase) when '.plist', '.tmlanguage' Plist::parse_xml(path) - when '.yaml-tmlanguage', '.sublime-syntax' + when '.yaml-tmlanguage' content = File.read(path) # Attempt to parse YAML file even if it has a YAML 1.2 header if content.lines[0] =~ /^%YAML[ :]1\.2/ @@ -180,7 +180,7 @@ def load_grammars(tmp_dir, source, all_scopes) else SingleFile.new(source) end - elsif source.end_with?('.tmLanguage', '.plist', '.YAML-tmLanguage', '.sublime-syntax') + elsif source.end_with?('.tmLanguage', '.plist', '.YAML-tmLanguage') SingleGrammar.new(source) elsif source.start_with?('https://github.com') GitHubPackage.new(source) From 600115afedd9d9f13ddc0129d6bddb86013731c9 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 14 Sep 2016 16:01:19 -0700 Subject: [PATCH 039/114] Bumping to v4.8.12 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index cc20528a..1fbf952c 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.8.11" + VERSION = "4.8.12" end From cd288a8ee446938d5e34a62bbd07aee59a34ef6c Mon Sep 17 00:00:00 2001 From: Alhadis Date: Thu, 15 Sep 2016 17:06:59 +1000 Subject: [PATCH 040/114] Add .gnus, .viper and Project.ede as Emacs Lisp extensions --- lib/linguist/languages.yml | 3 +++ samples/Emacs Lisp/filenames/.gnus | 20 ++++++++++++++ samples/Emacs Lisp/filenames/.viper | 10 +++++++ samples/Emacs Lisp/filenames/Project.ede | 34 ++++++++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 samples/Emacs Lisp/filenames/.gnus create mode 100644 samples/Emacs Lisp/filenames/.viper create mode 100644 samples/Emacs Lisp/filenames/Project.ede diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 861a7efa..495d25e1 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1039,7 +1039,10 @@ Emacs Lisp: filenames: - ".emacs" - ".emacs.desktop" + - ".gnus" - ".spacemacs" + - ".viper" + - "Project.ede" extensions: - ".el" - ".emacs" diff --git a/samples/Emacs Lisp/filenames/.gnus b/samples/Emacs Lisp/filenames/.gnus new file mode 100644 index 00000000..bfd859dd --- /dev/null +++ b/samples/Emacs Lisp/filenames/.gnus @@ -0,0 +1,20 @@ +(setq user-full-name "Alhadis") +(setq user-mail-address "fake.account@gmail.com") + +(auto-image-file-mode) +(setq mm-inline-large-images t) +(add-to-list 'mm-attachment-override-types "image/*") + +(setq gnus-select-method + '(nnimap "gmail" + (nnimap-address "imap.gmail.com") + (nnimap-server-port 777) + (nnimap-stream ssl))) + +(setq message-send-mail-function 'smtpmail-send-it + smtpmail-starttls-credentials '(("smtp.gmail.com" 600 nil nil)) + smtpmail-auth-credentials '(("smtp.gmail.com" 700 "me@lisp.com" nil)) + smtpmail-default-smtp-server "smtp.gmail.com" + smtpmail-smtp-server "smtp.gmail.com" + smtpmail-smtp-service 800 + setq gnus-ignored-from-addresses "^from\\.Telstra[ \t\r\n]+Thanks") diff --git a/samples/Emacs Lisp/filenames/.viper b/samples/Emacs Lisp/filenames/.viper new file mode 100644 index 00000000..c3eeb658 --- /dev/null +++ b/samples/Emacs Lisp/filenames/.viper @@ -0,0 +1,10 @@ +(setq viper-inhibit-startup-message 't) +(setq viper-expert-level '5) + +; Key bindings +(define-key viper-vi-global-user-map "\C-d" 'end-of-line) + +; Return to top of window +(defun my-viper-return-to-top () + (interactive) + (beginning-of-buffer)) diff --git a/samples/Emacs Lisp/filenames/Project.ede b/samples/Emacs Lisp/filenames/Project.ede new file mode 100644 index 00000000..36a0c8bd --- /dev/null +++ b/samples/Emacs Lisp/filenames/Project.ede @@ -0,0 +1,34 @@ +;; Object EDE +(ede-proj-project "Linguist" + :name "Linguist" + :version "4.9" + :file "Project.ede" + :targets (list + (ede-proj-target-elisp-autoloads "autoloads" + :name "autoloads" + :path "test/samples/Emacs Lisp" + :autoload-file "dude.el" + ) + (ede-proj-target-elisp "init" + :name "init" + :path "" + :source '("ede-load.el" "wait-what.el") + :compiler 'ede-emacs-preload-compiler + :pre-load-packages '("sample-names") + ) + (ede-proj-target-elisp "what" + :name "the" + :path "" + :source '("h.el" "am-i-writing.el") + :versionsource '("hell.el") + :compiler 'ede-emacs-preload-compiler + :aux-packages '("what" "the" "hell-files" "am-i-writing") + ) + ) + :web-site-url "https://github.com/github/linguist" + :web-site-directory "../" + :web-site-file "CONTRIBUTING.md" + :ftp-upload-site "/ftp@git.hub.com:/madeup" + :configuration-variables 'nil + :metasubproject 't + ) From 81ca6e776662312881b0bd1391ed495e09871b44 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Thu, 15 Sep 2016 18:57:13 +1000 Subject: [PATCH 041/114] Add "abbrev_defs" and "_emacs" as Elisp filenames --- lib/linguist/languages.yml | 3 + samples/Emacs Lisp/filenames/.abbrev_defs | 6 ++ samples/Emacs Lisp/filenames/_emacs | 70 +++++++++++++++++++++++ samples/Emacs Lisp/filenames/abbrev_defs | 8 +++ 4 files changed, 87 insertions(+) create mode 100644 samples/Emacs Lisp/filenames/.abbrev_defs create mode 100644 samples/Emacs Lisp/filenames/_emacs create mode 100644 samples/Emacs Lisp/filenames/abbrev_defs diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 495d25e1..8b3d39e5 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1037,12 +1037,15 @@ Emacs Lisp: - elisp - emacs filenames: + - ".abbrev_defs" - ".emacs" - ".emacs.desktop" - ".gnus" - ".spacemacs" - ".viper" - "Project.ede" + - "_emacs" + - "abbrev_defs" extensions: - ".el" - ".emacs" diff --git a/samples/Emacs Lisp/filenames/.abbrev_defs b/samples/Emacs Lisp/filenames/.abbrev_defs new file mode 100644 index 00000000..dc29dfde --- /dev/null +++ b/samples/Emacs Lisp/filenames/.abbrev_defs @@ -0,0 +1,6 @@ +(define-abbrev-table 'c-mode-abbrev-table '( + )) +(define-abbrev-table 'fundamental-mode-abbrev-table '( + ("TM" "™" nil 0) + ("(R)" "®" nil 0) + ("C=" "€" nil 0))) diff --git a/samples/Emacs Lisp/filenames/_emacs b/samples/Emacs Lisp/filenames/_emacs new file mode 100644 index 00000000..4968f8eb --- /dev/null +++ b/samples/Emacs Lisp/filenames/_emacs @@ -0,0 +1,70 @@ +;; UTF-8 support +;; (set-language-environment "UTF-8") +(setenv "LANG" "en_AU.UTF-8") +(setenv "LC_ALL" "en_AU.UTF-8") +(setq default-tab-width 4) + + +;;; Function to load all ".el" files in ~/.emacs.d/config +(defun load-directory (directory) + "Recursively load all Emacs Lisp files in a directory." + (dolist (element (directory-files-and-attributes directory nil nil nil)) + (let* ((path (car element)) + (fullpath (concat directory "/" path)) + (isdir (car (cdr element))) + (ignore-dir (or (string= path ".") (string= path "..")))) + (cond + ((and (eq isdir t) (not ignore-dir)) + (load-directory fullpath)) + ((and (eq isdir nil) (string= (substring path -3) ".el")) + (load (file-name-sans-extension fullpath))))))) + +;; Tell Emacs we'd like to use Hunspell for spell-checking +(setq ispell-program-name (executable-find "hunspell")) + +;; Load Homebrew-installed packages +(let ((default-directory "/usr/local/share/emacs/site-lisp/")) + (normal-top-level-add-subdirs-to-load-path)) +(load "aggressive-indent") +(add-hook 'emacs-lisp-mode-hook #'aggressive-indent-mode) +(autoload 'rust-mode "rust-mode" nil t) +(add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode)) + +;; Load Git-related syntax highlighting +(add-to-list 'load-path "~/.emacs.d/lisp/") +(load "git-modes") +(load "git-commit") + +;; Keybindings +(global-set-key (kbd "C-u") (lambda () + (interactive) + (kill-line 0))) + +;; Show cursor's current column number +(setq column-number-mode t) + +;; Disable autosave +(setq auto-save-default nil) + +;; Use a single directory for storing backup files +(setq backup-directory-alist `(("." . "~/.emacs.d/auto-save-list"))) +(setq backup-by-copying t) +(setq delete-old-versions t + kept-new-versions 6 + kept-old-versions 2 + version-control t) + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(blink-cursor-mode nil) + '(column-number-mode t) + '(show-paren-mode t)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) diff --git a/samples/Emacs Lisp/filenames/abbrev_defs b/samples/Emacs Lisp/filenames/abbrev_defs new file mode 100644 index 00000000..87dfad8c --- /dev/null +++ b/samples/Emacs Lisp/filenames/abbrev_defs @@ -0,0 +1,8 @@ +(define-abbrev-table 'fundamental-mode-abbrev-table '( + ("cat" "Concatenate" nil 0) + ("WTF" "World Trade Federation " nil 0) + ("rtbtm" "Read that back to me" nil 0))) + +(define-abbrev-table 'shell-script-mode-abbrev-table '( + ("brake", "bundle rake exec" nil 0) + ("pls", "warning: setting Encoding.default_external"))) From 00efd6a463d198ae5b3c0482fb66e9f7cb71e7cd Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 15 Sep 2016 19:24:53 +0200 Subject: [PATCH 042/114] Add FORTRAN keyword "data" to .f and .for heuristics. (#3218) bug-185631.f sample from OpenFortranProject; BSD license. --- lib/linguist/heuristics.rb | 2 +- samples/FORTRAN/bug-185631.f | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 samples/FORTRAN/bug-185631.f diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index ea3823e9..1d5196f4 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -144,7 +144,7 @@ module Linguist end end - fortran_rx = /^([c*][^abd-z]| (subroutine|program|end)\s|\s*!)/i + fortran_rx = /^([c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)/i disambiguate ".f" do |data| if /^: /.match(data) diff --git a/samples/FORTRAN/bug-185631.f b/samples/FORTRAN/bug-185631.f new file mode 100644 index 00000000..abdf87b0 --- /dev/null +++ b/samples/FORTRAN/bug-185631.f @@ -0,0 +1,6 @@ +! Codes/HYCOM/hycom/ATLb2.00/src_2.0.01_22_one/ + real onemu, twomu + data onemu/0.0098/ + data twomu/1./ + data threemu/0.e9/ + end From 5bc88814e2a88c919a95eaf6df6f797cee9d973e Mon Sep 17 00:00:00 2001 From: Alhadis Date: Fri, 16 Sep 2016 02:47:26 +1000 Subject: [PATCH 043/114] Swap grammar used for Vimscript highlighting --- .gitmodules | 6 ++--- grammars.yml | 4 ++-- lib/linguist/languages.yml | 1 + vendor/grammars/Sublime-VimL | 1 - vendor/grammars/language-viml | 1 + vendor/licenses/grammar/language-viml.txt | 27 +++++++++++++++++++++++ 6 files changed, 34 insertions(+), 6 deletions(-) delete mode 160000 vendor/grammars/Sublime-VimL create mode 160000 vendor/grammars/language-viml create mode 100644 vendor/licenses/grammar/language-viml.txt diff --git a/.gitmodules b/.gitmodules index fa4fd377..cbf7a602 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,9 +22,9 @@ [submodule "vendor/grammars/Sublime-REBOL"] path = vendor/grammars/Sublime-REBOL url = https://github.com/Oldes/Sublime-REBOL -[submodule "vendor/grammars/Sublime-VimL"] - path = vendor/grammars/Sublime-VimL - url = https://github.com/SalGnt/Sublime-VimL +[submodule "vendor/grammars/language-viml"] + path = vendor/grammars/language-viml + url = https://github.com/Alhadis/language-viml [submodule "vendor/grammars/ColdFusion"] path = vendor/grammars/ColdFusion url = https://github.com/SublimeText/ColdFusion diff --git a/grammars.yml b/grammars.yml index e51e8848..3a38ca96 100755 --- a/grammars.yml +++ b/grammars.yml @@ -103,8 +103,6 @@ vendor/grammars/Sublime-SQF-Language: vendor/grammars/Sublime-Text-2-OpenEdge-ABL: - source.abl - text.html.abl -vendor/grammars/Sublime-VimL: -- source.viml vendor/grammars/SublimeBrainfuck: - source.bf vendor/grammars/SublimeClarion: @@ -414,6 +412,8 @@ vendor/grammars/language-toc-wow: - source.toc vendor/grammars/language-turing: - source.turing +vendor/grammars/language-viml: +- source.viml vendor/grammars/language-wavefront: - source.wavefront.mtl - source.wavefront.obj diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 861a7efa..4919a9ab 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4001,6 +4001,7 @@ VimL: type: programming color: "#199f4b" search_term: vim + tm_scope: source.viml aliases: - vim - nvim diff --git a/vendor/grammars/Sublime-VimL b/vendor/grammars/Sublime-VimL deleted file mode 160000 index b453aff6..00000000 --- a/vendor/grammars/Sublime-VimL +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b453aff6f783769b6b895986da605a2db0db7379 diff --git a/vendor/grammars/language-viml b/vendor/grammars/language-viml new file mode 160000 index 00000000..ccdaff45 --- /dev/null +++ b/vendor/grammars/language-viml @@ -0,0 +1 @@ +Subproject commit ccdaff4535b5720e9a89460afcc7b8dc65f46d27 diff --git a/vendor/licenses/grammar/language-viml.txt b/vendor/licenses/grammar/language-viml.txt new file mode 100644 index 00000000..0bb64e03 --- /dev/null +++ b/vendor/licenses/grammar/language-viml.txt @@ -0,0 +1,27 @@ +--- +type: grammar +name: language-viml +license: mit +--- +The MIT License (MIT) + +Copyright (c) 2014-2016 Evan Hahn +Copyright (c) 2016 John Gardner + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. From 5fd8d718582480bd93ac19b612bb91e6351b76ea Mon Sep 17 00:00:00 2001 From: Alhadis Date: Fri, 16 Sep 2016 06:17:16 +1000 Subject: [PATCH 044/114] Remove license for old grammar --- vendor/licenses/grammar/Sublime-VimL.txt | 26 ------------------------ 1 file changed, 26 deletions(-) delete mode 100644 vendor/licenses/grammar/Sublime-VimL.txt diff --git a/vendor/licenses/grammar/Sublime-VimL.txt b/vendor/licenses/grammar/Sublime-VimL.txt deleted file mode 100644 index fe443d3e..00000000 --- a/vendor/licenses/grammar/Sublime-VimL.txt +++ /dev/null @@ -1,26 +0,0 @@ ---- -type: grammar -name: Sublime-VimL -license: mit ---- -The MIT License (MIT) - -Copyright (c) 2014 Max Vasiliev, Salvatore Gentile - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. From 697380336c980420f4ea1038cc8b0b6287f015ff Mon Sep 17 00:00:00 2001 From: Alhadis Date: Sat, 17 Sep 2016 19:45:43 +1000 Subject: [PATCH 045/114] Revise pattern for Emacs modeline detection This is a rewrite of the regex that handles Emacs modeline matching. The current one is a little flaky, causing some files to be misclassified as "E", among other things. It's worth noting malformed modelines can still change a file's language in Emacs. Provided the -*- delimiters are intact, and the mode's name is decipherable, Emacs will set the appropriate language mode *and* display a warning about a malformed modeline: -*- foo-bar mode: ruby -*- # Malformed, but understandable -*- mode: ruby--*- # Completely invalid The new pattern accommodates this leniency, making no effort to validate a modeline's syntax beyond readable mode-names. In other words, if Emacs accepts certain errors, we should too. --- lib/linguist/strategy/modeline.rb | 31 ++++++++++++++++++- .../Data/Modelines/seeplusplusEmacs10 | 3 ++ .../Data/Modelines/seeplusplusEmacs11 | 1 + .../Data/Modelines/seeplusplusEmacs12 | 1 + test/test_modelines.rb | 6 ++++ 5 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs10 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs11 create mode 100644 test/fixtures/Data/Modelines/seeplusplusEmacs12 diff --git a/lib/linguist/strategy/modeline.rb b/lib/linguist/strategy/modeline.rb index 4e16a03c..56b33aae 100644 --- a/lib/linguist/strategy/modeline.rb +++ b/lib/linguist/strategy/modeline.rb @@ -1,7 +1,36 @@ module Linguist module Strategy class Modeline - EMACS_MODELINE = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i + EMACS_MODELINE = / + -\*- + (?: + # Short form: `-*- ruby -*-` + \s* (?= [^:;\s]+ \s* -\*-) + | + # Longer form: `-*- foo:bar; mode: ruby; -*-` + (?: + .*? # Preceding variables: `-*- foo:bar bar:baz;` + [;\s] # Which are delimited by spaces or semicolons + | + (?<=-\*-) # Not preceded by anything: `-*-mode:ruby-*-` + ) + mode # Major mode indicator + \s*:\s* # Allow whitespace around colon: `mode : ruby` + ) + ([^:;\s]+) # Name of mode + + # Ensure the mode is terminated correctly + (?= + # Followed by semicolon or whitespace + [\s;] + | + # Touching the ending sequence: `ruby-*-` + (? Date: Mon, 19 Sep 2016 22:03:57 +0300 Subject: [PATCH 046/114] add support for MQL4 and MQL5 --- .gitmodules | 3 + grammars.yml | 2 + lib/linguist/languages.yml | 18 + samples/MQL4/header-sample.mqh | 47 + samples/MQL4/indicator-sample.mq4 | 61 + samples/MQL4/script-sample.mq4 | 51 + samples/MQL5/Regex.mqh | 1390 ++++++++++++++++++++++ samples/MQL5/indicator-sample.mq5 | 64 + samples/MQL5/script-sample.mq5 | 56 + vendor/grammars/MQL5-sublime | 1 + vendor/licenses/grammar/MQL5-sublime.txt | 26 + 11 files changed, 1719 insertions(+) create mode 100644 samples/MQL4/header-sample.mqh create mode 100644 samples/MQL4/indicator-sample.mq4 create mode 100644 samples/MQL4/script-sample.mq4 create mode 100644 samples/MQL5/Regex.mqh create mode 100644 samples/MQL5/indicator-sample.mq5 create mode 100644 samples/MQL5/script-sample.mq5 create mode 160000 vendor/grammars/MQL5-sublime create mode 100644 vendor/licenses/grammar/MQL5-sublime.txt diff --git a/.gitmodules b/.gitmodules index fa4fd377..c5562152 100644 --- a/.gitmodules +++ b/.gitmodules @@ -791,3 +791,6 @@ [submodule "vendor/grammars/language-babel"] path = vendor/grammars/language-babel url = https://github.com/github-linguist/language-babel +[submodule "vendor/grammars/MQL5-sublime"] + path = vendor/grammars/MQL5-sublime + url = https://github.com/mqsoft/MQL5-sublime diff --git a/grammars.yml b/grammars.yml index e51e8848..9df93f90 100755 --- a/grammars.yml +++ b/grammars.yml @@ -47,6 +47,8 @@ vendor/grammars/Lean.tmbundle: - source.lean vendor/grammars/LiveScript.tmbundle: - source.livescript +vendor/grammars/MQL5-sublime: +- source.mql5 vendor/grammars/MagicPython: - source.python - source.regexp.python diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 861a7efa..b021dcb7 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2208,6 +2208,24 @@ MAXScript: tm_scope: source.maxscript ace_mode: text language_id: 217 +MQL4: + type: programming + color: "#62A8D6" + extensions: + - ".mq4" + - ".mqh" + tm_scope: source.mql5 + ace_mode: c_cpp + language_id: 422 +MQL5: + type: programming + color: "#4A76B8" + extensions: + - ".mq5" + - ".mqh" + tm_scope: source.mql5 + ace_mode: c_cpp + language_id: 423 MTML: type: markup color: "#b7e1f4" diff --git a/samples/MQL4/header-sample.mqh b/samples/MQL4/header-sample.mqh new file mode 100644 index 00000000..4b5d2a18 --- /dev/null +++ b/samples/MQL4/header-sample.mqh @@ -0,0 +1,47 @@ +//+------------------------------------------------------------------+ +//| header-sample.mqh | +//| Copyright 2016, Andrey Osorgin | +//+------------------------------------------------------------------+ +//| The MIT License (MIT) | +//| | +//| Permission is hereby granted, free of charge, to any person | +//| obtaining a copy of this software and associated documentation | +//| files (the "Software"), to deal in the Software without | +//| restriction, including without limitation the rights to use, | +//| copy, modify, merge, publish, distribute, sublicense, and/or sell| +//| copies of the Software, and to permit persons to whom the | +//| Software is furnished to do so, subject to the following | +//| conditions: | +//| | +//| The above copyright notice and this permission notice shall be | +//| included in all copies or substantial portions of the Software. | +//| | +//| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | +//| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | +//| OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | +//| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | +//| HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | +//| WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | +//| FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | +//| OTHER DEALINGS IN THE SOFTWARE. | +//| | +//| A copy of the MIT License (MIT) is available at | +//| https://opensource.org/licenses/MIT | +//+------------------------------------------------------------------+ +#property strict +//+------------------------------------------------------------------+ +//| | +//+------------------------------------------------------------------+ +class CSomeObject + { +protected: + int m_someproperty; +private: + bool SomeFunction() {return true;} +public: + CSomeObject(void): m_someproperty(0) {} + ~CSomeObject(void) {} + void SetName(int n){m_someproperty=n;}// sets somepropery + int GetName(){return(m_someproperty);} // returns someproperty + }; +//+------------------------------------------------------------------+ diff --git a/samples/MQL4/indicator-sample.mq4 b/samples/MQL4/indicator-sample.mq4 new file mode 100644 index 00000000..e19d2868 --- /dev/null +++ b/samples/MQL4/indicator-sample.mq4 @@ -0,0 +1,61 @@ +//+------------------------------------------------------------------+ +//| indicator-sample.mq4 | +//| Copyright 2016, Andrey Osorgin | +//+------------------------------------------------------------------+ +//| The MIT License (MIT) | +//| | +//| Permission is hereby granted, free of charge, to any person | +//| obtaining a copy of this software and associated documentation | +//| files (the "Software"), to deal in the Software without | +//| restriction, including without limitation the rights to use, | +//| copy, modify, merge, publish, distribute, sublicense, and/or sell| +//| copies of the Software, and to permit persons to whom the | +//| Software is furnished to do so, subject to the following | +//| conditions: | +//| | +//| The above copyright notice and this permission notice shall be | +//| included in all copies or substantial portions of the Software. | +//| | +//| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | +//| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | +//| OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | +//| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | +//| HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | +//| WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | +//| FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | +//| OTHER DEALINGS IN THE SOFTWARE. | +//| | +//| A copy of the MIT License (MIT) is available at | +//| https://opensource.org/licenses/MIT | +//+------------------------------------------------------------------+ +#property version "1.00" +#property strict + +#property indicator_chart_window +#property indicator_plots 0 +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +void OnInit(void) + { + //--- + } +//+------------------------------------------------------------------+ +//| Bears Power | +//+------------------------------------------------------------------+ +int OnCalculate(const int rates_total, + const int prev_calculated, + const datetime &time[], + const double &open[], + const double &high[], + const double &low[], + const double &close[], + const long &tick_volume[], + const long &volume[], + const int &spread[]) + { + Print("The number of bars on the current chart: ",iBars(Symbol(),Period())); +//--- + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/samples/MQL4/script-sample.mq4 b/samples/MQL4/script-sample.mq4 new file mode 100644 index 00000000..b4d6812d --- /dev/null +++ b/samples/MQL4/script-sample.mq4 @@ -0,0 +1,51 @@ +//+------------------------------------------------------------------+ +//| script-sample.mq4 | +//| Copyright 2016, Andrey Osorgin | +//+------------------------------------------------------------------+ +//| The MIT License (MIT) | +//| | +//| Permission is hereby granted, free of charge, to any person | +//| obtaining a copy of this software and associated documentation | +//| files (the "Software"), to deal in the Software without | +//| restriction, including without limitation the rights to use, | +//| copy, modify, merge, publish, distribute, sublicense, and/or sell| +//| copies of the Software, and to permit persons to whom the | +//| Software is furnished to do so, subject to the following | +//| conditions: | +//| | +//| The above copyright notice and this permission notice shall be | +//| included in all copies or substantial portions of the Software. | +//| | +//| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | +//| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | +//| OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | +//| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | +//| HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | +//| WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | +//| FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | +//| OTHER DEALINGS IN THE SOFTWARE. | +//| | +//| A copy of the MIT License (MIT) is available at | +//| https://opensource.org/licenses/MIT | +//+------------------------------------------------------------------+ +#property version "1.00" +#property strict +#property script_show_inputs + +input int StopLoss=100; //Stop Loss +input int TakeProfit=100; //Take Profit +//+------------------------------------------------------------------+ +//| Script program start function | +//+------------------------------------------------------------------+ +void OnStart() + { + double minstoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL); + Print("Minimum Stop Level=",minstoplevel," points"); +//--- + double sl=NormalizeDouble(Bid-StopLoss*Point,Digits); + double tp=NormalizeDouble(Ask+TakeProfit*Point,Digits); +//--- + int result=OrderSend(Symbol(),OP_BUY,0.01,Ask,1,sl,tp,"Test",0,0,clrNONE); + Print("Success? ",result); + } +//+------------------------------------------------------------------+ diff --git a/samples/MQL5/Regex.mqh b/samples/MQL5/Regex.mqh new file mode 100644 index 00000000..ca7be7e1 --- /dev/null +++ b/samples/MQL5/Regex.mqh @@ -0,0 +1,1390 @@ +//+------------------------------------------------------------------+ +//| Regular Expression | +//| Copyright 2016, MetaQuotes Software Corp. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +//| Regular Expression Library from .NET Framework 4.6.1 implemented | +//| in MetaQuotes Language 5 (MQL5) | +//| Original sources at https://github.com/Microsoft/referencesource | +//| | +//| The capabilities of the Regular Expression Library include: | +//| - Lazy quantifiers | +//| - Positive and negative lookbehind | +//| - Conditional evaluation | +//| - Balancing group definitions | +//| - Nonbacktracking subexpressions | +//| - Right-to-left matching | +//| | +//| If you find any functional differences between Regular Expression| +//| Library for MQL5 and the original .NET Framework 4.6.1 project, | +//| please contact developers of MQL5 on the Forum at www.mql5.com. | +//| | +//| You can report bugs found in the computational algorithms of the | +//| Regular Expression Library from .Net Framework 4.6.1 by notifying| +//| the project coordinators. | +//+------------------------------------------------------------------+ +//| The MIT License (MIT) | +//| | +//| Permission is hereby granted, free of charge, to any person | +//| obtaining a copy of this software and associated documentation | +//| files (the "Software"), to deal in the Software without | +//| restriction, including without limitation the rights to use, | +//| copy, modify, merge, publish, distribute, sublicense, and/or sell| +//| copies of the Software, and to permit persons to whom the | +//| Software is furnished to do so, subject to the following | +//| conditions: | +//| | +//| The above copyright notice and this permission notice shall be | +//| included in all copies or substantial portions of the Software. | +//| | +//| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | +//| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | +//| OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | +//| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | +//| HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | +//| WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | +//| FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | +//| OTHER DEALINGS IN THE SOFTWARE. | +//| | +//| A copy of the MIT License (MIT) is available at | +//| https://opensource.org/licenses/MIT | +//+------------------------------------------------------------------+ +class Match; +class MatchCollection; +class CachedCodeEntry; +class ReplacementReference; +class RunnerReference; +class RegexRunner; +//+------------------------------------------------------------------+ +//| Callback class. | +//+------------------------------------------------------------------+ +typedef string(*MatchEvaluator)(Match*); +#include +#include +#include +#include "RegexOptions.mqh" +#include "RegexCode.mqh" +#include "RegexTree.mqh" +#include "RegexParser.mqh" +#include "RegexReplacement.mqh" +#include "RegexWriter.mqh" +#include "RegexMatchCollection.mqh" +#include "RegexRunner.mqh" +#include "RegexInterpreter.mqh" +//+------------------------------------------------------------------+ +//| Purpose: The Regex class represents a single compiled instance of| +//| a regular expression. | +//+------------------------------------------------------------------+ +//+------------------------------------------------------------------+ +//| Represents an immutable, compiled regular expression. Also | +//| contains static methods that allow use of regular expressions | +//| without instantiating a Regex explicitly. | +//+------------------------------------------------------------------+ +class Regex + { +protected: + string m_pattern; + RegexOptions m_roptions; +private: + static const TimeSpan MaximumMatchTimeout; +public: + static const TimeSpan InfiniteMatchTimeout; +protected: + TimeSpan m_internalMatchTimeout;// timeout for the execution of this regex +private: + static const string DefaultMatchTimeout_ConfigKeyName; +public: + static const TimeSpan FallbackDefaultMatchTimeout; + static const TimeSpan DefaultMatchTimeout; +protected: + Dictionary*m_caps; // if captures are sparse, this is the hashtable capnum->index + Dictionary*m_capnames; // if named captures are used, this maps names->index + string m_capslist[]; // if captures are sparse or named captures are used, this is the sorted list of names + int m_capsize; // the size of the capture array + RegexTree *m_tree; + RunnerReference *m_runnerref; // cached runner + ReplacementReference*m_replref; // cached parsed replacement pattern + RegexCode *m_code; // if interpreted, this is the code for RegexIntepreter + bool m_refsInitialized;// Default is false + static LinkedListm_livecode;// the cached of code that are currently loaded + static int m_cacheSize; // Default is 15 +public: + static const int MaxOptionShift; +public: + //--- Constructors: + //+------------------------------------------------------------------+ + //| Initializes a new instance of the Regex class. | + //+------------------------------------------------------------------+ + Regex() : m_refsInitialized(false) + { + this.m_internalMatchTimeout=DefaultMatchTimeout; + } + //+------------------------------------------------------------------+ + //| Creates and compiles a regular expression object for the | + //| specified regular expression. | + //+------------------------------------------------------------------+ + Regex(const string pattern) : m_refsInitialized(0) + { + Initialize(pattern,None,DefaultMatchTimeout,false); + } + //+------------------------------------------------------------------+ + //| Creates and compiles a regular expression object for the | + //| specified regular expression with options that modify the | + //| pattern. | + //+------------------------------------------------------------------+ + Regex(const string pattern,RegexOptions options) : m_refsInitialized(0) + { + Initialize(pattern,options,DefaultMatchTimeout,false); + } + //+------------------------------------------------------------------+ + //| Initializes a new instance of the Regex class for the specified | + //| regular expression,with options that modify the pattern and a | + //| value that specifies how long a pattern matching method should | + //| attempt a match before it times out. | + //+------------------------------------------------------------------+ + Regex(const string pattern,RegexOptions options,const TimeSpan &matchTimeout) : m_refsInitialized(0) + { + Initialize(pattern,options,matchTimeout,false); + } + //--- Destructors: + //+------------------------------------------------------------------+ + //| Destructor without parameters. | + //+------------------------------------------------------------------+ + ~Regex() + { + if(CheckPointer(m_tree)==POINTER_DYNAMIC) + { + delete m_tree; + } + if(CheckPointer(m_caps)==POINTER_DYNAMIC) + { + delete m_caps; + } + bool deleteRun=true; + bool deleteRepl = true; + bool deleteCode = true; + for(LinkedListNode*current=m_livecode.First(); current!=NULL; current=current.Next()) + { + if(CheckPointer(current.Value())==POINTER_DYNAMIC) + { + if(current.Value().RunnerRef()==m_runnerref) + { + deleteRun=false; + } + if(current.Value().ReplRef()==m_replref) + { + deleteRepl=false; + } + if(current.Value().Code()==m_code) + { + deleteCode=false; + } + } + } + if(CheckPointer(m_replref)==POINTER_DYNAMIC && deleteRepl) + { + delete m_replref; + } + if(CheckPointer(m_runnerref)==POINTER_DYNAMIC && deleteRun) + { + delete m_runnerref; + } + if(CheckPointer(m_code)==POINTER_DYNAMIC && deleteCode) + { + delete m_code; + } + } +private: + //+------------------------------------------------------------------+ + //| General constructor with parameters. | + //+------------------------------------------------------------------+ + Regex(const string pattern,RegexOptions options,const TimeSpan &matchTimeout,const bool useCache) : m_refsInitialized(0) + { + Initialize(pattern,options,matchTimeout,useCache); + } + //--- Methods: + //+------------------------------------------------------------------+ + //| Initialize. | + //+------------------------------------------------------------------+ + void Initialize(const string pattern,RegexOptions options,const TimeSpan &matchTimeout,const bool useCache) + { + RegexTree *tree; + CachedCodeEntry *cached=NULL; + if(pattern==NULL) + { + Print("Argument 'pattern'= Null."); + //--- return + return; + } + if(options>MaxOptionShift)!=0) + { + Print("Argument 'options' out of range."); + //--- return + return; + } + if((options &ECMAScript)!=0 + && (options &~(ECMAScript|IgnoreCase|Multiline + #ifdef _DEBUG + |Debug + #endif + ))!=0) + { + Print("Argument 'options' out of range"); + //--- return + return; + } + ValidateMatchTimeout(matchTimeout); + //--- Try to look up this regex in the cache. We do this regardless of whether useCache is true since there's really no reason not to. + string key=IntegerToString(options)+":"+pattern; + cached=LookupCachedAndUpdate(key); + this.m_pattern=pattern; + this.m_roptions=options; + this.m_internalMatchTimeout=matchTimeout; + if(cached==NULL) + { + //--- Parse the input + tree=RegexParser::Parse(pattern,(RegexOptions)m_roptions); + //--- Extract the relevant information + m_capnames=tree.CapNames(); + tree.GetCapsList(m_capslist); + m_code = RegexWriter::Write(tree); + m_caps = m_code.Caps(); + m_capsize = m_code.CapSize(); + InitializeReferences(); + m_tree=tree; + if(useCache) + { + cached=CacheCode(key); + } + } + else + { + m_caps = cached.Caps(); + m_capnames = cached.CapNames(); + cached.GetCapList(m_capslist); + m_capsize = cached.CapSize(); + m_code = cached.Code(); + m_runnerref = cached.RunnerRef(); + m_replref = cached.ReplRef(); + m_refsInitialized=true; + } + } +public: + //--- Methods: + //+------------------------------------------------------------------+ + //| Pattern. | + //+------------------------------------------------------------------+ + string Pattern() + { + //--- return pattern + return (m_pattern); + } + //+------------------------------------------------------------------+ + //| Validates that the specified match timeout value is valid. | + //| The valid range is: | + //| TimeSpan::Zero < matchTimeout <= Regex::MaximumMatchTimeout. | + //+------------------------------------------------------------------+ + static void ValidateMatchTimeout(const TimeSpan &matchTimeout) + { + if(InfiniteMatchTimeout==matchTimeout) + { + //--- return + return; + } + //--- Change this to make sure timeout is not longer then Environment.Ticks cycle length: + if(TimeSpan::Zero()*Caps() + { + //--- + return (m_caps); + } + Dictionary*CapNames() + { + //--- return + return (m_capnames); + } + int CapSize() + { + //--- + return (m_capsize); + } + //+------------------------------------------------------------------+ + //| Returns the options passed into the constructor. | + //+------------------------------------------------------------------+ + RegexOptions Options() + { + //--- return + return (m_roptions); + } + //+------------------------------------------------------------------+ + //| Escape metacharacters within the string. | + //+------------------------------------------------------------------+ + static string Escape(const string str) + { + if(StringLen(str)==NULL) + { + Print("Argument 'str' = NULL."); + //--- return NULL + return (NULL); + } + //--- return result + return RegexParser::Escape(str); + } + //+------------------------------------------------------------------+ + //| Unescape character codes within the string. | + //+------------------------------------------------------------------+ + static string Unescape(const string str) + { + if(StringLen(str)==NULL) + { + Print("Argument 'str' = NULL."); + //--- return NULL + return (NULL); + } + //--- return result + return RegexParser::Unescape(str); + } + //+------------------------------------------------------------------+ + //| CacheCount. | + //+------------------------------------------------------------------+ + static int CacheCount() + { + //--- return count + return (m_livecode.Count()); + } + //+------------------------------------------------------------------+ + //| CacheSize. | + //+------------------------------------------------------------------+ + static int CacheSize() + { + //--- return size + return (m_cacheSize); + } + //+------------------------------------------------------------------+ + //| CacheSize. | + //+------------------------------------------------------------------+ + static void CacheSize(const int value) + { + if(value<0) + { + Print("Argument 'value' out of range."); + //--- return + return; + } + m_cacheSize=value; + if(m_livecode.Count()>m_cacheSize) + { + while(m_livecode.Count()>m_cacheSize) + { + m_livecode.RemoveLast(); + } + } + } + //+------------------------------------------------------------------+ + //| The match timeout used by this Regex instance. | + //+------------------------------------------------------------------+ + TimeSpan MatchTimeout() + { + //--- return result + return (m_internalMatchTimeout); + } + //+------------------------------------------------------------------+ + //| True if the regex is leftward. | + //| | + //| Indicates whether the regular expression matches from right to | + //| left. | + //+------------------------------------------------------------------+ + bool RightToLeft() + { + //--- return result + return UseOptionR(); + } + //+------------------------------------------------------------------+ + //| Returns the regular expression pattern passed into the | + //| constructor. | + //+------------------------------------------------------------------+ + string ToString() + { + //--- return result + return (m_pattern); + } + //+------------------------------------------------------------------+ + //| Returns an array of the group names that are used to capture | + //| groups in the regular expression. Only needed if the regex is not| + //| known until runtime, and one wants to extract captured groups. | + //| (Probably unusual, but supplied for completeness.). | + //+------------------------------------------------------------------+ + void GetGroupNames(string &result[]) + { + if(ArraySize(m_capslist)==NULL) + { + int max=m_capsize; + ArrayResize(result,max); + for(int i=0; i*de=m_caps.GetEnumerator(); + while(de.MoveNext()) + { + result[(int)de.Value()]=(int)de.Key(); + } + delete de; + } + } + //+------------------------------------------------------------------+ + //| Given a group number, maps it to a group name. Note that nubmered| + //| groups automatically get a group name that is the decimal string | + //| equivalent of its number. | + //+------------------------------------------------------------------+ + string GroupNameFromNumber(const int index) + { + int i=index; + if(ArraySize(m_capslist)==NULL) + { + if(i>=0 && i=0 && i'9' || ch<'0') + { + //--- return result + return (-1); + } + result *= 10; + result += (ch - '0'); + } + //--- return int if it's in range + if(result>=0 && resultStringLen(in)) + { + Print("Argument 'start' out of range."); + //--- return NULL + return (NULL); + } + if(length<0 || length>StringLen(in)) + { + Print("Argument 'length' out of range."); + //--- return NULL + return (NULL); + } + bool fromCache=false; + //--- There may be a cached runner; grab ownership of it if we can. + if(m_runnerref!=NULL) + { + fromCache=true; + runner=m_runnerref.Get(); + } + //--- Create a RegexRunner instance if we need to + if(runner==NULL) + { + fromCache=false; + //--- Use the compiled RegexRunner factory if the code was compiled to MSIL + runner=new RegexInterpreter(m_code); + } + //--- Do the scan starting at the requested position + match=runner.Scan(GetPointer(this),in,beginning,beginning+length,startat,prevlen,quick,m_internalMatchTimeout); + if(m_runnerref!=NULL && !fromCache) + { + if(CheckPointer(m_runnerref.Get())==POINTER_DYNAMIC) + { + delete m_runnerref.Get(); + } + //--- Release or fill the cache slot + m_runnerref.Set(runner); + } + else if(!fromCache) + { + delete runner; + } +#ifdef _DEBUG + if(Debug() && match!=NULL) + { + match.Dump(); + } +#endif + //--- return result + return (match); + } + //+------------------------------------------------------------------+ + //| Find code cache based on options+pattern. | + //+------------------------------------------------------------------+ + static CachedCodeEntry *LookupCachedAndUpdate(const string key) + { + for(LinkedListNode*current=m_livecode.First(); current!=NULL; current=current.Next()) + { + if(current.Value().Key()==key) + { + //--- If we find an entry in the cache, move it to the head at the same time. + m_livecode.Remove(current); + m_livecode.AddFirst(current); + //--- retrun result + return (current.Value()); + } + } + //--- return result + return (NULL); + } + //+------------------------------------------------------------------+ + //| Add current code to the cache. | + //+------------------------------------------------------------------+ + CachedCodeEntry *CacheCode(const string key) + { + CachedCodeEntry *newcached=NULL; + //--- first look for it in the cache and move it to the head + for(LinkedListNode*current=m_livecode.First(); current!=NULL; current=current.Next()) + { + if(current.Value().Key()==key) + { + m_livecode.Remove(current); + m_livecode.AddFirst(current); + //--- return result + return (current.Value()); + } + } + //--- it wasn't in the cache, so we'll add a new one. Shortcut out for the case where cacheSize is zero. + if(m_cacheSize!=0) + { + newcached=new CachedCodeEntry(key,m_capnames,m_capslist,m_code,m_caps,m_capsize,m_runnerref,m_replref); + m_livecode.AddFirst(newcached); + if(m_livecode.Count()>m_cacheSize) + { + m_livecode.RemoveLast(); + } + } + //--- return result + return (newcached); + } + //+------------------------------------------------------------------+ + //| Delete all objects in cache. | + //+------------------------------------------------------------------+ + static void ClearCache() + { + IEnumerator*en=m_livecode.GetEnumerator(); + while(en.MoveNext()) + { + if(CheckPointer(en.Current())==POINTER_DYNAMIC) + { + if(CheckPointer(en.Current().RunnerRef().Get().RunRegex())==POINTER_DYNAMIC) + { + delete en.Current().RunnerRef().Get().RunRegex(); + } + delete en.Current(); + } + } + delete en; + } + //+------------------------------------------------------------------+ + //| True if the O option was set. | + //+------------------------------------------------------------------+ + bool UseOptionC() + { + return(m_roptions) != 0; + } + //+------------------------------------------------------------------+ + //| True if the L option was set. | + //+------------------------------------------------------------------+ + bool UseOptionR() + { + return(m_roptions & RightToLeft) != 0; + } + //+------------------------------------------------------------------+ + //| UseOptionInvariant. | + //+------------------------------------------------------------------+ + bool UseOptionInvariant() + { + return(m_roptions) != 0; + } +#ifdef _DEBUG + //+------------------------------------------------------------------+ + //| True if the regex has debugging enabled. | + //+------------------------------------------------------------------+ + bool Debug() + { + //--- return result + return((m_roptions &Debug) != 0); + } +#endif + }; +static const TimeSpan Regex::MaximumMatchTimeout=TimeSpan::FromMilliseconds(Int32::MaxValue-1); +static const TimeSpan Regex::InfiniteMatchTimeout(0,0,0,0,-1); +static const string Regex::DefaultMatchTimeout_ConfigKeyName="REGEX_DEFAULT_MATCH_TIMEOUT"; +static const TimeSpan Regex::FallbackDefaultMatchTimeout=Regex::InfiniteMatchTimeout; +static const TimeSpan Regex::DefaultMatchTimeout=Regex::InitDefaultMatchTimeout(); +static LinkedListRegex::m_livecode(); +static int Regex::m_cacheSize=15; +static const int Regex::MaxOptionShift=10; +//+------------------------------------------------------------------+ +//| Purpose: Used to cache byte codes or compiled factories. | +//+------------------------------------------------------------------+ +class CachedCodeEntry : public IComparable + { +private: + string m_key; + RegexCode *m_code; + Dictionary*m_caps; + Dictionary*m_capnames; + string m_capslist[]; + int m_capsize; + RunnerReference *m_runnerref; + ReplacementReference *m_replref; +public: + //--- Constructors: + //+------------------------------------------------------------------+ + //| Constructor with parameters. | + //+------------------------------------------------------------------+ + CachedCodeEntry(const string key,Dictionary*capnames,const string &capslist[], + RegexCode *code,Dictionary*caps,const int capsize, + RunnerReference *runner,ReplacementReference *repl) + { + m_key=key; + m_capnames=capnames; + ArrayCopy(m_capslist,capslist); + m_code= code; + m_caps= caps; + m_capsize=capsize; + m_runnerref=runner; + m_replref=repl; + } + //--- Destructors: + //+------------------------------------------------------------------+ + //| destructor without parameters. | + //+------------------------------------------------------------------+ + ~CachedCodeEntry() + { + if(CheckPointer(m_code)==POINTER_DYNAMIC) + { + delete m_code; + } + if(CheckPointer(m_caps)==POINTER_DYNAMIC) + { + delete m_caps; + } + if(CheckPointer(m_capnames)==POINTER_DYNAMIC) + { + delete m_capnames; + } + if(CheckPointer(m_replref)==POINTER_DYNAMIC) + { + delete m_replref; + } + if(CheckPointer(m_runnerref)==POINTER_DYNAMIC) + { + delete m_runnerref; + } + } + //--- Methods: + //+------------------------------------------------------------------+ + //| Gets the runnerref. | + //+------------------------------------------------------------------+ + RunnerReference *RunnerRef() + { + //--- reurn runnerref + return (m_runnerref); + } + //+------------------------------------------------------------------+ + //| Gets the replref. | + //+------------------------------------------------------------------+ + ReplacementReference *ReplRef() + { + //--- return replref + return (m_replref); + } + //+------------------------------------------------------------------+ + //| Gets the key. | + //+------------------------------------------------------------------+ + string Key() + { + //--- return key + return (m_key); + } + //+------------------------------------------------------------------+ + //| Gets the caps. | + //+------------------------------------------------------------------+ + Dictionary*Caps() + { + //--- return caps + return (m_caps); + } + //+------------------------------------------------------------------+ + //| Gets the capnames. | + //+------------------------------------------------------------------+ + Dictionary*CapNames() + { + //--- return capnames + return (m_capnames); + } + //+------------------------------------------------------------------+ + //| Gets the capsize. | + //+------------------------------------------------------------------+ + int CapSize() + { + //--- retrun capsize + return (m_capsize); + } + //+------------------------------------------------------------------+ + //| Gets the code. | + //+------------------------------------------------------------------+ + RegexCode *Code() + { + //--- return code + return (m_code); + } + //+------------------------------------------------------------------+ + //| Gets the caplist. | + //+------------------------------------------------------------------+ + void GetCapList(string &array[]) + { + ArrayCopy(array,m_capslist); + } + }; +//+------------------------------------------------------------------+ +//| Used to cache a weak reference in a threadsafe way. | +//+------------------------------------------------------------------+ +class ReplacementReference + { +private: + RegexReplacement *m_obj; +public: + //--- Destructors: + //+------------------------------------------------------------------+ + //| Destructor without parameters. | + //+------------------------------------------------------------------+ + ~ReplacementReference() + { + if(CheckPointer(m_obj)==POINTER_DYNAMIC) + { + delete m_obj; + } + } + //--- Methods: + //+------------------------------------------------------------------+ + //| Get RegexReplacement. | + //+------------------------------------------------------------------+ + RegexReplacement *Get() + { + //--- return pointer + return (m_obj); + } + //+------------------------------------------------------------------+ + //| Set RegexReplacement. | + //+------------------------------------------------------------------+ + void Set(RegexReplacement *obj) + { + m_obj=obj; + } + }; +//+------------------------------------------------------------------+ +//| Used to cache one exclusive runner reference. | +//+------------------------------------------------------------------+ +class RunnerReference + { +private: + RegexRunner *m_obj; +public: + //--- Destructors: + //+------------------------------------------------------------------+ + //| Destructor without parameters. | + //+------------------------------------------------------------------+ + ~RunnerReference() + { + if(CheckPointer(m_obj)==POINTER_DYNAMIC) + { + delete m_obj; + } + } + //--- Methods: + //+------------------------------------------------------------------+ + //| Get RegexRunner. | + //+------------------------------------------------------------------+ + RegexRunner *Get() + { + //--- return pointer + return (m_obj); + } + //+------------------------------------------------------------------+ + //| Set RegexRunner. | + //+------------------------------------------------------------------+ + void Set(RegexRunner *obj) + { + m_obj=obj; + } + }; +//+------------------------------------------------------------------+ diff --git a/samples/MQL5/indicator-sample.mq5 b/samples/MQL5/indicator-sample.mq5 new file mode 100644 index 00000000..fdd42f58 --- /dev/null +++ b/samples/MQL5/indicator-sample.mq5 @@ -0,0 +1,64 @@ +//+------------------------------------------------------------------+ +//| indicator-sample.mq5 | +//| Copyright 2016, Andrey Osorgin | +//+------------------------------------------------------------------+ +//| The MIT License (MIT) | +//| | +//| Permission is hereby granted, free of charge, to any person | +//| obtaining a copy of this software and associated documentation | +//| files (the "Software"), to deal in the Software without | +//| restriction, including without limitation the rights to use, | +//| copy, modify, merge, publish, distribute, sublicense, and/or sell| +//| copies of the Software, and to permit persons to whom the | +//| Software is furnished to do so, subject to the following | +//| conditions: | +//| | +//| The above copyright notice and this permission notice shall be | +//| included in all copies or substantial portions of the Software. | +//| | +//| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | +//| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | +//| OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | +//| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | +//| HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | +//| WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | +//| FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | +//| OTHER DEALINGS IN THE SOFTWARE. | +//| | +//| A copy of the MIT License (MIT) is available at | +//| https://opensource.org/licenses/MIT | +//+------------------------------------------------------------------+ +#property version "1.00" + +#property indicator_chart_window +#property indicator_plots 0 +//+------------------------------------------------------------------+ +//| Custom indicator initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { +//--- + return(INIT_SUCCEEDED); + } +//+------------------------------------------------------------------+ +//| Custom indicator iteration function | +//+------------------------------------------------------------------+ +int OnCalculate(const int rates_total, + const int prev_calculated, + const datetime &time[], + const double &open[], + const double &high[], + const double &low[], + const double &close[], + const long &tick_volume[], + const long &volume[], + const int &spread[]) + { +//--- + int bars=Bars(Symbol(),0); + Print("Bars = ",bars,", rates_total = ",rates_total,", prev_calculated = ",prev_calculated); + Print("time[0] = ",time[0]," time[rates_total-1] = ",time[rates_total-1]); +//--- return value of prev_calculated for next call + return(rates_total); + } +//+------------------------------------------------------------------+ diff --git a/samples/MQL5/script-sample.mq5 b/samples/MQL5/script-sample.mq5 new file mode 100644 index 00000000..c741218a --- /dev/null +++ b/samples/MQL5/script-sample.mq5 @@ -0,0 +1,56 @@ +//+------------------------------------------------------------------+ +//| script-sample.mq5 | +//| Copyright 2016, Andrey Osorgin | +//+------------------------------------------------------------------+ +//| The MIT License (MIT) | +//| | +//| Permission is hereby granted, free of charge, to any person | +//| obtaining a copy of this software and associated documentation | +//| files (the "Software"), to deal in the Software without | +//| restriction, including without limitation the rights to use, | +//| copy, modify, merge, publish, distribute, sublicense, and/or sell| +//| copies of the Software, and to permit persons to whom the | +//| Software is furnished to do so, subject to the following | +//| conditions: | +//| | +//| The above copyright notice and this permission notice shall be | +//| included in all copies or substantial portions of the Software. | +//| | +//| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | +//| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | +//| OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | +//| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | +//| HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | +//| WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | +//| FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | +//| OTHER DEALINGS IN THE SOFTWARE. | +//| | +//| A copy of the MIT License (MIT) is available at | +//| https://opensource.org/licenses/MIT | +//+------------------------------------------------------------------+ +#property version "1.00" +#property script_show_inputs + +#include + +input int StopLoss=100; // Stop Loss +input int TakeProfit=100; // Take Profit +//+------------------------------------------------------------------+ +//| Script program start function | +//+------------------------------------------------------------------+ +void OnStart() + { + CTrade trade; +//--- + long stoplevel=SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL); + Print("Minimum stop level is: ",stoplevel); + double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK); + double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID); + double sl = NormalizeDouble(bid - StopLoss*Point(),Digits()); + double tp = NormalizeDouble(ask + TakeProfit*Point(),Digits()); +//--- + bool result=trade.Buy(0.01,Symbol(),ask,sl,tp,"test"); +//--- + Print("Success? ",result); + } +//+------------------------------------------------------------------+ diff --git a/vendor/grammars/MQL5-sublime b/vendor/grammars/MQL5-sublime new file mode 160000 index 00000000..a41ed3b5 --- /dev/null +++ b/vendor/grammars/MQL5-sublime @@ -0,0 +1 @@ +Subproject commit a41ed3b5e5af354d9faf262794549ea44bbe5912 diff --git a/vendor/licenses/grammar/MQL5-sublime.txt b/vendor/licenses/grammar/MQL5-sublime.txt new file mode 100644 index 00000000..cea1bce8 --- /dev/null +++ b/vendor/licenses/grammar/MQL5-sublime.txt @@ -0,0 +1,26 @@ +--- +type: grammar +name: MQL5-sublime +license: mit +--- +MIT License + +Copyright (c) 2016 mqsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From cc5f1c57cac0044d827e42c30430bb8f0b4adb9c Mon Sep 17 00:00:00 2001 From: Todd Berman Date: Tue, 20 Sep 2016 23:23:22 -0700 Subject: [PATCH 047/114] Add Codemirror modes --- .gitignore | 1 + lib/linguist/language.rb | 12 +++ lib/linguist/languages.yml | 198 ++++++++++++++++++++++++++++++++++++- 3 files changed, 209 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c0ab5df0..4b360dba 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /Gemfile.lock .bundle/ +.idea benchmark/ lib/linguist/samples.json /grammars diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 7ae48b17..7f4fd903 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -300,6 +300,7 @@ module Linguist end @ace_mode = attributes[:ace_mode] + @codemirror_mode = attributes[:codemirror_mode] @wrap = attributes[:wrap] || false # Set legacy search term @@ -397,6 +398,17 @@ module Linguist # Returns a String name or nil attr_reader :ace_mode + # Public: Get Codemirror mode + # + # Examples + # + # # => "nil" + # # => "javascript" + # # => "clike" + # + # Returns a String name or nil + attr_reader :codemirror_mode + # Public: Should language lines be wrapped # # Returns true or false diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 861a7efa..541fd71f 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -6,6 +6,8 @@ # ace_mode - A String name of the Ace Mode used for highlighting whenever # a file is edited. This must match one of the filenames in http://git.io/3XO_Cg. # Use "text" if a mode does not exist. +# codemirror_mode - A String name of the Codemirror Mode used for highlighting whenever a file is edited. +# This must match a mode from https://git.io/vi9Fx # wrap - Boolean wrap to enable line wrapping (default: false) # extensions - An Array of associated extensions (the first one is # considered the primary extension, the others should be @@ -57,6 +59,7 @@ AGS Script: - ".ash" tm_scope: source.c++ ace_mode: c_cpp + codemirror_mode: clike language_id: 2 AMPL: type: programming @@ -94,6 +97,7 @@ APL: - dyalog tm_scope: source.apl ace_mode: text + codemirror_mode: apl language_id: 6 ASN.1: type: data @@ -103,6 +107,7 @@ ASN.1: - ".asn1" tm_scope: source.asn ace_mode: text + codemirror_mode: asn.1 language_id: 7 ASP: type: programming @@ -121,6 +126,7 @@ ASP: - ".aspx" - ".axd" ace_mode: text + codemirror_mode: htmlembedded language_id: 8 ATS: type: programming @@ -183,6 +189,7 @@ Alpine Abuild: - APKBUILD tm_scope: source.shell ace_mode: sh + codemirror_mode: shell language_id: 14 Ant Build System: type: data @@ -191,6 +198,7 @@ Ant Build System: - ant.xml - build.xml ace_mode: xml + codemirror_mode: xml language_id: 15 ApacheConf: type: markup @@ -209,6 +217,7 @@ Apex: - ".cls" tm_scope: source.java ace_mode: java + codemirror_mode: clike language_id: 17 Apollo Guidance Computer: type: programming @@ -218,6 +227,7 @@ Apollo Guidance Computer: - ".agc" tm_scope: source.agc ace_mode: assembly_x86 + codemirror_mode: gas language_id: 18 AppleScript: type: programming @@ -246,6 +256,7 @@ Arduino: - ".ino" tm_scope: source.c++ ace_mode: c_cpp + codemirror_mode: clike language_id: 21 AsciiDoc: type: prose @@ -278,6 +289,7 @@ Assembly: - ".nasm" tm_scope: source.assembly ace_mode: assembly_x86 + codemirror_mode: gas language_id: 24 Augeas: type: programming @@ -415,6 +427,7 @@ Brainfuck: - ".bf" tm_scope: source.bf ace_mode: text + codemirror_mode: brainfuck language_id: 38 Brightscript: type: programming @@ -441,10 +454,12 @@ C: interpreters: - tcc ace_mode: c_cpp + codemirror_mode: clike language_id: 41 C#: type: programming ace_mode: csharp + codemirror_mode: clike tm_scope: source.cs search_term: csharp color: "#178600" @@ -459,6 +474,7 @@ C#: C++: type: programming ace_mode: c_cpp + codemirror_mode: clike search_term: cpp color: "#f34b7d" aliases: @@ -486,6 +502,7 @@ C-ObjDump: - ".c-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 + codemirror_mode: gas language_id: 44 C2hs Haskell: type: programming @@ -496,6 +513,7 @@ C2hs Haskell: - ".chs" tm_scope: source.haskell ace_mode: haskell + codemirror_mode: haskell language_id: 45 CLIPS: type: programming @@ -512,6 +530,7 @@ CMake: filenames: - CMakeLists.txt ace_mode: text + codemirror_mode: cmake language_id: 47 COBOL: type: programming @@ -522,6 +541,7 @@ COBOL: - ".cobol" - ".cpy" ace_mode: cobol + codemirror_mode: cobol language_id: 48 COLLADA: type: data @@ -529,11 +549,13 @@ COLLADA: - ".dae" tm_scope: text.xml ace_mode: xml + codemirror_mode: xml language_id: 49 CSS: type: markup tm_scope: source.css ace_mode: css + codemirror_mode: css color: "#563d7c" extensions: - ".css" @@ -589,6 +611,7 @@ ChucK: - ".ck" tm_scope: source.java ace_mode: java + codemirror_mode: clike language_id: 57 Cirru: type: programming @@ -625,6 +648,7 @@ Click: Clojure: type: programming ace_mode: clojure + codemirror_mode: clojure color: "#db5855" extensions: - ".clj" @@ -643,6 +667,7 @@ CoffeeScript: type: programming tm_scope: source.coffee ace_mode: coffee + codemirror_mode: coffeescript color: "#244776" aliases: - coffee @@ -708,6 +733,7 @@ Common Lisp: - clisp - ecl ace_mode: lisp + codemirror_mode: commonlisp language_id: 66 Component Pascal: type: programming @@ -720,6 +746,7 @@ Component Pascal: - delphi - objectpascal ace_mode: pascal + codemirror_mode: pascal language_id: 67 Cool: type: programming @@ -747,6 +774,7 @@ Cpp-ObjDump: aliases: - c++-objdump ace_mode: assembly_x86 + codemirror_mode: gas language_id: 70 Creole: type: prose @@ -762,6 +790,7 @@ Crystal: extensions: - ".cr" ace_mode: ruby + codemirror_mode: crystal tm_scope: source.crystal interpreters: - crystal @@ -811,6 +840,7 @@ Cuda: - ".cuh" tm_scope: source.cuda-c++ ace_mode: c_cpp + codemirror_mode: clike color: "#3A4E3A" language_id: 77 Cycript: @@ -819,6 +849,7 @@ Cycript: - ".cy" tm_scope: source.js ace_mode: javascript + codemirror_mode: javascript language_id: 78 Cython: type: programming @@ -830,6 +861,7 @@ Cython: aliases: - pyrex ace_mode: text + codemirror_mode: python language_id: 79 D: type: programming @@ -838,6 +870,7 @@ D: - ".d" - ".di" ace_mode: d + codemirror_mode: d language_id: 80 D-ObjDump: type: data @@ -845,6 +878,7 @@ D-ObjDump: - ".d-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 + codemirror_mode: gas language_id: 81 DIGITAL Command Language: type: programming @@ -883,6 +917,7 @@ DTrace: - dtrace tm_scope: source.c ace_mode: c_cpp + codemirror_mode: clike language_id: 85 Darcs Patch: type: data @@ -903,6 +938,7 @@ Dart: interpreters: - dart ace_mode: dart + codemirror_mode: dart language_id: 87 Diff: type: data @@ -913,6 +949,7 @@ Diff: - udiff tm_scope: source.diff ace_mode: diff + codemirror_mode: diff language_id: 88 Dockerfile: type: data @@ -922,6 +959,7 @@ Dockerfile: filenames: - Dockerfile ace_mode: dockerfile + codemirror_mode: dockerfile language_id: 89 Dogescript: type: programming @@ -940,6 +978,7 @@ Dylan: - ".intr" - ".lid" ace_mode: text + codemirror_mode: dylan language_id: 91 E: type: programming @@ -959,6 +998,7 @@ ECL: - ".eclxml" tm_scope: none ace_mode: text + codemirror_mode: ecl language_id: 93 ECLiPSe: type: programming @@ -984,6 +1024,7 @@ EQ: - ".eq" tm_scope: source.cs ace_mode: csharp + codemirror_mode: clike language_id: 96 Eagle: type: markup @@ -993,6 +1034,7 @@ Eagle: - ".brd" tm_scope: text.xml ace_mode: xml + codemirror_mode: xml language_id: 97 Ecere Projects: type: data @@ -1001,6 +1043,7 @@ Ecere Projects: - ".epj" tm_scope: source.json ace_mode: json + codemirror_mode: json language_id: 98 Eiffel: type: programming @@ -1008,6 +1051,7 @@ Eiffel: extensions: - ".e" ace_mode: eiffel + codemirror_mode: eiffel language_id: 99 Elixir: type: programming @@ -1028,6 +1072,7 @@ Elm: - ".elm" tm_scope: source.elm ace_mode: elm + codemirror_mode: elm language_id: 101 Emacs Lisp: type: programming @@ -1045,6 +1090,7 @@ Emacs Lisp: - ".emacs" - ".emacs.desktop" ace_mode: lisp + codemirror_mode: commonlisp language_id: 102 EmberScript: type: programming @@ -1054,6 +1100,7 @@ EmberScript: - ".emberscript" tm_scope: source.coffee ace_mode: coffee + codemirror_mode: coffeescript language_id: 103 Erlang: type: programming @@ -1071,6 +1118,7 @@ Erlang: - rebar.config.lock - rebar.lock ace_mode: erlang + codemirror_mode: erlang interpreters: - escript language_id: 104 @@ -1086,6 +1134,7 @@ F#: - ".fsx" tm_scope: source.fsharp ace_mode: text + codemirror_mode: mllike language_id: 105 FLUX: type: programming @@ -1110,6 +1159,7 @@ FORTRAN: - ".fpp" tm_scope: source.fortran.modern ace_mode: text + codemirror_mode: fortran language_id: 107 Factor: type: programming @@ -1120,6 +1170,7 @@ Factor: - ".factor-boot-rc" - ".factor-rc" ace_mode: text + codemirror_mode: factor language_id: 108 Fancy: type: programming @@ -1175,6 +1226,7 @@ Forth: - ".frt" - ".fs" ace_mode: forth + codemirror_mode: forth language_id: 114 FreeMarker: type: programming @@ -1229,6 +1281,7 @@ GAS: - ".ms" tm_scope: source.assembly ace_mode: assembly_x86 + codemirror_mode: gas language_id: 120 GCC Machine Description: type: programming @@ -1236,6 +1289,7 @@ GCC Machine Description: - ".md" tm_scope: source.lisp ace_mode: lisp + codemirror_mode: commonlisp language_id: 121 GDB: type: programming @@ -1280,6 +1334,7 @@ Game Maker Language: - ".gml" tm_scope: source.c++ ace_mode: c_cpp + codemirror_mode: clike language_id: 125 Genshi: type: programming @@ -1290,6 +1345,7 @@ Genshi: - xml+genshi - xml+kid ace_mode: xml + codemirror_mode: xml language_id: 126 Gentoo Ebuild: type: programming @@ -1298,6 +1354,7 @@ Gentoo Ebuild: - ".ebuild" tm_scope: source.shell ace_mode: sh + codemirror_mode: shell language_id: 127 Gentoo Eclass: type: programming @@ -1306,6 +1363,7 @@ Gentoo Eclass: - ".eclass" tm_scope: source.shell ace_mode: sh + codemirror_mode: shell language_id: 128 Gettext Catalog: type: prose @@ -1326,6 +1384,7 @@ Glyph: - ".glf" tm_scope: source.tcl ace_mode: tcl + codemirror_mode: tcl language_id: 130 Gnuplot: type: programming @@ -1346,6 +1405,7 @@ Go: extensions: - ".go" ace_mode: golang + codemirror_mode: go language_id: 132 Golo: type: programming @@ -1391,6 +1451,7 @@ Grammatical Framework: color: "#79aa7a" tm_scope: source.haskell ace_mode: haskell + codemirror_mode: haskell language_id: 137 Graph Modeling Language: type: data @@ -1450,10 +1511,12 @@ Groff: - nroff - troff ace_mode: text + codemirror_mode: troff language_id: 141 Groovy: type: programming ace_mode: groovy + codemirror_mode: groovy color: "#e69f56" extensions: - ".groovy" @@ -1475,6 +1538,7 @@ Groovy Server Pages: - ".gsp" tm_scope: text.html.jsp ace_mode: jsp + codemirror_mode: htmlembedded language_id: 143 HCL: type: programming @@ -1482,6 +1546,7 @@ HCL: - ".hcl" - ".tf" ace_mode: ruby + codemirror_mode: ruby tm_scope: source.ruby language_id: 144 HLSL: @@ -1498,6 +1563,7 @@ HTML: type: markup tm_scope: text.html.basic ace_mode: html + codemirror_mode: html color: "#e44b23" aliases: - xhtml @@ -1523,6 +1589,7 @@ HTML+Django: - html+jinja - htmldjango ace_mode: django + codemirror_mode: django language_id: 147 HTML+ECR: type: markup @@ -1533,6 +1600,7 @@ HTML+ECR: extensions: - ".ecr" ace_mode: text + codemirror_mode: htmlembedded language_id: 148 HTML+EEX: type: markup @@ -1543,6 +1611,7 @@ HTML+EEX: extensions: - ".eex" ace_mode: text + codemirror_mode: htmlembedded language_id: 149 HTML+ERB: type: markup @@ -1554,6 +1623,7 @@ HTML+ERB: - ".erb" - ".erb.deface" ace_mode: text + codemirror_mode: htmlembedded language_id: 150 HTML+PHP: type: markup @@ -1562,6 +1632,7 @@ HTML+PHP: extensions: - ".phtml" ace_mode: php + codemirror_mode: php language_id: 151 HTTP: type: data @@ -1569,10 +1640,12 @@ HTTP: - ".http" tm_scope: source.httpspec ace_mode: text + codemirror_mode: http language_id: 152 Hack: type: programming ace_mode: php + codemirror_mode: php extensions: - ".hh" - ".php" @@ -1586,6 +1659,7 @@ Haml: - ".haml" - ".haml.deface" ace_mode: haml + codemirror_mode: haml color: "#ECE2A9" language_id: 154 Handlebars: @@ -1600,6 +1674,7 @@ Handlebars: - ".hbs" tm_scope: text.html.handlebars ace_mode: handlebars + codemirror_mode: handlebars language_id: 155 Harbour: type: programming @@ -1618,10 +1693,12 @@ Haskell: interpreters: - runhaskell ace_mode: haskell + codemirror_mode: haskell language_id: 157 Haxe: type: programming ace_mode: haxe + codemirror_mode: haxe color: "#df7900" extensions: - ".hx" @@ -1652,6 +1729,7 @@ IDL: - ".pro" - ".dlm" ace_mode: text + codemirror_mode: idl language_id: 161 IGOR Pro: type: programming @@ -1675,6 +1753,7 @@ INI: aliases: - dosini ace_mode: ini + codemirror_mode: properties language_id: 163 IRC log: type: data @@ -1774,6 +1853,7 @@ JSON: tm_scope: source.json group: JavaScript ace_mode: json + codemirror_mode: javascript searchable: false extensions: - ".json" @@ -1792,11 +1872,13 @@ JSON5: - ".json5" tm_scope: source.js ace_mode: javascript + codemirror_mode: javascript language_id: 175 JSONLD: type: data group: JavaScript ace_mode: javascript + codemirror_mode: javascript extensions: - ".jsonld" tm_scope: source.js @@ -1805,6 +1887,7 @@ JSONiq: color: "#40d47e" type: programming ace_mode: jsoniq + codemirror_mode: javascript extensions: - ".jq" tm_scope: source.jq @@ -1825,6 +1908,7 @@ Jade: - ".pug" tm_scope: text.jade ace_mode: jade + codemirror_mode: pug language_id: 179 Jasmin: type: programming @@ -1836,6 +1920,7 @@ Jasmin: Java: type: programming ace_mode: java + codemirror_mode: clike color: "#b07219" extensions: - ".java" @@ -1850,11 +1935,13 @@ Java Server Pages: - ".jsp" tm_scope: text.html.jsp ace_mode: jsp + codemirror_mode: htmlembedded language_id: 182 JavaScript: type: programming tm_scope: source.js ace_mode: javascript + codemirror_mode: javascript color: "#f1e05a" aliases: - js @@ -1903,10 +1990,12 @@ Julia: - ".jl" color: "#a270ba" ace_mode: julia + codemirror_mode: julia language_id: 184 Jupyter Notebook: type: markup ace_mode: json + codemirror_mode: javascript tm_scope: source.json color: "#DA5B0B" extensions: @@ -1936,6 +2025,7 @@ KiCad: Kit: type: markup ace_mode: html + codemirror_mode: html extensions: - ".kit" tm_scope: text.html.basic @@ -1949,6 +2039,7 @@ Kotlin: - ".kts" tm_scope: source.Kotlin ace_mode: text + codemirror_mode: kotlin language_id: 189 LFE: type: programming @@ -1958,6 +2049,7 @@ LFE: group: Erlang tm_scope: source.lisp ace_mode: lisp + codemirror_mode: commonlisp language_id: 190 LLVM: type: programming @@ -1990,6 +2082,7 @@ LabVIEW: - ".lvproj" tm_scope: text.xml ace_mode: xml + codemirror_mode: xml language_id: 194 Lasso: type: programming @@ -2013,6 +2106,7 @@ Latte: - ".latte" tm_scope: text.html.smarty ace_mode: smarty + codemirror_mode: smarty language_id: 196 Lean: type: programming @@ -2028,6 +2122,7 @@ Less: - ".less" tm_scope: source.css.less ace_mode: less + codemirror_mode: css color: "#A1D9A1" language_id: 198 Lex: @@ -2111,6 +2206,7 @@ Literate Haskell: - ".lhs" tm_scope: text.tex.latex.haskell ace_mode: text + codemirror_mode: haskell-literate language_id: 207 LiveScript: type: programming @@ -2124,6 +2220,7 @@ LiveScript: filenames: - Slakefile ace_mode: livescript + codemirror_mode: livescript language_id: 208 Logos: type: programming @@ -2144,6 +2241,7 @@ Logtalk: LookML: type: programming ace_mode: yaml + codemirror_mode: yaml color: "#652B81" extensions: - ".lookml" @@ -2159,6 +2257,7 @@ LoomScript: Lua: type: programming ace_mode: lua + codemirror_mode: lua color: "#000080" extensions: - ".lua" @@ -2177,8 +2276,8 @@ M: extensions: - ".mumps" - ".m" - tm_scope: source.lisp - ace_mode: lisp + ace_mode: text + codemirror_mode: mumps language_id: 214 M4: type: programming @@ -2215,6 +2314,7 @@ MTML: - ".mtml" tm_scope: text.html.basic ace_mode: html + codemirror_mode: html language_id: 218 MUF: type: programming @@ -2224,6 +2324,7 @@ MUF: - ".m" tm_scope: none ace_mode: forth + codemirror_mode: forth language_id: 219 Makefile: type: programming @@ -2252,6 +2353,7 @@ Makefile: interpreters: - make ace_mode: makefile + codemirror_mode: cmake language_id: 220 Mako: type: programming @@ -2264,6 +2366,7 @@ Mako: Markdown: type: prose ace_mode: markdown + codemirror_mode: markdown wrap: true extensions: - ".md" @@ -2297,6 +2400,7 @@ Mathematica: aliases: - mma ace_mode: text + codemirror_mode: mathematica language_id: 224 Matlab: type: programming @@ -2307,6 +2411,7 @@ Matlab: - ".matlab" - ".m" ace_mode: matlab + codemirror_mode: octave language_id: 225 Maven POM: type: data @@ -2314,6 +2419,7 @@ Maven POM: filenames: - pom.xml ace_mode: xml + codemirror_mode: xml language_id: 226 Max: type: programming @@ -2330,6 +2436,7 @@ Max: - ".pat" tm_scope: source.json ace_mode: json + codemirror_mode: javascript language_id: 227 MediaWiki: type: prose @@ -2358,6 +2465,7 @@ Metal: - ".metal" tm_scope: source.c++ ace_mode: c_cpp + codemirror_mode: clike language_id: 230 MiniD: type: programming @@ -2378,6 +2486,7 @@ Mirah: - ".mirah" tm_scope: source.ruby ace_mode: ruby + codemirror_mode: ruby language_id: 232 Modelica: type: programming @@ -2385,6 +2494,7 @@ Modelica: - ".mo" tm_scope: source.modelica ace_mode: text + codemirror_mode: modelica language_id: 233 Modula-2: type: programming @@ -2454,6 +2564,7 @@ NSIS: - ".nsi" - ".nsh" ace_mode: text + codemirror_mode: nsis language_id: 242 Nemerle: type: programming @@ -2487,6 +2598,7 @@ NetLogo: - ".nlogo" tm_scope: source.lisp ace_mode: lisp + codemirror_mode: commonlisp language_id: 246 NewLisp: type: programming @@ -2500,6 +2612,7 @@ NewLisp: - newlisp tm_scope: source.lisp ace_mode: lisp + codemirror_mode: commonlisp language_id: 247 Nginx: type: markup @@ -2512,6 +2625,7 @@ Nginx: aliases: - nginx configuration file ace_mode: text + codemirror_mode: nginx color: "#9469E9" language_id: 248 Nimrod: @@ -2559,6 +2673,7 @@ Nu: - Nukefile tm_scope: source.nu ace_mode: scheme + codemirror_mode: scheme interpreters: - nush language_id: 253 @@ -2571,11 +2686,13 @@ NumPy: - ".numsc" tm_scope: none ace_mode: text + codemirror_mode: python color: "#9C8AF9" language_id: 254 OCaml: type: programming ace_mode: ocaml + codemirror_mode: mllike color: "#3be133" extensions: - ".ml" @@ -2597,6 +2714,7 @@ ObjDump: - ".objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 + codemirror_mode: gas language_id: 256 Objective-C: type: programming @@ -2610,6 +2728,7 @@ Objective-C: - ".m" - ".h" ace_mode: objectivec + codemirror_mode: clike language_id: 257 Objective-C++: type: programming @@ -2622,6 +2741,7 @@ Objective-C++: extensions: - ".mm" ace_mode: objectivec + codemirror_mode: clike language_id: 258 Objective-J: type: programming @@ -2666,6 +2786,7 @@ OpenCL: - ".opencl" tm_scope: source.c ace_mode: c_cpp + codemirror_mode: clike language_id: 263 OpenEdge ABL: type: programming @@ -2688,6 +2809,7 @@ OpenRC runscript: - openrc-run tm_scope: source.shell ace_mode: sh + codemirror_mode: shell language_id: 265 OpenSCAD: type: programming @@ -2728,6 +2850,7 @@ Oz: - ".oz" tm_scope: source.oz ace_mode: text + codemirror_mode: oz language_id: 270 PAWN: type: programming @@ -2742,6 +2865,7 @@ PHP: type: programming tm_scope: text.html.php ace_mode: php + codemirror_mode: php color: "#4F5D95" extensions: - ".php" @@ -2764,6 +2888,7 @@ PHP: PLSQL: type: programming ace_mode: sql + codemirror_mode: sql tm_scope: none color: "#dad8d8" extensions: @@ -2778,6 +2903,7 @@ PLSQL: PLpgSQL: type: programming ace_mode: pgsql + codemirror_mode: sql tm_scope: source.sql extensions: - ".sql" @@ -2854,11 +2980,13 @@ Pascal: interpreters: - instantfpc ace_mode: pascal + codemirror_mode: pascal language_id: 281 Perl: type: programming tm_scope: source.perl ace_mode: perl + codemirror_mode: perl color: "#0298c3" extensions: - ".pl" @@ -2896,6 +3024,7 @@ Perl6: - perl6 tm_scope: source.perl6fe ace_mode: perl + codemirror_mode: perl language_id: 283 Pickle: type: data @@ -2935,6 +3064,7 @@ Pike: Pod: type: prose ace_mode: perl + codemirror_mode: perl wrap: true extensions: - ".pod" @@ -2980,6 +3110,7 @@ PowerBuilder: PowerShell: type: programming ace_mode: powershell + codemirror_mode: powershell aliases: - posh extensions: @@ -3025,6 +3156,7 @@ Protocol Buffer: - ".proto" tm_scope: source.protobuf ace_mode: protobuf + codemirror_mode: protobuf language_id: 297 Public Key: type: data @@ -3042,6 +3174,7 @@ Puppet: filenames: - Modulefile ace_mode: text + codemirror_mode: puppet tm_scope: source.puppet language_id: 299 Pure Data: @@ -3068,10 +3201,12 @@ PureScript: - ".purs" tm_scope: source.purescript ace_mode: haskell + codemirror_mode: haskell language_id: 302 Python: type: programming ace_mode: python + codemirror_mode: python color: "#3572A5" extensions: - ".py" @@ -3146,10 +3281,12 @@ R: interpreters: - Rscript ace_mode: r + codemirror_mode: r language_id: 307 RAML: type: markup ace_mode: yaml + codemirror_mode: yaml tm_scope: source.yaml color: "#77d9fb" extensions: @@ -3195,11 +3332,13 @@ RHTML: aliases: - html+ruby ace_mode: rhtml + codemirror_mode: htmlembedded language_id: 312 RMarkdown: type: prose wrap: true ace_mode: markdown + codemirror_mode: markdown extensions: - ".rmd" tm_scope: source.gfm @@ -3212,6 +3351,7 @@ RPM Spec: aliases: - specfile ace_mode: text + codemirror_mode: rpm language_id: 314 RUNOFF: type: markup @@ -3314,6 +3454,7 @@ RobotFramework: Rouge: type: programming ace_mode: clojure + codemirror_mode: clojure color: "#cc0088" extensions: - ".rg" @@ -3322,6 +3463,7 @@ Rouge: Ruby: type: programming ace_mode: ruby + codemirror_mode: ruby color: "#701516" aliases: - jruby @@ -3383,6 +3525,7 @@ Rust: - ".rs" - ".rs.in" ace_mode: rust + codemirror_mode: rust language_id: 327 SAS: type: programming @@ -3391,12 +3534,14 @@ SAS: - ".sas" tm_scope: source.sas ace_mode: text + codemirror_mode: sas language_id: 328 SCSS: type: markup tm_scope: source.scss group: CSS ace_mode: scss + codemirror_mode: css extensions: - ".scss" color: "#CF649A" @@ -3424,6 +3569,7 @@ SPARQL: type: data tm_scope: source.sparql ace_mode: text + codemirror_mode: sparql extensions: - ".sparql" - ".rq" @@ -3441,6 +3587,7 @@ SQL: type: data tm_scope: source.sql ace_mode: sql + codemirror_mode: sql extensions: - ".sql" - ".cql" @@ -3454,6 +3601,7 @@ SQL: SQLPL: type: programming ace_mode: sql + codemirror_mode: sql tm_scope: source.sql extensions: - ".sql" @@ -3464,6 +3612,7 @@ SRecode Template: color: "#348a34" tm_scope: source.lisp ace_mode: lisp + codemirror_mode: commonlisp extensions: - ".srt" language_id: 335 @@ -3481,6 +3630,7 @@ SVG: - ".svg" tm_scope: text.xml ace_mode: xml + codemirror_mode: xml language_id: 337 Sage: type: programming @@ -3490,6 +3640,7 @@ Sage: - ".sagews" tm_scope: source.python ace_mode: python + codemirror_mode: python language_id: 338 SaltStack: type: programming @@ -3501,6 +3652,7 @@ SaltStack: - ".sls" tm_scope: source.yaml.salt ace_mode: yaml + codemirror_mode: yaml language_id: 339 Sass: type: markup @@ -3509,11 +3661,13 @@ Sass: extensions: - ".sass" ace_mode: sass + codemirror_mode: sass color: "#CF649A" language_id: 340 Scala: type: programming ace_mode: scala + codemirror_mode: clike color: "#c22d40" extensions: - ".scala" @@ -3547,6 +3701,7 @@ Scheme: - gosh - r6rs ace_mode: scheme + codemirror_mode: scheme language_id: 343 Scilab: type: programming @@ -3598,6 +3753,7 @@ Shell: - sh - zsh ace_mode: sh + codemirror_mode: shell language_id: 346 ShellSession: type: programming @@ -3608,6 +3764,7 @@ ShellSession: - console tm_scope: text.shell-session ace_mode: sh + codemirror_mode: shell language_id: 347 Shen: type: programming @@ -3633,6 +3790,7 @@ Slim: - ".slim" tm_scope: text.slim ace_mode: text + codemirror_mode: slim language_id: 350 Smali: type: programming @@ -3650,12 +3808,14 @@ Smalltalk: aliases: - squeak ace_mode: text + codemirror_mode: smalltalk language_id: 352 Smarty: type: programming extensions: - ".tpl" ace_mode: smarty + codemirror_mode: smarty tm_scope: text.html.smarty language_id: 353 SourcePawn: @@ -3677,6 +3837,7 @@ Squirrel: - ".nut" tm_scope: source.c++ ace_mode: c_cpp + codemirror_mode: clike language_id: 355 Stan: type: programming @@ -3698,6 +3859,7 @@ Standard ML: - ".sml" tm_scope: source.ml ace_mode: text + codemirror_mode: mllike language_id: 357 Stata: type: programming @@ -3718,6 +3880,7 @@ Stylus: - ".styl" tm_scope: source.stylus ace_mode: stylus + codemirror_mode: stylus language_id: 359 SubRip Text: type: data @@ -3744,6 +3907,7 @@ Swift: extensions: - ".swift" ace_mode: text + codemirror_mode: swift language_id: 362 SystemVerilog: type: programming @@ -3753,6 +3917,7 @@ SystemVerilog: - ".svh" - ".vh" ace_mode: verilog + codemirror_mode: verilog language_id: 363 TLA: type: programming @@ -3767,6 +3932,7 @@ TOML: - ".toml" tm_scope: source.toml ace_mode: toml + codemirror_mode: toml language_id: 365 TXL: type: programming @@ -3786,6 +3952,7 @@ Tcl: - tclsh - wish ace_mode: tcl + codemirror_mode: tcl language_id: 367 Tcsh: type: programming @@ -3795,11 +3962,13 @@ Tcsh: - ".csh" tm_scope: source.shell ace_mode: sh + codemirror_mode: shell language_id: 368 TeX: type: markup color: "#3D6117" ace_mode: tex + codemirror_mode: stex wrap: true aliases: - latex @@ -3833,6 +4002,7 @@ Terra: - ".t" color: "#00004c" ace_mode: lua + codemirror_mode: lua interpreters: - lua language_id: 371 @@ -3865,6 +4035,7 @@ Text: Textile: type: prose ace_mode: textile + codemirror_mode: textile wrap: true extensions: - ".textile" @@ -3892,6 +4063,7 @@ Turtle: - ".ttl" tm_scope: source.turtle ace_mode: text + codemirror_mode: turtle language_id: 376 Twig: type: markup @@ -3900,6 +4072,7 @@ Twig: - ".twig" tm_scope: text.html.twig ace_mode: twig + codemirror_mode: twig language_id: 377 TypeScript: type: programming @@ -3911,11 +4084,13 @@ TypeScript: - ".tsx" tm_scope: source.ts ace_mode: typescript + codemirror_mode: javascript language_id: 378 Unified Parallel C: type: programming group: C ace_mode: c_cpp + codemirror_mode: clike color: "#4e3617" extensions: - ".upc" @@ -3924,6 +4099,7 @@ Unified Parallel C: Unity3D Asset: type: data ace_mode: yaml + codemirror_mode: yaml extensions: - ".anim" - ".asset" @@ -3938,6 +4114,7 @@ Uno: extensions: - ".uno" ace_mode: csharp + codemirror_mode: clike tm_scope: source.cs language_id: 381 UnrealScript: @@ -3947,6 +4124,7 @@ UnrealScript: - ".uc" tm_scope: source.java ace_mode: java + codemirror_mode: clike language_id: 382 UrWeb: type: programming @@ -3980,6 +4158,7 @@ VHDL: - ".vht" - ".vhw" ace_mode: vhdl + codemirror_mode: vhdl language_id: 385 Vala: type: programming @@ -3996,6 +4175,7 @@ Verilog: - ".v" - ".veo" ace_mode: verilog + codemirror_mode: verilog language_id: 387 VimL: type: programming @@ -4032,6 +4212,7 @@ Visual Basic: - vb.net - vbnet ace_mode: text + codemirror_mode: vb language_id: 389 Volt: type: programming @@ -4040,6 +4221,7 @@ Volt: - ".volt" tm_scope: source.d ace_mode: d + codemirror_mode: d language_id: 390 Vue: type: markup @@ -4048,6 +4230,7 @@ Vue: - ".vue" tm_scope: text.html.vue ace_mode: html + codemirror_mode: vue language_id: 391 Wavefront Material: type: data @@ -4077,6 +4260,7 @@ WebIDL: - ".webidl" tm_scope: source.webidl ace_mode: text + codemirror_mode: webidl language_id: 395 World of Warcraft Addon Data: type: data @@ -4102,10 +4286,12 @@ XC: - ".xc" tm_scope: source.xc ace_mode: c_cpp + codemirror_mode: clike language_id: 398 XML: type: data ace_mode: xml + codemirror_mode: xml aliases: - rss - xsd @@ -4214,6 +4400,7 @@ XPages: - ".xsp.metadata" tm_scope: none ace_mode: xml + codemirror_mode: xml language_id: 400 XProc: type: programming @@ -4222,6 +4409,7 @@ XProc: - ".xproc" tm_scope: text.xml ace_mode: xml + codemirror_mode: xml language_id: 401 XQuery: type: programming @@ -4233,6 +4421,7 @@ XQuery: - ".xqm" - ".xqy" ace_mode: xquery + codemirror_mode: xquery tm_scope: source.xq language_id: 402 XS: @@ -4241,6 +4430,7 @@ XS: - ".xs" tm_scope: source.c ace_mode: c_cpp + codemirror_mode: clike language_id: 403 XSLT: type: programming @@ -4251,6 +4441,7 @@ XSLT: - ".xsl" tm_scope: text.xml.xsl ace_mode: xml + codemirror_mode: xml color: "#EB8CEB" language_id: 404 Xojo: @@ -4287,6 +4478,7 @@ YAML: filenames: - ".clang-format" ace_mode: yaml + codemirror_mode: yaml language_id: 407 YANG: type: data @@ -4343,6 +4535,7 @@ eC: edn: type: data ace_mode: clojure + codemirror_mode: clojure extensions: - ".edn" tm_scope: source.clojure @@ -4390,6 +4583,7 @@ reStructuredText: - ".rest.txt" - ".rst.txt" ace_mode: text + codemirror_mode: rst language_id: 419 wisp: type: programming From 30298a9ef84964dd81446cc24e682e8302ee70cd Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 21 Sep 2016 09:27:28 -0700 Subject: [PATCH 048/114] Whitelist troublesome licenses --- test/test_grammars.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 0a7260b8..69ec0627 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -5,7 +5,9 @@ class TestGrammars < Minitest::Test # List of projects that are allowed without licenses PROJECT_WHITELIST = [ - # Dual MIT and GPL license + "vendor/grammars/factor", + "vendor/grammars/go-tmbundle", + "vendor/grammars/jflex.tmbundle", "vendor/grammars/language-csharp", "vendor/grammars/sublimeassembly" ].freeze From 1d7ba18b158086e645aa6db6715da639b6d671da Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 21 Sep 2016 20:12:27 -0700 Subject: [PATCH 049/114] M scope --- lib/linguist/languages.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 541fd71f..468f424a 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -17,7 +17,7 @@ # search_term - Deprecated: Some languages may be indexed under a # different alias. Avoid defining new exceptions. # language_id - Integer used as a language-name-independent indexed field so that we can rename -# languages in Linguist without reindexing all the code on GitHub. Must not be +# languages in Linguist without reindexing all the code on GitHub. Must not be # changed for existing languages without the explicit permission of GitHub staff. # color - CSS hex color to represent the language. # tm_scope - The TextMate scope that represents this programming @@ -2279,6 +2279,7 @@ M: ace_mode: text codemirror_mode: mumps language_id: 214 + tm_scope: none M4: type: programming extensions: From d6d7d38eb8349d4b57b78fef740c8f07d280dbe1 Mon Sep 17 00:00:00 2001 From: Todd Berman Date: Wed, 21 Sep 2016 20:52:49 -0700 Subject: [PATCH 050/114] Fix w/ a test --- lib/linguist/language.rb | 1 + test/test_language.rb | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 7f4fd903..85eade29 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -585,6 +585,7 @@ module Linguist :aliases => options['aliases'], :tm_scope => options['tm_scope'], :ace_mode => options['ace_mode'], + :codemirror_mode => options['codemirror_mode'], :wrap => options['wrap'], :group_name => options['group'], :searchable => options.fetch('searchable', true), diff --git a/test/test_language.rb b/test/test_language.rb index 5c5aa02d..fec4e29b 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -349,6 +349,10 @@ class TestLanguage < Minitest::Test assert Language.ace_modes.include?(Language['FORTRAN']) end + def test_codemirror_mode + assert_equal 'clike', Language['C++'].codemirror_mode + end + def test_wrap assert_equal false, Language['C'].wrap assert_equal true, Language['Markdown'].wrap From 8e19aea39e70fb213ee490dfd701af70c950f44d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 21 Sep 2016 20:58:12 -0700 Subject: [PATCH 051/114] Removing stray Sublime-VimL grammar reference --- vendor/grammars/Sublime-VimL | 1 - 1 file changed, 1 deletion(-) delete mode 160000 vendor/grammars/Sublime-VimL diff --git a/vendor/grammars/Sublime-VimL b/vendor/grammars/Sublime-VimL deleted file mode 160000 index b453aff6..00000000 --- a/vendor/grammars/Sublime-VimL +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b453aff6f783769b6b895986da605a2db0db7379 From ecd4ae3bda486a9527f87519e4f2530e12e09786 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 21 Sep 2016 21:04:26 -0700 Subject: [PATCH 052/114] Bumping to v4.8.13 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 1fbf952c..000a9aae 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.8.12" + VERSION = "4.8.13" end From a7a123a8db9e5df923ba63bc9aa2fdc1f7205a96 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Wed, 14 Sep 2016 15:48:46 +0200 Subject: [PATCH 053/114] Add heuristic for .inc files: the #declare keyword is unique to POV-Ray. Also added #local, #macro, and #while. --- lib/linguist/heuristics.rb | 2 ++ test/test_heuristics.rb | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 1d5196f4..2c99b476 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -202,6 +202,8 @@ module Linguist disambiguate ".inc" do |data| if /^<\?(?:php)?/.match(data) Language["PHP"] + elsif /^\s*#(declare|local|macro|while)\s/.match(data) + Language["POV-Ray SDL"] end end diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index e37da44b..62e5a050 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -122,9 +122,12 @@ class TestHeuristcs < Minitest::Test }) end + # Candidate languages = ["Assembly", "C++", "HTML", "PAWN", "PHP", + # "POV-Ray SDL", "Pascal", "SQL", "SourcePawn"] def test_inc_by_heuristics assert_heuristics({ - "PHP" => all_fixtures("PHP", "*.inc") + "PHP" => all_fixtures("PHP", "*.inc"), + "POV-Ray SDL" => all_fixtures("POV-Ray SDL", "*.inc") }) end From b4035a38045f7f5484f33e6ca438608a2a558e23 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 22 Sep 2016 20:33:39 -0700 Subject: [PATCH 054/114] Update grammars --- vendor/grammars/Docker.tmbundle | 2 +- vendor/grammars/atom-language-clean | 2 +- vendor/grammars/cython | 2 +- vendor/grammars/d.tmbundle | 2 +- vendor/grammars/elixir-tmbundle | 2 +- vendor/grammars/language-asn1 | 2 +- vendor/grammars/language-blade | 2 +- vendor/grammars/language-coffee-script | 2 +- vendor/grammars/language-csharp | 2 +- vendor/grammars/language-emacs-lisp | 2 +- vendor/grammars/language-haskell | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-less | 2 +- vendor/grammars/language-renpy | 2 +- vendor/grammars/language-roff | 2 +- vendor/grammars/language-viml | 2 +- vendor/grammars/make.tmbundle | 2 +- vendor/grammars/mediawiki.tmbundle | 2 +- vendor/grammars/sublime-rust | 2 +- vendor/grammars/vue-syntax-highlight | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/vendor/grammars/Docker.tmbundle b/vendor/grammars/Docker.tmbundle index 2d7d56af..c6230cb6 160000 --- a/vendor/grammars/Docker.tmbundle +++ b/vendor/grammars/Docker.tmbundle @@ -1 +1 @@ -Subproject commit 2d7d56af17fdf425fdebb34019b8cbd71110250a +Subproject commit c6230cb62c44eecea0123b54b86047517af25de1 diff --git a/vendor/grammars/atom-language-clean b/vendor/grammars/atom-language-clean index a9b83780..7dafe70d 160000 --- a/vendor/grammars/atom-language-clean +++ b/vendor/grammars/atom-language-clean @@ -1 +1 @@ -Subproject commit a9b837801d887ea072bdb52b16b5e45fe88365a8 +Subproject commit 7dafe70dddd5bb87aa2d3a3c522bb1561b908bbb diff --git a/vendor/grammars/cython b/vendor/grammars/cython index e9f4d3a1..a816e2c0 160000 --- a/vendor/grammars/cython +++ b/vendor/grammars/cython @@ -1 +1 @@ -Subproject commit e9f4d3a1e44a14df8f245f98591f62df34fbabd8 +Subproject commit a816e2c05d8a6f4bcf937b635c942e63afda2040 diff --git a/vendor/grammars/d.tmbundle b/vendor/grammars/d.tmbundle index 080e5343..039c92d9 160000 --- a/vendor/grammars/d.tmbundle +++ b/vendor/grammars/d.tmbundle @@ -1 +1 @@ -Subproject commit 080e5343d8979d2b9c0502e80ac82d906bb7996f +Subproject commit 039c92d9f2f583f8c51bbeb39094c9e208614001 diff --git a/vendor/grammars/elixir-tmbundle b/vendor/grammars/elixir-tmbundle index 6d0417e8..d632e68d 160000 --- a/vendor/grammars/elixir-tmbundle +++ b/vendor/grammars/elixir-tmbundle @@ -1 +1 @@ -Subproject commit 6d0417e8eb7e182810755214d0a8cd6421146c01 +Subproject commit d632e68d09f179cb9fefdb5cfb16db44f39b216a diff --git a/vendor/grammars/language-asn1 b/vendor/grammars/language-asn1 index d45daeb8..bc3811c7 160000 --- a/vendor/grammars/language-asn1 +++ b/vendor/grammars/language-asn1 @@ -1 +1 @@ -Subproject commit d45daeb849f02a79d67585f629bdc83a06cc52e5 +Subproject commit bc3811c7706476e48f5085660b72b18ad028314f diff --git a/vendor/grammars/language-blade b/vendor/grammars/language-blade index fcbe2c20..a5cdd44e 160000 --- a/vendor/grammars/language-blade +++ b/vendor/grammars/language-blade @@ -1 +1 @@ -Subproject commit fcbe2c202295ba1b3f3d2156b64a82999f51374d +Subproject commit a5cdd44eb03cbbba43e634079dec851f06efcc25 diff --git a/vendor/grammars/language-coffee-script b/vendor/grammars/language-coffee-script index 8f001efe..b4137735 160000 --- a/vendor/grammars/language-coffee-script +++ b/vendor/grammars/language-coffee-script @@ -1 +1 @@ -Subproject commit 8f001efe73422d0f7a0c16121588c34e0bd5fe8c +Subproject commit b4137735740818665b0aa55bef843640aa820ca9 diff --git a/vendor/grammars/language-csharp b/vendor/grammars/language-csharp index c97c4bf7..db446854 160000 --- a/vendor/grammars/language-csharp +++ b/vendor/grammars/language-csharp @@ -1 +1 @@ -Subproject commit c97c4bf74d74502c0b78901b12aab09186dc0eba +Subproject commit db4468545a8a1a5e76518e0ae2f6697dc21bf686 diff --git a/vendor/grammars/language-emacs-lisp b/vendor/grammars/language-emacs-lisp index 76ec86a3..77da7424 160000 --- a/vendor/grammars/language-emacs-lisp +++ b/vendor/grammars/language-emacs-lisp @@ -1 +1 @@ -Subproject commit 76ec86a3eb1bc819a4f19de7295a19602a935c09 +Subproject commit 77da74248435f559fe89724b6bb28d663201a2f0 diff --git a/vendor/grammars/language-haskell b/vendor/grammars/language-haskell index 296a7e94..a53aca38 160000 --- a/vendor/grammars/language-haskell +++ b/vendor/grammars/language-haskell @@ -1 +1 @@ -Subproject commit 296a7e94df6b3c89c5247510b7ba4eb71f14c55f +Subproject commit a53aca3856a1b7729a13e2311628bf323d3b7ff0 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index b3d2bb64..101a00ad 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit b3d2bb649a2a2b2f1e8bf391bcd50c603ac1e127 +Subproject commit 101a00adb2925e7e397bd6374b4aa04e4d17479d diff --git a/vendor/grammars/language-less b/vendor/grammars/language-less index d4f5db5f..f34bb335 160000 --- a/vendor/grammars/language-less +++ b/vendor/grammars/language-less @@ -1 +1 @@ -Subproject commit d4f5db5fba671244c1f2085752d1ea9ce34f8bad +Subproject commit f34bb335c73c300b465c31f18fb540002395e050 diff --git a/vendor/grammars/language-renpy b/vendor/grammars/language-renpy index a3b9bbed..82a4b913 160000 --- a/vendor/grammars/language-renpy +++ b/vendor/grammars/language-renpy @@ -1 +1 @@ -Subproject commit a3b9bbed668137ab8db5dbafea4d5611957e68ee +Subproject commit 82a4b9130679d6602b9b3908fe938f9c50a04476 diff --git a/vendor/grammars/language-roff b/vendor/grammars/language-roff index f37fb6b7..743e1621 160000 --- a/vendor/grammars/language-roff +++ b/vendor/grammars/language-roff @@ -1 +1 @@ -Subproject commit f37fb6b7c45837de47cdb0bcb9e7a5a257b1ea24 +Subproject commit 743e1621c6a2ff2dd65b36c4a86ed85b97eed930 diff --git a/vendor/grammars/language-viml b/vendor/grammars/language-viml index ccdaff45..5030fb8b 160000 --- a/vendor/grammars/language-viml +++ b/vendor/grammars/language-viml @@ -1 +1 @@ -Subproject commit ccdaff4535b5720e9a89460afcc7b8dc65f46d27 +Subproject commit 5030fb8b0234fc5b03de7f20c9284a2208a5f449 diff --git a/vendor/grammars/make.tmbundle b/vendor/grammars/make.tmbundle index 1a1827da..01069d2b 160000 --- a/vendor/grammars/make.tmbundle +++ b/vendor/grammars/make.tmbundle @@ -1 +1 @@ -Subproject commit 1a1827da81e20fdce56e2658451340c070ca44b7 +Subproject commit 01069d2b38514f5d5d1519737f4be937566e195e diff --git a/vendor/grammars/mediawiki.tmbundle b/vendor/grammars/mediawiki.tmbundle index f8dead50..bdd6eeb5 160000 --- a/vendor/grammars/mediawiki.tmbundle +++ b/vendor/grammars/mediawiki.tmbundle @@ -1 +1 @@ -Subproject commit f8dead507a1aed539376b9fcfde877a855842e8e +Subproject commit bdd6eeb5ee28c6fcc70cb76c7951c7da8f54e642 diff --git a/vendor/grammars/sublime-rust b/vendor/grammars/sublime-rust index d3c63dec..bb8d73c7 160000 --- a/vendor/grammars/sublime-rust +++ b/vendor/grammars/sublime-rust @@ -1 +1 @@ -Subproject commit d3c63dec579be852b1d8006dc58a9a6f2a9e6cdc +Subproject commit bb8d73c7a23fab9e6cce5c6340a51f0089b40a91 diff --git a/vendor/grammars/vue-syntax-highlight b/vendor/grammars/vue-syntax-highlight index 909afa53..f95b61a4 160000 --- a/vendor/grammars/vue-syntax-highlight +++ b/vendor/grammars/vue-syntax-highlight @@ -1 +1 @@ -Subproject commit 909afa5384d6dcd01f7d883fe2b8b6067f970a26 +Subproject commit f95b61a40dbae2d415a5a9fed90d46a59a3df0cb From a1901fceff5780fb7f872743302aab4329556ec8 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 22 Sep 2016 21:03:33 -0700 Subject: [PATCH 055/114] Bump version to v4.8.14 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 000a9aae..920b08ea 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.8.13" + VERSION = "4.8.14" end From 6a54ee767fa222be2139d3529d71c670f6665b8e Mon Sep 17 00:00:00 2001 From: Josh Cheek Date: Fri, 23 Sep 2016 12:51:46 -0700 Subject: [PATCH 056/114] Set interpreters for Julia Eg this file is not currently highlighted: https://github.com/JoshCheek/language-sampler-for-fullpath/blob/b766dcdbd249ec63516f491390a75315e78cba95/julia/fullpath#L1 --- lib/linguist/languages.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4bb5fbef..1587c10d 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1994,6 +1994,8 @@ Julia: type: programming extensions: - ".jl" + interpreters: + - julia color: "#a270ba" ace_mode: julia codemirror_mode: julia From 88c74fa9c2016c3af79333be301196458ffd8714 Mon Sep 17 00:00:00 2001 From: Todd Berman Date: Fri, 23 Sep 2016 13:40:19 -0700 Subject: [PATCH 057/114] Convert from mode names to mimetypes for better usage. --- lib/linguist/language.rb | 6 +- lib/linguist/languages.yml | 386 ++++++++++++++++++------------------- test/test_language.rb | 2 +- 3 files changed, 196 insertions(+), 198 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 85eade29..49adbbd8 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -398,13 +398,13 @@ module Linguist # Returns a String name or nil attr_reader :ace_mode - # Public: Get Codemirror mode + # Public: Get Codemirror mode (as expressed by a mimetype) # # Examples # # # => "nil" - # # => "javascript" - # # => "clike" + # # => "text/x-javascript" + # # => "text/x-csrc" # # Returns a String name or nil attr_reader :codemirror_mode diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 4bb5fbef..5762f715 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -59,7 +59,7 @@ AGS Script: - ".ash" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-c++src language_id: 2 AMPL: type: programming @@ -97,7 +97,7 @@ APL: - dyalog tm_scope: source.apl ace_mode: text - codemirror_mode: apl + codemirror_mode: text/apl language_id: 6 ASN.1: type: data @@ -107,7 +107,7 @@ ASN.1: - ".asn1" tm_scope: source.asn ace_mode: text - codemirror_mode: asn.1 + codemirror_mode: text/x-ttcn-asn language_id: 7 ASP: type: programming @@ -126,7 +126,7 @@ ASP: - ".aspx" - ".axd" ace_mode: text - codemirror_mode: htmlembedded + codemirror_mode: application/x-aspx language_id: 8 ATS: type: programming @@ -189,7 +189,7 @@ Alpine Abuild: - APKBUILD tm_scope: source.shell ace_mode: sh - codemirror_mode: shell + codemirror_mode: text/x-sh language_id: 14 Ant Build System: type: data @@ -198,7 +198,7 @@ Ant Build System: - ant.xml - build.xml ace_mode: xml - codemirror_mode: xml + codemirror_mode: application/xml language_id: 15 ApacheConf: type: markup @@ -217,7 +217,7 @@ Apex: - ".cls" tm_scope: source.java ace_mode: java - codemirror_mode: clike + codemirror_mode: text/x-java language_id: 17 Apollo Guidance Computer: type: programming @@ -227,7 +227,7 @@ Apollo Guidance Computer: - ".agc" tm_scope: source.agc ace_mode: assembly_x86 - codemirror_mode: gas + codemirror_mode: text/x-gas language_id: 18 AppleScript: type: programming @@ -256,7 +256,7 @@ Arduino: - ".ino" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-c++src language_id: 21 AsciiDoc: type: prose @@ -289,7 +289,7 @@ Assembly: - ".nasm" tm_scope: source.assembly ace_mode: assembly_x86 - codemirror_mode: gas + codemirror_mode: text/x-gas language_id: 24 Augeas: type: programming @@ -427,7 +427,7 @@ Brainfuck: - ".bf" tm_scope: source.bf ace_mode: text - codemirror_mode: brainfuck + codemirror_mode: text/x-brainfuck language_id: 38 Brightscript: type: programming @@ -454,12 +454,12 @@ C: interpreters: - tcc ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-csrc language_id: 41 C#: type: programming ace_mode: csharp - codemirror_mode: clike + codemirror_mode: text/x-csharp tm_scope: source.cs search_term: csharp color: "#178600" @@ -474,7 +474,7 @@ C#: C++: type: programming ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-c++src search_term: cpp color: "#f34b7d" aliases: @@ -502,7 +502,7 @@ C-ObjDump: - ".c-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - codemirror_mode: gas + codemirror_mode: text/x-gas language_id: 44 C2hs Haskell: type: programming @@ -513,7 +513,7 @@ C2hs Haskell: - ".chs" tm_scope: source.haskell ace_mode: haskell - codemirror_mode: haskell + codemirror_mode: text/x-haskell language_id: 45 CLIPS: type: programming @@ -530,7 +530,7 @@ CMake: filenames: - CMakeLists.txt ace_mode: text - codemirror_mode: cmake + codemirror_mode: text/x-cmake language_id: 47 COBOL: type: programming @@ -541,7 +541,7 @@ COBOL: - ".cobol" - ".cpy" ace_mode: cobol - codemirror_mode: cobol + codemirror_mode: text/x-cobol language_id: 48 COLLADA: type: data @@ -549,13 +549,13 @@ COLLADA: - ".dae" tm_scope: text.xml ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/x-xml language_id: 49 CSS: type: markup tm_scope: source.css ace_mode: css - codemirror_mode: css + codemirror_mode: text/css color: "#563d7c" extensions: - ".css" @@ -611,7 +611,7 @@ ChucK: - ".ck" tm_scope: source.java ace_mode: java - codemirror_mode: clike + codemirror_mode: text/x-java language_id: 57 Cirru: type: programming @@ -648,7 +648,7 @@ Click: Clojure: type: programming ace_mode: clojure - codemirror_mode: clojure + codemirror_mode: text/x-clojure color: "#db5855" extensions: - ".clj" @@ -667,7 +667,7 @@ CoffeeScript: type: programming tm_scope: source.coffee ace_mode: coffee - codemirror_mode: coffeescript + codemirror_mode: text/x-coffeescript color: "#244776" aliases: - coffee @@ -733,7 +733,7 @@ Common Lisp: - clisp - ecl ace_mode: lisp - codemirror_mode: commonlisp + codemirror_mode: text/x-common-lisp language_id: 66 Component Pascal: type: programming @@ -746,7 +746,7 @@ Component Pascal: - delphi - objectpascal ace_mode: pascal - codemirror_mode: pascal + codemirror_mode: text/x-pascal language_id: 67 Cool: type: programming @@ -774,7 +774,7 @@ Cpp-ObjDump: aliases: - c++-objdump ace_mode: assembly_x86 - codemirror_mode: gas + codemirror_mode: text/x-gas language_id: 70 Creole: type: prose @@ -790,7 +790,7 @@ Crystal: extensions: - ".cr" ace_mode: ruby - codemirror_mode: crystal + codemirror_mode: text/x-crystal tm_scope: source.crystal interpreters: - crystal @@ -840,7 +840,7 @@ Cuda: - ".cuh" tm_scope: source.cuda-c++ ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-c++src color: "#3A4E3A" language_id: 77 Cycript: @@ -849,7 +849,7 @@ Cycript: - ".cy" tm_scope: source.js ace_mode: javascript - codemirror_mode: javascript + codemirror_mode: text/javascript language_id: 78 Cython: type: programming @@ -861,7 +861,7 @@ Cython: aliases: - pyrex ace_mode: text - codemirror_mode: python + codemirror_mode: text/x-cython language_id: 79 D: type: programming @@ -870,7 +870,7 @@ D: - ".d" - ".di" ace_mode: d - codemirror_mode: d + codemirror_mode: text/x-d language_id: 80 D-ObjDump: type: data @@ -878,7 +878,7 @@ D-ObjDump: - ".d-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - codemirror_mode: gas + codemirror_mode: text/x-gas language_id: 81 DIGITAL Command Language: type: programming @@ -917,7 +917,7 @@ DTrace: - dtrace tm_scope: source.c ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-csrc language_id: 85 Darcs Patch: type: data @@ -938,7 +938,7 @@ Dart: interpreters: - dart ace_mode: dart - codemirror_mode: dart + codemirror_mode: text/x-dart language_id: 87 Diff: type: data @@ -949,7 +949,7 @@ Diff: - udiff tm_scope: source.diff ace_mode: diff - codemirror_mode: diff + codemirror_mode: text/x-diff language_id: 88 Dockerfile: type: data @@ -959,7 +959,7 @@ Dockerfile: filenames: - Dockerfile ace_mode: dockerfile - codemirror_mode: dockerfile + codemirror_mode: text/x-dockerfile language_id: 89 Dogescript: type: programming @@ -978,7 +978,7 @@ Dylan: - ".intr" - ".lid" ace_mode: text - codemirror_mode: dylan + codemirror_mode: text/x-dylan language_id: 91 E: type: programming @@ -998,7 +998,7 @@ ECL: - ".eclxml" tm_scope: none ace_mode: text - codemirror_mode: ecl + codemirror_mode: text/x-ecl language_id: 93 ECLiPSe: type: programming @@ -1024,7 +1024,7 @@ EQ: - ".eq" tm_scope: source.cs ace_mode: csharp - codemirror_mode: clike + codemirror_mode: text/x-csharp language_id: 96 Eagle: type: markup @@ -1034,7 +1034,7 @@ Eagle: - ".brd" tm_scope: text.xml ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/xml language_id: 97 Ecere Projects: type: data @@ -1043,7 +1043,7 @@ Ecere Projects: - ".epj" tm_scope: source.json ace_mode: json - codemirror_mode: json + codemirror_mode: application/json language_id: 98 Eiffel: type: programming @@ -1051,7 +1051,7 @@ Eiffel: extensions: - ".e" ace_mode: eiffel - codemirror_mode: eiffel + codemirror_mode: text/x-eiffel language_id: 99 Elixir: type: programming @@ -1072,7 +1072,7 @@ Elm: - ".elm" tm_scope: source.elm ace_mode: elm - codemirror_mode: elm + codemirror_mode: text/x-elm language_id: 101 Emacs Lisp: type: programming @@ -1096,7 +1096,7 @@ Emacs Lisp: - ".emacs" - ".emacs.desktop" ace_mode: lisp - codemirror_mode: commonlisp + codemirror_mode: text/x-common-lisp language_id: 102 EmberScript: type: programming @@ -1106,7 +1106,7 @@ EmberScript: - ".emberscript" tm_scope: source.coffee ace_mode: coffee - codemirror_mode: coffeescript + codemirror_mode: text/x-coffeescript language_id: 103 Erlang: type: programming @@ -1124,7 +1124,7 @@ Erlang: - rebar.config.lock - rebar.lock ace_mode: erlang - codemirror_mode: erlang + codemirror_mode: text/x-erlang interpreters: - escript language_id: 104 @@ -1140,7 +1140,7 @@ F#: - ".fsx" tm_scope: source.fsharp ace_mode: text - codemirror_mode: mllike + codemirror_mode: text/x-fsharp language_id: 105 FLUX: type: programming @@ -1165,7 +1165,7 @@ FORTRAN: - ".fpp" tm_scope: source.fortran.modern ace_mode: text - codemirror_mode: fortran + codemirror_mode: text/x-fortran language_id: 107 Factor: type: programming @@ -1176,7 +1176,7 @@ Factor: - ".factor-boot-rc" - ".factor-rc" ace_mode: text - codemirror_mode: factor + codemirror_mode: text/x-factor language_id: 108 Fancy: type: programming @@ -1232,7 +1232,7 @@ Forth: - ".frt" - ".fs" ace_mode: forth - codemirror_mode: forth + codemirror_mode: text/x-forth language_id: 114 FreeMarker: type: programming @@ -1287,7 +1287,7 @@ GAS: - ".ms" tm_scope: source.assembly ace_mode: assembly_x86 - codemirror_mode: gas + codemirror_mode: text/x-gas language_id: 120 GCC Machine Description: type: programming @@ -1295,7 +1295,7 @@ GCC Machine Description: - ".md" tm_scope: source.lisp ace_mode: lisp - codemirror_mode: commonlisp + codemirror_mode: text/x-common-lisp language_id: 121 GDB: type: programming @@ -1340,7 +1340,7 @@ Game Maker Language: - ".gml" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-c++src language_id: 125 Genshi: type: programming @@ -1351,7 +1351,7 @@ Genshi: - xml+genshi - xml+kid ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/xml language_id: 126 Gentoo Ebuild: type: programming @@ -1360,7 +1360,7 @@ Gentoo Ebuild: - ".ebuild" tm_scope: source.shell ace_mode: sh - codemirror_mode: shell + codemirror_mode: text/x-sh language_id: 127 Gentoo Eclass: type: programming @@ -1369,7 +1369,7 @@ Gentoo Eclass: - ".eclass" tm_scope: source.shell ace_mode: sh - codemirror_mode: shell + codemirror_mode: text/x-sh language_id: 128 Gettext Catalog: type: prose @@ -1390,7 +1390,7 @@ Glyph: - ".glf" tm_scope: source.tcl ace_mode: tcl - codemirror_mode: tcl + codemirror_mode: text/x-tcl language_id: 130 Gnuplot: type: programming @@ -1411,7 +1411,7 @@ Go: extensions: - ".go" ace_mode: golang - codemirror_mode: go + codemirror_mode: text/x-go language_id: 132 Golo: type: programming @@ -1457,7 +1457,7 @@ Grammatical Framework: color: "#79aa7a" tm_scope: source.haskell ace_mode: haskell - codemirror_mode: haskell + codemirror_mode: text/x-haskell language_id: 137 Graph Modeling Language: type: data @@ -1517,12 +1517,12 @@ Groff: - nroff - troff ace_mode: text - codemirror_mode: troff + codemirror_mode: text/troff language_id: 141 Groovy: type: programming ace_mode: groovy - codemirror_mode: groovy + codemirror_mode: text/x-groovy color: "#e69f56" extensions: - ".groovy" @@ -1544,7 +1544,7 @@ Groovy Server Pages: - ".gsp" tm_scope: text.html.jsp ace_mode: jsp - codemirror_mode: htmlembedded + codemirror_mode: application/x-jsp language_id: 143 HCL: type: programming @@ -1552,7 +1552,7 @@ HCL: - ".hcl" - ".tf" ace_mode: ruby - codemirror_mode: ruby + codemirror_mode: text/x-ruby tm_scope: source.ruby language_id: 144 HLSL: @@ -1569,7 +1569,7 @@ HTML: type: markup tm_scope: text.html.basic ace_mode: html - codemirror_mode: html + codemirror_mode: text/html color: "#e44b23" aliases: - xhtml @@ -1595,7 +1595,7 @@ HTML+Django: - html+jinja - htmldjango ace_mode: django - codemirror_mode: django + codemirror_mode: text/x-django language_id: 147 HTML+ECR: type: markup @@ -1606,7 +1606,7 @@ HTML+ECR: extensions: - ".ecr" ace_mode: text - codemirror_mode: htmlembedded + codemirror_mode: text/html language_id: 148 HTML+EEX: type: markup @@ -1617,7 +1617,7 @@ HTML+EEX: extensions: - ".eex" ace_mode: text - codemirror_mode: htmlembedded + codemirror_mode: text/html language_id: 149 HTML+ERB: type: markup @@ -1629,7 +1629,7 @@ HTML+ERB: - ".erb" - ".erb.deface" ace_mode: text - codemirror_mode: htmlembedded + codemirror_mode: application/x-erb language_id: 150 HTML+PHP: type: markup @@ -1638,7 +1638,7 @@ HTML+PHP: extensions: - ".phtml" ace_mode: php - codemirror_mode: php + codemirror_mode: application/x-httpd-php language_id: 151 HTTP: type: data @@ -1646,12 +1646,12 @@ HTTP: - ".http" tm_scope: source.httpspec ace_mode: text - codemirror_mode: http + codemirror_mode: message/http language_id: 152 Hack: type: programming ace_mode: php - codemirror_mode: php + codemirror_mode: application/x-httpd-php extensions: - ".hh" - ".php" @@ -1665,7 +1665,7 @@ Haml: - ".haml" - ".haml.deface" ace_mode: haml - codemirror_mode: haml + codemirror_mode: text/x-haml color: "#ECE2A9" language_id: 154 Handlebars: @@ -1680,7 +1680,6 @@ Handlebars: - ".hbs" tm_scope: text.html.handlebars ace_mode: handlebars - codemirror_mode: handlebars language_id: 155 Harbour: type: programming @@ -1699,12 +1698,12 @@ Haskell: interpreters: - runhaskell ace_mode: haskell - codemirror_mode: haskell + codemirror_mode: text/x-haskell language_id: 157 Haxe: type: programming ace_mode: haxe - codemirror_mode: haxe + codemirror_mode: text/x-haxe color: "#df7900" extensions: - ".hx" @@ -1735,7 +1734,7 @@ IDL: - ".pro" - ".dlm" ace_mode: text - codemirror_mode: idl + codemirror_mode: text/x-idl language_id: 161 IGOR Pro: type: programming @@ -1759,7 +1758,7 @@ INI: aliases: - dosini ace_mode: ini - codemirror_mode: properties + codemirror_mode: text/x-properties language_id: 163 IRC log: type: data @@ -1859,7 +1858,7 @@ JSON: tm_scope: source.json group: JavaScript ace_mode: json - codemirror_mode: javascript + codemirror_mode: application/json searchable: false extensions: - ".json" @@ -1878,13 +1877,13 @@ JSON5: - ".json5" tm_scope: source.js ace_mode: javascript - codemirror_mode: javascript + codemirror_mode: application/json language_id: 175 JSONLD: type: data group: JavaScript ace_mode: javascript - codemirror_mode: javascript + codemirror_mode: application/ld+json extensions: - ".jsonld" tm_scope: source.js @@ -1893,7 +1892,7 @@ JSONiq: color: "#40d47e" type: programming ace_mode: jsoniq - codemirror_mode: javascript + codemirror_mode: application/json extensions: - ".jq" tm_scope: source.jq @@ -1904,7 +1903,7 @@ JSX: extensions: - ".jsx" tm_scope: source.js.jsx - ace_mode: javascript + ace_mode: text/jsx language_id: 178 Jade: group: HTML @@ -1914,7 +1913,7 @@ Jade: - ".pug" tm_scope: text.jade ace_mode: jade - codemirror_mode: pug + codemirror_mode: text/x-pug language_id: 179 Jasmin: type: programming @@ -1926,7 +1925,7 @@ Jasmin: Java: type: programming ace_mode: java - codemirror_mode: clike + codemirror_mode: text/x-java color: "#b07219" extensions: - ".java" @@ -1941,13 +1940,13 @@ Java Server Pages: - ".jsp" tm_scope: text.html.jsp ace_mode: jsp - codemirror_mode: htmlembedded + codemirror_mode: application/x-jsp language_id: 182 JavaScript: type: programming tm_scope: source.js ace_mode: javascript - codemirror_mode: javascript + codemirror_mode: text/javascript color: "#f1e05a" aliases: - js @@ -1996,12 +1995,12 @@ Julia: - ".jl" color: "#a270ba" ace_mode: julia - codemirror_mode: julia + codemirror_mode: text/x-julia language_id: 184 Jupyter Notebook: type: markup ace_mode: json - codemirror_mode: javascript + codemirror_mode: application/json tm_scope: source.json color: "#DA5B0B" extensions: @@ -2031,7 +2030,7 @@ KiCad: Kit: type: markup ace_mode: html - codemirror_mode: html + codemirror_mode: text/html extensions: - ".kit" tm_scope: text.html.basic @@ -2045,7 +2044,7 @@ Kotlin: - ".kts" tm_scope: source.Kotlin ace_mode: text - codemirror_mode: kotlin + codemirror_mode: text/x-kotlin language_id: 189 LFE: type: programming @@ -2055,7 +2054,7 @@ LFE: group: Erlang tm_scope: source.lisp ace_mode: lisp - codemirror_mode: commonlisp + codemirror_mode: text/x-common-lisp language_id: 190 LLVM: type: programming @@ -2088,7 +2087,7 @@ LabVIEW: - ".lvproj" tm_scope: text.xml ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/xml language_id: 194 Lasso: type: programming @@ -2112,7 +2111,7 @@ Latte: - ".latte" tm_scope: text.html.smarty ace_mode: smarty - codemirror_mode: smarty + codemirror_mode: text/x-smarty language_id: 196 Lean: type: programming @@ -2128,7 +2127,7 @@ Less: - ".less" tm_scope: source.css.less ace_mode: less - codemirror_mode: css + codemirror_mode: text/css color: "#A1D9A1" language_id: 198 Lex: @@ -2212,7 +2211,7 @@ Literate Haskell: - ".lhs" tm_scope: text.tex.latex.haskell ace_mode: text - codemirror_mode: haskell-literate + codemirror_mode: text/x-literate-haskell language_id: 207 LiveScript: type: programming @@ -2226,7 +2225,7 @@ LiveScript: filenames: - Slakefile ace_mode: livescript - codemirror_mode: livescript + codemirror_mode: text/x-livescript language_id: 208 Logos: type: programming @@ -2247,7 +2246,7 @@ Logtalk: LookML: type: programming ace_mode: yaml - codemirror_mode: yaml + codemirror_mode: text/x-yaml color: "#652B81" extensions: - ".lookml" @@ -2263,7 +2262,7 @@ LoomScript: Lua: type: programming ace_mode: lua - codemirror_mode: lua + codemirror_mode: text/x-lua color: "#000080" extensions: - ".lua" @@ -2283,7 +2282,7 @@ M: - ".mumps" - ".m" ace_mode: text - codemirror_mode: mumps + codemirror_mode: text/x-mumps language_id: 214 tm_scope: none M4: @@ -2321,7 +2320,7 @@ MTML: - ".mtml" tm_scope: text.html.basic ace_mode: html - codemirror_mode: html + codemirror_mode: text/html language_id: 218 MUF: type: programming @@ -2331,7 +2330,7 @@ MUF: - ".m" tm_scope: none ace_mode: forth - codemirror_mode: forth + codemirror_mode: text/x-forth language_id: 219 Makefile: type: programming @@ -2360,7 +2359,7 @@ Makefile: interpreters: - make ace_mode: makefile - codemirror_mode: cmake + codemirror_mode: text/x-cmake language_id: 220 Mako: type: programming @@ -2373,7 +2372,7 @@ Mako: Markdown: type: prose ace_mode: markdown - codemirror_mode: markdown + codemirror_mode: text/x-gfm wrap: true extensions: - ".md" @@ -2407,7 +2406,7 @@ Mathematica: aliases: - mma ace_mode: text - codemirror_mode: mathematica + codemirror_mode: text/x-mathematica language_id: 224 Matlab: type: programming @@ -2418,7 +2417,7 @@ Matlab: - ".matlab" - ".m" ace_mode: matlab - codemirror_mode: octave + codemirror_mode: text/x-octave language_id: 225 Maven POM: type: data @@ -2426,7 +2425,7 @@ Maven POM: filenames: - pom.xml ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/xml language_id: 226 Max: type: programming @@ -2443,7 +2442,7 @@ Max: - ".pat" tm_scope: source.json ace_mode: json - codemirror_mode: javascript + codemirror_mode: application/json language_id: 227 MediaWiki: type: prose @@ -2472,7 +2471,7 @@ Metal: - ".metal" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-c++src language_id: 230 MiniD: type: programming @@ -2493,7 +2492,7 @@ Mirah: - ".mirah" tm_scope: source.ruby ace_mode: ruby - codemirror_mode: ruby + codemirror_mode: text/x-ruby language_id: 232 Modelica: type: programming @@ -2501,7 +2500,7 @@ Modelica: - ".mo" tm_scope: source.modelica ace_mode: text - codemirror_mode: modelica + codemirror_mode: text/x-modelica language_id: 233 Modula-2: type: programming @@ -2571,7 +2570,7 @@ NSIS: - ".nsi" - ".nsh" ace_mode: text - codemirror_mode: nsis + codemirror_mode: text/x-nsis language_id: 242 Nemerle: type: programming @@ -2605,7 +2604,7 @@ NetLogo: - ".nlogo" tm_scope: source.lisp ace_mode: lisp - codemirror_mode: commonlisp + codemirror_mode: text/x-common-lisp language_id: 246 NewLisp: type: programming @@ -2619,7 +2618,7 @@ NewLisp: - newlisp tm_scope: source.lisp ace_mode: lisp - codemirror_mode: commonlisp + codemirror_mode: text/x-common-lisp language_id: 247 Nginx: type: markup @@ -2632,7 +2631,7 @@ Nginx: aliases: - nginx configuration file ace_mode: text - codemirror_mode: nginx + codemirror_mode: text/x-nginx-conf color: "#9469E9" language_id: 248 Nimrod: @@ -2680,7 +2679,7 @@ Nu: - Nukefile tm_scope: source.nu ace_mode: scheme - codemirror_mode: scheme + codemirror_mode: text/x-scheme interpreters: - nush language_id: 253 @@ -2693,13 +2692,13 @@ NumPy: - ".numsc" tm_scope: none ace_mode: text - codemirror_mode: python + codemirror_mode: text/x-python color: "#9C8AF9" language_id: 254 OCaml: type: programming ace_mode: ocaml - codemirror_mode: mllike + codemirror_mode: text/x-ocaml color: "#3be133" extensions: - ".ml" @@ -2721,7 +2720,7 @@ ObjDump: - ".objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - codemirror_mode: gas + codemirror_mode: text/x-gas language_id: 256 Objective-C: type: programming @@ -2735,7 +2734,7 @@ Objective-C: - ".m" - ".h" ace_mode: objectivec - codemirror_mode: clike + codemirror_mode: text/x-objectivec language_id: 257 Objective-C++: type: programming @@ -2748,7 +2747,7 @@ Objective-C++: extensions: - ".mm" ace_mode: objectivec - codemirror_mode: clike + codemirror_mode: text/x-objectivec language_id: 258 Objective-J: type: programming @@ -2793,7 +2792,7 @@ OpenCL: - ".opencl" tm_scope: source.c ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-csrc language_id: 263 OpenEdge ABL: type: programming @@ -2816,7 +2815,7 @@ OpenRC runscript: - openrc-run tm_scope: source.shell ace_mode: sh - codemirror_mode: shell + codemirror_mode: text/x-sh language_id: 265 OpenSCAD: type: programming @@ -2857,7 +2856,7 @@ Oz: - ".oz" tm_scope: source.oz ace_mode: text - codemirror_mode: oz + codemirror_mode: text/x-oz language_id: 270 PAWN: type: programming @@ -2872,7 +2871,7 @@ PHP: type: programming tm_scope: text.html.php ace_mode: php - codemirror_mode: php + codemirror_mode: application/x-httpd-php color: "#4F5D95" extensions: - ".php" @@ -2895,7 +2894,7 @@ PHP: PLSQL: type: programming ace_mode: sql - codemirror_mode: sql + codemirror_mode: text/x-plsql tm_scope: none color: "#dad8d8" extensions: @@ -2910,7 +2909,7 @@ PLSQL: PLpgSQL: type: programming ace_mode: pgsql - codemirror_mode: sql + codemirror_mode: text/x-sql tm_scope: source.sql extensions: - ".sql" @@ -2987,13 +2986,13 @@ Pascal: interpreters: - instantfpc ace_mode: pascal - codemirror_mode: pascal + codemirror_mode: text/x-pascal language_id: 281 Perl: type: programming tm_scope: source.perl ace_mode: perl - codemirror_mode: perl + codemirror_mode: text/x-perl color: "#0298c3" extensions: - ".pl" @@ -3031,7 +3030,7 @@ Perl6: - perl6 tm_scope: source.perl6fe ace_mode: perl - codemirror_mode: perl + codemirror_mode: text/x-perl language_id: 283 Pickle: type: data @@ -3071,7 +3070,7 @@ Pike: Pod: type: prose ace_mode: perl - codemirror_mode: perl + codemirror_mode: text/x-perl wrap: true extensions: - ".pod" @@ -3117,7 +3116,7 @@ PowerBuilder: PowerShell: type: programming ace_mode: powershell - codemirror_mode: powershell + codemirror_mode: text/x-powershell aliases: - posh extensions: @@ -3163,7 +3162,7 @@ Protocol Buffer: - ".proto" tm_scope: source.protobuf ace_mode: protobuf - codemirror_mode: protobuf + codemirror_mode: text/x-protobuf language_id: 297 Public Key: type: data @@ -3181,7 +3180,7 @@ Puppet: filenames: - Modulefile ace_mode: text - codemirror_mode: puppet + codemirror_mode: text/x-puppet tm_scope: source.puppet language_id: 299 Pure Data: @@ -3208,12 +3207,12 @@ PureScript: - ".purs" tm_scope: source.purescript ace_mode: haskell - codemirror_mode: haskell + codemirror_mode: text/x-haskell language_id: 302 Python: type: programming ace_mode: python - codemirror_mode: python + codemirror_mode: text/x-python color: "#3572A5" extensions: - ".py" @@ -3288,12 +3287,12 @@ R: interpreters: - Rscript ace_mode: r - codemirror_mode: r + codemirror_mode: text/x-rsrc language_id: 307 RAML: type: markup ace_mode: yaml - codemirror_mode: yaml + codemirror_mode: text/x-yaml tm_scope: source.yaml color: "#77d9fb" extensions: @@ -3339,13 +3338,13 @@ RHTML: aliases: - html+ruby ace_mode: rhtml - codemirror_mode: htmlembedded + codemirror_mode: application/x-erb language_id: 312 RMarkdown: type: prose wrap: true ace_mode: markdown - codemirror_mode: markdown + codemirror_mode: text/x-gfm extensions: - ".rmd" tm_scope: source.gfm @@ -3358,7 +3357,7 @@ RPM Spec: aliases: - specfile ace_mode: text - codemirror_mode: rpm + codemirror_mode: text/x-rpm-spec language_id: 314 RUNOFF: type: markup @@ -3461,7 +3460,7 @@ RobotFramework: Rouge: type: programming ace_mode: clojure - codemirror_mode: clojure + codemirror_mode: text/x-clojure color: "#cc0088" extensions: - ".rg" @@ -3470,7 +3469,7 @@ Rouge: Ruby: type: programming ace_mode: ruby - codemirror_mode: ruby + codemirror_mode: text/x-ruby color: "#701516" aliases: - jruby @@ -3532,7 +3531,7 @@ Rust: - ".rs" - ".rs.in" ace_mode: rust - codemirror_mode: rust + codemirror_mode: text/x-rustsrc language_id: 327 SAS: type: programming @@ -3541,14 +3540,14 @@ SAS: - ".sas" tm_scope: source.sas ace_mode: text - codemirror_mode: sas + codemirror_mode: text/x-sas language_id: 328 SCSS: type: markup tm_scope: source.scss group: CSS ace_mode: scss - codemirror_mode: css + codemirror_mode: text/x-scss extensions: - ".scss" color: "#CF649A" @@ -3576,7 +3575,7 @@ SPARQL: type: data tm_scope: source.sparql ace_mode: text - codemirror_mode: sparql + codemirror_mode: application/sparql-query extensions: - ".sparql" - ".rq" @@ -3594,7 +3593,7 @@ SQL: type: data tm_scope: source.sql ace_mode: sql - codemirror_mode: sql + codemirror_mode: text/x-sql extensions: - ".sql" - ".cql" @@ -3608,7 +3607,7 @@ SQL: SQLPL: type: programming ace_mode: sql - codemirror_mode: sql + codemirror_mode: text/x-sql tm_scope: source.sql extensions: - ".sql" @@ -3619,7 +3618,7 @@ SRecode Template: color: "#348a34" tm_scope: source.lisp ace_mode: lisp - codemirror_mode: commonlisp + codemirror_mode: text/x-common-lisp extensions: - ".srt" language_id: 335 @@ -3637,7 +3636,7 @@ SVG: - ".svg" tm_scope: text.xml ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/xml language_id: 337 Sage: type: programming @@ -3647,7 +3646,7 @@ Sage: - ".sagews" tm_scope: source.python ace_mode: python - codemirror_mode: python + codemirror_mode: text/x-python language_id: 338 SaltStack: type: programming @@ -3659,7 +3658,7 @@ SaltStack: - ".sls" tm_scope: source.yaml.salt ace_mode: yaml - codemirror_mode: yaml + codemirror_mode: text/x-yaml language_id: 339 Sass: type: markup @@ -3668,13 +3667,13 @@ Sass: extensions: - ".sass" ace_mode: sass - codemirror_mode: sass + codemirror_mode: text/x-sass color: "#CF649A" language_id: 340 Scala: type: programming ace_mode: scala - codemirror_mode: clike + codemirror_mode: text/x-scala color: "#c22d40" extensions: - ".scala" @@ -3708,7 +3707,7 @@ Scheme: - gosh - r6rs ace_mode: scheme - codemirror_mode: scheme + codemirror_mode: text/x-scheme language_id: 343 Scilab: type: programming @@ -3760,7 +3759,7 @@ Shell: - sh - zsh ace_mode: sh - codemirror_mode: shell + codemirror_mode: text/x-sh language_id: 346 ShellSession: type: programming @@ -3771,7 +3770,7 @@ ShellSession: - console tm_scope: text.shell-session ace_mode: sh - codemirror_mode: shell + codemirror_mode: text/x-sh language_id: 347 Shen: type: programming @@ -3797,7 +3796,7 @@ Slim: - ".slim" tm_scope: text.slim ace_mode: text - codemirror_mode: slim + codemirror_mode: text/x-slim language_id: 350 Smali: type: programming @@ -3815,14 +3814,14 @@ Smalltalk: aliases: - squeak ace_mode: text - codemirror_mode: smalltalk + codemirror_mode: text/x-stsrc language_id: 352 Smarty: type: programming extensions: - ".tpl" ace_mode: smarty - codemirror_mode: smarty + codemirror_mode: text/x-smarty tm_scope: text.html.smarty language_id: 353 SourcePawn: @@ -3844,7 +3843,7 @@ Squirrel: - ".nut" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-c++src language_id: 355 Stan: type: programming @@ -3866,7 +3865,7 @@ Standard ML: - ".sml" tm_scope: source.ml ace_mode: text - codemirror_mode: mllike + codemirror_mode: text/x-ocaml language_id: 357 Stata: type: programming @@ -3887,7 +3886,6 @@ Stylus: - ".styl" tm_scope: source.stylus ace_mode: stylus - codemirror_mode: stylus language_id: 359 SubRip Text: type: data @@ -3914,7 +3912,7 @@ Swift: extensions: - ".swift" ace_mode: text - codemirror_mode: swift + codemirror_mode: text/x-swift language_id: 362 SystemVerilog: type: programming @@ -3924,7 +3922,7 @@ SystemVerilog: - ".svh" - ".vh" ace_mode: verilog - codemirror_mode: verilog + codemirror_mode: text/x-systemverilog language_id: 363 TLA: type: programming @@ -3939,7 +3937,7 @@ TOML: - ".toml" tm_scope: source.toml ace_mode: toml - codemirror_mode: toml + codemirror_mode: text/x-toml language_id: 365 TXL: type: programming @@ -3959,7 +3957,7 @@ Tcl: - tclsh - wish ace_mode: tcl - codemirror_mode: tcl + codemirror_mode: text/x-tcl language_id: 367 Tcsh: type: programming @@ -3969,13 +3967,13 @@ Tcsh: - ".csh" tm_scope: source.shell ace_mode: sh - codemirror_mode: shell + codemirror_mode: text/x-sh language_id: 368 TeX: type: markup color: "#3D6117" ace_mode: tex - codemirror_mode: stex + codemirror_mode: text/x-stex wrap: true aliases: - latex @@ -4009,7 +4007,7 @@ Terra: - ".t" color: "#00004c" ace_mode: lua - codemirror_mode: lua + codemirror_mode: text/x-lua interpreters: - lua language_id: 371 @@ -4042,7 +4040,7 @@ Text: Textile: type: prose ace_mode: textile - codemirror_mode: textile + codemirror_mode: text/x-textile wrap: true extensions: - ".textile" @@ -4070,7 +4068,7 @@ Turtle: - ".ttl" tm_scope: source.turtle ace_mode: text - codemirror_mode: turtle + codemirror_mode: text/turtle language_id: 376 Twig: type: markup @@ -4079,7 +4077,7 @@ Twig: - ".twig" tm_scope: text.html.twig ace_mode: twig - codemirror_mode: twig + codemirror_mode: text/x-twig language_id: 377 TypeScript: type: programming @@ -4091,13 +4089,13 @@ TypeScript: - ".tsx" tm_scope: source.ts ace_mode: typescript - codemirror_mode: javascript + codemirror_mode: text/x-typescript language_id: 378 Unified Parallel C: type: programming group: C ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-csrc color: "#4e3617" extensions: - ".upc" @@ -4106,7 +4104,7 @@ Unified Parallel C: Unity3D Asset: type: data ace_mode: yaml - codemirror_mode: yaml + codemirror_mode: text/x-yaml extensions: - ".anim" - ".asset" @@ -4121,7 +4119,7 @@ Uno: extensions: - ".uno" ace_mode: csharp - codemirror_mode: clike + codemirror_mode: text/x-csharp tm_scope: source.cs language_id: 381 UnrealScript: @@ -4131,7 +4129,7 @@ UnrealScript: - ".uc" tm_scope: source.java ace_mode: java - codemirror_mode: clike + codemirror_mode: text/x-java language_id: 382 UrWeb: type: programming @@ -4165,7 +4163,7 @@ VHDL: - ".vht" - ".vhw" ace_mode: vhdl - codemirror_mode: vhdl + codemirror_mode: text/x-vhdl language_id: 385 Vala: type: programming @@ -4182,7 +4180,7 @@ Verilog: - ".v" - ".veo" ace_mode: verilog - codemirror_mode: verilog + codemirror_mode: text/x-verilog language_id: 387 VimL: type: programming @@ -4220,7 +4218,7 @@ Visual Basic: - vb.net - vbnet ace_mode: text - codemirror_mode: vb + codemirror_mode: text/x-vb language_id: 389 Volt: type: programming @@ -4229,7 +4227,7 @@ Volt: - ".volt" tm_scope: source.d ace_mode: d - codemirror_mode: d + codemirror_mode: text/x-d language_id: 390 Vue: type: markup @@ -4238,7 +4236,6 @@ Vue: - ".vue" tm_scope: text.html.vue ace_mode: html - codemirror_mode: vue language_id: 391 Wavefront Material: type: data @@ -4268,7 +4265,7 @@ WebIDL: - ".webidl" tm_scope: source.webidl ace_mode: text - codemirror_mode: webidl + codemirror_mode: text/x-webidl language_id: 395 World of Warcraft Addon Data: type: data @@ -4294,12 +4291,12 @@ XC: - ".xc" tm_scope: source.xc ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-csrc language_id: 398 XML: type: data ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/xml aliases: - rss - xsd @@ -4408,7 +4405,7 @@ XPages: - ".xsp.metadata" tm_scope: none ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/xml language_id: 400 XProc: type: programming @@ -4417,7 +4414,7 @@ XProc: - ".xproc" tm_scope: text.xml ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/xml language_id: 401 XQuery: type: programming @@ -4429,7 +4426,7 @@ XQuery: - ".xqm" - ".xqy" ace_mode: xquery - codemirror_mode: xquery + codemirror_mode: application/xquery tm_scope: source.xq language_id: 402 XS: @@ -4438,7 +4435,7 @@ XS: - ".xs" tm_scope: source.c ace_mode: c_cpp - codemirror_mode: clike + codemirror_mode: text/x-csrc language_id: 403 XSLT: type: programming @@ -4449,7 +4446,7 @@ XSLT: - ".xsl" tm_scope: text.xml.xsl ace_mode: xml - codemirror_mode: xml + codemirror_mode: text/xml color: "#EB8CEB" language_id: 404 Xojo: @@ -4486,7 +4483,7 @@ YAML: filenames: - ".clang-format" ace_mode: yaml - codemirror_mode: yaml + codemirror_mode: text/x-yaml language_id: 407 YANG: type: data @@ -4543,7 +4540,7 @@ eC: edn: type: data ace_mode: clojure - codemirror_mode: clojure + codemirror_mode: text/x-clojure extensions: - ".edn" tm_scope: source.clojure @@ -4591,11 +4588,12 @@ reStructuredText: - ".rest.txt" - ".rst.txt" ace_mode: text - codemirror_mode: rst + codemirror_mode: text/x-rst language_id: 419 wisp: type: programming ace_mode: clojure + codemirror_mode: text/x-clojure color: "#7582D1" extensions: - ".wisp" diff --git a/test/test_language.rb b/test/test_language.rb index fec4e29b..4409ae4e 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -350,7 +350,7 @@ class TestLanguage < Minitest::Test end def test_codemirror_mode - assert_equal 'clike', Language['C++'].codemirror_mode + assert_equal 'text/x-c++src', Language['C++'].codemirror_mode end def test_wrap From c525e3fbefadef76dde6efc5435427a1abcd355d Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 13:48:24 -0700 Subject: [PATCH 058/114] Ignore default external warnings --- test/test_blob.rb | 22 +++++++++++++++++----- test/test_file_blob.rb | 22 +++++++++++++++++----- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/test/test_blob.rb b/test/test_blob.rb index 3322cc41..a781e466 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -3,15 +3,27 @@ require_relative "./helper" class TestBlob < Minitest::Test include Linguist + def silence_warnings + original_verbosity = $VERBOSE + $VERBOSE = nil + yield + ensure + $VERBOSE = original_verbosity + end + def setup - # git blobs are normally loaded as ASCII-8BIT since they may contain data - # with arbitrary encoding not known ahead of time - @original_external = Encoding.default_external - Encoding.default_external = Encoding.find("ASCII-8BIT") + silence_warnings do + # git blobs are normally loaded as ASCII-8BIT since they may contain data + # with arbitrary encoding not known ahead of time + @original_external = Encoding.default_external + Encoding.default_external = Encoding.find("ASCII-8BIT") + end end def teardown - Encoding.default_external = @original_external + silence_warnings do + Encoding.default_external = @original_external + end end def script_blob(name) diff --git a/test/test_file_blob.rb b/test/test_file_blob.rb index 82f3059c..383b170e 100644 --- a/test/test_file_blob.rb +++ b/test/test_file_blob.rb @@ -3,15 +3,27 @@ require_relative "./helper" class TestFileBlob < Minitest::Test include Linguist + def silence_warnings + original_verbosity = $VERBOSE + $VERBOSE = nil + yield + ensure + $VERBOSE = original_verbosity + end + def setup - # git blobs are normally loaded as ASCII-8BIT since they may contain data - # with arbitrary encoding not known ahead of time - @original_external = Encoding.default_external - Encoding.default_external = Encoding.find("ASCII-8BIT") + silence_warnings do + # git blobs are normally loaded as ASCII-8BIT since they may contain data + # with arbitrary encoding not known ahead of time + @original_external = Encoding.default_external + Encoding.default_external = Encoding.find("ASCII-8BIT") + end end def teardown - Encoding.default_external = @original_external + silence_warnings do + Encoding.default_external = @original_external + end end def script_blob(name) From 152b5ade5ead83462099c3fef2332bebcd55964c Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 13:50:01 -0700 Subject: [PATCH 059/114] Fix shadowed path warning --- test/test_grammars.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index bc193b3c..3b03ca81 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -154,7 +154,7 @@ class TestGrammars < Minitest::Test # Neither Licensee nor our own regex was able to detect the license, let's check the readme files = Dir[File.join(ROOT, submodule, "*")] - if readme = files.find { |path| File.basename(path) =~ /\Areadme\b/i } + if readme = files.find { |file| File.basename(file) =~ /\Areadme\b/i } classify_license(readme) end end From 39ea9be5f8aa96e4dab10567feb26b799a35af0a Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 13:53:38 -0700 Subject: [PATCH 060/114] Ignore ace mode warning while testing --- lib/linguist/language.rb | 3 ++- test/helper.rb | 8 ++++++++ test/test_blob.rb | 8 -------- test/test_language.rb | 6 ++++-- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 85eade29..e823d6cf 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -267,6 +267,7 @@ module Linguist # Returns an Array of Languages. def self.ace_modes warn "This method will be deprecated in a future 5.x release. Every language now has an `ace_mode` set." + warn caller @ace_modes ||= all.select(&:ace_mode).sort_by { |lang| lang.name.downcase } end @@ -306,7 +307,7 @@ module Linguist # Set legacy search term @search_term = attributes[:search_term] || default_alias_name - # Set the language_id + # Set the language_id @language_id = attributes[:language_id] # Set extensions or default to []. diff --git a/test/helper.rb b/test/helper.rb index deb7ef5b..5f7eeb87 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -35,3 +35,11 @@ def sample_blob_memory(name) content = File.read(filepath) Linguist::Blob.new(name, content) end + +def silence_warnings + original_verbosity = $VERBOSE + $VERBOSE = nil + yield +ensure + $VERBOSE = original_verbosity +end diff --git a/test/test_blob.rb b/test/test_blob.rb index a781e466..65b88ba4 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -3,14 +3,6 @@ require_relative "./helper" class TestBlob < Minitest::Test include Linguist - def silence_warnings - original_verbosity = $VERBOSE - $VERBOSE = nil - yield - ensure - $VERBOSE = original_verbosity - end - def setup silence_warnings do # git blobs are normally loaded as ASCII-8BIT since they may contain data diff --git a/test/test_language.rb b/test/test_language.rb index fec4e29b..1456fb84 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -345,8 +345,10 @@ class TestLanguage < Minitest::Test end def test_ace_modes - assert Language.ace_modes.include?(Language['Ruby']) - assert Language.ace_modes.include?(Language['FORTRAN']) + silence_warnings do + assert Language.ace_modes.include?(Language['Ruby']) + assert Language.ace_modes.include?(Language['FORTRAN']) + end end def test_codemirror_mode From fdb962518f9a3ecfce32377e1e59c07523eb5253 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 13:54:55 -0700 Subject: [PATCH 061/114] Consistent CodeMirror casing --- lib/linguist/language.rb | 2 +- lib/linguist/languages.yml | 2 +- lib/linguist/vendor.yml | 2 +- test/test_file_blob.rb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index c84ad08f..310fd798 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -399,7 +399,7 @@ module Linguist # Returns a String name or nil attr_reader :ace_mode - # Public: Get Codemirror mode (as expressed by a mimetype) + # Public: Get CodeMirror mode (as expressed by a mimetype) # # Examples # diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 5762f715..735ba2f0 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -6,7 +6,7 @@ # ace_mode - A String name of the Ace Mode used for highlighting whenever # a file is edited. This must match one of the filenames in http://git.io/3XO_Cg. # Use "text" if a mode does not exist. -# codemirror_mode - A String name of the Codemirror Mode used for highlighting whenever a file is edited. +# codemirror_mode - A String name of the CodeMirror Mode used for highlighting whenever a file is edited. # This must match a mode from https://git.io/vi9Fx # wrap - Boolean wrap to enable line wrapping (default: false) # extensions - An Array of associated extensions (the first one is diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index 6b8c7364..e500f85d 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -165,7 +165,7 @@ # Chart.js - (^|/)Chart\.js$ -# Codemirror +# CodeMirror - (^|/)[Cc]ode[Mm]irror/(\d+\.\d+/)?(lib|mode|theme|addon|keymap|demo) # SyntaxHighlighter - http://alexgorbatchev.com/ diff --git a/test/test_file_blob.rb b/test/test_file_blob.rb index 383b170e..84cee723 100644 --- a/test/test_file_blob.rb +++ b/test/test_file_blob.rb @@ -317,7 +317,7 @@ class TestFileBlob < Minitest::Test assert sample_blob("some/vendored/path/Chart.js").vendored? assert !sample_blob("some/vendored/path/chart.js").vendored? - # Codemirror deps + # CodeMirror deps assert sample_blob("codemirror/mode/blah.js").vendored? assert sample_blob("codemirror/5.0/mode/blah.js").vendored? From daefff86ff188cf3ae87e17051558d8f79535367 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 13:57:50 -0700 Subject: [PATCH 062/114] Fix JSX mode --- lib/linguist/languages.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 735ba2f0..e9ff1c5f 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1903,7 +1903,8 @@ JSX: extensions: - ".jsx" tm_scope: source.js.jsx - ace_mode: text/jsx + ace_mode: jsx + codemirror_mode: text/jsx language_id: 178 Jade: group: HTML From 0108ef438661994c929cc378a6d113d1ccb3d369 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 14:35:02 -0700 Subject: [PATCH 063/114] Restore old mode --- lib/linguist/language.rb | 17 +- lib/linguist/languages.yml | 581 +++++++++++++++++++++++++------------ test/test_language.rb | 12 +- 3 files changed, 414 insertions(+), 196 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index 310fd798..ea88b87f 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -302,6 +302,7 @@ module Linguist @ace_mode = attributes[:ace_mode] @codemirror_mode = attributes[:codemirror_mode] + @codemirror_mime_mode = attributes[:codemirror_mime_mode] @wrap = attributes[:wrap] || false # Set legacy search term @@ -399,7 +400,18 @@ module Linguist # Returns a String name or nil attr_reader :ace_mode - # Public: Get CodeMirror mode (as expressed by a mimetype) + # Public: Get CodeMirror mode + # + # Examples + # + # # => "nil" + # # => "javascript" + # # => "clike" + # + # Returns a String name or nil + attr_reader :codemirror_mode + + # Public: Get CodeMirror MIME type mode # # Examples # @@ -408,7 +420,7 @@ module Linguist # # => "text/x-csrc" # # Returns a String name or nil - attr_reader :codemirror_mode + attr_reader :codemirror_mime_mode # Public: Should language lines be wrapped # @@ -587,6 +599,7 @@ module Linguist :tm_scope => options['tm_scope'], :ace_mode => options['ace_mode'], :codemirror_mode => options['codemirror_mode'], + :codemirror_mime_mode => options['codemirror_mime_mode'], :wrap => options['wrap'], :group_name => options['group'], :searchable => options.fetch('searchable', true), diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e9ff1c5f..36b61047 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -59,7 +59,8 @@ AGS Script: - ".ash" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: text/x-c++src + codemirror_mode: clike + codemirror_mime_mode: text/x-c++src language_id: 2 AMPL: type: programming @@ -97,7 +98,8 @@ APL: - dyalog tm_scope: source.apl ace_mode: text - codemirror_mode: text/apl + codemirror_mode: apl + codemirror_mime_mode: text/apl language_id: 6 ASN.1: type: data @@ -107,7 +109,8 @@ ASN.1: - ".asn1" tm_scope: source.asn ace_mode: text - codemirror_mode: text/x-ttcn-asn + codemirror_mode: asn.1 + codemirror_mime_mode: text/x-ttcn-asn language_id: 7 ASP: type: programming @@ -126,7 +129,8 @@ ASP: - ".aspx" - ".axd" ace_mode: text - codemirror_mode: application/x-aspx + codemirror_mode: htmlembedded + codemirror_mime_mode: application/x-aspx language_id: 8 ATS: type: programming @@ -189,7 +193,8 @@ Alpine Abuild: - APKBUILD tm_scope: source.shell ace_mode: sh - codemirror_mode: text/x-sh + codemirror_mode: shell + codemirror_mime_mode: text/x-sh language_id: 14 Ant Build System: type: data @@ -198,7 +203,8 @@ Ant Build System: - ant.xml - build.xml ace_mode: xml - codemirror_mode: application/xml + codemirror_mode: xml + codemirror_mime_mode: application/xml language_id: 15 ApacheConf: type: markup @@ -217,7 +223,8 @@ Apex: - ".cls" tm_scope: source.java ace_mode: java - codemirror_mode: text/x-java + codemirror_mode: clike + codemirror_mime_mode: text/x-java language_id: 17 Apollo Guidance Computer: type: programming @@ -227,7 +234,8 @@ Apollo Guidance Computer: - ".agc" tm_scope: source.agc ace_mode: assembly_x86 - codemirror_mode: text/x-gas + codemirror_mode: gas + codemirror_mime_mode: text/x-gas language_id: 18 AppleScript: type: programming @@ -256,7 +264,8 @@ Arduino: - ".ino" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: text/x-c++src + codemirror_mode: clike + codemirror_mime_mode: text/x-c++src language_id: 21 AsciiDoc: type: prose @@ -289,7 +298,8 @@ Assembly: - ".nasm" tm_scope: source.assembly ace_mode: assembly_x86 - codemirror_mode: text/x-gas + codemirror_mode: gas + codemirror_mime_mode: text/x-gas language_id: 24 Augeas: type: programming @@ -427,7 +437,8 @@ Brainfuck: - ".bf" tm_scope: source.bf ace_mode: text - codemirror_mode: text/x-brainfuck + codemirror_mode: brainfuck + codemirror_mime_mode: text/x-brainfuck language_id: 38 Brightscript: type: programming @@ -454,12 +465,14 @@ C: interpreters: - tcc ace_mode: c_cpp - codemirror_mode: text/x-csrc + codemirror_mode: clike + codemirror_mime_mode: text/x-csrc language_id: 41 C#: type: programming ace_mode: csharp - codemirror_mode: text/x-csharp + codemirror_mode: clike + codemirror_mime_mode: text/x-csharp tm_scope: source.cs search_term: csharp color: "#178600" @@ -474,7 +487,8 @@ C#: C++: type: programming ace_mode: c_cpp - codemirror_mode: text/x-c++src + codemirror_mode: clike + codemirror_mime_mode: text/x-c++src search_term: cpp color: "#f34b7d" aliases: @@ -502,7 +516,8 @@ C-ObjDump: - ".c-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - codemirror_mode: text/x-gas + codemirror_mode: gas + codemirror_mime_mode: text/x-gas language_id: 44 C2hs Haskell: type: programming @@ -513,7 +528,8 @@ C2hs Haskell: - ".chs" tm_scope: source.haskell ace_mode: haskell - codemirror_mode: text/x-haskell + codemirror_mode: haskell + codemirror_mime_mode: text/x-haskell language_id: 45 CLIPS: type: programming @@ -530,7 +546,8 @@ CMake: filenames: - CMakeLists.txt ace_mode: text - codemirror_mode: text/x-cmake + codemirror_mode: cmake + codemirror_mime_mode: text/x-cmake language_id: 47 COBOL: type: programming @@ -541,7 +558,8 @@ COBOL: - ".cobol" - ".cpy" ace_mode: cobol - codemirror_mode: text/x-cobol + codemirror_mode: cobol + codemirror_mime_mode: text/x-cobol language_id: 48 COLLADA: type: data @@ -549,13 +567,15 @@ COLLADA: - ".dae" tm_scope: text.xml ace_mode: xml - codemirror_mode: text/x-xml + codemirror_mode: xml + codemirror_mime_mode: text/x-xml language_id: 49 CSS: type: markup tm_scope: source.css ace_mode: css - codemirror_mode: text/css + codemirror_mode: css + codemirror_mime_mode: text/css color: "#563d7c" extensions: - ".css" @@ -611,7 +631,8 @@ ChucK: - ".ck" tm_scope: source.java ace_mode: java - codemirror_mode: text/x-java + codemirror_mode: clike + codemirror_mime_mode: text/x-java language_id: 57 Cirru: type: programming @@ -648,7 +669,8 @@ Click: Clojure: type: programming ace_mode: clojure - codemirror_mode: text/x-clojure + codemirror_mode: clojure + codemirror_mime_mode: text/x-clojure color: "#db5855" extensions: - ".clj" @@ -667,7 +689,8 @@ CoffeeScript: type: programming tm_scope: source.coffee ace_mode: coffee - codemirror_mode: text/x-coffeescript + codemirror_mode: coffeescript + codemirror_mime_mode: text/x-coffeescript color: "#244776" aliases: - coffee @@ -733,7 +756,8 @@ Common Lisp: - clisp - ecl ace_mode: lisp - codemirror_mode: text/x-common-lisp + codemirror_mode: commonlisp + codemirror_mime_mode: text/x-common-lisp language_id: 66 Component Pascal: type: programming @@ -746,7 +770,8 @@ Component Pascal: - delphi - objectpascal ace_mode: pascal - codemirror_mode: text/x-pascal + codemirror_mode: pascal + codemirror_mime_mode: text/x-pascal language_id: 67 Cool: type: programming @@ -774,7 +799,8 @@ Cpp-ObjDump: aliases: - c++-objdump ace_mode: assembly_x86 - codemirror_mode: text/x-gas + codemirror_mode: gas + codemirror_mime_mode: text/x-gas language_id: 70 Creole: type: prose @@ -790,7 +816,8 @@ Crystal: extensions: - ".cr" ace_mode: ruby - codemirror_mode: text/x-crystal + codemirror_mode: crystal + codemirror_mime_mode: text/x-crystal tm_scope: source.crystal interpreters: - crystal @@ -840,7 +867,8 @@ Cuda: - ".cuh" tm_scope: source.cuda-c++ ace_mode: c_cpp - codemirror_mode: text/x-c++src + codemirror_mode: clike + codemirror_mime_mode: text/x-c++src color: "#3A4E3A" language_id: 77 Cycript: @@ -849,7 +877,8 @@ Cycript: - ".cy" tm_scope: source.js ace_mode: javascript - codemirror_mode: text/javascript + codemirror_mode: javascript + codemirror_mime_mode: text/javascript language_id: 78 Cython: type: programming @@ -861,7 +890,8 @@ Cython: aliases: - pyrex ace_mode: text - codemirror_mode: text/x-cython + codemirror_mode: python + codemirror_mime_mode: text/x-cython language_id: 79 D: type: programming @@ -870,7 +900,8 @@ D: - ".d" - ".di" ace_mode: d - codemirror_mode: text/x-d + codemirror_mode: d + codemirror_mime_mode: text/x-d language_id: 80 D-ObjDump: type: data @@ -878,7 +909,8 @@ D-ObjDump: - ".d-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - codemirror_mode: text/x-gas + codemirror_mode: gas + codemirror_mime_mode: text/x-gas language_id: 81 DIGITAL Command Language: type: programming @@ -917,7 +949,8 @@ DTrace: - dtrace tm_scope: source.c ace_mode: c_cpp - codemirror_mode: text/x-csrc + codemirror_mode: clike + codemirror_mime_mode: text/x-csrc language_id: 85 Darcs Patch: type: data @@ -938,7 +971,8 @@ Dart: interpreters: - dart ace_mode: dart - codemirror_mode: text/x-dart + codemirror_mode: dart + codemirror_mime_mode: text/x-dart language_id: 87 Diff: type: data @@ -949,7 +983,8 @@ Diff: - udiff tm_scope: source.diff ace_mode: diff - codemirror_mode: text/x-diff + codemirror_mode: diff + codemirror_mime_mode: text/x-diff language_id: 88 Dockerfile: type: data @@ -959,7 +994,8 @@ Dockerfile: filenames: - Dockerfile ace_mode: dockerfile - codemirror_mode: text/x-dockerfile + codemirror_mode: dockerfile + codemirror_mime_mode: text/x-dockerfile language_id: 89 Dogescript: type: programming @@ -978,7 +1014,8 @@ Dylan: - ".intr" - ".lid" ace_mode: text - codemirror_mode: text/x-dylan + codemirror_mode: dylan + codemirror_mime_mode: text/x-dylan language_id: 91 E: type: programming @@ -998,7 +1035,8 @@ ECL: - ".eclxml" tm_scope: none ace_mode: text - codemirror_mode: text/x-ecl + codemirror_mode: ecl + codemirror_mime_mode: text/x-ecl language_id: 93 ECLiPSe: type: programming @@ -1024,7 +1062,8 @@ EQ: - ".eq" tm_scope: source.cs ace_mode: csharp - codemirror_mode: text/x-csharp + codemirror_mode: clike + codemirror_mime_mode: text/x-csharp language_id: 96 Eagle: type: markup @@ -1034,7 +1073,8 @@ Eagle: - ".brd" tm_scope: text.xml ace_mode: xml - codemirror_mode: text/xml + codemirror_mode: xml + codemirror_mime_mode: text/xml language_id: 97 Ecere Projects: type: data @@ -1043,7 +1083,8 @@ Ecere Projects: - ".epj" tm_scope: source.json ace_mode: json - codemirror_mode: application/json + codemirror_mode: json + codemirror_mime_mode: application/json language_id: 98 Eiffel: type: programming @@ -1051,7 +1092,8 @@ Eiffel: extensions: - ".e" ace_mode: eiffel - codemirror_mode: text/x-eiffel + codemirror_mode: eiffel + codemirror_mime_mode: text/x-eiffel language_id: 99 Elixir: type: programming @@ -1072,7 +1114,8 @@ Elm: - ".elm" tm_scope: source.elm ace_mode: elm - codemirror_mode: text/x-elm + codemirror_mode: elm + codemirror_mime_mode: text/x-elm language_id: 101 Emacs Lisp: type: programming @@ -1096,7 +1139,8 @@ Emacs Lisp: - ".emacs" - ".emacs.desktop" ace_mode: lisp - codemirror_mode: text/x-common-lisp + codemirror_mode: commonlisp + codemirror_mime_mode: text/x-common-lisp language_id: 102 EmberScript: type: programming @@ -1106,7 +1150,8 @@ EmberScript: - ".emberscript" tm_scope: source.coffee ace_mode: coffee - codemirror_mode: text/x-coffeescript + codemirror_mode: coffeescript + codemirror_mime_mode: text/x-coffeescript language_id: 103 Erlang: type: programming @@ -1124,7 +1169,8 @@ Erlang: - rebar.config.lock - rebar.lock ace_mode: erlang - codemirror_mode: text/x-erlang + codemirror_mode: erlang + codemirror_mime_mode: text/x-erlang interpreters: - escript language_id: 104 @@ -1140,7 +1186,8 @@ F#: - ".fsx" tm_scope: source.fsharp ace_mode: text - codemirror_mode: text/x-fsharp + codemirror_mode: mllike + codemirror_mime_mode: text/x-fsharp language_id: 105 FLUX: type: programming @@ -1165,7 +1212,8 @@ FORTRAN: - ".fpp" tm_scope: source.fortran.modern ace_mode: text - codemirror_mode: text/x-fortran + codemirror_mode: fortran + codemirror_mime_mode: text/x-fortran language_id: 107 Factor: type: programming @@ -1176,7 +1224,8 @@ Factor: - ".factor-boot-rc" - ".factor-rc" ace_mode: text - codemirror_mode: text/x-factor + codemirror_mode: factor + codemirror_mime_mode: text/x-factor language_id: 108 Fancy: type: programming @@ -1232,7 +1281,8 @@ Forth: - ".frt" - ".fs" ace_mode: forth - codemirror_mode: text/x-forth + codemirror_mode: forth + codemirror_mime_mode: text/x-forth language_id: 114 FreeMarker: type: programming @@ -1287,7 +1337,8 @@ GAS: - ".ms" tm_scope: source.assembly ace_mode: assembly_x86 - codemirror_mode: text/x-gas + codemirror_mode: gas + codemirror_mime_mode: text/x-gas language_id: 120 GCC Machine Description: type: programming @@ -1295,7 +1346,8 @@ GCC Machine Description: - ".md" tm_scope: source.lisp ace_mode: lisp - codemirror_mode: text/x-common-lisp + codemirror_mode: commonlisp + codemirror_mime_mode: text/x-common-lisp language_id: 121 GDB: type: programming @@ -1340,7 +1392,8 @@ Game Maker Language: - ".gml" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: text/x-c++src + codemirror_mode: clike + codemirror_mime_mode: text/x-c++src language_id: 125 Genshi: type: programming @@ -1351,7 +1404,8 @@ Genshi: - xml+genshi - xml+kid ace_mode: xml - codemirror_mode: text/xml + codemirror_mode: xml + codemirror_mime_mode: text/xml language_id: 126 Gentoo Ebuild: type: programming @@ -1360,7 +1414,8 @@ Gentoo Ebuild: - ".ebuild" tm_scope: source.shell ace_mode: sh - codemirror_mode: text/x-sh + codemirror_mode: shell + codemirror_mime_mode: text/x-sh language_id: 127 Gentoo Eclass: type: programming @@ -1369,7 +1424,8 @@ Gentoo Eclass: - ".eclass" tm_scope: source.shell ace_mode: sh - codemirror_mode: text/x-sh + codemirror_mode: shell + codemirror_mime_mode: text/x-sh language_id: 128 Gettext Catalog: type: prose @@ -1390,7 +1446,8 @@ Glyph: - ".glf" tm_scope: source.tcl ace_mode: tcl - codemirror_mode: text/x-tcl + codemirror_mode: tcl + codemirror_mime_mode: text/x-tcl language_id: 130 Gnuplot: type: programming @@ -1411,7 +1468,8 @@ Go: extensions: - ".go" ace_mode: golang - codemirror_mode: text/x-go + codemirror_mode: go + codemirror_mime_mode: text/x-go language_id: 132 Golo: type: programming @@ -1457,7 +1515,8 @@ Grammatical Framework: color: "#79aa7a" tm_scope: source.haskell ace_mode: haskell - codemirror_mode: text/x-haskell + codemirror_mode: haskell + codemirror_mime_mode: text/x-haskell language_id: 137 Graph Modeling Language: type: data @@ -1517,12 +1576,14 @@ Groff: - nroff - troff ace_mode: text - codemirror_mode: text/troff + codemirror_mode: troff + codemirror_mime_mode: text/troff language_id: 141 Groovy: type: programming ace_mode: groovy - codemirror_mode: text/x-groovy + codemirror_mode: groovy + codemirror_mime_mode: text/x-groovy color: "#e69f56" extensions: - ".groovy" @@ -1544,7 +1605,8 @@ Groovy Server Pages: - ".gsp" tm_scope: text.html.jsp ace_mode: jsp - codemirror_mode: application/x-jsp + codemirror_mode: htmlembedded + codemirror_mime_mode: application/x-jsp language_id: 143 HCL: type: programming @@ -1552,7 +1614,8 @@ HCL: - ".hcl" - ".tf" ace_mode: ruby - codemirror_mode: text/x-ruby + codemirror_mode: ruby + codemirror_mime_mode: text/x-ruby tm_scope: source.ruby language_id: 144 HLSL: @@ -1569,7 +1632,8 @@ HTML: type: markup tm_scope: text.html.basic ace_mode: html - codemirror_mode: text/html + codemirror_mode: html + codemirror_mime_mode: text/html color: "#e44b23" aliases: - xhtml @@ -1595,7 +1659,8 @@ HTML+Django: - html+jinja - htmldjango ace_mode: django - codemirror_mode: text/x-django + codemirror_mode: django + codemirror_mime_mode: text/x-django language_id: 147 HTML+ECR: type: markup @@ -1606,7 +1671,8 @@ HTML+ECR: extensions: - ".ecr" ace_mode: text - codemirror_mode: text/html + codemirror_mode: htmlembedded + codemirror_mime_mode: text/html language_id: 148 HTML+EEX: type: markup @@ -1617,7 +1683,8 @@ HTML+EEX: extensions: - ".eex" ace_mode: text - codemirror_mode: text/html + codemirror_mode: htmlembedded + codemirror_mime_mode: text/html language_id: 149 HTML+ERB: type: markup @@ -1629,7 +1696,8 @@ HTML+ERB: - ".erb" - ".erb.deface" ace_mode: text - codemirror_mode: application/x-erb + codemirror_mode: htmlembedded + codemirror_mime_mode: application/x-erb language_id: 150 HTML+PHP: type: markup @@ -1638,7 +1706,8 @@ HTML+PHP: extensions: - ".phtml" ace_mode: php - codemirror_mode: application/x-httpd-php + codemirror_mode: php + codemirror_mime_mode: application/x-httpd-php language_id: 151 HTTP: type: data @@ -1646,12 +1715,14 @@ HTTP: - ".http" tm_scope: source.httpspec ace_mode: text - codemirror_mode: message/http + codemirror_mode: http + codemirror_mime_mode: message/http language_id: 152 Hack: type: programming ace_mode: php - codemirror_mode: application/x-httpd-php + codemirror_mode: php + codemirror_mime_mode: application/x-httpd-php extensions: - ".hh" - ".php" @@ -1665,7 +1736,8 @@ Haml: - ".haml" - ".haml.deface" ace_mode: haml - codemirror_mode: text/x-haml + codemirror_mode: haml + codemirror_mime_mode: text/x-haml color: "#ECE2A9" language_id: 154 Handlebars: @@ -1680,6 +1752,7 @@ Handlebars: - ".hbs" tm_scope: text.html.handlebars ace_mode: handlebars + codemirror_mode: handlebars language_id: 155 Harbour: type: programming @@ -1698,12 +1771,14 @@ Haskell: interpreters: - runhaskell ace_mode: haskell - codemirror_mode: text/x-haskell + codemirror_mode: haskell + codemirror_mime_mode: text/x-haskell language_id: 157 Haxe: type: programming ace_mode: haxe - codemirror_mode: text/x-haxe + codemirror_mode: haxe + codemirror_mime_mode: text/x-haxe color: "#df7900" extensions: - ".hx" @@ -1734,7 +1809,8 @@ IDL: - ".pro" - ".dlm" ace_mode: text - codemirror_mode: text/x-idl + codemirror_mode: idl + codemirror_mime_mode: text/x-idl language_id: 161 IGOR Pro: type: programming @@ -1758,7 +1834,8 @@ INI: aliases: - dosini ace_mode: ini - codemirror_mode: text/x-properties + codemirror_mode: properties + codemirror_mime_mode: text/x-properties language_id: 163 IRC log: type: data @@ -1858,7 +1935,8 @@ JSON: tm_scope: source.json group: JavaScript ace_mode: json - codemirror_mode: application/json + codemirror_mode: javascript + codemirror_mime_mode: application/json searchable: false extensions: - ".json" @@ -1877,13 +1955,15 @@ JSON5: - ".json5" tm_scope: source.js ace_mode: javascript - codemirror_mode: application/json + codemirror_mode: javascript + codemirror_mime_mode: application/json language_id: 175 JSONLD: type: data group: JavaScript ace_mode: javascript - codemirror_mode: application/ld+json + codemirror_mode: javascript + codemirror_mime_mode: application/ld+json extensions: - ".jsonld" tm_scope: source.js @@ -1892,7 +1972,8 @@ JSONiq: color: "#40d47e" type: programming ace_mode: jsoniq - codemirror_mode: application/json + codemirror_mode: javascript + codemirror_mime_mode: application/json extensions: - ".jq" tm_scope: source.jq @@ -1903,8 +1984,8 @@ JSX: extensions: - ".jsx" tm_scope: source.js.jsx - ace_mode: jsx - codemirror_mode: text/jsx + ace_mode: javascript + codemirror_mime_mode: text/jsx language_id: 178 Jade: group: HTML @@ -1914,7 +1995,8 @@ Jade: - ".pug" tm_scope: text.jade ace_mode: jade - codemirror_mode: text/x-pug + codemirror_mode: pug + codemirror_mime_mode: text/x-pug language_id: 179 Jasmin: type: programming @@ -1926,7 +2008,8 @@ Jasmin: Java: type: programming ace_mode: java - codemirror_mode: text/x-java + codemirror_mode: clike + codemirror_mime_mode: text/x-java color: "#b07219" extensions: - ".java" @@ -1941,13 +2024,15 @@ Java Server Pages: - ".jsp" tm_scope: text.html.jsp ace_mode: jsp - codemirror_mode: application/x-jsp + codemirror_mode: htmlembedded + codemirror_mime_mode: application/x-jsp language_id: 182 JavaScript: type: programming tm_scope: source.js ace_mode: javascript - codemirror_mode: text/javascript + codemirror_mode: javascript + codemirror_mime_mode: text/javascript color: "#f1e05a" aliases: - js @@ -1996,12 +2081,14 @@ Julia: - ".jl" color: "#a270ba" ace_mode: julia - codemirror_mode: text/x-julia + codemirror_mode: julia + codemirror_mime_mode: text/x-julia language_id: 184 Jupyter Notebook: type: markup ace_mode: json - codemirror_mode: application/json + codemirror_mode: javascript + codemirror_mime_mode: application/json tm_scope: source.json color: "#DA5B0B" extensions: @@ -2031,7 +2118,8 @@ KiCad: Kit: type: markup ace_mode: html - codemirror_mode: text/html + codemirror_mode: html + codemirror_mime_mode: text/html extensions: - ".kit" tm_scope: text.html.basic @@ -2045,7 +2133,8 @@ Kotlin: - ".kts" tm_scope: source.Kotlin ace_mode: text - codemirror_mode: text/x-kotlin + codemirror_mode: kotlin + codemirror_mime_mode: text/x-kotlin language_id: 189 LFE: type: programming @@ -2055,7 +2144,8 @@ LFE: group: Erlang tm_scope: source.lisp ace_mode: lisp - codemirror_mode: text/x-common-lisp + codemirror_mode: commonlisp + codemirror_mime_mode: text/x-common-lisp language_id: 190 LLVM: type: programming @@ -2088,7 +2178,8 @@ LabVIEW: - ".lvproj" tm_scope: text.xml ace_mode: xml - codemirror_mode: text/xml + codemirror_mode: xml + codemirror_mime_mode: text/xml language_id: 194 Lasso: type: programming @@ -2112,7 +2203,8 @@ Latte: - ".latte" tm_scope: text.html.smarty ace_mode: smarty - codemirror_mode: text/x-smarty + codemirror_mode: smarty + codemirror_mime_mode: text/x-smarty language_id: 196 Lean: type: programming @@ -2128,7 +2220,8 @@ Less: - ".less" tm_scope: source.css.less ace_mode: less - codemirror_mode: text/css + codemirror_mode: css + codemirror_mime_mode: text/css color: "#A1D9A1" language_id: 198 Lex: @@ -2212,7 +2305,8 @@ Literate Haskell: - ".lhs" tm_scope: text.tex.latex.haskell ace_mode: text - codemirror_mode: text/x-literate-haskell + codemirror_mode: haskell-literate + codemirror_mime_mode: text/x-literate-haskell language_id: 207 LiveScript: type: programming @@ -2226,7 +2320,8 @@ LiveScript: filenames: - Slakefile ace_mode: livescript - codemirror_mode: text/x-livescript + codemirror_mode: livescript + codemirror_mime_mode: text/x-livescript language_id: 208 Logos: type: programming @@ -2247,7 +2342,8 @@ Logtalk: LookML: type: programming ace_mode: yaml - codemirror_mode: text/x-yaml + codemirror_mode: yaml + codemirror_mime_mode: text/x-yaml color: "#652B81" extensions: - ".lookml" @@ -2263,7 +2359,8 @@ LoomScript: Lua: type: programming ace_mode: lua - codemirror_mode: text/x-lua + codemirror_mode: lua + codemirror_mime_mode: text/x-lua color: "#000080" extensions: - ".lua" @@ -2283,7 +2380,8 @@ M: - ".mumps" - ".m" ace_mode: text - codemirror_mode: text/x-mumps + codemirror_mode: mumps + codemirror_mime_mode: text/x-mumps language_id: 214 tm_scope: none M4: @@ -2321,7 +2419,8 @@ MTML: - ".mtml" tm_scope: text.html.basic ace_mode: html - codemirror_mode: text/html + codemirror_mode: html + codemirror_mime_mode: text/html language_id: 218 MUF: type: programming @@ -2331,7 +2430,8 @@ MUF: - ".m" tm_scope: none ace_mode: forth - codemirror_mode: text/x-forth + codemirror_mode: forth + codemirror_mime_mode: text/x-forth language_id: 219 Makefile: type: programming @@ -2360,7 +2460,8 @@ Makefile: interpreters: - make ace_mode: makefile - codemirror_mode: text/x-cmake + codemirror_mode: cmake + codemirror_mime_mode: text/x-cmake language_id: 220 Mako: type: programming @@ -2373,7 +2474,8 @@ Mako: Markdown: type: prose ace_mode: markdown - codemirror_mode: text/x-gfm + codemirror_mode: markdown + codemirror_mime_mode: text/x-gfm wrap: true extensions: - ".md" @@ -2407,7 +2509,8 @@ Mathematica: aliases: - mma ace_mode: text - codemirror_mode: text/x-mathematica + codemirror_mode: mathematica + codemirror_mime_mode: text/x-mathematica language_id: 224 Matlab: type: programming @@ -2418,7 +2521,8 @@ Matlab: - ".matlab" - ".m" ace_mode: matlab - codemirror_mode: text/x-octave + codemirror_mode: octave + codemirror_mime_mode: text/x-octave language_id: 225 Maven POM: type: data @@ -2426,7 +2530,8 @@ Maven POM: filenames: - pom.xml ace_mode: xml - codemirror_mode: text/xml + codemirror_mode: xml + codemirror_mime_mode: text/xml language_id: 226 Max: type: programming @@ -2443,7 +2548,8 @@ Max: - ".pat" tm_scope: source.json ace_mode: json - codemirror_mode: application/json + codemirror_mode: javascript + codemirror_mime_mode: application/json language_id: 227 MediaWiki: type: prose @@ -2472,7 +2578,8 @@ Metal: - ".metal" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: text/x-c++src + codemirror_mode: clike + codemirror_mime_mode: text/x-c++src language_id: 230 MiniD: type: programming @@ -2493,7 +2600,8 @@ Mirah: - ".mirah" tm_scope: source.ruby ace_mode: ruby - codemirror_mode: text/x-ruby + codemirror_mode: ruby + codemirror_mime_mode: text/x-ruby language_id: 232 Modelica: type: programming @@ -2501,7 +2609,8 @@ Modelica: - ".mo" tm_scope: source.modelica ace_mode: text - codemirror_mode: text/x-modelica + codemirror_mode: modelica + codemirror_mime_mode: text/x-modelica language_id: 233 Modula-2: type: programming @@ -2571,7 +2680,8 @@ NSIS: - ".nsi" - ".nsh" ace_mode: text - codemirror_mode: text/x-nsis + codemirror_mode: nsis + codemirror_mime_mode: text/x-nsis language_id: 242 Nemerle: type: programming @@ -2605,7 +2715,8 @@ NetLogo: - ".nlogo" tm_scope: source.lisp ace_mode: lisp - codemirror_mode: text/x-common-lisp + codemirror_mode: commonlisp + codemirror_mime_mode: text/x-common-lisp language_id: 246 NewLisp: type: programming @@ -2619,7 +2730,8 @@ NewLisp: - newlisp tm_scope: source.lisp ace_mode: lisp - codemirror_mode: text/x-common-lisp + codemirror_mode: commonlisp + codemirror_mime_mode: text/x-common-lisp language_id: 247 Nginx: type: markup @@ -2632,7 +2744,8 @@ Nginx: aliases: - nginx configuration file ace_mode: text - codemirror_mode: text/x-nginx-conf + codemirror_mode: nginx + codemirror_mime_mode: text/x-nginx-conf color: "#9469E9" language_id: 248 Nimrod: @@ -2680,7 +2793,8 @@ Nu: - Nukefile tm_scope: source.nu ace_mode: scheme - codemirror_mode: text/x-scheme + codemirror_mode: scheme + codemirror_mime_mode: text/x-scheme interpreters: - nush language_id: 253 @@ -2693,13 +2807,15 @@ NumPy: - ".numsc" tm_scope: none ace_mode: text - codemirror_mode: text/x-python + codemirror_mode: python + codemirror_mime_mode: text/x-python color: "#9C8AF9" language_id: 254 OCaml: type: programming ace_mode: ocaml - codemirror_mode: text/x-ocaml + codemirror_mode: mllike + codemirror_mime_mode: text/x-ocaml color: "#3be133" extensions: - ".ml" @@ -2721,7 +2837,8 @@ ObjDump: - ".objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - codemirror_mode: text/x-gas + codemirror_mode: gas + codemirror_mime_mode: text/x-gas language_id: 256 Objective-C: type: programming @@ -2735,7 +2852,8 @@ Objective-C: - ".m" - ".h" ace_mode: objectivec - codemirror_mode: text/x-objectivec + codemirror_mode: clike + codemirror_mime_mode: text/x-objectivec language_id: 257 Objective-C++: type: programming @@ -2748,7 +2866,8 @@ Objective-C++: extensions: - ".mm" ace_mode: objectivec - codemirror_mode: text/x-objectivec + codemirror_mode: clike + codemirror_mime_mode: text/x-objectivec language_id: 258 Objective-J: type: programming @@ -2793,7 +2912,8 @@ OpenCL: - ".opencl" tm_scope: source.c ace_mode: c_cpp - codemirror_mode: text/x-csrc + codemirror_mode: clike + codemirror_mime_mode: text/x-csrc language_id: 263 OpenEdge ABL: type: programming @@ -2816,7 +2936,8 @@ OpenRC runscript: - openrc-run tm_scope: source.shell ace_mode: sh - codemirror_mode: text/x-sh + codemirror_mode: shell + codemirror_mime_mode: text/x-sh language_id: 265 OpenSCAD: type: programming @@ -2857,7 +2978,8 @@ Oz: - ".oz" tm_scope: source.oz ace_mode: text - codemirror_mode: text/x-oz + codemirror_mode: oz + codemirror_mime_mode: text/x-oz language_id: 270 PAWN: type: programming @@ -2872,7 +2994,8 @@ PHP: type: programming tm_scope: text.html.php ace_mode: php - codemirror_mode: application/x-httpd-php + codemirror_mode: php + codemirror_mime_mode: application/x-httpd-php color: "#4F5D95" extensions: - ".php" @@ -2895,7 +3018,8 @@ PHP: PLSQL: type: programming ace_mode: sql - codemirror_mode: text/x-plsql + codemirror_mode: sql + codemirror_mime_mode: text/x-plsql tm_scope: none color: "#dad8d8" extensions: @@ -2910,7 +3034,8 @@ PLSQL: PLpgSQL: type: programming ace_mode: pgsql - codemirror_mode: text/x-sql + codemirror_mode: sql + codemirror_mime_mode: text/x-sql tm_scope: source.sql extensions: - ".sql" @@ -2987,13 +3112,15 @@ Pascal: interpreters: - instantfpc ace_mode: pascal - codemirror_mode: text/x-pascal + codemirror_mode: pascal + codemirror_mime_mode: text/x-pascal language_id: 281 Perl: type: programming tm_scope: source.perl ace_mode: perl - codemirror_mode: text/x-perl + codemirror_mode: perl + codemirror_mime_mode: text/x-perl color: "#0298c3" extensions: - ".pl" @@ -3031,7 +3158,8 @@ Perl6: - perl6 tm_scope: source.perl6fe ace_mode: perl - codemirror_mode: text/x-perl + codemirror_mode: perl + codemirror_mime_mode: text/x-perl language_id: 283 Pickle: type: data @@ -3071,7 +3199,8 @@ Pike: Pod: type: prose ace_mode: perl - codemirror_mode: text/x-perl + codemirror_mode: perl + codemirror_mime_mode: text/x-perl wrap: true extensions: - ".pod" @@ -3117,7 +3246,8 @@ PowerBuilder: PowerShell: type: programming ace_mode: powershell - codemirror_mode: text/x-powershell + codemirror_mode: powershell + codemirror_mime_mode: text/x-powershell aliases: - posh extensions: @@ -3163,7 +3293,8 @@ Protocol Buffer: - ".proto" tm_scope: source.protobuf ace_mode: protobuf - codemirror_mode: text/x-protobuf + codemirror_mode: protobuf + codemirror_mime_mode: text/x-protobuf language_id: 297 Public Key: type: data @@ -3181,7 +3312,8 @@ Puppet: filenames: - Modulefile ace_mode: text - codemirror_mode: text/x-puppet + codemirror_mode: puppet + codemirror_mime_mode: text/x-puppet tm_scope: source.puppet language_id: 299 Pure Data: @@ -3208,12 +3340,14 @@ PureScript: - ".purs" tm_scope: source.purescript ace_mode: haskell - codemirror_mode: text/x-haskell + codemirror_mode: haskell + codemirror_mime_mode: text/x-haskell language_id: 302 Python: type: programming ace_mode: python - codemirror_mode: text/x-python + codemirror_mode: python + codemirror_mime_mode: text/x-python color: "#3572A5" extensions: - ".py" @@ -3288,12 +3422,14 @@ R: interpreters: - Rscript ace_mode: r - codemirror_mode: text/x-rsrc + codemirror_mode: r + codemirror_mime_mode: text/x-rsrc language_id: 307 RAML: type: markup ace_mode: yaml - codemirror_mode: text/x-yaml + codemirror_mode: yaml + codemirror_mime_mode: text/x-yaml tm_scope: source.yaml color: "#77d9fb" extensions: @@ -3339,13 +3475,15 @@ RHTML: aliases: - html+ruby ace_mode: rhtml - codemirror_mode: application/x-erb + codemirror_mode: htmlembedded + codemirror_mime_mode: application/x-erb language_id: 312 RMarkdown: type: prose wrap: true ace_mode: markdown - codemirror_mode: text/x-gfm + codemirror_mode: markdown + codemirror_mime_mode: text/x-gfm extensions: - ".rmd" tm_scope: source.gfm @@ -3358,7 +3496,8 @@ RPM Spec: aliases: - specfile ace_mode: text - codemirror_mode: text/x-rpm-spec + codemirror_mode: rpm + codemirror_mime_mode: text/x-rpm-spec language_id: 314 RUNOFF: type: markup @@ -3461,7 +3600,8 @@ RobotFramework: Rouge: type: programming ace_mode: clojure - codemirror_mode: text/x-clojure + codemirror_mode: clojure + codemirror_mime_mode: text/x-clojure color: "#cc0088" extensions: - ".rg" @@ -3470,7 +3610,8 @@ Rouge: Ruby: type: programming ace_mode: ruby - codemirror_mode: text/x-ruby + codemirror_mode: ruby + codemirror_mime_mode: text/x-ruby color: "#701516" aliases: - jruby @@ -3532,7 +3673,8 @@ Rust: - ".rs" - ".rs.in" ace_mode: rust - codemirror_mode: text/x-rustsrc + codemirror_mode: rust + codemirror_mime_mode: text/x-rustsrc language_id: 327 SAS: type: programming @@ -3541,14 +3683,16 @@ SAS: - ".sas" tm_scope: source.sas ace_mode: text - codemirror_mode: text/x-sas + codemirror_mode: sas + codemirror_mime_mode: text/x-sas language_id: 328 SCSS: type: markup tm_scope: source.scss group: CSS ace_mode: scss - codemirror_mode: text/x-scss + codemirror_mode: css + codemirror_mime_mode: text/x-scss extensions: - ".scss" color: "#CF649A" @@ -3576,7 +3720,8 @@ SPARQL: type: data tm_scope: source.sparql ace_mode: text - codemirror_mode: application/sparql-query + codemirror_mode: sparql + codemirror_mime_mode: application/sparql-query extensions: - ".sparql" - ".rq" @@ -3594,7 +3739,8 @@ SQL: type: data tm_scope: source.sql ace_mode: sql - codemirror_mode: text/x-sql + codemirror_mode: sql + codemirror_mime_mode: text/x-sql extensions: - ".sql" - ".cql" @@ -3608,7 +3754,8 @@ SQL: SQLPL: type: programming ace_mode: sql - codemirror_mode: text/x-sql + codemirror_mode: sql + codemirror_mime_mode: text/x-sql tm_scope: source.sql extensions: - ".sql" @@ -3619,7 +3766,8 @@ SRecode Template: color: "#348a34" tm_scope: source.lisp ace_mode: lisp - codemirror_mode: text/x-common-lisp + codemirror_mode: commonlisp + codemirror_mime_mode: text/x-common-lisp extensions: - ".srt" language_id: 335 @@ -3637,7 +3785,8 @@ SVG: - ".svg" tm_scope: text.xml ace_mode: xml - codemirror_mode: text/xml + codemirror_mode: xml + codemirror_mime_mode: text/xml language_id: 337 Sage: type: programming @@ -3647,7 +3796,8 @@ Sage: - ".sagews" tm_scope: source.python ace_mode: python - codemirror_mode: text/x-python + codemirror_mode: python + codemirror_mime_mode: text/x-python language_id: 338 SaltStack: type: programming @@ -3659,7 +3809,8 @@ SaltStack: - ".sls" tm_scope: source.yaml.salt ace_mode: yaml - codemirror_mode: text/x-yaml + codemirror_mode: yaml + codemirror_mime_mode: text/x-yaml language_id: 339 Sass: type: markup @@ -3668,13 +3819,15 @@ Sass: extensions: - ".sass" ace_mode: sass - codemirror_mode: text/x-sass + codemirror_mode: sass + codemirror_mime_mode: text/x-sass color: "#CF649A" language_id: 340 Scala: type: programming ace_mode: scala - codemirror_mode: text/x-scala + codemirror_mode: clike + codemirror_mime_mode: text/x-scala color: "#c22d40" extensions: - ".scala" @@ -3708,7 +3861,8 @@ Scheme: - gosh - r6rs ace_mode: scheme - codemirror_mode: text/x-scheme + codemirror_mode: scheme + codemirror_mime_mode: text/x-scheme language_id: 343 Scilab: type: programming @@ -3760,7 +3914,8 @@ Shell: - sh - zsh ace_mode: sh - codemirror_mode: text/x-sh + codemirror_mode: shell + codemirror_mime_mode: text/x-sh language_id: 346 ShellSession: type: programming @@ -3771,7 +3926,8 @@ ShellSession: - console tm_scope: text.shell-session ace_mode: sh - codemirror_mode: text/x-sh + codemirror_mode: shell + codemirror_mime_mode: text/x-sh language_id: 347 Shen: type: programming @@ -3797,7 +3953,8 @@ Slim: - ".slim" tm_scope: text.slim ace_mode: text - codemirror_mode: text/x-slim + codemirror_mode: slim + codemirror_mime_mode: text/x-slim language_id: 350 Smali: type: programming @@ -3815,14 +3972,16 @@ Smalltalk: aliases: - squeak ace_mode: text - codemirror_mode: text/x-stsrc + codemirror_mode: smalltalk + codemirror_mime_mode: text/x-stsrc language_id: 352 Smarty: type: programming extensions: - ".tpl" ace_mode: smarty - codemirror_mode: text/x-smarty + codemirror_mode: smarty + codemirror_mime_mode: text/x-smarty tm_scope: text.html.smarty language_id: 353 SourcePawn: @@ -3844,7 +4003,8 @@ Squirrel: - ".nut" tm_scope: source.c++ ace_mode: c_cpp - codemirror_mode: text/x-c++src + codemirror_mode: clike + codemirror_mime_mode: text/x-c++src language_id: 355 Stan: type: programming @@ -3866,7 +4026,8 @@ Standard ML: - ".sml" tm_scope: source.ml ace_mode: text - codemirror_mode: text/x-ocaml + codemirror_mode: mllike + codemirror_mime_mode: text/x-ocaml language_id: 357 Stata: type: programming @@ -3887,6 +4048,7 @@ Stylus: - ".styl" tm_scope: source.stylus ace_mode: stylus + codemirror_mode: stylus language_id: 359 SubRip Text: type: data @@ -3913,7 +4075,8 @@ Swift: extensions: - ".swift" ace_mode: text - codemirror_mode: text/x-swift + codemirror_mode: swift + codemirror_mime_mode: text/x-swift language_id: 362 SystemVerilog: type: programming @@ -3923,7 +4086,8 @@ SystemVerilog: - ".svh" - ".vh" ace_mode: verilog - codemirror_mode: text/x-systemverilog + codemirror_mode: verilog + codemirror_mime_mode: text/x-systemverilog language_id: 363 TLA: type: programming @@ -3938,7 +4102,8 @@ TOML: - ".toml" tm_scope: source.toml ace_mode: toml - codemirror_mode: text/x-toml + codemirror_mode: toml + codemirror_mime_mode: text/x-toml language_id: 365 TXL: type: programming @@ -3958,7 +4123,8 @@ Tcl: - tclsh - wish ace_mode: tcl - codemirror_mode: text/x-tcl + codemirror_mode: tcl + codemirror_mime_mode: text/x-tcl language_id: 367 Tcsh: type: programming @@ -3968,13 +4134,15 @@ Tcsh: - ".csh" tm_scope: source.shell ace_mode: sh - codemirror_mode: text/x-sh + codemirror_mode: shell + codemirror_mime_mode: text/x-sh language_id: 368 TeX: type: markup color: "#3D6117" ace_mode: tex - codemirror_mode: text/x-stex + codemirror_mode: stex + codemirror_mime_mode: text/x-stex wrap: true aliases: - latex @@ -4008,7 +4176,8 @@ Terra: - ".t" color: "#00004c" ace_mode: lua - codemirror_mode: text/x-lua + codemirror_mode: lua + codemirror_mime_mode: text/x-lua interpreters: - lua language_id: 371 @@ -4041,7 +4210,8 @@ Text: Textile: type: prose ace_mode: textile - codemirror_mode: text/x-textile + codemirror_mode: textile + codemirror_mime_mode: text/x-textile wrap: true extensions: - ".textile" @@ -4069,7 +4239,8 @@ Turtle: - ".ttl" tm_scope: source.turtle ace_mode: text - codemirror_mode: text/turtle + codemirror_mode: turtle + codemirror_mime_mode: text/turtle language_id: 376 Twig: type: markup @@ -4078,7 +4249,8 @@ Twig: - ".twig" tm_scope: text.html.twig ace_mode: twig - codemirror_mode: text/x-twig + codemirror_mode: twig + codemirror_mime_mode: text/x-twig language_id: 377 TypeScript: type: programming @@ -4090,13 +4262,16 @@ TypeScript: - ".tsx" tm_scope: source.ts ace_mode: typescript - codemirror_mode: text/x-typescript + codemirror_mode: javascript + codemirror_mode: typescript + codemirror_mime_mode: text/x-typescript language_id: 378 Unified Parallel C: type: programming group: C ace_mode: c_cpp - codemirror_mode: text/x-csrc + codemirror_mode: clike + codemirror_mime_mode: text/x-csrc color: "#4e3617" extensions: - ".upc" @@ -4105,7 +4280,8 @@ Unified Parallel C: Unity3D Asset: type: data ace_mode: yaml - codemirror_mode: text/x-yaml + codemirror_mode: yaml + codemirror_mime_mode: text/x-yaml extensions: - ".anim" - ".asset" @@ -4120,7 +4296,8 @@ Uno: extensions: - ".uno" ace_mode: csharp - codemirror_mode: text/x-csharp + codemirror_mode: clike + codemirror_mime_mode: text/x-csharp tm_scope: source.cs language_id: 381 UnrealScript: @@ -4130,7 +4307,8 @@ UnrealScript: - ".uc" tm_scope: source.java ace_mode: java - codemirror_mode: text/x-java + codemirror_mode: clike + codemirror_mime_mode: text/x-java language_id: 382 UrWeb: type: programming @@ -4164,7 +4342,8 @@ VHDL: - ".vht" - ".vhw" ace_mode: vhdl - codemirror_mode: text/x-vhdl + codemirror_mode: vhdl + codemirror_mime_mode: text/x-vhdl language_id: 385 Vala: type: programming @@ -4181,7 +4360,8 @@ Verilog: - ".v" - ".veo" ace_mode: verilog - codemirror_mode: text/x-verilog + codemirror_mode: verilog + codemirror_mime_mode: text/x-verilog language_id: 387 VimL: type: programming @@ -4219,7 +4399,8 @@ Visual Basic: - vb.net - vbnet ace_mode: text - codemirror_mode: text/x-vb + codemirror_mode: vb + codemirror_mime_mode: text/x-vb language_id: 389 Volt: type: programming @@ -4228,7 +4409,8 @@ Volt: - ".volt" tm_scope: source.d ace_mode: d - codemirror_mode: text/x-d + codemirror_mode: d + codemirror_mime_mode: text/x-d language_id: 390 Vue: type: markup @@ -4237,6 +4419,7 @@ Vue: - ".vue" tm_scope: text.html.vue ace_mode: html + codemirror_mode: vue language_id: 391 Wavefront Material: type: data @@ -4266,7 +4449,8 @@ WebIDL: - ".webidl" tm_scope: source.webidl ace_mode: text - codemirror_mode: text/x-webidl + codemirror_mode: webidl + codemirror_mime_mode: text/x-webidl language_id: 395 World of Warcraft Addon Data: type: data @@ -4292,12 +4476,14 @@ XC: - ".xc" tm_scope: source.xc ace_mode: c_cpp - codemirror_mode: text/x-csrc + codemirror_mode: clike + codemirror_mime_mode: text/x-csrc language_id: 398 XML: type: data ace_mode: xml - codemirror_mode: text/xml + codemirror_mode: xml + codemirror_mime_mode: text/xml aliases: - rss - xsd @@ -4406,7 +4592,8 @@ XPages: - ".xsp.metadata" tm_scope: none ace_mode: xml - codemirror_mode: text/xml + codemirror_mode: xml + codemirror_mime_mode: text/xml language_id: 400 XProc: type: programming @@ -4415,7 +4602,8 @@ XProc: - ".xproc" tm_scope: text.xml ace_mode: xml - codemirror_mode: text/xml + codemirror_mode: xml + codemirror_mime_mode: text/xml language_id: 401 XQuery: type: programming @@ -4427,7 +4615,8 @@ XQuery: - ".xqm" - ".xqy" ace_mode: xquery - codemirror_mode: application/xquery + codemirror_mode: xquery + codemirror_mime_mode: application/xquery tm_scope: source.xq language_id: 402 XS: @@ -4436,7 +4625,8 @@ XS: - ".xs" tm_scope: source.c ace_mode: c_cpp - codemirror_mode: text/x-csrc + codemirror_mode: clike + codemirror_mime_mode: text/x-csrc language_id: 403 XSLT: type: programming @@ -4447,7 +4637,8 @@ XSLT: - ".xsl" tm_scope: text.xml.xsl ace_mode: xml - codemirror_mode: text/xml + codemirror_mode: xml + codemirror_mime_mode: text/xml color: "#EB8CEB" language_id: 404 Xojo: @@ -4484,7 +4675,8 @@ YAML: filenames: - ".clang-format" ace_mode: yaml - codemirror_mode: text/x-yaml + codemirror_mode: yaml + codemirror_mime_mode: text/x-yaml language_id: 407 YANG: type: data @@ -4541,7 +4733,8 @@ eC: edn: type: data ace_mode: clojure - codemirror_mode: text/x-clojure + codemirror_mode: clojure + codemirror_mime_mode: text/x-clojure extensions: - ".edn" tm_scope: source.clojure @@ -4589,12 +4782,14 @@ reStructuredText: - ".rest.txt" - ".rst.txt" ace_mode: text - codemirror_mode: text/x-rst + codemirror_mode: rst + codemirror_mime_mode: text/x-rst language_id: 419 wisp: type: programming ace_mode: clojure - codemirror_mode: text/x-clojure + codemirror_mode: clojure + codemirror_mime_mode: text/x-clojure color: "#7582D1" extensions: - ".wisp" diff --git a/test/test_language.rb b/test/test_language.rb index 04c13683..eda2db2a 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -352,7 +352,17 @@ class TestLanguage < Minitest::Test end def test_codemirror_mode - assert_equal 'text/x-c++src', Language['C++'].codemirror_mode + assert_equal 'ruby', Language['Ruby'].codemirror_mode + assert_equal 'javascript', Language['JavaScript'].codemirror_mode + assert_equal 'clike', Language['C'].codemirror_mode + assert_equal 'clike', Language['C++'].codemirror_mode + end + + def test_codemirror_mime_mode + assert_equal 'text/x-ruby', Language['Ruby'].codemirror_mime_mode + assert_equal 'text/javascript', Language['JavaScript'].codemirror_mime_mode + assert_equal 'text/x-csrc', Language['C'].codemirror_mime_mode + assert_equal 'text/x-c++src', Language['C++'].codemirror_mime_mode end def test_wrap From 0406a5b326dab3f3356ae64d86a7cc0641f9b04f Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 14:39:15 -0700 Subject: [PATCH 064/114] Fix typescript indent --- lib/linguist/languages.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 36b61047..9562efb3 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4262,8 +4262,7 @@ TypeScript: - ".tsx" tm_scope: source.ts ace_mode: typescript - codemirror_mode: javascript - codemirror_mode: typescript + codemirror_mode: typescript codemirror_mime_mode: text/x-typescript language_id: 378 Unified Parallel C: From 855f1a1f865675ae4f984f1cfbb28a775732f3be Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 14:47:49 -0700 Subject: [PATCH 065/114] Validate CodeMirror modes --- .gitmodules | 3 +++ lib/linguist/language.rb | 3 +++ lib/linguist/languages.yml | 12 ++++++------ test/test_language.rb | 8 ++++++++ vendor/CodeMirror | 1 + 5 files changed, 21 insertions(+), 6 deletions(-) create mode 160000 vendor/CodeMirror diff --git a/.gitmodules b/.gitmodules index cbf7a602..832b6423 100644 --- a/.gitmodules +++ b/.gitmodules @@ -791,3 +791,6 @@ [submodule "vendor/grammars/language-babel"] path = vendor/grammars/language-babel url = https://github.com/github-linguist/language-babel +[submodule "vendor/CodeMirror"] + path = vendor/CodeMirror + url = https://github.com/codemirror/CodeMirror diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index ea88b87f..e4d3cf71 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -402,6 +402,9 @@ module Linguist # Public: Get CodeMirror mode # + # Maps to a directory in the `mode/` source code. + # https://github.com/codemirror/CodeMirror/tree/master/mode + # # Examples # # # => "nil" diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9562efb3..2b816a92 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1083,7 +1083,7 @@ Ecere Projects: - ".epj" tm_scope: source.json ace_mode: json - codemirror_mode: json + codemirror_mode: javascript codemirror_mime_mode: application/json language_id: 98 Eiffel: @@ -1632,7 +1632,7 @@ HTML: type: markup tm_scope: text.html.basic ace_mode: html - codemirror_mode: html + codemirror_mode: htmlembedded codemirror_mime_mode: text/html color: "#e44b23" aliases: @@ -2118,7 +2118,7 @@ KiCad: Kit: type: markup ace_mode: html - codemirror_mode: html + codemirror_mode: htmlembedded codemirror_mime_mode: text/html extensions: - ".kit" @@ -2133,7 +2133,7 @@ Kotlin: - ".kts" tm_scope: source.Kotlin ace_mode: text - codemirror_mode: kotlin + codemirror_mode: clike codemirror_mime_mode: text/x-kotlin language_id: 189 LFE: @@ -2419,7 +2419,7 @@ MTML: - ".mtml" tm_scope: text.html.basic ace_mode: html - codemirror_mode: html + codemirror_mode: htmlembedded codemirror_mime_mode: text/html language_id: 218 MUF: @@ -4262,7 +4262,7 @@ TypeScript: - ".tsx" tm_scope: source.ts ace_mode: typescript - codemirror_mode: typescript + codemirror_mode: javascript codemirror_mime_mode: text/x-typescript language_id: 378 Unified Parallel C: diff --git a/test/test_language.rb b/test/test_language.rb index eda2db2a..0d711d36 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -452,6 +452,14 @@ class TestLanguage < Minitest::Test assert missing.empty?, message end + def test_valid_codemirror_mode + Language.all.each do |language| + if mode = language.codemirror_mode + assert File.exist?(File.expand_path("../../vendor/CodeMirror/mode/#{mode}", __FILE__)), "#{mode} isn't a valid CodeMirror mode" + end + end + end + def test_all_popular_languages_exist popular = YAML.load(File.read(File.expand_path("../../lib/linguist/popular.yml", __FILE__))) diff --git a/vendor/CodeMirror b/vendor/CodeMirror new file mode 160000 index 00000000..562e8eff --- /dev/null +++ b/vendor/CodeMirror @@ -0,0 +1 @@ +Subproject commit 562e8eff5b0916d3b63fc59eda9540f8f455c6ed From d3f3c0345c3d56fe605f6ef140c33bb52231cc12 Mon Sep 17 00:00:00 2001 From: Josh Cheek Date: Fri, 23 Sep 2016 15:29:02 -0700 Subject: [PATCH 066/114] Add a sample showing the Julia interpreter is correctly analyzed --- samples/Julia/julia | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 samples/Julia/julia diff --git a/samples/Julia/julia b/samples/Julia/julia new file mode 100644 index 00000000..c8fbb1f3 --- /dev/null +++ b/samples/Julia/julia @@ -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) From 3abe081560ca924caaa425bd38212feb3e7daeb9 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 16:30:38 -0700 Subject: [PATCH 067/114] Validate codemirror modes --- lib/linguist/languages.yml | 42 +++++++++++--------------------------- test/test_language.rb | 26 +++++++++++++++++++++++ 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2b816a92..9bb32f8a 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -234,8 +234,6 @@ Apollo Guidance Computer: - ".agc" tm_scope: source.agc ace_mode: assembly_x86 - codemirror_mode: gas - codemirror_mime_mode: text/x-gas language_id: 18 AppleScript: type: programming @@ -298,8 +296,6 @@ Assembly: - ".nasm" tm_scope: source.assembly ace_mode: assembly_x86 - codemirror_mode: gas - codemirror_mime_mode: text/x-gas language_id: 24 Augeas: type: programming @@ -516,8 +512,6 @@ C-ObjDump: - ".c-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - codemirror_mode: gas - codemirror_mime_mode: text/x-gas language_id: 44 C2hs Haskell: type: programming @@ -568,7 +562,7 @@ COLLADA: tm_scope: text.xml ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/x-xml + codemirror_mime_mode: text/xml language_id: 49 CSS: type: markup @@ -799,8 +793,6 @@ Cpp-ObjDump: aliases: - c++-objdump ace_mode: assembly_x86 - codemirror_mode: gas - codemirror_mime_mode: text/x-gas language_id: 70 Creole: type: prose @@ -909,8 +901,6 @@ D-ObjDump: - ".d-objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - codemirror_mode: gas - codemirror_mime_mode: text/x-gas language_id: 81 DIGITAL Command Language: type: programming @@ -972,7 +962,7 @@ Dart: - dart ace_mode: dart codemirror_mode: dart - codemirror_mime_mode: text/x-dart + codemirror_mime_mode: application/dart language_id: 87 Diff: type: data @@ -1337,8 +1327,6 @@ GAS: - ".ms" tm_scope: source.assembly ace_mode: assembly_x86 - codemirror_mode: gas - codemirror_mime_mode: text/x-gas language_id: 120 GCC Machine Description: type: programming @@ -1632,7 +1620,7 @@ HTML: type: markup tm_scope: text.html.basic ace_mode: html - codemirror_mode: htmlembedded + codemirror_mode: htmlmixed codemirror_mime_mode: text/html color: "#e44b23" aliases: @@ -1671,7 +1659,7 @@ HTML+ECR: extensions: - ".ecr" ace_mode: text - codemirror_mode: htmlembedded + codemirror_mode: htmlmixed codemirror_mime_mode: text/html language_id: 148 HTML+EEX: @@ -1683,7 +1671,7 @@ HTML+EEX: extensions: - ".eex" ace_mode: text - codemirror_mode: htmlembedded + codemirror_mode: htmlmixed codemirror_mime_mode: text/html language_id: 149 HTML+ERB: @@ -1752,7 +1740,6 @@ Handlebars: - ".hbs" tm_scope: text.html.handlebars ace_mode: handlebars - codemirror_mode: handlebars language_id: 155 Harbour: type: programming @@ -1962,8 +1949,6 @@ JSONLD: type: data group: JavaScript ace_mode: javascript - codemirror_mode: javascript - codemirror_mime_mode: application/ld+json extensions: - ".jsonld" tm_scope: source.js @@ -1985,6 +1970,7 @@ JSX: - ".jsx" tm_scope: source.js.jsx ace_mode: javascript + codemirror_mode: jsx codemirror_mime_mode: text/jsx language_id: 178 Jade: @@ -2118,7 +2104,7 @@ KiCad: Kit: type: markup ace_mode: html - codemirror_mode: htmlembedded + codemirror_mode: htmlmixed codemirror_mime_mode: text/html extensions: - ".kit" @@ -2419,7 +2405,7 @@ MTML: - ".mtml" tm_scope: text.html.basic ace_mode: html - codemirror_mode: htmlembedded + codemirror_mode: htmlmixed codemirror_mime_mode: text/html language_id: 218 MUF: @@ -2474,7 +2460,7 @@ Mako: Markdown: type: prose ace_mode: markdown - codemirror_mode: markdown + codemirror_mode: gfm codemirror_mime_mode: text/x-gfm wrap: true extensions: @@ -2837,8 +2823,6 @@ ObjDump: - ".objdump" tm_scope: objdump.x86asm ace_mode: assembly_x86 - codemirror_mode: gas - codemirror_mime_mode: text/x-gas language_id: 256 Objective-C: type: programming @@ -3247,7 +3231,7 @@ PowerShell: type: programming ace_mode: powershell codemirror_mode: powershell - codemirror_mime_mode: text/x-powershell + codemirror_mime_mode: application/x-powershell aliases: - posh extensions: @@ -3482,7 +3466,7 @@ RMarkdown: type: prose wrap: true ace_mode: markdown - codemirror_mode: markdown + codemirror_mode: gfm codemirror_mime_mode: text/x-gfm extensions: - ".rmd" @@ -4048,7 +4032,6 @@ Stylus: - ".styl" tm_scope: source.stylus ace_mode: stylus - codemirror_mode: stylus language_id: 359 SubRip Text: type: data @@ -4263,7 +4246,7 @@ TypeScript: tm_scope: source.ts ace_mode: typescript codemirror_mode: javascript - codemirror_mime_mode: text/x-typescript + codemirror_mime_mode: application/typescript language_id: 378 Unified Parallel C: type: programming @@ -4418,7 +4401,6 @@ Vue: - ".vue" tm_scope: text.html.vue ace_mode: html - codemirror_mode: vue language_id: 391 Wavefront Material: type: data diff --git a/test/test_language.rb b/test/test_language.rb index 0d711d36..48391e59 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -452,6 +452,15 @@ class TestLanguage < Minitest::Test assert missing.empty?, message end + def test_codemirror_modes_present + Language.all.each do |language| + if language.codemirror_mode || language.codemirror_mime_mode + assert language.codemirror_mode, "#{language.inspect} missing CodeMirror mode" + assert language.codemirror_mime_mode, "#{language.inspect} missing CodeMirror MIME mode" + end + end + end + def test_valid_codemirror_mode Language.all.each do |language| if mode = language.codemirror_mode @@ -460,6 +469,23 @@ class TestLanguage < Minitest::Test end end + def test_codemirror_mode_and_mime_defined_by_meta_mapping + meta = File.read(File.expand_path("../../vendor/CodeMirror/mode/meta.js", __FILE__)) + Language.all.each do |language| + next unless language.codemirror_mode && language.codemirror_mime_mode + assert meta.match(/^.+#{Regexp.escape(language.codemirror_mime_mode)}.+#{Regexp.escape(language.codemirror_mode)}.+$/), "#{language.inspect}: #{language.codemirror_mime_mode} not defined under #{language.codemirror_mode}" + end + end + + def test_codemirror_mime_declared_in_mode_file + Language.all.each do |language| + next unless language.codemirror_mode && language.codemirror_mime_mode + filename = File.expand_path("../../vendor/CodeMirror/mode/#{language.codemirror_mode}/#{language.codemirror_mode}.js", __FILE__) + assert File.exist?(filename), "#{filename} does not exist" + assert File.read(filename).match(language.codemirror_mime_mode), "#{language.inspect}: #{language.codemirror_mime_mode} not defined in #{filename}" + end + end + def test_all_popular_languages_exist popular = YAML.load(File.read(File.expand_path("../../lib/linguist/popular.yml", __FILE__))) From 67ed060d378f7e39992c0f520bbb4a408f2f5f81 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 16:33:12 -0700 Subject: [PATCH 068/114] Assert CodeMirror modes and mime types are valid against source --- lib/linguist/language.rb | 6 +- lib/linguist/languages.yml | 368 ++++++++++++++++++------------------- test/test_grammars.rb | 2 +- test/test_language.rb | 22 +-- 4 files changed, 199 insertions(+), 199 deletions(-) diff --git a/lib/linguist/language.rb b/lib/linguist/language.rb index e4d3cf71..875ef956 100644 --- a/lib/linguist/language.rb +++ b/lib/linguist/language.rb @@ -302,7 +302,7 @@ module Linguist @ace_mode = attributes[:ace_mode] @codemirror_mode = attributes[:codemirror_mode] - @codemirror_mime_mode = attributes[:codemirror_mime_mode] + @codemirror_mime_type = attributes[:codemirror_mime_type] @wrap = attributes[:wrap] || false # Set legacy search term @@ -423,7 +423,7 @@ module Linguist # # => "text/x-csrc" # # Returns a String name or nil - attr_reader :codemirror_mime_mode + attr_reader :codemirror_mime_type # Public: Should language lines be wrapped # @@ -602,7 +602,7 @@ module Linguist :tm_scope => options['tm_scope'], :ace_mode => options['ace_mode'], :codemirror_mode => options['codemirror_mode'], - :codemirror_mime_mode => options['codemirror_mime_mode'], + :codemirror_mime_type => options['codemirror_mime_type'], :wrap => options['wrap'], :group_name => options['group'], :searchable => options.fetch('searchable', true), diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 9bb32f8a..269525ce 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -60,7 +60,7 @@ AGS Script: tm_scope: source.c++ ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-c++src + codemirror_mime_type: text/x-c++src language_id: 2 AMPL: type: programming @@ -99,7 +99,7 @@ APL: tm_scope: source.apl ace_mode: text codemirror_mode: apl - codemirror_mime_mode: text/apl + codemirror_mime_type: text/apl language_id: 6 ASN.1: type: data @@ -110,7 +110,7 @@ ASN.1: tm_scope: source.asn ace_mode: text codemirror_mode: asn.1 - codemirror_mime_mode: text/x-ttcn-asn + codemirror_mime_type: text/x-ttcn-asn language_id: 7 ASP: type: programming @@ -130,7 +130,7 @@ ASP: - ".axd" ace_mode: text codemirror_mode: htmlembedded - codemirror_mime_mode: application/x-aspx + codemirror_mime_type: application/x-aspx language_id: 8 ATS: type: programming @@ -194,7 +194,7 @@ Alpine Abuild: tm_scope: source.shell ace_mode: sh codemirror_mode: shell - codemirror_mime_mode: text/x-sh + codemirror_mime_type: text/x-sh language_id: 14 Ant Build System: type: data @@ -204,7 +204,7 @@ Ant Build System: - build.xml ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: application/xml + codemirror_mime_type: application/xml language_id: 15 ApacheConf: type: markup @@ -224,7 +224,7 @@ Apex: tm_scope: source.java ace_mode: java codemirror_mode: clike - codemirror_mime_mode: text/x-java + codemirror_mime_type: text/x-java language_id: 17 Apollo Guidance Computer: type: programming @@ -263,7 +263,7 @@ Arduino: tm_scope: source.c++ ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-c++src + codemirror_mime_type: text/x-c++src language_id: 21 AsciiDoc: type: prose @@ -434,7 +434,7 @@ Brainfuck: tm_scope: source.bf ace_mode: text codemirror_mode: brainfuck - codemirror_mime_mode: text/x-brainfuck + codemirror_mime_type: text/x-brainfuck language_id: 38 Brightscript: type: programming @@ -462,13 +462,13 @@ C: - tcc ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-csrc + codemirror_mime_type: text/x-csrc language_id: 41 C#: type: programming ace_mode: csharp codemirror_mode: clike - codemirror_mime_mode: text/x-csharp + codemirror_mime_type: text/x-csharp tm_scope: source.cs search_term: csharp color: "#178600" @@ -484,7 +484,7 @@ C++: type: programming ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-c++src + codemirror_mime_type: text/x-c++src search_term: cpp color: "#f34b7d" aliases: @@ -523,7 +523,7 @@ C2hs Haskell: tm_scope: source.haskell ace_mode: haskell codemirror_mode: haskell - codemirror_mime_mode: text/x-haskell + codemirror_mime_type: text/x-haskell language_id: 45 CLIPS: type: programming @@ -541,7 +541,7 @@ CMake: - CMakeLists.txt ace_mode: text codemirror_mode: cmake - codemirror_mime_mode: text/x-cmake + codemirror_mime_type: text/x-cmake language_id: 47 COBOL: type: programming @@ -553,7 +553,7 @@ COBOL: - ".cpy" ace_mode: cobol codemirror_mode: cobol - codemirror_mime_mode: text/x-cobol + codemirror_mime_type: text/x-cobol language_id: 48 COLLADA: type: data @@ -562,14 +562,14 @@ COLLADA: tm_scope: text.xml ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml language_id: 49 CSS: type: markup tm_scope: source.css ace_mode: css codemirror_mode: css - codemirror_mime_mode: text/css + codemirror_mime_type: text/css color: "#563d7c" extensions: - ".css" @@ -626,7 +626,7 @@ ChucK: tm_scope: source.java ace_mode: java codemirror_mode: clike - codemirror_mime_mode: text/x-java + codemirror_mime_type: text/x-java language_id: 57 Cirru: type: programming @@ -664,7 +664,7 @@ Clojure: type: programming ace_mode: clojure codemirror_mode: clojure - codemirror_mime_mode: text/x-clojure + codemirror_mime_type: text/x-clojure color: "#db5855" extensions: - ".clj" @@ -684,7 +684,7 @@ CoffeeScript: tm_scope: source.coffee ace_mode: coffee codemirror_mode: coffeescript - codemirror_mime_mode: text/x-coffeescript + codemirror_mime_type: text/x-coffeescript color: "#244776" aliases: - coffee @@ -751,7 +751,7 @@ Common Lisp: - ecl ace_mode: lisp codemirror_mode: commonlisp - codemirror_mime_mode: text/x-common-lisp + codemirror_mime_type: text/x-common-lisp language_id: 66 Component Pascal: type: programming @@ -765,7 +765,7 @@ Component Pascal: - objectpascal ace_mode: pascal codemirror_mode: pascal - codemirror_mime_mode: text/x-pascal + codemirror_mime_type: text/x-pascal language_id: 67 Cool: type: programming @@ -809,7 +809,7 @@ Crystal: - ".cr" ace_mode: ruby codemirror_mode: crystal - codemirror_mime_mode: text/x-crystal + codemirror_mime_type: text/x-crystal tm_scope: source.crystal interpreters: - crystal @@ -860,7 +860,7 @@ Cuda: tm_scope: source.cuda-c++ ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-c++src + codemirror_mime_type: text/x-c++src color: "#3A4E3A" language_id: 77 Cycript: @@ -870,7 +870,7 @@ Cycript: tm_scope: source.js ace_mode: javascript codemirror_mode: javascript - codemirror_mime_mode: text/javascript + codemirror_mime_type: text/javascript language_id: 78 Cython: type: programming @@ -883,7 +883,7 @@ Cython: - pyrex ace_mode: text codemirror_mode: python - codemirror_mime_mode: text/x-cython + codemirror_mime_type: text/x-cython language_id: 79 D: type: programming @@ -893,7 +893,7 @@ D: - ".di" ace_mode: d codemirror_mode: d - codemirror_mime_mode: text/x-d + codemirror_mime_type: text/x-d language_id: 80 D-ObjDump: type: data @@ -940,7 +940,7 @@ DTrace: tm_scope: source.c ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-csrc + codemirror_mime_type: text/x-csrc language_id: 85 Darcs Patch: type: data @@ -962,7 +962,7 @@ Dart: - dart ace_mode: dart codemirror_mode: dart - codemirror_mime_mode: application/dart + codemirror_mime_type: application/dart language_id: 87 Diff: type: data @@ -974,7 +974,7 @@ Diff: tm_scope: source.diff ace_mode: diff codemirror_mode: diff - codemirror_mime_mode: text/x-diff + codemirror_mime_type: text/x-diff language_id: 88 Dockerfile: type: data @@ -985,7 +985,7 @@ Dockerfile: - Dockerfile ace_mode: dockerfile codemirror_mode: dockerfile - codemirror_mime_mode: text/x-dockerfile + codemirror_mime_type: text/x-dockerfile language_id: 89 Dogescript: type: programming @@ -1005,7 +1005,7 @@ Dylan: - ".lid" ace_mode: text codemirror_mode: dylan - codemirror_mime_mode: text/x-dylan + codemirror_mime_type: text/x-dylan language_id: 91 E: type: programming @@ -1026,7 +1026,7 @@ ECL: tm_scope: none ace_mode: text codemirror_mode: ecl - codemirror_mime_mode: text/x-ecl + codemirror_mime_type: text/x-ecl language_id: 93 ECLiPSe: type: programming @@ -1053,7 +1053,7 @@ EQ: tm_scope: source.cs ace_mode: csharp codemirror_mode: clike - codemirror_mime_mode: text/x-csharp + codemirror_mime_type: text/x-csharp language_id: 96 Eagle: type: markup @@ -1064,7 +1064,7 @@ Eagle: tm_scope: text.xml ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml language_id: 97 Ecere Projects: type: data @@ -1074,7 +1074,7 @@ Ecere Projects: tm_scope: source.json ace_mode: json codemirror_mode: javascript - codemirror_mime_mode: application/json + codemirror_mime_type: application/json language_id: 98 Eiffel: type: programming @@ -1083,7 +1083,7 @@ Eiffel: - ".e" ace_mode: eiffel codemirror_mode: eiffel - codemirror_mime_mode: text/x-eiffel + codemirror_mime_type: text/x-eiffel language_id: 99 Elixir: type: programming @@ -1105,7 +1105,7 @@ Elm: tm_scope: source.elm ace_mode: elm codemirror_mode: elm - codemirror_mime_mode: text/x-elm + codemirror_mime_type: text/x-elm language_id: 101 Emacs Lisp: type: programming @@ -1130,7 +1130,7 @@ Emacs Lisp: - ".emacs.desktop" ace_mode: lisp codemirror_mode: commonlisp - codemirror_mime_mode: text/x-common-lisp + codemirror_mime_type: text/x-common-lisp language_id: 102 EmberScript: type: programming @@ -1141,7 +1141,7 @@ EmberScript: tm_scope: source.coffee ace_mode: coffee codemirror_mode: coffeescript - codemirror_mime_mode: text/x-coffeescript + codemirror_mime_type: text/x-coffeescript language_id: 103 Erlang: type: programming @@ -1160,7 +1160,7 @@ Erlang: - rebar.lock ace_mode: erlang codemirror_mode: erlang - codemirror_mime_mode: text/x-erlang + codemirror_mime_type: text/x-erlang interpreters: - escript language_id: 104 @@ -1177,7 +1177,7 @@ F#: tm_scope: source.fsharp ace_mode: text codemirror_mode: mllike - codemirror_mime_mode: text/x-fsharp + codemirror_mime_type: text/x-fsharp language_id: 105 FLUX: type: programming @@ -1203,7 +1203,7 @@ FORTRAN: tm_scope: source.fortran.modern ace_mode: text codemirror_mode: fortran - codemirror_mime_mode: text/x-fortran + codemirror_mime_type: text/x-fortran language_id: 107 Factor: type: programming @@ -1215,7 +1215,7 @@ Factor: - ".factor-rc" ace_mode: text codemirror_mode: factor - codemirror_mime_mode: text/x-factor + codemirror_mime_type: text/x-factor language_id: 108 Fancy: type: programming @@ -1272,7 +1272,7 @@ Forth: - ".fs" ace_mode: forth codemirror_mode: forth - codemirror_mime_mode: text/x-forth + codemirror_mime_type: text/x-forth language_id: 114 FreeMarker: type: programming @@ -1335,7 +1335,7 @@ GCC Machine Description: tm_scope: source.lisp ace_mode: lisp codemirror_mode: commonlisp - codemirror_mime_mode: text/x-common-lisp + codemirror_mime_type: text/x-common-lisp language_id: 121 GDB: type: programming @@ -1381,7 +1381,7 @@ Game Maker Language: tm_scope: source.c++ ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-c++src + codemirror_mime_type: text/x-c++src language_id: 125 Genshi: type: programming @@ -1393,7 +1393,7 @@ Genshi: - xml+kid ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml language_id: 126 Gentoo Ebuild: type: programming @@ -1403,7 +1403,7 @@ Gentoo Ebuild: tm_scope: source.shell ace_mode: sh codemirror_mode: shell - codemirror_mime_mode: text/x-sh + codemirror_mime_type: text/x-sh language_id: 127 Gentoo Eclass: type: programming @@ -1413,7 +1413,7 @@ Gentoo Eclass: tm_scope: source.shell ace_mode: sh codemirror_mode: shell - codemirror_mime_mode: text/x-sh + codemirror_mime_type: text/x-sh language_id: 128 Gettext Catalog: type: prose @@ -1435,7 +1435,7 @@ Glyph: tm_scope: source.tcl ace_mode: tcl codemirror_mode: tcl - codemirror_mime_mode: text/x-tcl + codemirror_mime_type: text/x-tcl language_id: 130 Gnuplot: type: programming @@ -1457,7 +1457,7 @@ Go: - ".go" ace_mode: golang codemirror_mode: go - codemirror_mime_mode: text/x-go + codemirror_mime_type: text/x-go language_id: 132 Golo: type: programming @@ -1504,7 +1504,7 @@ Grammatical Framework: tm_scope: source.haskell ace_mode: haskell codemirror_mode: haskell - codemirror_mime_mode: text/x-haskell + codemirror_mime_type: text/x-haskell language_id: 137 Graph Modeling Language: type: data @@ -1565,13 +1565,13 @@ Groff: - troff ace_mode: text codemirror_mode: troff - codemirror_mime_mode: text/troff + codemirror_mime_type: text/troff language_id: 141 Groovy: type: programming ace_mode: groovy codemirror_mode: groovy - codemirror_mime_mode: text/x-groovy + codemirror_mime_type: text/x-groovy color: "#e69f56" extensions: - ".groovy" @@ -1594,7 +1594,7 @@ Groovy Server Pages: tm_scope: text.html.jsp ace_mode: jsp codemirror_mode: htmlembedded - codemirror_mime_mode: application/x-jsp + codemirror_mime_type: application/x-jsp language_id: 143 HCL: type: programming @@ -1603,7 +1603,7 @@ HCL: - ".tf" ace_mode: ruby codemirror_mode: ruby - codemirror_mime_mode: text/x-ruby + codemirror_mime_type: text/x-ruby tm_scope: source.ruby language_id: 144 HLSL: @@ -1621,7 +1621,7 @@ HTML: tm_scope: text.html.basic ace_mode: html codemirror_mode: htmlmixed - codemirror_mime_mode: text/html + codemirror_mime_type: text/html color: "#e44b23" aliases: - xhtml @@ -1648,7 +1648,7 @@ HTML+Django: - htmldjango ace_mode: django codemirror_mode: django - codemirror_mime_mode: text/x-django + codemirror_mime_type: text/x-django language_id: 147 HTML+ECR: type: markup @@ -1660,7 +1660,7 @@ HTML+ECR: - ".ecr" ace_mode: text codemirror_mode: htmlmixed - codemirror_mime_mode: text/html + codemirror_mime_type: text/html language_id: 148 HTML+EEX: type: markup @@ -1672,7 +1672,7 @@ HTML+EEX: - ".eex" ace_mode: text codemirror_mode: htmlmixed - codemirror_mime_mode: text/html + codemirror_mime_type: text/html language_id: 149 HTML+ERB: type: markup @@ -1685,7 +1685,7 @@ HTML+ERB: - ".erb.deface" ace_mode: text codemirror_mode: htmlembedded - codemirror_mime_mode: application/x-erb + codemirror_mime_type: application/x-erb language_id: 150 HTML+PHP: type: markup @@ -1695,7 +1695,7 @@ HTML+PHP: - ".phtml" ace_mode: php codemirror_mode: php - codemirror_mime_mode: application/x-httpd-php + codemirror_mime_type: application/x-httpd-php language_id: 151 HTTP: type: data @@ -1704,13 +1704,13 @@ HTTP: tm_scope: source.httpspec ace_mode: text codemirror_mode: http - codemirror_mime_mode: message/http + codemirror_mime_type: message/http language_id: 152 Hack: type: programming ace_mode: php codemirror_mode: php - codemirror_mime_mode: application/x-httpd-php + codemirror_mime_type: application/x-httpd-php extensions: - ".hh" - ".php" @@ -1725,7 +1725,7 @@ Haml: - ".haml.deface" ace_mode: haml codemirror_mode: haml - codemirror_mime_mode: text/x-haml + codemirror_mime_type: text/x-haml color: "#ECE2A9" language_id: 154 Handlebars: @@ -1759,13 +1759,13 @@ Haskell: - runhaskell ace_mode: haskell codemirror_mode: haskell - codemirror_mime_mode: text/x-haskell + codemirror_mime_type: text/x-haskell language_id: 157 Haxe: type: programming ace_mode: haxe codemirror_mode: haxe - codemirror_mime_mode: text/x-haxe + codemirror_mime_type: text/x-haxe color: "#df7900" extensions: - ".hx" @@ -1797,7 +1797,7 @@ IDL: - ".dlm" ace_mode: text codemirror_mode: idl - codemirror_mime_mode: text/x-idl + codemirror_mime_type: text/x-idl language_id: 161 IGOR Pro: type: programming @@ -1822,7 +1822,7 @@ INI: - dosini ace_mode: ini codemirror_mode: properties - codemirror_mime_mode: text/x-properties + codemirror_mime_type: text/x-properties language_id: 163 IRC log: type: data @@ -1923,7 +1923,7 @@ JSON: group: JavaScript ace_mode: json codemirror_mode: javascript - codemirror_mime_mode: application/json + codemirror_mime_type: application/json searchable: false extensions: - ".json" @@ -1943,7 +1943,7 @@ JSON5: tm_scope: source.js ace_mode: javascript codemirror_mode: javascript - codemirror_mime_mode: application/json + codemirror_mime_type: application/json language_id: 175 JSONLD: type: data @@ -1958,7 +1958,7 @@ JSONiq: type: programming ace_mode: jsoniq codemirror_mode: javascript - codemirror_mime_mode: application/json + codemirror_mime_type: application/json extensions: - ".jq" tm_scope: source.jq @@ -1971,7 +1971,7 @@ JSX: tm_scope: source.js.jsx ace_mode: javascript codemirror_mode: jsx - codemirror_mime_mode: text/jsx + codemirror_mime_type: text/jsx language_id: 178 Jade: group: HTML @@ -1982,7 +1982,7 @@ Jade: tm_scope: text.jade ace_mode: jade codemirror_mode: pug - codemirror_mime_mode: text/x-pug + codemirror_mime_type: text/x-pug language_id: 179 Jasmin: type: programming @@ -1995,7 +1995,7 @@ Java: type: programming ace_mode: java codemirror_mode: clike - codemirror_mime_mode: text/x-java + codemirror_mime_type: text/x-java color: "#b07219" extensions: - ".java" @@ -2011,14 +2011,14 @@ Java Server Pages: tm_scope: text.html.jsp ace_mode: jsp codemirror_mode: htmlembedded - codemirror_mime_mode: application/x-jsp + codemirror_mime_type: application/x-jsp language_id: 182 JavaScript: type: programming tm_scope: source.js ace_mode: javascript codemirror_mode: javascript - codemirror_mime_mode: text/javascript + codemirror_mime_type: text/javascript color: "#f1e05a" aliases: - js @@ -2068,13 +2068,13 @@ Julia: color: "#a270ba" ace_mode: julia codemirror_mode: julia - codemirror_mime_mode: text/x-julia + codemirror_mime_type: text/x-julia language_id: 184 Jupyter Notebook: type: markup ace_mode: json codemirror_mode: javascript - codemirror_mime_mode: application/json + codemirror_mime_type: application/json tm_scope: source.json color: "#DA5B0B" extensions: @@ -2105,7 +2105,7 @@ Kit: type: markup ace_mode: html codemirror_mode: htmlmixed - codemirror_mime_mode: text/html + codemirror_mime_type: text/html extensions: - ".kit" tm_scope: text.html.basic @@ -2120,7 +2120,7 @@ Kotlin: tm_scope: source.Kotlin ace_mode: text codemirror_mode: clike - codemirror_mime_mode: text/x-kotlin + codemirror_mime_type: text/x-kotlin language_id: 189 LFE: type: programming @@ -2131,7 +2131,7 @@ LFE: tm_scope: source.lisp ace_mode: lisp codemirror_mode: commonlisp - codemirror_mime_mode: text/x-common-lisp + codemirror_mime_type: text/x-common-lisp language_id: 190 LLVM: type: programming @@ -2165,7 +2165,7 @@ LabVIEW: tm_scope: text.xml ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml language_id: 194 Lasso: type: programming @@ -2190,7 +2190,7 @@ Latte: tm_scope: text.html.smarty ace_mode: smarty codemirror_mode: smarty - codemirror_mime_mode: text/x-smarty + codemirror_mime_type: text/x-smarty language_id: 196 Lean: type: programming @@ -2207,7 +2207,7 @@ Less: tm_scope: source.css.less ace_mode: less codemirror_mode: css - codemirror_mime_mode: text/css + codemirror_mime_type: text/css color: "#A1D9A1" language_id: 198 Lex: @@ -2292,7 +2292,7 @@ Literate Haskell: tm_scope: text.tex.latex.haskell ace_mode: text codemirror_mode: haskell-literate - codemirror_mime_mode: text/x-literate-haskell + codemirror_mime_type: text/x-literate-haskell language_id: 207 LiveScript: type: programming @@ -2307,7 +2307,7 @@ LiveScript: - Slakefile ace_mode: livescript codemirror_mode: livescript - codemirror_mime_mode: text/x-livescript + codemirror_mime_type: text/x-livescript language_id: 208 Logos: type: programming @@ -2329,7 +2329,7 @@ LookML: type: programming ace_mode: yaml codemirror_mode: yaml - codemirror_mime_mode: text/x-yaml + codemirror_mime_type: text/x-yaml color: "#652B81" extensions: - ".lookml" @@ -2346,7 +2346,7 @@ Lua: type: programming ace_mode: lua codemirror_mode: lua - codemirror_mime_mode: text/x-lua + codemirror_mime_type: text/x-lua color: "#000080" extensions: - ".lua" @@ -2367,7 +2367,7 @@ M: - ".m" ace_mode: text codemirror_mode: mumps - codemirror_mime_mode: text/x-mumps + codemirror_mime_type: text/x-mumps language_id: 214 tm_scope: none M4: @@ -2406,7 +2406,7 @@ MTML: tm_scope: text.html.basic ace_mode: html codemirror_mode: htmlmixed - codemirror_mime_mode: text/html + codemirror_mime_type: text/html language_id: 218 MUF: type: programming @@ -2417,7 +2417,7 @@ MUF: tm_scope: none ace_mode: forth codemirror_mode: forth - codemirror_mime_mode: text/x-forth + codemirror_mime_type: text/x-forth language_id: 219 Makefile: type: programming @@ -2447,7 +2447,7 @@ Makefile: - make ace_mode: makefile codemirror_mode: cmake - codemirror_mime_mode: text/x-cmake + codemirror_mime_type: text/x-cmake language_id: 220 Mako: type: programming @@ -2461,7 +2461,7 @@ Markdown: type: prose ace_mode: markdown codemirror_mode: gfm - codemirror_mime_mode: text/x-gfm + codemirror_mime_type: text/x-gfm wrap: true extensions: - ".md" @@ -2496,7 +2496,7 @@ Mathematica: - mma ace_mode: text codemirror_mode: mathematica - codemirror_mime_mode: text/x-mathematica + codemirror_mime_type: text/x-mathematica language_id: 224 Matlab: type: programming @@ -2508,7 +2508,7 @@ Matlab: - ".m" ace_mode: matlab codemirror_mode: octave - codemirror_mime_mode: text/x-octave + codemirror_mime_type: text/x-octave language_id: 225 Maven POM: type: data @@ -2517,7 +2517,7 @@ Maven POM: - pom.xml ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml language_id: 226 Max: type: programming @@ -2535,7 +2535,7 @@ Max: tm_scope: source.json ace_mode: json codemirror_mode: javascript - codemirror_mime_mode: application/json + codemirror_mime_type: application/json language_id: 227 MediaWiki: type: prose @@ -2565,7 +2565,7 @@ Metal: tm_scope: source.c++ ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-c++src + codemirror_mime_type: text/x-c++src language_id: 230 MiniD: type: programming @@ -2587,7 +2587,7 @@ Mirah: tm_scope: source.ruby ace_mode: ruby codemirror_mode: ruby - codemirror_mime_mode: text/x-ruby + codemirror_mime_type: text/x-ruby language_id: 232 Modelica: type: programming @@ -2596,7 +2596,7 @@ Modelica: tm_scope: source.modelica ace_mode: text codemirror_mode: modelica - codemirror_mime_mode: text/x-modelica + codemirror_mime_type: text/x-modelica language_id: 233 Modula-2: type: programming @@ -2667,7 +2667,7 @@ NSIS: - ".nsh" ace_mode: text codemirror_mode: nsis - codemirror_mime_mode: text/x-nsis + codemirror_mime_type: text/x-nsis language_id: 242 Nemerle: type: programming @@ -2702,7 +2702,7 @@ NetLogo: tm_scope: source.lisp ace_mode: lisp codemirror_mode: commonlisp - codemirror_mime_mode: text/x-common-lisp + codemirror_mime_type: text/x-common-lisp language_id: 246 NewLisp: type: programming @@ -2717,7 +2717,7 @@ NewLisp: tm_scope: source.lisp ace_mode: lisp codemirror_mode: commonlisp - codemirror_mime_mode: text/x-common-lisp + codemirror_mime_type: text/x-common-lisp language_id: 247 Nginx: type: markup @@ -2731,7 +2731,7 @@ Nginx: - nginx configuration file ace_mode: text codemirror_mode: nginx - codemirror_mime_mode: text/x-nginx-conf + codemirror_mime_type: text/x-nginx-conf color: "#9469E9" language_id: 248 Nimrod: @@ -2780,7 +2780,7 @@ Nu: tm_scope: source.nu ace_mode: scheme codemirror_mode: scheme - codemirror_mime_mode: text/x-scheme + codemirror_mime_type: text/x-scheme interpreters: - nush language_id: 253 @@ -2794,14 +2794,14 @@ NumPy: tm_scope: none ace_mode: text codemirror_mode: python - codemirror_mime_mode: text/x-python + codemirror_mime_type: text/x-python color: "#9C8AF9" language_id: 254 OCaml: type: programming ace_mode: ocaml codemirror_mode: mllike - codemirror_mime_mode: text/x-ocaml + codemirror_mime_type: text/x-ocaml color: "#3be133" extensions: - ".ml" @@ -2837,7 +2837,7 @@ Objective-C: - ".h" ace_mode: objectivec codemirror_mode: clike - codemirror_mime_mode: text/x-objectivec + codemirror_mime_type: text/x-objectivec language_id: 257 Objective-C++: type: programming @@ -2851,7 +2851,7 @@ Objective-C++: - ".mm" ace_mode: objectivec codemirror_mode: clike - codemirror_mime_mode: text/x-objectivec + codemirror_mime_type: text/x-objectivec language_id: 258 Objective-J: type: programming @@ -2897,7 +2897,7 @@ OpenCL: tm_scope: source.c ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-csrc + codemirror_mime_type: text/x-csrc language_id: 263 OpenEdge ABL: type: programming @@ -2921,7 +2921,7 @@ OpenRC runscript: tm_scope: source.shell ace_mode: sh codemirror_mode: shell - codemirror_mime_mode: text/x-sh + codemirror_mime_type: text/x-sh language_id: 265 OpenSCAD: type: programming @@ -2963,7 +2963,7 @@ Oz: tm_scope: source.oz ace_mode: text codemirror_mode: oz - codemirror_mime_mode: text/x-oz + codemirror_mime_type: text/x-oz language_id: 270 PAWN: type: programming @@ -2979,7 +2979,7 @@ PHP: tm_scope: text.html.php ace_mode: php codemirror_mode: php - codemirror_mime_mode: application/x-httpd-php + codemirror_mime_type: application/x-httpd-php color: "#4F5D95" extensions: - ".php" @@ -3003,7 +3003,7 @@ PLSQL: type: programming ace_mode: sql codemirror_mode: sql - codemirror_mime_mode: text/x-plsql + codemirror_mime_type: text/x-plsql tm_scope: none color: "#dad8d8" extensions: @@ -3019,7 +3019,7 @@ PLpgSQL: type: programming ace_mode: pgsql codemirror_mode: sql - codemirror_mime_mode: text/x-sql + codemirror_mime_type: text/x-sql tm_scope: source.sql extensions: - ".sql" @@ -3097,14 +3097,14 @@ Pascal: - instantfpc ace_mode: pascal codemirror_mode: pascal - codemirror_mime_mode: text/x-pascal + codemirror_mime_type: text/x-pascal language_id: 281 Perl: type: programming tm_scope: source.perl ace_mode: perl codemirror_mode: perl - codemirror_mime_mode: text/x-perl + codemirror_mime_type: text/x-perl color: "#0298c3" extensions: - ".pl" @@ -3143,7 +3143,7 @@ Perl6: tm_scope: source.perl6fe ace_mode: perl codemirror_mode: perl - codemirror_mime_mode: text/x-perl + codemirror_mime_type: text/x-perl language_id: 283 Pickle: type: data @@ -3184,7 +3184,7 @@ Pod: type: prose ace_mode: perl codemirror_mode: perl - codemirror_mime_mode: text/x-perl + codemirror_mime_type: text/x-perl wrap: true extensions: - ".pod" @@ -3231,7 +3231,7 @@ PowerShell: type: programming ace_mode: powershell codemirror_mode: powershell - codemirror_mime_mode: application/x-powershell + codemirror_mime_type: application/x-powershell aliases: - posh extensions: @@ -3278,7 +3278,7 @@ Protocol Buffer: tm_scope: source.protobuf ace_mode: protobuf codemirror_mode: protobuf - codemirror_mime_mode: text/x-protobuf + codemirror_mime_type: text/x-protobuf language_id: 297 Public Key: type: data @@ -3297,7 +3297,7 @@ Puppet: - Modulefile ace_mode: text codemirror_mode: puppet - codemirror_mime_mode: text/x-puppet + codemirror_mime_type: text/x-puppet tm_scope: source.puppet language_id: 299 Pure Data: @@ -3325,13 +3325,13 @@ PureScript: tm_scope: source.purescript ace_mode: haskell codemirror_mode: haskell - codemirror_mime_mode: text/x-haskell + codemirror_mime_type: text/x-haskell language_id: 302 Python: type: programming ace_mode: python codemirror_mode: python - codemirror_mime_mode: text/x-python + codemirror_mime_type: text/x-python color: "#3572A5" extensions: - ".py" @@ -3407,13 +3407,13 @@ R: - Rscript ace_mode: r codemirror_mode: r - codemirror_mime_mode: text/x-rsrc + codemirror_mime_type: text/x-rsrc language_id: 307 RAML: type: markup ace_mode: yaml codemirror_mode: yaml - codemirror_mime_mode: text/x-yaml + codemirror_mime_type: text/x-yaml tm_scope: source.yaml color: "#77d9fb" extensions: @@ -3460,14 +3460,14 @@ RHTML: - html+ruby ace_mode: rhtml codemirror_mode: htmlembedded - codemirror_mime_mode: application/x-erb + codemirror_mime_type: application/x-erb language_id: 312 RMarkdown: type: prose wrap: true ace_mode: markdown codemirror_mode: gfm - codemirror_mime_mode: text/x-gfm + codemirror_mime_type: text/x-gfm extensions: - ".rmd" tm_scope: source.gfm @@ -3481,7 +3481,7 @@ RPM Spec: - specfile ace_mode: text codemirror_mode: rpm - codemirror_mime_mode: text/x-rpm-spec + codemirror_mime_type: text/x-rpm-spec language_id: 314 RUNOFF: type: markup @@ -3585,7 +3585,7 @@ Rouge: type: programming ace_mode: clojure codemirror_mode: clojure - codemirror_mime_mode: text/x-clojure + codemirror_mime_type: text/x-clojure color: "#cc0088" extensions: - ".rg" @@ -3595,7 +3595,7 @@ Ruby: type: programming ace_mode: ruby codemirror_mode: ruby - codemirror_mime_mode: text/x-ruby + codemirror_mime_type: text/x-ruby color: "#701516" aliases: - jruby @@ -3658,7 +3658,7 @@ Rust: - ".rs.in" ace_mode: rust codemirror_mode: rust - codemirror_mime_mode: text/x-rustsrc + codemirror_mime_type: text/x-rustsrc language_id: 327 SAS: type: programming @@ -3668,7 +3668,7 @@ SAS: tm_scope: source.sas ace_mode: text codemirror_mode: sas - codemirror_mime_mode: text/x-sas + codemirror_mime_type: text/x-sas language_id: 328 SCSS: type: markup @@ -3676,7 +3676,7 @@ SCSS: group: CSS ace_mode: scss codemirror_mode: css - codemirror_mime_mode: text/x-scss + codemirror_mime_type: text/x-scss extensions: - ".scss" color: "#CF649A" @@ -3705,7 +3705,7 @@ SPARQL: tm_scope: source.sparql ace_mode: text codemirror_mode: sparql - codemirror_mime_mode: application/sparql-query + codemirror_mime_type: application/sparql-query extensions: - ".sparql" - ".rq" @@ -3724,7 +3724,7 @@ SQL: tm_scope: source.sql ace_mode: sql codemirror_mode: sql - codemirror_mime_mode: text/x-sql + codemirror_mime_type: text/x-sql extensions: - ".sql" - ".cql" @@ -3739,7 +3739,7 @@ SQLPL: type: programming ace_mode: sql codemirror_mode: sql - codemirror_mime_mode: text/x-sql + codemirror_mime_type: text/x-sql tm_scope: source.sql extensions: - ".sql" @@ -3751,7 +3751,7 @@ SRecode Template: tm_scope: source.lisp ace_mode: lisp codemirror_mode: commonlisp - codemirror_mime_mode: text/x-common-lisp + codemirror_mime_type: text/x-common-lisp extensions: - ".srt" language_id: 335 @@ -3770,7 +3770,7 @@ SVG: tm_scope: text.xml ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml language_id: 337 Sage: type: programming @@ -3781,7 +3781,7 @@ Sage: tm_scope: source.python ace_mode: python codemirror_mode: python - codemirror_mime_mode: text/x-python + codemirror_mime_type: text/x-python language_id: 338 SaltStack: type: programming @@ -3794,7 +3794,7 @@ SaltStack: tm_scope: source.yaml.salt ace_mode: yaml codemirror_mode: yaml - codemirror_mime_mode: text/x-yaml + codemirror_mime_type: text/x-yaml language_id: 339 Sass: type: markup @@ -3804,14 +3804,14 @@ Sass: - ".sass" ace_mode: sass codemirror_mode: sass - codemirror_mime_mode: text/x-sass + codemirror_mime_type: text/x-sass color: "#CF649A" language_id: 340 Scala: type: programming ace_mode: scala codemirror_mode: clike - codemirror_mime_mode: text/x-scala + codemirror_mime_type: text/x-scala color: "#c22d40" extensions: - ".scala" @@ -3846,7 +3846,7 @@ Scheme: - r6rs ace_mode: scheme codemirror_mode: scheme - codemirror_mime_mode: text/x-scheme + codemirror_mime_type: text/x-scheme language_id: 343 Scilab: type: programming @@ -3899,7 +3899,7 @@ Shell: - zsh ace_mode: sh codemirror_mode: shell - codemirror_mime_mode: text/x-sh + codemirror_mime_type: text/x-sh language_id: 346 ShellSession: type: programming @@ -3911,7 +3911,7 @@ ShellSession: tm_scope: text.shell-session ace_mode: sh codemirror_mode: shell - codemirror_mime_mode: text/x-sh + codemirror_mime_type: text/x-sh language_id: 347 Shen: type: programming @@ -3938,7 +3938,7 @@ Slim: tm_scope: text.slim ace_mode: text codemirror_mode: slim - codemirror_mime_mode: text/x-slim + codemirror_mime_type: text/x-slim language_id: 350 Smali: type: programming @@ -3957,7 +3957,7 @@ Smalltalk: - squeak ace_mode: text codemirror_mode: smalltalk - codemirror_mime_mode: text/x-stsrc + codemirror_mime_type: text/x-stsrc language_id: 352 Smarty: type: programming @@ -3965,7 +3965,7 @@ Smarty: - ".tpl" ace_mode: smarty codemirror_mode: smarty - codemirror_mime_mode: text/x-smarty + codemirror_mime_type: text/x-smarty tm_scope: text.html.smarty language_id: 353 SourcePawn: @@ -3988,7 +3988,7 @@ Squirrel: tm_scope: source.c++ ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-c++src + codemirror_mime_type: text/x-c++src language_id: 355 Stan: type: programming @@ -4011,7 +4011,7 @@ Standard ML: tm_scope: source.ml ace_mode: text codemirror_mode: mllike - codemirror_mime_mode: text/x-ocaml + codemirror_mime_type: text/x-ocaml language_id: 357 Stata: type: programming @@ -4059,7 +4059,7 @@ Swift: - ".swift" ace_mode: text codemirror_mode: swift - codemirror_mime_mode: text/x-swift + codemirror_mime_type: text/x-swift language_id: 362 SystemVerilog: type: programming @@ -4070,7 +4070,7 @@ SystemVerilog: - ".vh" ace_mode: verilog codemirror_mode: verilog - codemirror_mime_mode: text/x-systemverilog + codemirror_mime_type: text/x-systemverilog language_id: 363 TLA: type: programming @@ -4086,7 +4086,7 @@ TOML: tm_scope: source.toml ace_mode: toml codemirror_mode: toml - codemirror_mime_mode: text/x-toml + codemirror_mime_type: text/x-toml language_id: 365 TXL: type: programming @@ -4107,7 +4107,7 @@ Tcl: - wish ace_mode: tcl codemirror_mode: tcl - codemirror_mime_mode: text/x-tcl + codemirror_mime_type: text/x-tcl language_id: 367 Tcsh: type: programming @@ -4118,14 +4118,14 @@ Tcsh: tm_scope: source.shell ace_mode: sh codemirror_mode: shell - codemirror_mime_mode: text/x-sh + codemirror_mime_type: text/x-sh language_id: 368 TeX: type: markup color: "#3D6117" ace_mode: tex codemirror_mode: stex - codemirror_mime_mode: text/x-stex + codemirror_mime_type: text/x-stex wrap: true aliases: - latex @@ -4160,7 +4160,7 @@ Terra: color: "#00004c" ace_mode: lua codemirror_mode: lua - codemirror_mime_mode: text/x-lua + codemirror_mime_type: text/x-lua interpreters: - lua language_id: 371 @@ -4194,7 +4194,7 @@ Textile: type: prose ace_mode: textile codemirror_mode: textile - codemirror_mime_mode: text/x-textile + codemirror_mime_type: text/x-textile wrap: true extensions: - ".textile" @@ -4223,7 +4223,7 @@ Turtle: tm_scope: source.turtle ace_mode: text codemirror_mode: turtle - codemirror_mime_mode: text/turtle + codemirror_mime_type: text/turtle language_id: 376 Twig: type: markup @@ -4233,7 +4233,7 @@ Twig: tm_scope: text.html.twig ace_mode: twig codemirror_mode: twig - codemirror_mime_mode: text/x-twig + codemirror_mime_type: text/x-twig language_id: 377 TypeScript: type: programming @@ -4246,14 +4246,14 @@ TypeScript: tm_scope: source.ts ace_mode: typescript codemirror_mode: javascript - codemirror_mime_mode: application/typescript + codemirror_mime_type: application/typescript language_id: 378 Unified Parallel C: type: programming group: C ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-csrc + codemirror_mime_type: text/x-csrc color: "#4e3617" extensions: - ".upc" @@ -4263,7 +4263,7 @@ Unity3D Asset: type: data ace_mode: yaml codemirror_mode: yaml - codemirror_mime_mode: text/x-yaml + codemirror_mime_type: text/x-yaml extensions: - ".anim" - ".asset" @@ -4279,7 +4279,7 @@ Uno: - ".uno" ace_mode: csharp codemirror_mode: clike - codemirror_mime_mode: text/x-csharp + codemirror_mime_type: text/x-csharp tm_scope: source.cs language_id: 381 UnrealScript: @@ -4290,7 +4290,7 @@ UnrealScript: tm_scope: source.java ace_mode: java codemirror_mode: clike - codemirror_mime_mode: text/x-java + codemirror_mime_type: text/x-java language_id: 382 UrWeb: type: programming @@ -4325,7 +4325,7 @@ VHDL: - ".vhw" ace_mode: vhdl codemirror_mode: vhdl - codemirror_mime_mode: text/x-vhdl + codemirror_mime_type: text/x-vhdl language_id: 385 Vala: type: programming @@ -4343,7 +4343,7 @@ Verilog: - ".veo" ace_mode: verilog codemirror_mode: verilog - codemirror_mime_mode: text/x-verilog + codemirror_mime_type: text/x-verilog language_id: 387 VimL: type: programming @@ -4382,7 +4382,7 @@ Visual Basic: - vbnet ace_mode: text codemirror_mode: vb - codemirror_mime_mode: text/x-vb + codemirror_mime_type: text/x-vb language_id: 389 Volt: type: programming @@ -4392,7 +4392,7 @@ Volt: tm_scope: source.d ace_mode: d codemirror_mode: d - codemirror_mime_mode: text/x-d + codemirror_mime_type: text/x-d language_id: 390 Vue: type: markup @@ -4431,7 +4431,7 @@ WebIDL: tm_scope: source.webidl ace_mode: text codemirror_mode: webidl - codemirror_mime_mode: text/x-webidl + codemirror_mime_type: text/x-webidl language_id: 395 World of Warcraft Addon Data: type: data @@ -4458,13 +4458,13 @@ XC: tm_scope: source.xc ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-csrc + codemirror_mime_type: text/x-csrc language_id: 398 XML: type: data ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml aliases: - rss - xsd @@ -4574,7 +4574,7 @@ XPages: tm_scope: none ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml language_id: 400 XProc: type: programming @@ -4584,7 +4584,7 @@ XProc: tm_scope: text.xml ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml language_id: 401 XQuery: type: programming @@ -4597,7 +4597,7 @@ XQuery: - ".xqy" ace_mode: xquery codemirror_mode: xquery - codemirror_mime_mode: application/xquery + codemirror_mime_type: application/xquery tm_scope: source.xq language_id: 402 XS: @@ -4607,7 +4607,7 @@ XS: tm_scope: source.c ace_mode: c_cpp codemirror_mode: clike - codemirror_mime_mode: text/x-csrc + codemirror_mime_type: text/x-csrc language_id: 403 XSLT: type: programming @@ -4619,7 +4619,7 @@ XSLT: tm_scope: text.xml.xsl ace_mode: xml codemirror_mode: xml - codemirror_mime_mode: text/xml + codemirror_mime_type: text/xml color: "#EB8CEB" language_id: 404 Xojo: @@ -4657,7 +4657,7 @@ YAML: - ".clang-format" ace_mode: yaml codemirror_mode: yaml - codemirror_mime_mode: text/x-yaml + codemirror_mime_type: text/x-yaml language_id: 407 YANG: type: data @@ -4715,7 +4715,7 @@ edn: type: data ace_mode: clojure codemirror_mode: clojure - codemirror_mime_mode: text/x-clojure + codemirror_mime_type: text/x-clojure extensions: - ".edn" tm_scope: source.clojure @@ -4764,13 +4764,13 @@ reStructuredText: - ".rst.txt" ace_mode: text codemirror_mode: rst - codemirror_mime_mode: text/x-rst + codemirror_mime_type: text/x-rst language_id: 419 wisp: type: programming ace_mode: clojure codemirror_mode: clojure - codemirror_mime_mode: text/x-clojure + codemirror_mime_type: text/x-clojure color: "#7582D1" extensions: - ".wisp" diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 3b03ca81..1b878847 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -126,7 +126,7 @@ class TestGrammars < Minitest::Test private def submodule_paths - @submodule_paths ||= `git config --list --file "#{File.join(ROOT, ".gitmodules")}"`.lines.grep(/\.path=/).map { |line| line.chomp.split("=", 2).last } + @submodule_paths ||= `git config --list --file "#{File.join(ROOT, ".gitmodules")}"`.lines.grep(/\.path=/).map { |line| line.chomp.split("=", 2).last }.reject { |path| path =~ /CodeMirror/ } end # Returns a hash of submodules in the form of submodule_path => license diff --git a/test/test_language.rb b/test/test_language.rb index 48391e59..1f6d19d2 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -358,11 +358,11 @@ class TestLanguage < Minitest::Test assert_equal 'clike', Language['C++'].codemirror_mode end - def test_codemirror_mime_mode - assert_equal 'text/x-ruby', Language['Ruby'].codemirror_mime_mode - assert_equal 'text/javascript', Language['JavaScript'].codemirror_mime_mode - assert_equal 'text/x-csrc', Language['C'].codemirror_mime_mode - assert_equal 'text/x-c++src', Language['C++'].codemirror_mime_mode + def test_codemirror_mime_type + assert_equal 'text/x-ruby', Language['Ruby'].codemirror_mime_type + assert_equal 'text/javascript', Language['JavaScript'].codemirror_mime_type + assert_equal 'text/x-csrc', Language['C'].codemirror_mime_type + assert_equal 'text/x-c++src', Language['C++'].codemirror_mime_type end def test_wrap @@ -454,9 +454,9 @@ class TestLanguage < Minitest::Test def test_codemirror_modes_present Language.all.each do |language| - if language.codemirror_mode || language.codemirror_mime_mode + if language.codemirror_mode || language.codemirror_mime_type assert language.codemirror_mode, "#{language.inspect} missing CodeMirror mode" - assert language.codemirror_mime_mode, "#{language.inspect} missing CodeMirror MIME mode" + assert language.codemirror_mime_type, "#{language.inspect} missing CodeMirror MIME mode" end end end @@ -472,17 +472,17 @@ class TestLanguage < Minitest::Test def test_codemirror_mode_and_mime_defined_by_meta_mapping meta = File.read(File.expand_path("../../vendor/CodeMirror/mode/meta.js", __FILE__)) Language.all.each do |language| - next unless language.codemirror_mode && language.codemirror_mime_mode - assert meta.match(/^.+#{Regexp.escape(language.codemirror_mime_mode)}.+#{Regexp.escape(language.codemirror_mode)}.+$/), "#{language.inspect}: #{language.codemirror_mime_mode} not defined under #{language.codemirror_mode}" + next unless language.codemirror_mode && language.codemirror_mime_type + assert meta.match(/^.+#{Regexp.escape(language.codemirror_mime_type)}.+#{Regexp.escape(language.codemirror_mode)}.+$/), "#{language.inspect}: #{language.codemirror_mime_type} not defined under #{language.codemirror_mode}" end end def test_codemirror_mime_declared_in_mode_file Language.all.each do |language| - next unless language.codemirror_mode && language.codemirror_mime_mode + next unless language.codemirror_mode && language.codemirror_mime_type filename = File.expand_path("../../vendor/CodeMirror/mode/#{language.codemirror_mode}/#{language.codemirror_mode}.js", __FILE__) assert File.exist?(filename), "#{filename} does not exist" - assert File.read(filename).match(language.codemirror_mime_mode), "#{language.inspect}: #{language.codemirror_mime_mode} not defined in #{filename}" + assert File.read(filename).match(language.codemirror_mime_type), "#{language.inspect}: #{language.codemirror_mime_type} not defined in #{filename}" end end From e424e8e88cf41424351be0377cee5b55b0e0152f Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 23 Sep 2016 16:41:16 -0700 Subject: [PATCH 069/114] Linguist 4.8.15 --- lib/linguist/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/version.rb b/lib/linguist/version.rb index 920b08ea..8218aafe 100644 --- a/lib/linguist/version.rb +++ b/lib/linguist/version.rb @@ -1,3 +1,3 @@ module Linguist - VERSION = "4.8.14" + VERSION = "4.8.15" end From 41593b3ea77466103648b630458cb33fc8f42b4b Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sun, 25 Sep 2016 16:41:49 +0200 Subject: [PATCH 070/114] Update season package in npm to fix parsing error Fixes the Travis build failures --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 827997e5..c2e22111 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "repository": "https://github.com/github/linguist", "dependencies": { - "season": "~>5.0" + "season": "~>5.4" }, "license": "MIT" } From f8ce42e169062e080a24ded5152a2e7d827519b6 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 26 Sep 2016 19:51:51 +0200 Subject: [PATCH 071/114] Recognize licenses in READMEs using Licensee Since v7.0.0 Licensee can detect license text in READMEs Using this, we might be able to rely solely on Licensee in the future --- test/test_grammars.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 1b878847..c4204327 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -141,7 +141,7 @@ class TestGrammars < Minitest::Test # Given the path to a submodule, return its SPDX-compliant license key def submodule_license(submodule) # Prefer Licensee to detect a submodule's license - project = Licensee::FSProject.new(submodule) + project = Licensee::FSProject.new(submodule, detect_readme: true) return project.license.key if project.license # We know a license file exists, but Licensee wasn't able to detect the license, From 524337d07b22a63ea2b5415b80ab617eacb7c9d5 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 26 Sep 2016 19:38:26 +0200 Subject: [PATCH 072/114] Use Licensee hashes to uniquely identify licenses Since v6.1.0, Licensee exposes the hash of the license We can use it to uniquely identify unrecognized licenses, Thus, tests will fail if the content of an unrecognized license changes Projects for which no license was found are kept in the whitelist --- test/test_grammars.rb | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index c4204327..5680e4fb 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -5,14 +5,16 @@ class TestGrammars < Minitest::Test # List of projects that are allowed without licenses PROJECT_WHITELIST = [ - "vendor/grammars/factor", - "vendor/grammars/go-tmbundle", - "vendor/grammars/jflex.tmbundle", "vendor/grammars/language-csharp", - "vendor/grammars/language-viml", "vendor/grammars/sublimeassembly" ].freeze + HASH_WHITELIST = [ + "ebae2d87e06d3acef075d049fcfc8958c0364863", # go-tmbundle + "ff21db2554d69d78b2220db5615b16bbba0788d3", # factor + "b9a7428fd036eed8503995e06e989180c276b17d" # jflex.tmbundle + ].freeze + # List of allowed SPDX license names LICENSE_WHITELIST = %w[ apache-2.0 @@ -90,7 +92,10 @@ class TestGrammars < Minitest::Test end def test_submodules_have_approved_licenses - unapproved = submodule_licenses.reject { |k,v| LICENSE_WHITELIST.include?(v) || PROJECT_WHITELIST.include?(k) }.map { |k,v| "#{k}: #{v}"} + unapproved = submodule_licenses.reject { |k,v| LICENSE_WHITELIST.include?(v) || + PROJECT_WHITELIST.include?(k) || + HASH_WHITELIST.include?(v) } + .map { |k,v| "#{k}: #{v}"} message = "The following submodules have unapproved licenses:\n* #{unapproved.join("\n* ")}\n" message << "The license must be added to the LICENSE_WHITELIST in /test/test_grammars.rb once approved." assert_equal [], unapproved, message @@ -139,6 +144,7 @@ class TestGrammars < Minitest::Test end # Given the path to a submodule, return its SPDX-compliant license key + # If the license is unrecognized, return its hash def submodule_license(submodule) # Prefer Licensee to detect a submodule's license project = Licensee::FSProject.new(submodule, detect_readme: true) @@ -155,7 +161,16 @@ class TestGrammars < Minitest::Test # Neither Licensee nor our own regex was able to detect the license, let's check the readme files = Dir[File.join(ROOT, submodule, "*")] if readme = files.find { |file| File.basename(file) =~ /\Areadme\b/i } - classify_license(readme) + license = classify_license(readme) + return license if license + end + + # We know a license exists, but no method was able to recognize it. + # We return the license hash in this case, to uniquely identify it. + if project.license_file + return project.license_file.hash + elsif project.readme + return project.readme.hash end end From ebe85788abf3fb769fc36ec38e34232aec362c26 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Mon, 26 Sep 2016 20:18:42 +0200 Subject: [PATCH 073/114] Rely solely on Licensee to recognize licenses Remove our own license classification code Add hashes for any project which does not have a standard license body Add projects for which a license was not found to the whitelist Requires Licensee v8.6.0 to correctly recognize TextMate bundles' .mdown README --- github-linguist.gemspec | 2 +- test/test_grammars.rb | 82 ++++++++++++++++++----------------------- 2 files changed, 37 insertions(+), 47 deletions(-) diff --git a/github-linguist.gemspec b/github-linguist.gemspec index 10a85f34..f9f6ccc6 100644 --- a/github-linguist.gemspec +++ b/github-linguist.gemspec @@ -26,6 +26,6 @@ Gem::Specification.new do |s| s.add_development_dependency 'yajl-ruby' s.add_development_dependency 'color-proximity', '~> 0.2.1' s.add_development_dependency 'licensed' - s.add_development_dependency 'licensee', '>= 8.3.0' + s.add_development_dependency 'licensee', '>= 8.6.0' end diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 5680e4fb..4b7d0116 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -5,14 +5,47 @@ class TestGrammars < Minitest::Test # List of projects that are allowed without licenses PROJECT_WHITELIST = [ - "vendor/grammars/language-csharp", - "vendor/grammars/sublimeassembly" + "vendor/grammars/sublimeassembly", + "vendor/grammars/Sublime-Lasso", + "vendor/grammars/ant.tmbundle", + "vendor/grammars/sublime-spintools", + "vendor/grammars/SublimeGDB", + "vendor/grammars/blitzmax" ].freeze HASH_WHITELIST = [ + "bc12b3b4917eab9aedb87ec1305c2a4376e34fd1", # TextMate bundles + "16c4748566b3dd996594af0410a1875b22d3a2b3", # language-yaml and atom-salt "ebae2d87e06d3acef075d049fcfc8958c0364863", # go-tmbundle "ff21db2554d69d78b2220db5615b16bbba0788d3", # factor - "b9a7428fd036eed8503995e06e989180c276b17d" # jflex.tmbundle + "b9a7428fd036eed8503995e06e989180c276b17d", # jflex.tmbundle + "da39a3ee5e6b4b0d3255bfef95601890afd80709", # SCSS.tmbundle + "5f772ff20ddf3dbac1ec9b6a98c5aa50ace555b2", # gradle.tmbundle + "b5432a1e1055de7eeede2dddf91e009480651fd6", # jasmin-sublime + "74143c4d2a5649eb179105afcb37f466558c22ce", # language-clojure + "760471435f5ab0b9dc99a628203cd8f9156d28ce", # language-coffee-script + "330e6d465e26bdd232aafcd3f5dba6a1d098a20e", # language-csharp + "70fb557a431891c2d634c33fa7367feab5066fd6", # language-javascript + "e0528c23cd967f999e058f1408ccb5b7237daaba", # language-python + "8653305b358375d0fced85dc24793b99919b11ef", # language-shellscript + "9f0c0b0926a18f5038e455e8df60221125fc3111", # elixir-tmbundle + "90af581219debd4e90ef041b46c294e8b4ae6d14", # mako-tmbundle + "b9b24778619dce325b651f0d77cbc72e7ae0b0a3", # Julia.tmbundle + "2d4f8807be850efd925751a8e1839cfc539985b0", # actionscript3-tmbundle + "e06722add999e7428048abcc067cd85f1f7ca71c", # r.tmbundle + "50b14a0e3f03d7ca754dac42ffb33302b5882b78", # smalltalk-tmbundle + "eafbc4a2f283752858e6908907f3c0c90188785b", # gap-tmbundle + "1faa3a44cac6070f22384332434af37dfaaf2f70", # Stylus + "c87e7e574fca543941650e5b0a144b44c02c55d8", # language-crystal + "c78ec142ac3126cf639cfd67bd646ed8226d8b74", # atom-language-purescript + "341d7f66806fc41d081133d6e51ade856352e056", # FreeMarker.tmbundle + "15a394f6bc43400946570b299aee8ae264a1e3ff", # language-renpy + "c9118c370411f2f049c746c0fd096554e877aea2", # perl6fe + "8ccf886749c32fb7e65d4d1316a7ed0479c93dc9", # language-less + "2f03492b52d7dd83b4e7472f01b87c6121e5b1a4", # monkey + "9d8b5626cfe00f3c8a076173913c3b0312b5b122", # ejs-tmbundle + "5977a55c75bb4612004451a56b0b4c22d9d3311d", # language-graphql + "bdab9fdc21e6790b479ccb5945b78bc0f6ce2493" # language-blade ].freeze # List of allowed SPDX license names @@ -150,21 +183,6 @@ class TestGrammars < Minitest::Test project = Licensee::FSProject.new(submodule, detect_readme: true) return project.license.key if project.license - # We know a license file exists, but Licensee wasn't able to detect the license, - # Let's try our own more permissive regex method - if project.license_file - path = File.expand_path project.license_file.path, submodule - license = classify_license(path) - return license if license - end - - # Neither Licensee nor our own regex was able to detect the license, let's check the readme - files = Dir[File.join(ROOT, submodule, "*")] - if readme = files.find { |file| File.basename(file) =~ /\Areadme\b/i } - license = classify_license(readme) - return license if license - end - # We know a license exists, but no method was able to recognize it. # We return the license hash in this case, to uniquely identify it. if project.license_file @@ -173,32 +191,4 @@ class TestGrammars < Minitest::Test return project.readme.hash end end - - def classify_license(path) - content = File.read(path) - return unless content =~ /\blicen[cs]e\b/i - if content.include?("Apache License") && content.include?("2.0") - "apache-2.0" - elsif content.include?("GNU") && content =~ /general/i && content =~ /public/i - if content =~ /version 2/i - "gpl-2.0" - elsif content =~ /version 3/i - "gpl-3.0" - end - elsif content.include?("GPL") && content.include?("http://www.gnu.org/licenses/gpl.html") - "gpl-3.0" - elsif content.include?("Creative Commons Attribution-Share Alike 3.0") - "cc-by-sa-3.0" - elsif content.include?("tidy-license.txt") || content.include?("If not otherwise specified (see below)") || content.include?("Permission to copy, use, modify, sell and distribute this") - "textmate" - elsif content.include?("Permission is hereby granted") || content =~ /\bMIT\b/ - "mit" - elsif content.include?("This package is provided as-is and is placed in the Public Domain") - "public" - elsif content.include?("http://www.wtfpl.net/txt/copying/") - "wtfpl" - elsif content.include?("zlib") && content.include?("license") && content.include?("2. Altered source versions must be plainly marked as such") - "zlib" - end - end end From 05b536fc617e954a587cb2a7b758108d6189faf0 Mon Sep 17 00:00:00 2001 From: alexruperez Date: Wed, 28 Sep 2016 11:24:17 +0200 Subject: [PATCH 074/114] Added BuddyBuildSDK.framework to lib/linguist/vendor.yml --- lib/linguist/vendor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/linguist/vendor.yml b/lib/linguist/vendor.yml index e500f85d..0e6daa27 100644 --- a/lib/linguist/vendor.yml +++ b/lib/linguist/vendor.yml @@ -229,6 +229,9 @@ # Fabric - Fabric.framework/ +# BuddyBuild +- BuddyBuildSDK.framework/ + # git config files - gitattributes$ - gitignore$ From e7e8a7d8358791115034179cede5447d2744f47e Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 24 Sep 2016 17:19:32 +0200 Subject: [PATCH 075/114] Tests for .m heuristic rules --- test/test_heuristics.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 62e5a050..5e677e27 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -145,6 +145,18 @@ class TestHeuristcs < Minitest::Test }) end + def test_m_by_heuristics + assert_heuristics({ + "Objective-C" => all_fixtures("Objective-C", "*.m"), + "Mercury" => all_fixtures("Mercury", "*.m"), + "MUF" => all_fixtures("MUF", "*.m"), + "M" => all_fixtures("M", "MDB.m"), + "Mathematica" => all_fixtures("Mathematica", "*.m") - all_fixtures("Mathematica", "Problem12.m"), + "Matlab" => all_fixtures("Matlab", "create_ieee_paper_plots.m"), + "Limbo" => all_fixtures("Limbo", "*.m") + }) + end + # Candidate languages = ["C++", "Objective-C"] def test_obj_c_by_heuristics # Only calling out '.h' filenames as these are the ones causing issues From cd9401c424eb79a38ad99cd22cc8a6be1c3152d7 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 24 Sep 2016 17:56:36 +0200 Subject: [PATCH 076/114] Enable testing absence of heuristic result --- test/test_heuristics.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index 5e677e27..fc694632 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -29,7 +29,11 @@ class TestHeuristcs < Minitest::Test hash.each do |language, blobs| Array(blobs).each do |blob| result = Heuristics.call(file_blob(blob), candidates) - assert_equal [Language[language]], result, "Failed for #{blob}" + if language.nil? + assert_equal [], result, "Failed for #{blob}" + else + assert_equal [Language[language]], result, "Failed for #{blob}" + end end end end From 3ae89b48ba94401305e5fdbf6c18ffc056cbd398 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 24 Sep 2016 17:57:31 +0200 Subject: [PATCH 077/114] Improve Mathematica's heuristic rule Use closing of Mathematica comment instead of opening Unit test to check that test file is not detected as Mathematica anymore --- lib/linguist/heuristics.rb | 2 +- samples/Objective-C/cocoa_monitor.m | 413 ++++++++++++++++++++++++++++ test/test_heuristics.rb | 5 +- 3 files changed, 417 insertions(+), 3 deletions(-) create mode 100644 samples/Objective-C/cocoa_monitor.m diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index 2c99b476..66ef2ecb 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -244,7 +244,7 @@ module Linguist Language["MUF"] elsif /^\s*;/.match(data) Language["M"] - elsif /^\s*\(\*/.match(data) + elsif /\*\)$/.match(data) Language["Mathematica"] elsif /^\s*%/.match(data) Language["Matlab"] diff --git a/samples/Objective-C/cocoa_monitor.m b/samples/Objective-C/cocoa_monitor.m new file mode 100644 index 00000000..9a384b69 --- /dev/null +++ b/samples/Objective-C/cocoa_monitor.m @@ -0,0 +1,413 @@ +//======================================================================== +// GLFW 3.3 OS X - www.glfw.org +//------------------------------------------------------------------------ +// Copyright (c) 2002-2006 Marcus Geelnard +// Copyright (c) 2006-2016 Camilla Berglund +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would +// be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, and must not +// be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source +// distribution. +// +//======================================================================== + +#include "internal.h" + +#include +#include + +#include +#include +#include +#include + + +// Get the name of the specified display +// +static char* getDisplayName(CGDirectDisplayID displayID) +{ + char* name; + CFDictionaryRef info, names; + CFStringRef value; + CFIndex size; + + // NOTE: This uses a deprecated function because Apple has + // (as of January 2015) not provided any alternative + info = IODisplayCreateInfoDictionary(CGDisplayIOServicePort(displayID), + kIODisplayOnlyPreferredName); + names = CFDictionaryGetValue(info, CFSTR(kDisplayProductName)); + + if (!names || !CFDictionaryGetValueIfPresent(names, CFSTR("en_US"), + (const void**) &value)) + { + // This may happen if a desktop Mac is running headless + _glfwInputError(GLFW_PLATFORM_ERROR, + "Cocoa: Failed to retrieve display name"); + + CFRelease(info); + return strdup("Unknown"); + } + + size = CFStringGetMaximumSizeForEncoding(CFStringGetLength(value), + kCFStringEncodingUTF8); + name = calloc(size + 1, 1); + CFStringGetCString(value, name, size, kCFStringEncodingUTF8); + + CFRelease(info); + + return name; +} + +// Check whether the display mode should be included in enumeration +// +static GLFWbool modeIsGood(CGDisplayModeRef mode) +{ + uint32_t flags = CGDisplayModeGetIOFlags(mode); + if (!(flags & kDisplayModeValidFlag) || !(flags & kDisplayModeSafeFlag)) + return GLFW_FALSE; + + if (flags & kDisplayModeInterlacedFlag) + return GLFW_FALSE; + + if (flags & kDisplayModeStretchedFlag) + return GLFW_FALSE; + + CFStringRef format = CGDisplayModeCopyPixelEncoding(mode); + if (CFStringCompare(format, CFSTR(IO16BitDirectPixels), 0) && + CFStringCompare(format, CFSTR(IO32BitDirectPixels), 0)) + { + CFRelease(format); + return GLFW_FALSE; + } + + CFRelease(format); + return GLFW_TRUE; +} + +// Convert Core Graphics display mode to GLFW video mode +// +static GLFWvidmode vidmodeFromCGDisplayMode(CGDisplayModeRef mode, + CVDisplayLinkRef link) +{ + GLFWvidmode result; + result.width = (int) CGDisplayModeGetWidth(mode); + result.height = (int) CGDisplayModeGetHeight(mode); + result.refreshRate = (int) CGDisplayModeGetRefreshRate(mode); + + if (result.refreshRate == 0) + { + const CVTime time = CVDisplayLinkGetNominalOutputVideoRefreshPeriod(link); + if (!(time.flags & kCVTimeIsIndefinite)) + result.refreshRate = (int) (time.timeScale / (double) time.timeValue); + } + + CFStringRef format = CGDisplayModeCopyPixelEncoding(mode); + + if (CFStringCompare(format, CFSTR(IO16BitDirectPixels), 0) == 0) + { + result.redBits = 5; + result.greenBits = 5; + result.blueBits = 5; + } + else + { + result.redBits = 8; + result.greenBits = 8; + result.blueBits = 8; + } + + CFRelease(format); + return result; +} + +// Starts reservation for display fading +// +static CGDisplayFadeReservationToken beginFadeReservation(void) +{ + CGDisplayFadeReservationToken token = kCGDisplayFadeReservationInvalidToken; + + if (CGAcquireDisplayFadeReservation(5, &token) == kCGErrorSuccess) + CGDisplayFade(token, 0.3, kCGDisplayBlendNormal, kCGDisplayBlendSolidColor, 0.0, 0.0, 0.0, TRUE); + + return token; +} + +// Ends reservation for display fading +// +static void endFadeReservation(CGDisplayFadeReservationToken token) +{ + if (token != kCGDisplayFadeReservationInvalidToken) + { + CGDisplayFade(token, 0.5, kCGDisplayBlendSolidColor, kCGDisplayBlendNormal, 0.0, 0.0, 0.0, FALSE); + CGReleaseDisplayFadeReservation(token); + } +} + + +////////////////////////////////////////////////////////////////////////// +////// GLFW internal API ////// +////////////////////////////////////////////////////////////////////////// + +// Change the current video mode +// +GLFWbool _glfwSetVideoModeNS(_GLFWmonitor* monitor, const GLFWvidmode* desired) +{ + CFArrayRef modes; + CFIndex count, i; + CVDisplayLinkRef link; + CGDisplayModeRef native = NULL; + GLFWvidmode current; + const GLFWvidmode* best; + + best = _glfwChooseVideoMode(monitor, desired); + _glfwPlatformGetVideoMode(monitor, ¤t); + if (_glfwCompareVideoModes(¤t, best) == 0) + return GLFW_TRUE; + + CVDisplayLinkCreateWithCGDisplay(monitor->ns.displayID, &link); + + modes = CGDisplayCopyAllDisplayModes(monitor->ns.displayID, NULL); + count = CFArrayGetCount(modes); + + for (i = 0; i < count; i++) + { + CGDisplayModeRef dm = (CGDisplayModeRef) CFArrayGetValueAtIndex(modes, i); + if (!modeIsGood(dm)) + continue; + + const GLFWvidmode mode = vidmodeFromCGDisplayMode(dm, link); + if (_glfwCompareVideoModes(best, &mode) == 0) + { + native = dm; + break; + } + } + + if (native) + { + if (monitor->ns.previousMode == NULL) + monitor->ns.previousMode = CGDisplayCopyDisplayMode(monitor->ns.displayID); + + CGDisplayFadeReservationToken token = beginFadeReservation(); + CGDisplaySetDisplayMode(monitor->ns.displayID, native, NULL); + endFadeReservation(token); + } + + CFRelease(modes); + CVDisplayLinkRelease(link); + + if (!native) + { + _glfwInputError(GLFW_PLATFORM_ERROR, + "Cocoa: Monitor mode list changed"); + return GLFW_FALSE; + } + + return GLFW_TRUE; +} + +// Restore the previously saved (original) video mode +// +void _glfwRestoreVideoModeNS(_GLFWmonitor* monitor) +{ + if (monitor->ns.previousMode) + { + CGDisplayFadeReservationToken token = beginFadeReservation(); + CGDisplaySetDisplayMode(monitor->ns.displayID, + monitor->ns.previousMode, NULL); + endFadeReservation(token); + + CGDisplayModeRelease(monitor->ns.previousMode); + monitor->ns.previousMode = NULL; + } +} + + +////////////////////////////////////////////////////////////////////////// +////// GLFW platform API ////// +////////////////////////////////////////////////////////////////////////// + +_GLFWmonitor** _glfwPlatformGetMonitors(int* count) +{ + uint32_t i, found = 0, displayCount; + _GLFWmonitor** monitors; + CGDirectDisplayID* displays; + + *count = 0; + + CGGetOnlineDisplayList(0, NULL, &displayCount); + displays = calloc(displayCount, sizeof(CGDirectDisplayID)); + monitors = calloc(displayCount, sizeof(_GLFWmonitor*)); + + CGGetOnlineDisplayList(displayCount, displays, &displayCount); + + for (i = 0; i < displayCount; i++) + { + _GLFWmonitor* monitor; + + if (CGDisplayIsAsleep(displays[i])) + continue; + + const CGSize size = CGDisplayScreenSize(displays[i]); + char* name = getDisplayName(displays[i]); + + monitor = _glfwAllocMonitor(name, size.width, size.height); + monitor->ns.displayID = displays[i]; + monitor->ns.unitNumber = CGDisplayUnitNumber(displays[i]); + + free(name); + + found++; + monitors[found - 1] = monitor; + } + + free(displays); + + *count = found; + return monitors; +} + +GLFWbool _glfwPlatformIsSameMonitor(_GLFWmonitor* first, _GLFWmonitor* second) +{ + // HACK: Compare unit numbers instead of display IDs to work around display + // replacement on machines with automatic graphics switching + return first->ns.unitNumber == second->ns.unitNumber; +} + +void _glfwPlatformGetMonitorPos(_GLFWmonitor* monitor, int* xpos, int* ypos) +{ + const CGRect bounds = CGDisplayBounds(monitor->ns.displayID); + + if (xpos) + *xpos = (int) bounds.origin.x; + if (ypos) + *ypos = (int) bounds.origin.y; +} + +GLFWvidmode* _glfwPlatformGetVideoModes(_GLFWmonitor* monitor, int* count) +{ + CFArrayRef modes; + CFIndex found, i, j; + GLFWvidmode* result; + CVDisplayLinkRef link; + + *count = 0; + + CVDisplayLinkCreateWithCGDisplay(monitor->ns.displayID, &link); + + modes = CGDisplayCopyAllDisplayModes(monitor->ns.displayID, NULL); + found = CFArrayGetCount(modes); + result = calloc(found, sizeof(GLFWvidmode)); + + for (i = 0; i < found; i++) + { + CGDisplayModeRef dm = (CGDisplayModeRef) CFArrayGetValueAtIndex(modes, i); + if (!modeIsGood(dm)) + continue; + + const GLFWvidmode mode = vidmodeFromCGDisplayMode(dm, link); + + for (j = 0; j < *count; j++) + { + if (_glfwCompareVideoModes(result + j, &mode) == 0) + break; + } + + // Skip duplicate modes + if (i < *count) + continue; + + (*count)++; + result[*count - 1] = mode; + } + + CFRelease(modes); + CVDisplayLinkRelease(link); + return result; +} + +void _glfwPlatformGetVideoMode(_GLFWmonitor* monitor, GLFWvidmode *mode) +{ + CGDisplayModeRef displayMode; + CVDisplayLinkRef link; + + CVDisplayLinkCreateWithCGDisplay(monitor->ns.displayID, &link); + + displayMode = CGDisplayCopyDisplayMode(monitor->ns.displayID); + *mode = vidmodeFromCGDisplayMode(displayMode, link); + CGDisplayModeRelease(displayMode); + + CVDisplayLinkRelease(link); +} + +void _glfwPlatformGetGammaRamp(_GLFWmonitor* monitor, GLFWgammaramp* ramp) +{ + uint32_t i, size = CGDisplayGammaTableCapacity(monitor->ns.displayID); + CGGammaValue* values = calloc(size * 3, sizeof(CGGammaValue)); + + CGGetDisplayTransferByTable(monitor->ns.displayID, + size, + values, + values + size, + values + size * 2, + &size); + + _glfwAllocGammaArrays(ramp, size); + + for (i = 0; i < size; i++) + { + ramp->red[i] = (unsigned short) (values[i] * 65535); + ramp->green[i] = (unsigned short) (values[i + size] * 65535); + ramp->blue[i] = (unsigned short) (values[i + size * 2] * 65535); + } + + free(values); +} + +void _glfwPlatformSetGammaRamp(_GLFWmonitor* monitor, const GLFWgammaramp* ramp) +{ + int i; + CGGammaValue* values = calloc(ramp->size * 3, sizeof(CGGammaValue)); + + for (i = 0; i < ramp->size; i++) + { + values[i] = ramp->red[i] / 65535.f; + values[i + ramp->size] = ramp->green[i] / 65535.f; + values[i + ramp->size * 2] = ramp->blue[i] / 65535.f; + } + + CGSetDisplayTransferByTable(monitor->ns.displayID, + ramp->size, + values, + values + ramp->size, + values + ramp->size * 2); + + free(values); +} + + +////////////////////////////////////////////////////////////////////////// +////// GLFW native API ////// +////////////////////////////////////////////////////////////////////////// + +GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* handle) +{ + _GLFWmonitor* monitor = (_GLFWmonitor*) handle; + _GLFW_REQUIRE_INIT_OR_RETURN(kCGNullDirectDisplay); + return monitor->ns.displayID; +} + diff --git a/test/test_heuristics.rb b/test/test_heuristics.rb index fc694632..8575de3a 100644 --- a/test/test_heuristics.rb +++ b/test/test_heuristics.rb @@ -151,13 +151,14 @@ class TestHeuristcs < Minitest::Test def test_m_by_heuristics assert_heuristics({ - "Objective-C" => all_fixtures("Objective-C", "*.m"), + "Objective-C" => all_fixtures("Objective-C", "*.m") - all_fixtures("Objective-C", "cocoa_monitor.m"), "Mercury" => all_fixtures("Mercury", "*.m"), "MUF" => all_fixtures("MUF", "*.m"), "M" => all_fixtures("M", "MDB.m"), "Mathematica" => all_fixtures("Mathematica", "*.m") - all_fixtures("Mathematica", "Problem12.m"), "Matlab" => all_fixtures("Matlab", "create_ieee_paper_plots.m"), - "Limbo" => all_fixtures("Limbo", "*.m") + "Limbo" => all_fixtures("Limbo", "*.m"), + nil => ["Objective-C/cocoa_monitor.m"] }) end From 82167063da5c26e61d34647731bddfa71e845a8c Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 27 Sep 2016 22:58:44 +0200 Subject: [PATCH 078/114] Tests to ensure the whitelists are up-to-date --- test/test_grammars.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 4b7d0116..15701423 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -134,6 +134,21 @@ class TestGrammars < Minitest::Test assert_equal [], unapproved, message end + def test_whitelisted_submodules_dont_have_licenses + licensed = submodule_licenses.reject { |k,v| v.nil? }.select { |k,v| PROJECT_WHITELIST.include?(k) } + message = "The following whitelisted submodules have a license:\n* #{licensed.keys.join("\n* ")}\n" + message << "Please remove them from the project whitelist." + assert_equal Hash.new, licensed, message + end + + def test_whitelisted_hashes_dont_have_licenses + used_hashes = submodule_licenses.values.reject { |v| v.nil? || LICENSE_WHITELIST.include?(v) } + unused_hashes = HASH_WHITELIST - used_hashes + message = "The following whitelisted license hashes are unused:\n* #{unused_hashes.join("\n* ")}\n" + message << "Please remove them from the hash whitelist." + assert_equal Array.new, unused_hashes, message + end + def test_submodules_whitelist_has_no_extra_entries skip("Need to work out how to handle dual-licensed entities") extra_whitelist_entries = PROJECT_WHITELIST - submodule_licenses.select { |k,v| v.nil? }.keys From eeec48198ad01ee7d9f4d13a9f1ea4cc7670f667 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Tue, 27 Sep 2016 23:09:30 +0200 Subject: [PATCH 079/114] Update submodules --- test/test_grammars.rb | 3 --- vendor/CodeMirror | 2 +- vendor/grammars/Lean.tmbundle | 2 +- vendor/grammars/Sublime-SQF-Language | 2 +- vendor/grammars/SublimeGDB | 2 +- vendor/grammars/elixir-tmbundle | 2 +- vendor/grammars/language-csharp | 2 +- vendor/grammars/language-graphql | 2 +- vendor/grammars/language-javascript | 2 +- vendor/grammars/language-shellscript | 2 +- vendor/grammars/language-yaml | 2 +- vendor/grammars/objective-c.tmbundle | 2 +- vendor/grammars/sublimeassembly | 2 +- 13 files changed, 12 insertions(+), 15 deletions(-) diff --git a/test/test_grammars.rb b/test/test_grammars.rb index 15701423..5548c9e5 100644 --- a/test/test_grammars.rb +++ b/test/test_grammars.rb @@ -5,11 +5,9 @@ class TestGrammars < Minitest::Test # List of projects that are allowed without licenses PROJECT_WHITELIST = [ - "vendor/grammars/sublimeassembly", "vendor/grammars/Sublime-Lasso", "vendor/grammars/ant.tmbundle", "vendor/grammars/sublime-spintools", - "vendor/grammars/SublimeGDB", "vendor/grammars/blitzmax" ].freeze @@ -44,7 +42,6 @@ class TestGrammars < Minitest::Test "8ccf886749c32fb7e65d4d1316a7ed0479c93dc9", # language-less "2f03492b52d7dd83b4e7472f01b87c6121e5b1a4", # monkey "9d8b5626cfe00f3c8a076173913c3b0312b5b122", # ejs-tmbundle - "5977a55c75bb4612004451a56b0b4c22d9d3311d", # language-graphql "bdab9fdc21e6790b479ccb5945b78bc0f6ce2493" # language-blade ].freeze diff --git a/vendor/CodeMirror b/vendor/CodeMirror index 562e8eff..39ffcd87 160000 --- a/vendor/CodeMirror +++ b/vendor/CodeMirror @@ -1 +1 @@ -Subproject commit 562e8eff5b0916d3b63fc59eda9540f8f455c6ed +Subproject commit 39ffcd8701c35363ab754b82c3c171913ecf478e diff --git a/vendor/grammars/Lean.tmbundle b/vendor/grammars/Lean.tmbundle index a1a3818e..fa8fcd28 160000 --- a/vendor/grammars/Lean.tmbundle +++ b/vendor/grammars/Lean.tmbundle @@ -1 +1 @@ -Subproject commit a1a3818ecfdd1365ec01ac3894106b5a70b455ac +Subproject commit fa8fcd2856945972a64dcba6f288cfb632a424c8 diff --git a/vendor/grammars/Sublime-SQF-Language b/vendor/grammars/Sublime-SQF-Language index 984606e1..0e72aacb 160000 --- a/vendor/grammars/Sublime-SQF-Language +++ b/vendor/grammars/Sublime-SQF-Language @@ -1 +1 @@ -Subproject commit 984606e146b4ef96753db7f3a16adeee2b152e24 +Subproject commit 0e72aacb4ae6174509a47f3d20913254f3620947 diff --git a/vendor/grammars/SublimeGDB b/vendor/grammars/SublimeGDB index d9a512da..c39ee600 160000 --- a/vendor/grammars/SublimeGDB +++ b/vendor/grammars/SublimeGDB @@ -1 +1 @@ -Subproject commit d9a512da6eb23b8193a8696a6fc1afd77f310d6e +Subproject commit c39ee600ba734ba8724b70e120ddb8b0ac600587 diff --git a/vendor/grammars/elixir-tmbundle b/vendor/grammars/elixir-tmbundle index d632e68d..fb4a0114 160000 --- a/vendor/grammars/elixir-tmbundle +++ b/vendor/grammars/elixir-tmbundle @@ -1 +1 @@ -Subproject commit d632e68d09f179cb9fefdb5cfb16db44f39b216a +Subproject commit fb4a0114268b5d816861d3b4048b166cf55160b1 diff --git a/vendor/grammars/language-csharp b/vendor/grammars/language-csharp index db446854..2af2edde 160000 --- a/vendor/grammars/language-csharp +++ b/vendor/grammars/language-csharp @@ -1 +1 @@ -Subproject commit db4468545a8a1a5e76518e0ae2f6697dc21bf686 +Subproject commit 2af2edde5518bc01ff384452d6b77b46b73e2652 diff --git a/vendor/grammars/language-graphql b/vendor/grammars/language-graphql index 4be0d1ae..40d3aef4 160000 --- a/vendor/grammars/language-graphql +++ b/vendor/grammars/language-graphql @@ -1 +1 @@ -Subproject commit 4be0d1ae7b847182d4a743f43f44416d7f7d6423 +Subproject commit 40d3aef44756438290037c25f3427d18552df7b8 diff --git a/vendor/grammars/language-javascript b/vendor/grammars/language-javascript index 101a00ad..537f3a5d 160000 --- a/vendor/grammars/language-javascript +++ b/vendor/grammars/language-javascript @@ -1 +1 @@ -Subproject commit 101a00adb2925e7e397bd6374b4aa04e4d17479d +Subproject commit 537f3a5d9574ff385fe217006ba0df75eb8eeea3 diff --git a/vendor/grammars/language-shellscript b/vendor/grammars/language-shellscript index 6d66ca58..8d75aeaf 160000 --- a/vendor/grammars/language-shellscript +++ b/vendor/grammars/language-shellscript @@ -1 +1 @@ -Subproject commit 6d66ca58c030a9509b9e01ce57456511c529eb6a +Subproject commit 8d75aeaf52881d7712487005d31749fe41e458a6 diff --git a/vendor/grammars/language-yaml b/vendor/grammars/language-yaml index 784cecc6..29d4b546 160000 --- a/vendor/grammars/language-yaml +++ b/vendor/grammars/language-yaml @@ -1 +1 @@ -Subproject commit 784cecc64ffdb891f6a7fbba62e476b0c833e66f +Subproject commit 29d4b546f265c71cdd35abcb5b382f07c1760239 diff --git a/vendor/grammars/objective-c.tmbundle b/vendor/grammars/objective-c.tmbundle index d80c2bbd..2fc124a6 160000 --- a/vendor/grammars/objective-c.tmbundle +++ b/vendor/grammars/objective-c.tmbundle @@ -1 +1 @@ -Subproject commit d80c2bbdef8433b3d2cf0af660ea460d97009735 +Subproject commit 2fc124a68a66018bedcf75ed8fd74d92acdb483f diff --git a/vendor/grammars/sublimeassembly b/vendor/grammars/sublimeassembly index edb58c82..2599ced0 160000 --- a/vendor/grammars/sublimeassembly +++ b/vendor/grammars/sublimeassembly @@ -1 +1 @@ -Subproject commit edb58c8246fc92ab4003bb039b5e0d09c706574f +Subproject commit 2599ced076f6147d6456a60de9ff83f2507c9e6e From c863435c84e53c8edfd02e5341950cf01a63e47c Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Mon, 3 Oct 2016 19:22:34 +0200 Subject: [PATCH 080/114] Add ' all_fixtures("Markdown", "*.md"), + "GCC machine description" => all_fixtures("GCC machine description", "*.md") + }) + end + # Candidate languages = ["C++", "Objective-C"] def test_obj_c_by_heuristics # Only calling out '.h' filenames as these are the ones causing issues From fe709659061a70e0fdaf09f89601fa35e6c8f985 Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Mon, 3 Oct 2016 21:11:28 -0400 Subject: [PATCH 081/114] Added entry for TI-83+/84 programs and apps --- lib/linguist/languages.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 269525ce..29f67e5d 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4207,6 +4207,14 @@ Thrift: - ".thrift" ace_mode: text language_id: 374 +TI PRGM: + type: programming + extensions: + - ".8xp" + - ".8xk" + - ".8xp.txt" + - ".8xk.txt" + color: "#A0AA87" Turing: type: programming color: "#cf142b" From a3628f86da9ea02bf281836d5543d5c0c5713117 Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Mon, 3 Oct 2016 21:12:30 -0400 Subject: [PATCH 082/114] Added example files for TI-83+/84 programs --- samples/TI PRGM/srcalpha.8xp | Bin 0 -> 1175 bytes samples/TI PRGM/srcalpha.8xp.txt | 63 ++++ samples/TI PRGM/srcfunc.8xp | Bin 0 -> 1990 bytes samples/TI PRGM/srcfunc.8xp.txt | 194 +++++++++++ samples/TI PRGM/srcgui.8xp | Bin 0 -> 4372 bytes samples/TI PRGM/srcgui.8xp.txt | 563 +++++++++++++++++++++++++++++++ samples/TI PRGM/srcsort.8xp | Bin 0 -> 1569 bytes samples/TI PRGM/srcsort.8xp.txt | 138 ++++++++ 8 files changed, 958 insertions(+) create mode 100644 samples/TI PRGM/srcalpha.8xp create mode 100644 samples/TI PRGM/srcalpha.8xp.txt create mode 100644 samples/TI PRGM/srcfunc.8xp create mode 100644 samples/TI PRGM/srcfunc.8xp.txt create mode 100644 samples/TI PRGM/srcgui.8xp create mode 100644 samples/TI PRGM/srcgui.8xp.txt create mode 100644 samples/TI PRGM/srcsort.8xp create mode 100644 samples/TI PRGM/srcsort.8xp.txt diff --git a/samples/TI PRGM/srcalpha.8xp b/samples/TI PRGM/srcalpha.8xp new file mode 100644 index 0000000000000000000000000000000000000000..2d8a1f61c994bd2e0f8ffbda1173e53d3600f6e8 GIT binary patch literal 1175 zcmZ`&&rcLF6kd{b5rfI@)ze;QS4e-%OlS7ew4GLoEGV%qN>+Q?S6veo9R56yIa zdt;EP_0?>nNt-jx&B5#-dz)=#gSFXr*;c=LztXMVNtcwEfBINdVDY5d5%$=g*#o<$ zQf{B|^WD0S8{AHdq}$*Z{4(u{r5rTZ zt1l~<*EAXr7huN0gx3tPbFMDJ4yM3nZj2=g5&!?%0lW=ga86A=;nezfN*S2LE-4H0#i(l36yv0 zcE91JKsmJ|JMy}4)Ktd75G8VDhIyQpH*!?rBe~=r5(sB|$@i5Q+#Irvk-6MET z?Js)*Y2&bsL&!TXD%`q=5Y;lGkUAyOxLotutu?HRxRFIXqIn$3grI8WgP<+T>d+eq zM+l1`qM9jcO!0v4FeCzmh@Tf+`3%cM7^OmE0%4*=V%G>|b&+<<>d<12anqCzr3{iF z3X?#xAd#*Lw^&)-{(zntLR%b{4}pfgWv_{u3?vTVC>q2tZsSezt5o;+3%DG!yr6RD z(ehkAr;G4kUb=7x&L8D%J!*U4525FvZfE=x|IF=cz8UasK67rStr1 +"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 \ No newline at end of file diff --git a/samples/TI PRGM/srcfunc.8xp b/samples/TI PRGM/srcfunc.8xp new file mode 100644 index 0000000000000000000000000000000000000000..507b28f90290f482fcf8eac2c8161f3cda4ec0a3 GIT binary patch literal 1990 zcmZ`)&u<$=6keo2eh4J*m6NZ#qeeTkKm0?e8?U>*w@vh%D@4cD#&G(*NclAoy zZ@OIz3zGZzm z`})dq(tLj@u`C#0%vR~U6RSP-t9qik$%;IU(|4u%MBWMIUHL$&H&em5&v=QIJSHm4 zjn!lIRPCxh!XDwTr-o|i+T_U@51A<0atm+2H0hhD0pfa>9cSH{_#p13e6ceV%VW6} znxL;oV4c87=uBfU(O~7jU`k*qngBnRe{s)42}gyvEj;_3LcQ&WcqMIK#w%^pIsa@d zQRuWHpQ!^dGEn=@71dWislmAtzo!z*?E1W}ps-`t3Oj|0ZBx2cH~Y#_+m0(wI7jFfeH^@tTl_)&rjP%# zqkcpMzvtqC?gddQJW~CHTeVt+a<3qkh5bIYyWnO?gOU_{5mf|C&R!^3Y;D zvWdi3&?eU>@Mh+++Pr3rn9E|a!6h9{AkBDYX=3wbf#uT0%RWW>7q17jj^-Mte|61b zp=JlW`T=uk($c`%g$kceuQ7l~O?4ABl0-&jT(j~r$n*bYVA+&$;c{Nah3k14XX{7M zA#rzWPVbFrO13aIL}zT@*pQa717nkbFvBsUUP@fmYkIJ$n-49rES42)$mm4=K^KGJ z=r)#@uP&dXhDI|+5@}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 \ No newline at end of file diff --git a/samples/TI PRGM/srcgui.8xp b/samples/TI PRGM/srcgui.8xp new file mode 100644 index 0000000000000000000000000000000000000000..98d0c401fc3026241eb63d005eeb2f3c2f89d897 GIT binary patch literal 4372 zcmcIo&2JM&6nC0!h*2u-a_j-+!oeOT+An|6s)HTdNeTs&btKzTqS9apsao579C~ak z{sPXWy;VX=MGG{jlR`x(fgG$Tn50q3*^!H}gYp>(bO0)s8JMYcB@ArGN#N(ye zv{Q_~dpI(6xpwYq?fm#BUyOV8YnPX5Q}y$;%j3@Y#Q2q^$)(z7wX3zI<;l-$SO3)C ziEQa_dvjCM^Rp5BZ0S$+<9Lr{#k%-StclxG9v7d^&7VFyH~o=;*Q!^_mJ0^o&7Yd} zO8h#%ewd4~yv0mrfAkZuqB}gLPilBB0Tq)#gaHG#f$pJD0GuJqU9Vj=@y86qj;+Osez7jw&KWdG1|>wzXDuD`D_GRd8*-v&unok(?d*STRZPic>JH zykk1WTnZWNVUb=skR};kp=8loU)3{)@jf02*D#QZNH-N4!-`6)rRSQK^L5IAitvtx z)!BpE&z7Lu|b!cmw=b9-k z2fdwaBOu*E2$?(FHI^)cXM;;GbSQ{|az`E-)PJEvT}=~Iyo3Yrl?)FS&*AhpvP!Wf zY11AwiuA3sc%vQ`2Wmb5rYK9YLMVWGu0H*`CWzwKh1TGT2SHhma-`z0ieK7`7y#7qTQl!qppulp42iI!}$@ zuSOfAO0}Ty;)`F##J90HTh!Iy;CZdg3tEL2wW`0*=E6h&FCH;4Q)W;Rql-rxW^~0$ zr+}Qau&^*Q5I}4q*wGc+w788m3W+F=qBxS`(;y>}=B^~YZfqh|ZbqhxYRXN^E&`+_ zGn&U+RsNmF5=kTvsqvag&>+7OP?5oaS`MhFDgs{=L6T)$!krs7y~o9dxG%QE-475H z7~Zs_hu;EI&F49q!!ccKV$Wl-786?@p0_co9~+p>tuk%2O%|WWxF+%s;)%E$qiBP@ z-QkL5pCS#VBPn%c4RY`F9{_JAOvkY*$#PtEY#kSbpTsXAJ;XZ|ro-WhRFb(anMiOh zCUG5b6U<8EFU+3-tbd(KijJduaQBjTpCNLCyujUu#t*I4;0owNU7S}#3DRtn@?@gS zw^6WVs8kclCgotKsCZ0t0I@6mY{#Y8n`jPVS3_)xnlK;p^8{eCf2iexx#iFHV10rA z;qYsar6w2!0b(pA#zBaCXJalvSYJ%A?uwCE3o)wudxO`xGwi8k?D}Da#&SK6@n5MI z@ViRcm=!)c)l5a3Nmr9Ee3Y`F*76Mjl8i>*4!Kr4 z+PtC_AiSj)>s83C@+5>s`Fkdw3y~;9Bzyv%L}>G>R-_YUE|y^tg*-r~7krm$!$-9> z6#u%ogEmH402E$%;d;T%7Uh!FM!klWh;ng(Uvc>bx+F^hVoNrA00JaJ99ulXybdf# z1j+pcm4&%ESdW88fv25=)bHZxLPTzx<)YNX+h?ORP+qcBMSE1ZWS_E5%c28R1xqLzPj zxB`wY>WxGcy^WVBdYIP9s2pghcN^bm2i$yssc<+heiYAQ*I5joW8z5+lgwc;yjXCZ zCXkhp6Ue`#bw1&I@Rz|NKR06vwSniD8E3?UU;-St<({~QO{ngQoD^vmKZ}TO;Lj!{ z1;yMeW*|Edp$0@k4S`MA@CYMjlgF32DBX&vOV_sg z;325*18W=Oj_!t(-@(%<*K7hFe4r-G3J}`Gc>9O5_|)t@t8kfaQdFq*GGaod3SgBl zC|1HlaS3({?^cAmrA$BtoT}g%1qx!71Zw#JEtdVQ@*+o{ggzL^|C6A*CPFiE@o&!P Bc|rgH literal 0 HcmV?d00001 diff --git a/samples/TI PRGM/srcgui.8xp.txt b/samples/TI PRGM/srcgui.8xp.txt new file mode 100644 index 00000000..aba98bf3 --- /dev/null +++ b/samples/TI PRGM/srcgui.8xp.txt @@ -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 \ No newline at end of file diff --git a/samples/TI PRGM/srcsort.8xp b/samples/TI PRGM/srcsort.8xp new file mode 100644 index 0000000000000000000000000000000000000000..4998713bc157cb378f95a503a6f58ef68fd6313a GIT binary patch literal 1569 zcmds1O>f#j5H$!S7Nrut_Qa)!VkNR6e6&FG&$s0S+aL$$8X-uzL`p8_@Y(oRUQ@3}|5Bg$o(jO`cHmm$oT0ge@AO27O zyZ=oL`1;MsYpc(%M~YV0HC^R}_LEjkXT_Yf_*JP?kQSTN)o0P7p{izR^P24JxCJxp zCAZFCh9|7kYD-mBjy3HY%xe-*Agyx(u69|GuXMh|^Gn*Ap+#N@OWvNeS*|crTxoj- zgU=q!mCl2EQ@S2yHYp|}rvhifz=*5oq>bz&Dr{C5(FsGk(w?}}IIEfSDoUk8cX-@mm~QYl{9IQIm#IB62e zmc@P5vIY3JZ0=5DSK9wYFyWn&xCMzD&DHdzAbDq9d`YuXTx>cL4IP;$Bv~n9!SDWq zu%rKynvX%z5Q#%T+=U)8y5t5CTk;iOlkj(w2yAsCEH;w}-$tZAb32C$lGfq$;leA3 zX!H[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 \ No newline at end of file From 4e4d851f71e1e1595b7caa933a9ea600fdc15120 Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Mon, 3 Oct 2016 21:15:36 -0400 Subject: [PATCH 083/114] Alphabetized "TI PRGM" --- lib/linguist/languages.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 29f67e5d..e787896b 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4072,6 +4072,14 @@ SystemVerilog: codemirror_mode: verilog codemirror_mime_type: text/x-systemverilog language_id: 363 +TI PRGM: + type: programming + color: "#A0AA87" + extensions: + - ".8xp" + - ".8xk" + - ".8xp.txt" + - ".8xk.txt" TLA: type: programming extensions: @@ -4207,14 +4215,6 @@ Thrift: - ".thrift" ace_mode: text language_id: 374 -TI PRGM: - type: programming - extensions: - - ".8xp" - - ".8xk" - - ".8xp.txt" - - ".8xk.txt" - color: "#A0AA87" Turing: type: programming color: "#cf142b" From e32a4f13efcc28cbaa6751fc37215d5287d4a082 Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Mon, 3 Oct 2016 21:37:56 -0400 Subject: [PATCH 084/114] Updated languages.yml --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e787896b..a12e5cfd 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4074,6 +4074,7 @@ SystemVerilog: language_id: 363 TI PRGM: type: programming + ace_mode: text color: "#A0AA87" extensions: - ".8xp" From 6589bd9dc720bf1efadb9884ba98b61b8ae708a3 Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Mon, 3 Oct 2016 21:47:52 -0400 Subject: [PATCH 085/114] Added tm_scope to TI PRGM --- lib/linguist/languages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index a12e5cfd..23680969 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4081,6 +4081,7 @@ TI PRGM: - ".8xk" - ".8xp.txt" - ".8xk.txt" + tm_scope: none TLA: type: programming extensions: From 676861fff38054a17409fdef84fccf5dcb2a4b74 Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Mon, 3 Oct 2016 21:59:46 -0400 Subject: [PATCH 086/114] Removed binary files from the TI PRGM sample --- samples/TI PRGM/srcalpha.8xp | Bin 1175 -> 0 bytes samples/TI PRGM/srcfunc.8xp | Bin 1990 -> 0 bytes samples/TI PRGM/srcgui.8xp | Bin 4372 -> 0 bytes samples/TI PRGM/srcsort.8xp | Bin 1569 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 samples/TI PRGM/srcalpha.8xp delete mode 100644 samples/TI PRGM/srcfunc.8xp delete mode 100644 samples/TI PRGM/srcgui.8xp delete mode 100644 samples/TI PRGM/srcsort.8xp diff --git a/samples/TI PRGM/srcalpha.8xp b/samples/TI PRGM/srcalpha.8xp deleted file mode 100644 index 2d8a1f61c994bd2e0f8ffbda1173e53d3600f6e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1175 zcmZ`&&rcLF6kd{b5rfI@)ze;QS4e-%OlS7ew4GLoEGV%qN>+Q?S6veo9R56yIa zdt;EP_0?>nNt-jx&B5#-dz)=#gSFXr*;c=LztXMVNtcwEfBINdVDY5d5%$=g*#o<$ zQf{B|^WD0S8{AHdq}$*Z{4(u{r5rTZ zt1l~<*EAXr7huN0gx3tPbFMDJ4yM3nZj2=g5&!?%0lW=ga86A=;nezfN*S2LE-4H0#i(l36yv0 zcE91JKsmJ|JMy}4)Ktd75G8VDhIyQpH*!?rBe~=r5(sB|$@i5Q+#Irvk-6MET z?Js)*Y2&bsL&!TXD%`q=5Y;lGkUAyOxLotutu?HRxRFIXqIn$3grI8WgP<+T>d+eq zM+l1`qM9jcO!0v4FeCzmh@Tf+`3%cM7^OmE0%4*=V%G>|b&+<<>d<12anqCzr3{iF z3X?#xAd#*Lw^&)-{(zntLR%b{4}pfgWv_{u3?vTVC>q2tZsSezt5o;+3%DG!yr6RD z(ehkAr;G4kUb=7x&L8D%J!*U4525FvZfE=x|IF=cz8UasK67r8?U>*w@vh%D@4cD#&G(*NclAoy zZ@OIz3zGZzm z`})dq(tLj@u`C#0%vR~U6RSP-t9qik$%;IU(|4u%MBWMIUHL$&H&em5&v=QIJSHm4 zjn!lIRPCxh!XDwTr-o|i+T_U@51A<0atm+2H0hhD0pfa>9cSH{_#p13e6ceV%VW6} znxL;oV4c87=uBfU(O~7jU`k*qngBnRe{s)42}gyvEj;_3LcQ&WcqMIK#w%^pIsa@d zQRuWHpQ!^dGEn=@71dWislmAtzo!z*?E1W}ps-`t3Oj|0ZBx2cH~Y#_+m0(wI7jFfeH^@tTl_)&rjP%# zqkcpMzvtqC?gddQJW~CHTeVt+a<3qkh5bIYyWnO?gOU_{5mf|C&R!^3Y;D zvWdi3&?eU>@Mh+++Pr3rn9E|a!6h9{AkBDYX=3wbf#uT0%RWW>7q17jj^-Mte|61b zp=JlW`T=uk($c`%g$kceuQ7l~O?4ABl0-&jT(j~r$n*bYVA+&$;c{Nah3k14XX{7M zA#rzWPVbFrO13aIL}zT@*pQa717nkbFvBsUUP@fmYkIJ$n-49rES42)$mm4=K^KGJ z=r)#@uP&dXhDI|+5@}3*^!H}gYp>(bO0)s8JMYcB@ArGN#N(ye zv{Q_~dpI(6xpwYq?fm#BUyOV8YnPX5Q}y$;%j3@Y#Q2q^$)(z7wX3zI<;l-$SO3)C ziEQa_dvjCM^Rp5BZ0S$+<9Lr{#k%-StclxG9v7d^&7VFyH~o=;*Q!^_mJ0^o&7Yd} zO8h#%ewd4~yv0mrfAkZuqB}gLPilBB0Tq)#gaHG#f$pJD0GuJqU9Vj=@y86qj;+Osez7jw&KWdG1|>wzXDuD`D_GRd8*-v&unok(?d*STRZPic>JH zykk1WTnZWNVUb=skR};kp=8loU)3{)@jf02*D#QZNH-N4!-`6)rRSQK^L5IAitvtx z)!BpE&z7Lu|b!cmw=b9-k z2fdwaBOu*E2$?(FHI^)cXM;;GbSQ{|az`E-)PJEvT}=~Iyo3Yrl?)FS&*AhpvP!Wf zY11AwiuA3sc%vQ`2Wmb5rYK9YLMVWGu0H*`CWzwKh1TGT2SHhma-`z0ieK7`7y#7qTQl!qppulp42iI!}$@ zuSOfAO0}Ty;)`F##J90HTh!Iy;CZdg3tEL2wW`0*=E6h&FCH;4Q)W;Rql-rxW^~0$ zr+}Qau&^*Q5I}4q*wGc+w788m3W+F=qBxS`(;y>}=B^~YZfqh|ZbqhxYRXN^E&`+_ zGn&U+RsNmF5=kTvsqvag&>+7OP?5oaS`MhFDgs{=L6T)$!krs7y~o9dxG%QE-475H z7~Zs_hu;EI&F49q!!ccKV$Wl-786?@p0_co9~+p>tuk%2O%|WWxF+%s;)%E$qiBP@ z-QkL5pCS#VBPn%c4RY`F9{_JAOvkY*$#PtEY#kSbpTsXAJ;XZ|ro-WhRFb(anMiOh zCUG5b6U<8EFU+3-tbd(KijJduaQBjTpCNLCyujUu#t*I4;0owNU7S}#3DRtn@?@gS zw^6WVs8kclCgotKsCZ0t0I@6mY{#Y8n`jPVS3_)xnlK;p^8{eCf2iexx#iFHV10rA z;qYsar6w2!0b(pA#zBaCXJalvSYJ%A?uwCE3o)wudxO`xGwi8k?D}Da#&SK6@n5MI z@ViRcm=!)c)l5a3Nmr9Ee3Y`F*76Mjl8i>*4!Kr4 z+PtC_AiSj)>s83C@+5>s`Fkdw3y~;9Bzyv%L}>G>R-_YUE|y^tg*-r~7krm$!$-9> z6#u%ogEmH402E$%;d;T%7Uh!FM!klWh;ng(Uvc>bx+F^hVoNrA00JaJ99ulXybdf# z1j+pcm4&%ESdW88fv25=)bHZxLPTzx<)YNX+h?ORP+qcBMSE1ZWS_E5%c28R1xqLzPj zxB`wY>WxGcy^WVBdYIP9s2pghcN^bm2i$yssc<+heiYAQ*I5joW8z5+lgwc;yjXCZ zCXkhp6Ue`#bw1&I@Rz|NKR06vwSniD8E3?UU;-St<({~QO{ngQoD^vmKZ}TO;Lj!{ z1;yMeW*|Edp$0@k4S`MA@CYMjlgF32DBX&vOV_sg z;325*18W=Oj_!t(-@(%<*K7hFe4r-G3J}`Gc>9O5_|)t@t8kfaQdFq*GGaod3SgBl zC|1HlaS3({?^cAmrA$BtoT}g%1qx!71Zw#JEtdVQ@*+o{ggzL^|C6A*CPFiE@o&!P Bc|rgH diff --git a/samples/TI PRGM/srcsort.8xp b/samples/TI PRGM/srcsort.8xp deleted file mode 100644 index 4998713bc157cb378f95a503a6f58ef68fd6313a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1569 zcmds1O>f#j5H$!S7Nrut_Qa)!VkNR6e6&FG&$s0S+aL$$8X-uzL`p8_@Y(oRUQ@3}|5Bg$o(jO`cHmm$oT0ge@AO27O zyZ=oL`1;MsYpc(%M~YV0HC^R}_LEjkXT_Yf_*JP?kQSTN)o0P7p{izR^P24JxCJxp zCAZFCh9|7kYD-mBjy3HY%xe-*Agyx(u69|GuXMh|^Gn*Ap+#N@OWvNeS*|crTxoj- zgU=q!mCl2EQ@S2yHYp|}rvhifz=*5oq>bz&Dr{C5(FsGk(w?}}IIEfSDoUk8cX-@mm~QYl{9IQIm#IB62e zmc@P5vIY3JZ0=5DSK9wYFyWn&xCMzD&DHdzAbDq9d`YuXTx>cL4IP;$Bv~n9!SDWq zu%rKynvX%z5Q#%T+=U)8y5t5CTk;iOlkj(w2yAsCEH;w}-$tZAb32C$lGfq$;leA3 zX!H Date: Mon, 3 Oct 2016 22:07:23 -0400 Subject: [PATCH 087/114] Updated TI PRGM languages.yml entry Alphabetized extensions and added a language_id. --- lib/linguist/languages.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 23680969..e5795d56 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4077,10 +4077,11 @@ TI PRGM: ace_mode: text color: "#A0AA87" extensions: - - ".8xp" - ".8xk" - - ".8xp.txt" + - ".8xp" - ".8xk.txt" + - ".8xp.txt" + language_id: 422 tm_scope: none TLA: type: programming From 520e5a5cfe585c7e77b69949c87fe2f6266843c1 Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Mon, 3 Oct 2016 22:13:43 -0400 Subject: [PATCH 088/114] Alphabetized extensions for TI PRGM (again) --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index e5795d56..543226ba 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4078,8 +4078,8 @@ TI PRGM: color: "#A0AA87" extensions: - ".8xk" - - ".8xp" - ".8xk.txt" + - ".8xp" - ".8xp.txt" language_id: 422 tm_scope: none From 7e63399196d88ed763c6d082a93ef9830e28e5e8 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Tue, 4 Oct 2016 17:23:45 +1100 Subject: [PATCH 089/114] Delete colour property for ASN.1 language This is classified on GitHub as "data", so the colour it's assigned only wastes valuable "real estate" when checking colour proximity. References: github/linguist#3113 --- lib/linguist/languages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 269525ce..f9c7c628 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -103,7 +103,6 @@ APL: language_id: 6 ASN.1: type: data - color: "#aeead0" extensions: - ".asn" - ".asn1" From 8d55fc1bd549dee7dff95d4cdaaa5a7a4f214b8a Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Tue, 4 Oct 2016 14:38:28 -0400 Subject: [PATCH 090/114] Reordered extensions for TI PRGM --- lib/linguist/languages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 543226ba..89c3c0b0 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4077,9 +4077,9 @@ TI PRGM: ace_mode: text color: "#A0AA87" extensions: + - ".8xp" - ".8xk" - ".8xk.txt" - - ".8xp" - ".8xp.txt" language_id: 422 tm_scope: none From e38cc75da57504655fa37192d47350bb1586f7f5 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Wed, 5 Oct 2016 13:06:49 +1100 Subject: [PATCH 091/114] Update ASN.1 grammar This stops the ASN.1 submodule from being flagged as modified due to its .DS_Store file being wiped locally by an automated process. References: ajLangley12/language-asn1#1 --- vendor/grammars/language-asn1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/grammars/language-asn1 b/vendor/grammars/language-asn1 index bc3811c7..208b6d9e 160000 --- a/vendor/grammars/language-asn1 +++ b/vendor/grammars/language-asn1 @@ -1 +1 @@ -Subproject commit bc3811c7706476e48f5085660b72b18ad028314f +Subproject commit 208b6d9ebe873180b109a286a481ca6639200d3e From 26310d95156c5a012de6385f49f388523503ab42 Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Tue, 4 Oct 2016 23:02:11 -0400 Subject: [PATCH 092/114] TI PRGM -> TI Code --- lib/linguist/languages.yml | 2 +- samples/{TI PRGM => TI Code}/srcalpha.8xp.txt | 0 samples/{TI PRGM => TI Code}/srcfunc.8xp.txt | 0 samples/{TI PRGM => TI Code}/srcgui.8xp.txt | 0 samples/{TI PRGM => TI Code}/srcsort.8xp.txt | 0 5 files changed, 1 insertion(+), 1 deletion(-) rename samples/{TI PRGM => TI Code}/srcalpha.8xp.txt (100%) rename samples/{TI PRGM => TI Code}/srcfunc.8xp.txt (100%) rename samples/{TI PRGM => TI Code}/srcgui.8xp.txt (100%) rename samples/{TI PRGM => TI Code}/srcsort.8xp.txt (100%) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 89c3c0b0..2726a062 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4072,7 +4072,7 @@ SystemVerilog: codemirror_mode: verilog codemirror_mime_type: text/x-systemverilog language_id: 363 -TI PRGM: +TI Code: type: programming ace_mode: text color: "#A0AA87" diff --git a/samples/TI PRGM/srcalpha.8xp.txt b/samples/TI Code/srcalpha.8xp.txt similarity index 100% rename from samples/TI PRGM/srcalpha.8xp.txt rename to samples/TI Code/srcalpha.8xp.txt diff --git a/samples/TI PRGM/srcfunc.8xp.txt b/samples/TI Code/srcfunc.8xp.txt similarity index 100% rename from samples/TI PRGM/srcfunc.8xp.txt rename to samples/TI Code/srcfunc.8xp.txt diff --git a/samples/TI PRGM/srcgui.8xp.txt b/samples/TI Code/srcgui.8xp.txt similarity index 100% rename from samples/TI PRGM/srcgui.8xp.txt rename to samples/TI Code/srcgui.8xp.txt diff --git a/samples/TI PRGM/srcsort.8xp.txt b/samples/TI Code/srcsort.8xp.txt similarity index 100% rename from samples/TI PRGM/srcsort.8xp.txt rename to samples/TI Code/srcsort.8xp.txt From 20b8188384710444e3388b969cfe0327e1d4465d Mon Sep 17 00:00:00 2001 From: Alhadis Date: Wed, 5 Oct 2016 16:14:33 +1100 Subject: [PATCH 093/114] Add test to guard against unused colours --- lib/linguist/languages.yml | 2 +- test/test_language.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f9c7c628..c890ae40 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -19,7 +19,7 @@ # language_id - Integer used as a language-name-independent indexed field so that we can rename # languages in Linguist without reindexing all the code on GitHub. Must not be # changed for existing languages without the explicit permission of GitHub staff. -# color - CSS hex color to represent the language. +# color - CSS hex color to represent the language. Only used if type is "programming" or "prose" # tm_scope - The TextMate scope that represents this programming # language. This should match one of the scopes listed in # the grammars.yml file. Use "none" if there is no grammar diff --git a/test/test_language.rb b/test/test_language.rb index 1f6d19d2..08f60112 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -494,4 +494,11 @@ class TestLanguage < Minitest::Test message << missing.sort.join("\n") assert missing.empty?, message end + + def test_no_unused_colours + Language.all.each do |language| + next unless language.type == :data || language.type == :prose + assert !language.color, "Unused colour assigned to #{language.name}" + end + end end From 4a775dca37024c0e506447cd6d319305705e4f48 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Wed, 5 Oct 2016 17:45:38 +1100 Subject: [PATCH 094/114] Add REXX interpreters --- lib/linguist/languages.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 269525ce..b01da23d 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -3447,6 +3447,9 @@ REXX: - ".rexx" - ".pprx" - ".rex" + interpreters: + - regina + - rexx tm_scope: source.rexx ace_mode: text language_id: 311 From 12695fee2f2752aa5a207025523b53ba1a410e62 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Wed, 5 Oct 2016 21:36:22 +1100 Subject: [PATCH 095/114] Add ".make" as a Makefile file extension --- lib/linguist/languages.yml | 1 + samples/Makefile/file-icons.make | 134 +++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 samples/Makefile/file-icons.make diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 269525ce..c8234cb5 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -2429,6 +2429,7 @@ Makefile: extensions: - ".mak" - ".d" + - ".make" - ".mk" - ".mkfile" filenames: diff --git a/samples/Makefile/file-icons.make b/samples/Makefile/file-icons.make new file mode 100644 index 00000000..09d8a78c --- /dev/null +++ b/samples/Makefile/file-icons.make @@ -0,0 +1,134 @@ +charmap := charmap.md +font-name := file-icons +font-folder := dist +font-config := icomoon.json +icon-size := 34 +icon-folder := svg +repo-name := Alhadis/FileIcons +svg := $(wildcard $(icon-folder)/*.svg) +last-commit = $(shell git log -1 --oneline --no-abbrev | cut -d' ' -f1) + + +all: unpack $(font-folder)/$(font-name).woff2 charmap + + +# Aliases +unpack: $(font-folder)/$(font-name).ttf +charmap: $(charmap) + + +# Extract a downloaded IcoMoon folder +$(font-folder)/%.ttf: %.zip + @rm -rf $(font-folder) tmp $(font-config) + @unzip -qd tmp $^ + @mv tmp/fonts $(font-folder) + @mv tmp/selection.json $(font-config) + @rm -rf tmp $^ + @perl -pi -e 's|^( {2})+|"\t" x (length($$&)/2)|ge' $(font-config) + @echo "" >> $(font-config) # Ensure trailing newline + @echo "Files extracted." + + +# Generate a WOFF2 file from a TTF +%.woff2: %.ttf + @[ ! -f $@ ] && { \ + hash woff2_compress 2>/dev/null || { \ + echo >&2 "WOFF2 conversion tools not found. Consult the readme file."; \ + exit 2; \ + }; \ + woff2_compress $^ >/dev/null; \ + echo "WOFF2 file generated."; \ + }; + + + +# Clean up SVG source +lint: $(svg) + @perl -0777 -pi -e '\ + s/\r\n/\n/g; \ + s/\s*<\/g>//gmi; \ + s/\s*<\/g>//gmi; \ + s/\s+(id|viewBox|xml:space)="[^"]*"/ /gmi; \ + s/]*>//gi; \ + s/<\?xml.*?\?>//gi; \ + s///gm; \ + s/ style="enable-background:.*?;"//gmi; \ + s/"\s+>/">/g; \ + s/\x20{2,}/ /g; \ + s/[\t\n]+//gm;' $^ + + + +# Generate/update character map +$(charmap): + @./create-map.pl -r=$(repo-name) -i=$(icon-folder) --size=$(icon-size) $(font-folder)/$(font-name).svg $@ + + + + +# POSIX systems only: reattach hard links to File-Icons package +relink: + @$(call need-var,ATOM_FILE_ICONS,ERROR_NO_PKG) + @ln -f $(font-folder)/$(font-name).woff2 $(wildcard $(ATOM_FILE_ICONS)/fonts/file-icons-*.woff2) + + + +# Force an icon's preview to be refreshed on GitHub +cachebust: + @$(call need-var,icon,ERROR_NO_ICON) + @base="https://cdn.rawgit.com/Alhadis/FileIcons/"; \ + perl -pi -e 's{$$base\K\w+(?=/svg/$(icon:%.svg=%)\.svg")}{$(last-commit)}ig;' $(charmap) + + +# Dummy task to improve feedback if `cachebust` is mistyped +icon: + $(call need-var,,ERROR_UNDEF_ICON) + + + +# Reset unstaged changes/additions in object directories +clean: + @git clean -fd $(font-folder) + @git checkout -- $(font-folder) 2>/dev/null || true + + +# Delete extracted and generated files +distclean: + @rm -rf $(font-folder) + + +.PHONY: clean distclean $(charmap) cachebust icon +.ONESHELL: + + +# Error message shown to users attempting to run `make relink` without a link +ERROR_NO_PKG := Environment variable ATOM_FILE_ICONS not found. \ + | \ + | Try this instead:\ + | \ + | \ make relink ATOM_FILE_ICONS=/path/to/your/file-icons/installation | + + +# Error message shown when running `make cachebust` without an icon +ERROR_NO_ICON := No icon specified. Task aborted.| \ + | Usage: \ + | \ make icon=file[.svg] cachebust \ + | \ + | Examples: \ + | \ make icon=Manpage cachebust \ + | \ make icon=APL.svg cachebust | + + +# Shown if user tries running `make icon NAME cachebust` by mistake +ERROR_UNDEF_ICON := No task named \"icon\". \ + | \ + | Did you mean this? \ + | \ make icon=NAME cachebust | + + + +# If the given value is empty, die with an error message +need = @$(if $(1),,echo $(subst | ,$$'\n',$(2)); exit 2) + +# Like `need`, but uses variable names instead of string values +need-var = @$(call need,$($(1)),$($(2))) From a2db058ce4bb1b60708987977617b4a064fc9088 Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Wed, 5 Oct 2016 12:24:50 -0400 Subject: [PATCH 096/114] TI Code -> TI Program --- lib/linguist/languages.yml | 4 +--- samples/{TI Code/srcalpha.8xp.txt => TI Program/srcalpha.txt} | 0 samples/{TI Code/srcfunc.8xp.txt => TI Program/srcfunc.txt} | 0 samples/{TI Code/srcgui.8xp.txt => TI Program/srcgui.txt} | 0 samples/{TI Code/srcsort.8xp.txt => TI Program/srcsort.txt} | 0 5 files changed, 1 insertion(+), 3 deletions(-) rename samples/{TI Code/srcalpha.8xp.txt => TI Program/srcalpha.txt} (100%) rename samples/{TI Code/srcfunc.8xp.txt => TI Program/srcfunc.txt} (100%) rename samples/{TI Code/srcgui.8xp.txt => TI Program/srcgui.txt} (100%) rename samples/{TI Code/srcsort.8xp.txt => TI Program/srcsort.txt} (100%) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 2726a062..f4195d88 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4072,15 +4072,13 @@ SystemVerilog: codemirror_mode: verilog codemirror_mime_type: text/x-systemverilog language_id: 363 -TI Code: +TI Program: type: programming ace_mode: text color: "#A0AA87" extensions: - ".8xp" - ".8xk" - - ".8xk.txt" - - ".8xp.txt" language_id: 422 tm_scope: none TLA: diff --git a/samples/TI Code/srcalpha.8xp.txt b/samples/TI Program/srcalpha.txt similarity index 100% rename from samples/TI Code/srcalpha.8xp.txt rename to samples/TI Program/srcalpha.txt diff --git a/samples/TI Code/srcfunc.8xp.txt b/samples/TI Program/srcfunc.txt similarity index 100% rename from samples/TI Code/srcfunc.8xp.txt rename to samples/TI Program/srcfunc.txt diff --git a/samples/TI Code/srcgui.8xp.txt b/samples/TI Program/srcgui.txt similarity index 100% rename from samples/TI Code/srcgui.8xp.txt rename to samples/TI Program/srcgui.txt diff --git a/samples/TI Code/srcsort.8xp.txt b/samples/TI Program/srcsort.txt similarity index 100% rename from samples/TI Code/srcsort.8xp.txt rename to samples/TI Program/srcsort.txt From 71dfed0e458cb8d5aefb154d7aedf387c6acfd4b Mon Sep 17 00:00:00 2001 From: Scott Mangiapane Date: Wed, 5 Oct 2016 12:31:32 -0400 Subject: [PATCH 097/114] Restored .8xp.txt extension --- lib/linguist/languages.yml | 2 ++ samples/TI Program/{srcalpha.txt => srcalpha.8xp.txt} | 0 samples/TI Program/{srcfunc.txt => srcfunc.8xp.txt} | 0 samples/TI Program/{srcgui.txt => srcgui.8xp.txt} | 0 samples/TI Program/{srcsort.txt => srcsort.8xp.txt} | 0 5 files changed, 2 insertions(+) rename samples/TI Program/{srcalpha.txt => srcalpha.8xp.txt} (100%) rename samples/TI Program/{srcfunc.txt => srcfunc.8xp.txt} (100%) rename samples/TI Program/{srcgui.txt => srcgui.8xp.txt} (100%) rename samples/TI Program/{srcsort.txt => srcsort.8xp.txt} (100%) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index f4195d88..98f2664e 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -4079,6 +4079,8 @@ TI Program: extensions: - ".8xp" - ".8xk" + - ".8xk.txt" + - ".8xp.txt" language_id: 422 tm_scope: none TLA: diff --git a/samples/TI Program/srcalpha.txt b/samples/TI Program/srcalpha.8xp.txt similarity index 100% rename from samples/TI Program/srcalpha.txt rename to samples/TI Program/srcalpha.8xp.txt diff --git a/samples/TI Program/srcfunc.txt b/samples/TI Program/srcfunc.8xp.txt similarity index 100% rename from samples/TI Program/srcfunc.txt rename to samples/TI Program/srcfunc.8xp.txt diff --git a/samples/TI Program/srcgui.txt b/samples/TI Program/srcgui.8xp.txt similarity index 100% rename from samples/TI Program/srcgui.txt rename to samples/TI Program/srcgui.8xp.txt diff --git a/samples/TI Program/srcsort.txt b/samples/TI Program/srcsort.8xp.txt similarity index 100% rename from samples/TI Program/srcsort.txt rename to samples/TI Program/srcsort.8xp.txt From 1bbb919fefdb60d0f748ceb455dcd6384ee4f4d9 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Thu, 6 Oct 2016 16:42:01 +1100 Subject: [PATCH 098/114] Reclassify Sublime configuration files as JSON See: - https://github.com/github/linguist/issues/2662#issuecomment-251865073 - https://github.com/github/linguist/pull/3267 --- lib/linguist/languages.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 269525ce..e926889e 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1929,6 +1929,19 @@ JSON: - ".json" - ".geojson" - ".JSON-tmLanguage" + - ".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" - ".topojson" filenames: - ".arcconfig" @@ -2041,19 +2054,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: From 5a5bf7d5e59b44dcfbc5338c26f893fd710bcd30 Mon Sep 17 00:00:00 2001 From: Alhadis Date: Fri, 7 Oct 2016 10:56:15 +1100 Subject: [PATCH 099/114] Add new entry for Sublime Text config files --- lib/linguist/languages.yml | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 55fc6933..e4840150 100755 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -1928,19 +1928,6 @@ JSON: - ".json" - ".geojson" - ".JSON-tmLanguage" - - ".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" - ".topojson" filenames: - ".arcconfig" @@ -4039,6 +4026,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: 422 SuperCollider: type: programming color: "#46390b" From d265b78e7eccc11f6fc86d118a3972c6bef7a5bd Mon Sep 17 00:00:00 2001 From: Alhadis Date: Fri, 7 Oct 2016 11:37:27 +1100 Subject: [PATCH 100/114] Copy Sublime configs from submodules --- .../Sublime Text Config/AMPL.sublime-build | 14 + .../CLIPS.sublime-settings | 8 + .../Sublime Text Config/Context.sublime-menu | 13 + .../Sublime Text Config/Dart.sublime-commands | 30 + .../Sublime Text Config/Dart.sublime-project | 40 + .../Default (Linux).sublime-mousemap | 7 + .../Default.sublime-keymap | 6 + .../JavaDoc Add Line.sublime-macro | 6 + .../RunBuild.sublime-macro | 5 + .../SourcePawn.sublime-build | 19 + .../Sublime Text Config/Tubnil.sublime-theme | 861 ++++++++++++++++++ .../jade.sublime-completions | 136 +++ 12 files changed, 1145 insertions(+) create mode 100644 samples/Sublime Text Config/AMPL.sublime-build create mode 100644 samples/Sublime Text Config/CLIPS.sublime-settings create mode 100644 samples/Sublime Text Config/Context.sublime-menu create mode 100644 samples/Sublime Text Config/Dart.sublime-commands create mode 100644 samples/Sublime Text Config/Dart.sublime-project create mode 100644 samples/Sublime Text Config/Default (Linux).sublime-mousemap create mode 100644 samples/Sublime Text Config/Default.sublime-keymap create mode 100644 samples/Sublime Text Config/JavaDoc Add Line.sublime-macro create mode 100644 samples/Sublime Text Config/RunBuild.sublime-macro create mode 100644 samples/Sublime Text Config/SourcePawn.sublime-build create mode 100644 samples/Sublime Text Config/Tubnil.sublime-theme create mode 100644 samples/Sublime Text Config/jade.sublime-completions diff --git a/samples/Sublime Text Config/AMPL.sublime-build b/samples/Sublime Text Config/AMPL.sublime-build new file mode 100644 index 00000000..7434f54d --- /dev/null +++ b/samples/Sublime Text Config/AMPL.sublime-build @@ -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" + } + } + +} diff --git a/samples/Sublime Text Config/CLIPS.sublime-settings b/samples/Sublime Text Config/CLIPS.sublime-settings new file mode 100644 index 00000000..1b6ef5f3 --- /dev/null +++ b/samples/Sublime Text Config/CLIPS.sublime-settings @@ -0,0 +1,8 @@ +{ + "extensions": + [ + "clp" + ], + "tab_size": 8, + "translate_tabs_to_spaces": false +} diff --git a/samples/Sublime Text Config/Context.sublime-menu b/samples/Sublime Text Config/Context.sublime-menu new file mode 100644 index 00000000..ae2526e5 --- /dev/null +++ b/samples/Sublime Text Config/Context.sublime-menu @@ -0,0 +1,13 @@ +[ +{ + "id" : "nasm", + "caption": "NASM Assembly", + "children": + [ + { + "caption" : "Documentation", + "command" : "assembly_doc" + } + ] +} +] \ No newline at end of file diff --git a/samples/Sublime Text Config/Dart.sublime-commands b/samples/Sublime Text Config/Dart.sublime-commands new file mode 100644 index 00000000..901bbdfe --- /dev/null +++ b/samples/Sublime Text Config/Dart.sublime-commands @@ -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" } +] diff --git a/samples/Sublime Text Config/Dart.sublime-project b/samples/Sublime Text Config/Dart.sublime-project new file mode 100644 index 00000000..22c1677a --- /dev/null +++ b/samples/Sublime Text Config/Dart.sublime-project @@ -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 + } + ] + } + ] +} diff --git a/samples/Sublime Text Config/Default (Linux).sublime-mousemap b/samples/Sublime Text Config/Default (Linux).sublime-mousemap new file mode 100644 index 00000000..c6d56aa5 --- /dev/null +++ b/samples/Sublime Text Config/Default (Linux).sublime-mousemap @@ -0,0 +1,7 @@ +[ + { + "button": "button1", "count": 1, "modifiers": ["alt"], + "press_command": "drag_select", + "command": "robot_go_to_keyword" + } +] diff --git a/samples/Sublime Text Config/Default.sublime-keymap b/samples/Sublime Text Config/Default.sublime-keymap new file mode 100644 index 00000000..e62a0a9b --- /dev/null +++ b/samples/Sublime Text Config/Default.sublime-keymap @@ -0,0 +1,6 @@ +[ + // Disable auto-pair for single quote + { "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'"}, "context": + [{ "key": "selector", "operator": "equal", "operand": "source.rust" }] + } +] diff --git a/samples/Sublime Text Config/JavaDoc Add Line.sublime-macro b/samples/Sublime Text Config/JavaDoc Add Line.sublime-macro new file mode 100644 index 00000000..a2d62b99 --- /dev/null +++ b/samples/Sublime Text Config/JavaDoc Add Line.sublime-macro @@ -0,0 +1,6 @@ +[ + {"command": "move_to", "args": {"to": "hardeol"}}, + {"command": "insert", "args": {"characters": "\n"}}, + {"command": "insert", "args": {"characters": "*"}}, + {"command": "insert", "args": {"characters": " "}} +] diff --git a/samples/Sublime Text Config/RunBuild.sublime-macro b/samples/Sublime Text Config/RunBuild.sublime-macro new file mode 100644 index 00000000..574a045d --- /dev/null +++ b/samples/Sublime Text Config/RunBuild.sublime-macro @@ -0,0 +1,5 @@ +[ + { + "command": "haxe_run_build" + } +] diff --git a/samples/Sublime Text Config/SourcePawn.sublime-build b/samples/Sublime Text Config/SourcePawn.sublime-build new file mode 100644 index 00000000..013a949d --- /dev/null +++ b/samples/Sublime Text Config/SourcePawn.sublime-build @@ -0,0 +1,19 @@ +{ + // For default sourcemod scripting directory : + "cmd": ["", "-o$file_path/../plugins/$file_name", "$file"], + + // For custom sourcemod scripting directory : + "cmd": ["", "-i", "-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" +} diff --git a/samples/Sublime Text Config/Tubnil.sublime-theme b/samples/Sublime Text Config/Tubnil.sublime-theme new file mode 100644 index 00000000..cb494beb --- /dev/null +++ b/samples/Sublime Text Config/Tubnil.sublime-theme @@ -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" + } + +] diff --git a/samples/Sublime Text Config/jade.sublime-completions b/samples/Sublime Text Config/jade.sublime-completions new file mode 100644 index 00000000..cd3894b7 --- /dev/null +++ b/samples/Sublime Text Config/jade.sublime-completions @@ -0,0 +1,136 @@ +{ + "scope": "entity.name.tag.jade", + "completions": + [ + "a",// Defines a hyperlink + "abbr",// Defines an abbreviation + "acronym",// Not supported in HTML5. Use instead. + //Defines an acronym + "address",// Defines contact information for the author/owner of a document + "applet",// Not supported in HTML5. Use 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 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
    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
    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
    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 element + "legend",// Defines a caption for a
    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 (