diff --git a/debian/.gitattributes b/debian/.gitattributes deleted file mode 100644 index 74e43f37fb..0000000000 --- a/debian/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -.gitattributes export-ignore -gbp.conf export-ignore -salsa-ci.yml export-ignore \ No newline at end of file diff --git a/debian/.gitlab-ci.yml b/debian/.gitlab-ci.yml deleted file mode 100644 index ee6eac7a5e..0000000000 --- a/debian/.gitlab-ci.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -# https://docs.gitlab.com/ce/ci/yaml/#include -include: - - remote: https://salsa.debian.org/onlyjob/ci/raw/master/onlyjob-ci.yml - -## "amd64-unstable+lintian" job always runs by default (except on -## "buster-backports" branches). - -## Only for arch:all packages: -binary-indep: - extends: .build-indep - -## Job to check Build-Depends versioning: -amd64-testing_unstable: - extends: .build - except: - - buster-backports - - tags - variables: - arch: amd64 - dist: testing_unstable - -i386-unstable: - extends: .build - except: - - buster-backports - - tags - variables: - arch: i386 - dist: unstable - -amd64-experimental: - extends: .build - except: - - buster-backports - - tags - variables: - arch: amd64 - dist: experimental - -amd64-stable: - extends: .build - when: manual - allow_failure: true - variables: - arch: amd64 - dist: stable diff --git a/debian/Gemfile.autopkgtest b/debian/Gemfile.autopkgtest deleted file mode 100644 index 3587e78030..0000000000 --- a/debian/Gemfile.autopkgtest +++ /dev/null @@ -1,88 +0,0 @@ -# --- Special code for migrating to Rails 5.0 --- -def rails5? - %w[1 true].include?(ENV["RAILS5"]) -end - -gem_versions = {} -gem_versions['activerecord_sane_schema_dumper'] = rails5? ? '1.0' : '0.2' -gem_versions['default_value_for'] = rails5? ? '~> 3.0.5' : '~> 3.0' -gem_versions['rails'] = rails5? ? '5.0.7' : '4.2.10' -gem_versions['rails-i18n'] = rails5? ? '~> 5.1' : '~> 4.0.9' -# --- The end of special code for migrating to Rails 5.0 --- - -source 'https://rubygems.org' -gem 'rails', gem_versions['rails'] - -# Use packaged native gems -gem 'rake', '12.3.1' -gem 'rails-dom-testing', '1.0.6' -gem 'nokogiri', '1.8.4' -gem 'pg', '~> 0.19.0' -gem 'rack', '~> 1.6.4' -gem 'sprockets-rails', '~> 2.3.2' - -if ENV["INCLUDE_TEST_DEPENDS"] == "true" - gem 'bootsnap', '~> 1.3' - gem 'pry-byebug', '~> 3.4.1', platform: :mri - gem 'pry-rails', '~> 0.3.4' - - gem 'awesome_print', require: false - gem 'fuubar', '~> 2.2.0' - - gem 'database_cleaner', '~> 1.5.0' - gem 'factory_bot_rails', '~> 4.8.2' - gem 'rspec-rails', '~> 3.7' # Use packaged version - gem 'rspec-retry', '~> 0.4.5' - gem 'rspec_profiling', '~> 0.0.5' - gem 'rspec-set', '~> 0.1.3' - gem 'rspec-parameterized', require: false - - # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) - gem 'minitest', '~> 5.7.0' - - # Generate Fake data - gem 'ffaker', '~> 2.4' - - gem 'capybara', '~> 2.15' - gem 'capybara-screenshot', '~> 1.0.0' - gem 'selenium-webdriver', '~> 3.12' - - gem 'spring', '~> 2.0.0' - gem 'spring-commands-rspec', '~> 1.0.4' - - gem 'gitlab-styles', '~> 2.4', require: false - # Pin these dependencies, otherwise a new rule could break the CI pipelines - gem 'rubocop', '~> 0.54.0' - gem 'rubocop-rspec', '~> 1.22.1' - - gem 'scss_lint', '~> 0.56.0', require: false - gem 'haml_lint', '~> 0.26.0', require: false - gem 'simplecov', '~> 0.14.0', require: false - gem 'bundler-audit', '~> 0.5.0', require: false - - gem 'benchmark-ips', '~> 2.3.0', require: false - - gem 'license_finder', '~> 5.4', require: false - gem 'knapsack', '~> 1.16' - - gem 'activerecord_sane_schema_dumper', gem_versions['activerecord_sane_schema_dumper'] - - gem 'stackprof', '~> 0.2.10', require: false - - gem 'simple_po_parser', '~> 1.1.2', require: false - - gem 'timecop', '~> 0.8.0' -#end - -#group :test do - gem 'shoulda-matchers', '~> 3.1.2', require: false - gem 'email_spec', '~> 2.2.0' - gem 'json-schema', '~> 2.8.0' - gem 'webmock', '>= 2.3.2' - gem 'rails-controller-testing' if rails5? # Rails5 only gem. - gem 'test_after_commit', '~> 1.1' unless rails5? # Remove this gem when migrated to rails 5.0. It's been integrated to rails 5.0. - gem 'sham_rack', '~> 1.3.6' - gem 'concurrent-ruby', '~> 1.0.5' - gem 'test-prof', '~> 0.2.5' - gem 'rspec_junit_formatter' -end diff --git a/debian/README.Debian b/debian/README.Debian deleted file mode 100644 index 2ddeae45c6..0000000000 --- a/debian/README.Debian +++ /dev/null @@ -1,161 +0,0 @@ -Debian specific changes in gitlab -================================= - -1. Redis connection: redis-server package in debian follows upstream default -and listens on tcp port 6379. So gitlab package in debian is configured to use -tcp sockets. gitlab developers recommend using unix sockets. You can change to -using unix sockets by changing the following configuration files. - - /etc/redis/redis.conf, /etc/gitlab/resque.yml, and /etc/gitlab/cable.yml - -2. wiki backend: debian package uses gollum-rugged_adapter whereas gitlab -upstream still use gollum-grit_adapter. grit is no longer maintained and grit -developers recommend switching to rugged. gollum-lib developers have announced -their intention to switch to rugged_adapter by default and this is in progress. - -3. default paths: debian package has changed some default values for paths -which you can see at /etc/gitlab/gitlab-debian.conf - -4. database: gitlab package configures postgresql database with peer -authentication. - -5. gem versions: some gem dependency requirements are relaxed to work with -their packaged version in debian. - -You can find the list of gems required by gitlab and their corresponding -package versions in debian at -http://debian.fosscommunity.in/status/?appname=gitlab&sort=satisfied - -6. vendored js files: some embedded javascript files in -vendor/assets/javascripts are replaced by their packaged version. - -7. root directory of rails is read only (/usr/share/gitlab); following symbolic -links are added to enable write access to gitlab app - -> config -> /etc/gitlab -> Gemfile.lock -> /var/lib/gitlab/Gemfile.lock -> log -> /var/log/gitlab -> builds -> /var/log/gitlab/builds -> tmp -> /run/gitlab -> /run/gitlab/cache -> var/lib/gitlab/cache -> public -> /var/lib/gitlab/public -> shared -> /var/lib/gitlab/shared -> db -> /var/lib/gitlab/db -> /usr/share/gitlab/.secret -> /var/lib/gitlab/.secret - -8. ssl certificates: This package tries to use letsencrypt package to obtain -ssl certificates, if it is installed (via Recommends). If letsencrypt is not -required, you can copy ssl certificate and key to /etc/gitlab/ssl as gitlab.crt -and gitlab.key. If letsencrypt option is selected, symbolic links are added for -certificates obtained using letsencrypt to /etc/gitlab/ssl. - -9. exim compatibility issue: If you use exim as your mta, then see -https://github.com/gitlabhq/gitlabhq/issues/4866#issuecomment-145784636 - -Useful diagnostics -================== - -Upstream documentation will instruct to run commands like the following: - - $ sudo -u gitlab -H bundle exec rake XXX RAILS_ENV=production - -Where XXX is something like "db:migrate", "gitlab:check" or "gitlab:env:info". -In Debian, the rake command has to be called by the gitlab user from app home -directory /usr/share/gitlab and with the environment variables from -/etc/gitlab/gitlab-debian.conf set. So above command could be run like: - - $ runuser -u gitlab -- sh -c 'cd /usr/share/gitlab && . /etc/gitlab/gitlab-debian.conf && export DB RAILS_ENV && bundle exec rake XXX RAILS_ENV=production' - -One useful command to run in this environment is: - - $ bundle exec rake gitlab:check RAILS_ENV=production - -Which will output helpful diagnostics about the state of your system including -how to fix possible problems. Another one is: - - $ bundle exec rake gitlab:env:info RAILS_ENV=production - -To see service status with systemd, you can use: - - $ systemctl status gitlab.service -l - $ systemctl status gitlab-unicorn.service -l - $ systemctl status gitlab-sidekiq.service -l - $ systemctl status gitlab-workhorse.service -l - $ journalctl -xn - -It is advised to attach the output of above commands to bugreports. - -Migrating from non-Debian gitlab -================================ - - 0. Backup everything you don't want to loose like: - - the postgresql database used by your gitlab instance - - the repositories/ directory - - the public/uploads/ directory - - your .ssh/authorized_keys - 1. Remove the init script for your old gitlab installation, like: - $ rm /etc/init.d/gitlab - 2. Install Debian gitlab: - $ apt-get install gitlab - 3. Stop gitlab services: - $ systemctl stop gitlab.service - 4. Rename your old database to gitlab_production and set the user gitlab as - its owner and the owner of all its tables, sequences and views - $ su - postgres - $ psql - # drop database gitlab_production; - # alter database gitlabhq_production rename to gitlab_production; - # alter database gitlab_production owner to gitlab; - # \q - $ for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" gitlab_production` ; do psql -c "alter table \"$tbl\" owner to gitlab" gitlab_production ; done - $ for tbl in `psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" gitlab_production` ; do psql -c "alter table \"$tbl\" owner to gitlab" gitlab_production ; done - 5. Copy your old repository directory to /var/lib/gitlab/repositories/ - 6. Copy your old public/uploads/ directory to /var/lib/gitlab/public/uploads/ - 7. Copy your old .ssh/authorized_keys to /var/lib/gitlab/.ssh/authorized_keys - 8. Fix your /var/lib/gitlab/.ssh/authorized_keys to contain the right path to gitlab-shell like: - $ sed -i 's/^command="[^ ]\+gitlab-shell /command="\/usr\/share\/gitlab-shell\/bin\/gitlab-shell /' /usr/share/gitlab/.ssh/authorized_keys - 9. Fix permission: - $ chown -R gitlab:gitlab /var/lib/gitlab/repositories/ /var/lib/gitlab/public/uploads/ /var/lib/gitlab/.ssh/authorized_keys - $ chmod -R ug+rwX,o-rwx /var/lib/gitlab/repositories/ - $ find /var/lib/gitlab/public/uploads -type f -exec chmod 0644 {} \; - $ find /var/lib/gitlab/public/uploads -type d -not -path /var/lib/gitlab/public/uploads -exec chmod 0700 {} \; - 10. Migrate the database: - $ runuser -u gitlab -- sh -c 'cd /usr/share/gitlab && . /etc/gitlab/gitlab-debian.conf && export DB RAILS_ENV && bundle exec rake db:migrate RAILS_ENV=production' - 11. Fix hooks: - # su gitlab - $ /usr/share/gitlab-shell/bin/create-hooks - 12. Start gitlab: - $ systemctl start gitlab.service - 13. Check the installation: - $ runuser -u gitlab -- sh -c 'cd /usr/share/gitlab && . /etc/gitlab/gitlab-debian.conf && export DB RAILS_ENV && bundle exec rake gitlab:check RAILS_ENV=production' - -Resetting admin password without web interface -============================================== -The steps involve dropping into rails console as gitlab user for production environment and then resetting the admin password via the user object. - $ gitlab-rails-console - irb(main):001:0> user = User.where(admin: true).first - irb(main):002:0> user.password = 'secret_pass' - irb(main):003:0> user.password_confirmation = 'secret_pass' - irb(main):004:0> user.save! - -Activating a newly registered user -====================================== -The steps involve dropping into rails console as gitlab user for production environment and running the following commands. - $ gitlab-rails-console - irb(main):001:0> user = User.find_by(email: 'useraddress@domain') - irb(main):004:0> user.state='active' - irb(main):005:0> user.save - -Granting an existing user admin access -====================================== -The steps involve dropping into rails console as gitlab user for production environment and running the following commands. - $ gitlab-rails-console - irb(main):001:0> user = User.find_by(email: 'useraddress@domain') - irb(main):003:0> user.admin=true - irb(main):004:0> user.state='active' - irb(main):005:0> user.save - -Latest information regarding supported versions -=============================================== -Subscribe to https://wiki.debian.org/gitlab to get updates about new package -versions in unofficial repositories. diff --git a/debian/README.source b/debian/README.source deleted file mode 100644 index 5cd13e5870..0000000000 --- a/debian/README.source +++ /dev/null @@ -1,14 +0,0 @@ -Git Branches and meanings: - -master :always current development, now 9.x in contrib, using npm -syslibs :now 9.x in main, needs packages in NEW -master-8 :created to continue working on gitlab 8.x when master moved - to 9 (since 9.x upload in unstable, this branch is not relevant) -stretch-updates :now 8.x in main, security updates for stretch - -Create master-10 till 10.x is ready for unstable. Security updates should be -in stretch-updates branch or in temporary branches created from it. - -certain go dependencies of gitlab-workhorse is not yet packaged.So you'll have -to rename the previous workhorse orig tar when importing a new verision of gitlab - diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 0115b5dba1..0000000000 --- a/debian/changelog +++ /dev/null @@ -1,2878 +0,0 @@ -gitlab (15.2.3+ds1-2) experimental; urgency=medium - - * Team upload. - * Update minimum version of yamux in runtime dependency - - -- Mohammed Bilal Fri, 26 Aug 2022 00:19:34 +0530 - -gitlab (15.2.3+ds1-1) experimental; urgency=medium - - * Team upload. - * New upstream version 15.2.3+ds1 - * d/README.source: Add info regarding gitlab-workhorse - - -- Mohammed Bilal Thu, 25 Aug 2022 20:52:55 +0530 - -gitlab (15.2.2+ds1-6) experimental; urgency=medium - - * Add workhorse-vendor in upstream-file-list - - -- Pirate Praveen Tue, 23 Aug 2022 00:40:17 +0530 - -gitlab (15.2.2+ds1-5) experimental; urgency=medium - - * Fix arch:all build by separating dh overrides for gitlab and - gitlab-workhorse (thanks to Nilesh for help in troubleshooting and - reviewing changes) - - -- Pirate Praveen Tue, 23 Aug 2022 00:29:53 +0530 - -gitlab (15.2.2+ds1-4) experimental; urgency=medium - - * Remove obsolete initializers (Closes: #1014904) Thanks to Patrick Matthäi - and Heinrich Lee Yu - - -- Pirate Praveen Fri, 19 Aug 2022 21:16:43 +0530 - -gitlab (15.2.2+ds1-3) experimental; urgency=medium - - * Use more packaged ruby gem dependencies (Closes: #1017701) - - -- Pirate Praveen Fri, 19 Aug 2022 14:06:43 +0530 - -gitlab (15.2.2+ds1-2) experimental; urgency=medium - - * Use packaged version of ruby-gitlab-fog-azure-rm - * Install omniauth-oauth2 1.7.3 from rubygems.org - * Use packaged versions of graphql and gitlab-labkit - - -- Pirate Praveen Mon, 15 Aug 2022 22:39:58 +0530 - -gitlab (15.2.2+ds1-1) experimental; urgency=medium - - * New upstream version 15.2.2+ds1 - * Refresh patches - * Update (build) dependencies - * Install more gems directly from rubygems.org - * Remove obsolete initializer - - -- Pirate Praveen Sun, 14 Aug 2022 22:23:08 +0530 - -gitlab (15.1.4+ds1-1) experimental; urgency=medium - - [ Pirate Praveen ] - * Update minimum version of ruby-bootsnap to 1.9.4 - * New upstream version 15.1.3+ds1 - - [ Balasankar C] - * Install ActionCable configuration file (Closes: #1015303) - - [ Pirate Praveen ] - * New upstream version 15.1.4+ds1 - * Refresh patches - * Add debian/salsa-ci.yml - * Switched to golang-go from golang-any as work around (Closes #1016217) - * Install patches directory now present upstream - * Install more new gems from rubygems.org (packaged versions need update) - * Update dependencies - * Remove obsolete initializers/00_active_record_gitlab_schema.rb - (Closes: #1016965) - - -- Pirate Praveen Thu, 11 Aug 2022 00:13:06 +0530 - -gitlab (15.0.4+ds1-1) experimental; urgency=medium - - [ Antoine Le Gonidec ] - * Update syntax of database config - - [ Dmitry Smirnov ] - * Services: downgraded redis-server "Requires" to "Wants". - - [ Pirate Praveen ] - * New upstream version 15.0.4+ds1 (embed versions matching go.mod for gitaly - and yamux) - * Update dependencies - * Install more gems from rubygems.org (matching versions not in archive) - * Remove obsolete feature flags - - -- Pirate Praveen Sun, 17 Jul 2022 11:30:43 +0200 - -gitlab (14.10.5+ds1-1) experimental; urgency=medium - - * New upstream security release 14.10.5+ds1 (Fixes: #CVE-2022-2185, - CVE-2022-2235, CVE-2022-2230, CVE-2022-2229, CVE-2022-1983, CVE-2022-1963, - CVE-2022-2228, CVE-2022-1981, CVE-2022-2243, CVE-2022-2244, CVE-2022-1954, - CVE-2022-2270, CVE-2022-2250, CVE-2022-1999, CVE-2022-2227) - * Update minimum version of ruby-rack for security fix - - -- Pirate Praveen Fri, 01 Jul 2022 13:26:56 +0530 - -gitlab (14.10.4+ds1-1) experimental; urgency=medium - - * Use packaged version of prosemirror-view node module - * Use packaged version of ruby-gitlab-markup (drop patches) - * New upstream version 14.10.4+ds1 - * Refresh patches - * Update dependencies - * Install gitlab-dangerfiles gem via gem command required in Rakefile - * Add gitlab-dangerfiles as dependency in Gemfile - - -- Pirate Praveen Mon, 27 Jun 2022 20:29:17 +0530 - -gitlab (14.9.5+ds1-1) experimental; urgency=medium - - * New upstream version 14.9.5+ds1 (Fixes: CVE-2022-1680, CVE-2022-1940, - CVE-2022-1948, CVE-2022-1935, CVE-2022-1936, CVE-2022-1944, CVE-2022-1821, - CVE-2022-1783) - - -- Pirate Praveen Thu, 02 Jun 2022 21:08:59 +0530 - -gitlab (14.9.4+ds1-4) experimental; urgency=medium - - * Switch to packaged version of node-dateformat - * Bump Standards-Version to 4.6.1 (no changes needed) - - -- Pirate Praveen Sat, 14 May 2022 13:32:57 +0530 - -gitlab (14.9.4+ds1-3) experimental; urgency=medium - - * Switch to packaged version of node-mermaid - * Use packaged versions of d3, d3-sankey and d3-selection node modules - - -- Pirate Praveen Wed, 11 May 2022 18:19:22 +0530 - -gitlab (14.9.4+ds1-2) experimental; urgency=medium - - * Switch to packaged version of node-postcss - - -- Pirate Praveen Tue, 10 May 2022 18:42:20 +0530 - -gitlab (14.9.4+ds1-1) experimental; urgency=medium - - * New upstream version 14.9.4+ds1 - * Refresh patches - * Disable more tests that need unpackaged modules - * Upstream no longer ships file/directory named docker - * Update dependencies - * Check if graphiql-rails is installed before installing it via gem command - * Relax dependency on rdoc (ruby 3.0 don't specify any version) - - -- Pirate Praveen Sun, 08 May 2022 22:07:43 +0530 - -gitlab (14.8.6+ds1-1) experimental; urgency=medium - - * New upstream security release 14.8.6+ds1 (Fixes: CVE-2022-1423, - CVE-2022-1510, CVE-2022-1406, CVE-2022-1460, CVE-2022-1413, CVE-2022-1352, - CVE-2022-1428, CVE-2022-1417, CVE-2022-1124, CVE-2022-1416, CVE-2022-1431, - CVE-2022-1433, CVE-2022-1426) - - -- Pirate Praveen Tue, 03 May 2022 16:17:47 +0530 - -gitlab (14.8.5+ds1-4) experimental; urgency=medium - - * Update minimum version of js-cookie to 3.0 - - -- Pirate Praveen Mon, 02 May 2022 17:48:11 +0530 - -gitlab (14.8.5+ds1-3) experimental; urgency=medium - - * Use packaged versions of clipboard, codemirror and cron-validator node - modules - * Update minimum version of ruby-rqrcode and ruby-webauthn - - -- Pirate Praveen Sun, 10 Apr 2022 02:26:23 +0530 - -gitlab (14.8.5+ds1-2) experimental; urgency=medium - - * Update minimum version of ruby-gitlab-experiment - * Export GEM_HOME from gitlab-rake.sh (Closes: #1008932) - - -- Pirate Praveen Fri, 08 Apr 2022 23:33:47 +0530 - -gitlab (14.8.5+ds1-1) experimental; urgency=medium - - * Update minimum version of ruby-sidekiq-cron to 1.2 - * Fix max version of obsolete sherlock.rb initializer - * New upstream version 14.8.5+ds1 - * Refresh patches - * Update dependencies - - -- Pirate Praveen Tue, 05 Apr 2022 18:12:33 +0530 - -gitlab (14.7.7+ds1-2) experimental; urgency=medium - - * Update minimum version of ruby-acme-client - * Update minimum version of gitaly* to 14.7 - - -- Pirate Praveen Sat, 02 Apr 2022 14:08:54 +0530 - -gitlab (14.7.7+ds1-1) experimental; urgency=medium - - * Add ruby-webrick as dependency - * Update minimum version of ruby-google-protobuf - * Set GEM_HOME and GEM_PATH variables in rake-tasks.sh - * New upstream version 14.7.7+ds1 (Fixes: CVE-2022-1162, CVE-2022-1175, - CVE-2022-1190, CVE-2022-1185, CVE-2022-1148, CVE-2022-1121, CVE-2022-1120, - CVE-2022-1100, CVE-2022-1193, CVE-2022-1105, CVE-2022-1099, CVE-2022-1174, - CVE-2022-1188, CVE-2022-0740, CVE-2022-1189, CVE-2022-1157, CVE-2022-1111) - * Refresh patches - * Update minimum versions of dependencies - * Switch back to ruby-grpc package from archive - - -- Pirate Praveen Fri, 01 Apr 2022 21:51:31 +0530 - -gitlab (14.7.4+ds1-1) experimental; urgency=medium - - * Update minimum version of ruby-ruby-magic (for ruby-mini-portile2 compat) - * Update minimum version of gitaly (for ruby-gollum-lib update) - * New upstream version 14.7.4+ds1 - * Refresh patches (remove patches applied upstream) - * Add parser gem to Gemfile - * Remove obsolete initializer - * Update dependencies - * Install grpc and graphiql-rails using gem command - - -- Pirate Praveen Thu, 03 Mar 2022 20:58:25 +0530 - -gitlab (14.6.5+ds1-2) experimental; urgency=medium - - * Relax dependency on ruby-sanitize (allow ruby-sanitize 6.0) - - -- Pirate Praveen Sun, 27 Feb 2022 20:06:11 +0530 - -gitlab (14.6.5+ds1-1) experimental; urgency=medium - - * New upstream version 14.6.5+ds1 (Fixes: CVE-2022-0735, CVE-2022-0549, - CVE-2022-0751, CVE-2022-0741, CVE-2021-4191, CVE-2022-0738, CVE-2022-0489) - - -- Pirate Praveen Sun, 27 Feb 2022 12:52:23 +0530 - -gitlab (14.6.4+ds1-1) experimental; urgency=medium - - * Sort watch page based on recently created tags - * New upstream version 14.6.4+ds1 (Fixes: CVE-2022-0427, CVE-2022-0425, - CVE-2022-0123, CVE-2022-0136, CVE-2022-0283, CVE-2022-0390, CVE-2022-0373, - CVE-2022-0371, CVE-2021-39943, CVE-2022-0477, CVE-2022-0167, CVE-2022-0249, - CVE-2022-0344, CVE-2022-0488, CVE-2021-39931) - * Refresh patches - * Update minimum version of ruby-rouge to 3.27~ - * Move source to main section only gitlab binary package needs to be in - contrib - - -- Pirate Praveen Sat, 05 Feb 2022 19:16:42 +0530 - -gitlab (14.6.3+ds1-1) experimental; urgency=medium - - * New upstream version 14.6.3+ds1 - * Refresh patches - * Handle newly added files - * Update minimum versions of dependencies - * Remove obsolete config files - - -- Pirate Praveen Wed, 26 Jan 2022 23:32:03 +0530 - -gitlab (14.5.3+ds1-1) experimental; urgency=medium - - * Drop node-chart.js dependency and unused links to js libraries - * New upstream security release 14.5.3+ds1 (Fixes: CVE-2021-39946, - CVE-2022-0154, CVE-2022-0152, CVE-2022-0151, CVE-2022-0172, CVE-2022-0090, - CVE-2022-0125, CVE-2022-0124, CVE-2021-39942, CVE-2022-0093, CVE-2021-39927) - - -- Pirate Praveen Wed, 12 Jan 2022 13:07:24 +0530 - -gitlab (14.5.2+ds1-4) experimental; urgency=medium - - * Update minimum version of gitlab-common to 14.5 - - -- Pirate Praveen Fri, 17 Dec 2021 13:10:04 +0530 - -gitlab (14.5.2+ds1-3) experimental; urgency=medium - - * Rename debian/maintscript to debian/gitlab.mainscript - * Add debhelper templates to preinst (fixes the removing obsolete - conffile). Thanks to Nilesh Patra for helping troubleshoot. - - -- Pirate Praveen Fri, 17 Dec 2021 00:17:59 +0530 - -gitlab (14.5.2+ds1-2) experimental; urgency=medium - - * Fix path in maintscript - * Drop compat file, rely on debhelper-compat and bump compat level to 13 - * Adapt for debhelper compat 13 - - -- Pirate Praveen Thu, 16 Dec 2021 11:07:42 +0530 - -gitlab (14.5.2+ds1-1) experimental; urgency=medium - - * New upstream version 14.5.2+ds1 - * Refresh patches - * Install newly added files - * Update dependencies - * Relax dependency on ipynbdiff in Gemfile - * Remove obsolete feature flags - - -- Pirate Praveen Sun, 12 Dec 2021 18:43:46 +0530 - -gitlab (14.4.4+ds1-1) experimental; urgency=medium - - * Build with golang-any >= 2:1.17 - * New upstream security release 14.4.4+ds1 - * Update minimum version of gitaly to 14.4.4 - * Refresh patches - * Update minimum version of ruby-graphql to 1.11.10 - - -- Pirate Praveen Tue, 07 Dec 2021 22:29:12 +0530 - -gitlab (14.4.2+ds1-1) experimental; urgency=medium - - * New upstream version 14.4.2+ds1 - * Install new file added upstream - * Refresh patches and remove obsolete patches - * Update minimum versions of dependencies - * Reorganize patches to nodejs and tweaks - * Fix gitlab-puma service failing to start by requiring sidekiq/job_logger - - -- Pirate Praveen Thu, 18 Nov 2021 23:45:44 +0530 - -gitlab (14.3.4+ds1-2) experimental; urgency=medium - - * Replace gitaly build dependency with golang-gitlab-gitlab-org-gitaly-dev - * Update minimum versions of dependencies - - -- Pirate Praveen Tue, 16 Nov 2021 22:07:30 +0530 - -gitlab (14.3.4+ds1-1) experimental; urgency=medium - - * New upstream version 14.3.4+ds1 - * Update dependencies - * Refresh patches and create Gemfile subdirectory for patches - - -- Pirate Praveen Tue, 16 Nov 2021 16:26:26 +0530 - -gitlab (14.2.6+ds1-3) experimental; urgency=medium - - * Lock @tiptap/extension-code-block to 2.0.0-beta.16 - - -- Pirate Praveen Fri, 05 Nov 2021 01:15:21 +0530 - -gitlab (14.2.6+ds1-2) experimental; urgency=medium - - * Switch to bash for quotes support in arguments for gitlab-rake - * Update prior-version in maintscript for rm_conffile - - -- Pirate Praveen Thu, 04 Nov 2021 02:03:07 +0530 - -gitlab (14.2.6+ds1-1) experimental; urgency=medium - - * New upstream version 14.2.5+ds1 - * Refresh patches - * Update import path for workhorse - * Update minimum version of golang gitab-labkit - * Fix XS-Go-Import-Path (remove extra workhorse from import path) - * Rename workhorse binary to gitlab-workhorse - * New upstream version 14.2.6+ds1 - * Update minimum versions of gitaly, ruby-gitaly and gitlab-common - * Relax dependency on rails in Gemfile - * Update dependencies - * Remove obsolete maintscript - * Force specific version of monaco-editor-webpack-plugin for compatibility - * Update minimum version of ruby-unleash - * Use matching version of @tiptap/core in package.json - * Add a preinst script to check version of postgresql - * Tighten some tiptap extension versions too in package.json - - -- Pirate Praveen Thu, 04 Nov 2021 00:51:54 +0530 - -gitlab (14.1.7+ds1-2) experimental; urgency=medium - - * Update min versions of gitaly, ruby-gitaly, gitlab-common, ruby-gitlab-labkit - - -- Pirate Praveen Mon, 04 Oct 2021 20:55:32 +0530 - -gitlab (14.1.7+ds1-1) experimental; urgency=medium - - [ Sruthi Chandran ] - * New upstream version 14.1.7+ds1 - * Remove patches no longer required - * Refresh patches - * Run upstream file check before dh_install - * Set minimum versions for deps - * Install .browserslistrc - * Relax autoprefixer-rails version to ~> 10.2 - - [ Pirate Praveen ] - * Remove manual resolution for monaco-editor and fix version incompatibility - (Closes: #995572) - * Don't add babel plugins now added by upstream again in babel.config.js - - -- Pirate Praveen Sun, 03 Oct 2021 02:22:04 +0530 - -gitlab (14.0.10-2) experimental; urgency=medium - - * Update minimum versions of dependencies, for upgrading from buster, thanks - to lepalom for reporting. nodejs (>= 12~) for yarn 3.0, ruby-grape-logging - (>= 1.8~), postgresql-contrib (>= 12~) - - -- Pirate Praveen Mon, 20 Sep 2021 23:18:46 +0530 - -gitlab (14.0.10-1) experimental; urgency=medium - - [ Pirate Praveen ] - * Bump Standards-Version to 4.6.0 (no changes needed) - - [ Sruthi Chandran ] - * New upstream version 14.0.10 - * Add golang-github-hashicorp-yamux-dev to builddeps - * Set minimum version for golang-google-grpc-dev - * Disable failing tests - * Update upstream-file-list, install file and ignored-file-list - * Update upstream file check sh - * Update maintscript (remove obsolete initializers) - - [ Pirate Praveen ] - * Update minimum versions of dependencies and add new dependencies - * Relax dependency on autoprefixer-rails in Gemfile - * Remove obsolete initializers - * Remove config/initializers/mailer_retries.rb in clean (we have sidekiq 6) - * Fix activerecord 6.1.4 compatibility issue with postgresql cte (Closes: #993901) - * Add openssh-server to recommends (systemd nspawn do not have this by default) - - -- Pirate Praveen Thu, 09 Sep 2021 15:47:59 +0530 - -gitlab (13.12.9+ds1-3) experimental; urgency=medium - - * Change ruby2.7 dependency to ruby (for scripts that needs ruby) - * Update minimum version of ruby-rqrcode-rails3 for 2FA fix - * Switch back to using ruby-grpc package (instead of rubygems.org version) - - -- Pirate Praveen Tue, 10 Aug 2021 21:07:58 +0530 - -gitlab (13.12.9+ds1-2) experimental; urgency=medium - - * Switch back to using packaged ruby-google-protobuf (see #992008) - - -- Pirate Praveen Tue, 10 Aug 2021 01:05:43 +0530 - -gitlab (13.12.9+ds1-1) experimental; urgency=medium - - * New upstream security release 13.12.9+ds1 (Fixes: CVE-2021-22237, - CVE-2021-22236, CVE-2021-22239) - - -- Pirate Praveen Wed, 04 Aug 2021 16:31:30 +0530 - -gitlab (13.12.8+ds1-1) experimental; urgency=medium - - * New upstream security release 13.12.8+ds1 - Fixes: Arbitrary file read via design feature (Severity: critical) - - -- Pirate Praveen Thu, 08 Jul 2021 21:54:12 +0530 - -gitlab (13.12.6+ds1-1) experimental; urgency=medium - - * New upstream security release 13.12.6+ds1 (Fixes: CVE-2021-22223 and more) - * Refresh patches - * Update minimum versions of ruby-rails and ruby-nokogiri - - -- Pirate Praveen Fri, 02 Jul 2021 01:38:52 +0530 - -gitlab (13.12.4+ds1-1) experimental; urgency=medium - - * Update minimum version of golang-any (>= 2:1.15~) - * Export GEM_HOME in gitlab-rails-console script - * Install grpc and google-protobuf before GEM_HOME is set - * New upstream version 13.12.4+ds1 - - -- Pirate Praveen Mon, 21 Jun 2021 23:58:09 +0530 - -gitlab (13.12.3+ds1-7) experimental; urgency=medium - - * Set GEM_HOME variable in gitlab-debian.conf (this is required for gems - installed from rubygems.org) - - -- Pirate Praveen Mon, 21 Jun 2021 15:14:42 +0530 - -gitlab (13.12.3+ds1-6) experimental; urgency=medium - - * Move gem install to start of postinst, before regenerating Gemfile.lock - (Closes: #990103) - - -- Pirate Praveen Mon, 21 Jun 2021 14:09:44 +0530 - -gitlab (13.12.3+ds1-5) experimental; urgency=medium - - * Add workaround for #989774 (install google-protobuf from rubygems.org) - - -- Pirate Praveen Mon, 21 Jun 2021 01:03:03 +0530 - -gitlab (13.12.3+ds1-4) experimental; urgency=medium - - * Update minimum version of ruby-gitlab-experiment to 0.5.4 - - -- Pirate Praveen Fri, 18 Jun 2021 23:01:32 +0530 - -gitlab (13.12.3+ds1-3) experimental; urgency=medium - - * Update minimum version of ohai to 16.13.0-2 - - -- Pirate Praveen Thu, 17 Jun 2021 22:20:21 +0530 - -gitlab (13.12.3+ds1-2) experimental; urgency=medium - - * Backport fix for rails 6.0.3.7 support (Thanks to Antoine Le Gonidec) - (Closes: #989791) - - -- Pirate Praveen Thu, 17 Jun 2021 20:09:59 +0530 - -gitlab (13.12.3+ds1-1) experimental; urgency=medium - - * [d8d5ad1] New upstream version 13.12.3+ds1 - * Refresh patches - * Handle new files included by upstream - * Relax dependency on autoprefixer gem in Gemfile - * Update dependencies - * Remove dependency on ruby-google-protobuf (See #989774) - - -- Pirate Praveen Thu, 10 Jun 2021 00:27:31 +0530 - -gitlab (13.11.5+ds1-1) experimental; urgency=medium - - * New upstream security release 13.11.5+ds1 (Fixes: CVE-2021-22181) - - -- Pirate Praveen Wed, 02 Jun 2021 17:13:59 +0530 - -gitlab (13.11.3+ds1-1) experimental; urgency=medium - - * Relax dependency of gon in Gemfile and update minimum version in d/control - * Use node-rails-actioncable from system - * Drop dependency on ruby-jquery-atwho-rails (no longer used) - * New upstream patch release 13.11.3+ds1 - - -- Pirate Praveen Wed, 12 May 2021 15:55:16 +0530 - -gitlab (13.11.2+ds1-1) experimental; urgency=medium - - * New upstream version 13.11.2+ds1 - * Refresh patches - * Remove obsolete config files and update upstream config file list - * Update minimum versions of dependencies - * Remove obsolete puma initializer (we have puma 5.2.2) - - -- Pirate Praveen Fri, 30 Apr 2021 00:12:27 +0530 - -gitlab (13.10.4+ds1-1) experimental; urgency=medium - - * New upstream security release 13.10.4+ds1 (Fixes: CVE-2021-22209, - CVE-2021-22206, CVE-2021-22210, CVE-2021-22208, CVE-2021-22211) - * Update minimum version of node-mermaid to 8.9.2, ruby-carrierwave to 1.3.2 - and redis-server to 5:6.0.12~ - - -- Pirate Praveen Wed, 28 Apr 2021 17:47:54 +0530 - -gitlab (13.10.3+ds2-3) experimental; urgency=medium - - * Keep gitlab-workhorse binary in main - * Update minimum version of ruby-mail-room - - -- Pirate Praveen Sun, 25 Apr 2021 18:14:33 +0530 - -gitlab (13.10.3+ds2-2) experimental; urgency=medium - - * Update minimum version of node-prosemirror-{model,markdown} - * Use packaged versions of lodash and babel-plugin-lodash - * Relax dependency on ruby-rexml to allow version embedded in libruby2.7 - * Use packaged versions of @babel/* - * Update version of gitlab-workhorse to same version as gitlab - - -- Pirate Praveen Sat, 24 Apr 2021 00:24:27 +0530 - -gitlab (13.10.3+ds2-1) experimental; urgency=medium - - * Build gitlab-workhorse binary from workhorse directory - * New upstream version 13.10.3+ds1 - * Refresh patches - * Add golang-github-getsentry-raven-go-dev as build dependency - * Remove files no longer shipped by upstream from file lists - * New upstream version 13.10.3+ds2 (remove embedded raven-go) - * Update minimum versions of dependencies - - -- Pirate Praveen Sat, 17 Apr 2021 23:31:09 +0530 - -gitlab (13.9.6+ds1-1) experimental; urgency=medium - - * New upstream security release 13.9.6+ds1 - * Update minimum version of ruby-rexml to 3.2.5 - * Add ruby-saml as a dependency - * Refresh patches - - -- Pirate Praveen Thu, 15 Apr 2021 22:42:45 +0530 - -gitlab (13.9.5+ds1-1) experimental; urgency=medium - - * Update watch file regex for github.com components - * New upstream security release 13.9.5+ds1 - * Drop ruby-hipchat dependency and refresh patch for the same change in - Gemfile - * Add ruby-ruby-magic-static as new dependency - * Remove obsolete initializer - - -- Pirate Praveen Thu, 01 Apr 2021 16:38:24 +0530 - -gitlab (13.9.4+ds1-3) experimental; urgency=medium - - * Relax dependency on gitlab-labkit (for matching with gitaly requirement) - * Update minimum versions of ruby-rugged and ruby-licensee again - (ruby-rugged/libgit2 1.x now work after ruby-licensee was fixed) - - -- Pirate Praveen Sat, 27 Mar 2021 16:09:29 +0530 - -gitlab (13.9.4+ds1-2) experimental; urgency=medium - - * Revert "Update minimum versions of ruby-rugged and ruby-licensee" - ruby-rugged/libgit2 1.x breakage is not yet fixed. - - -- Pirate Praveen Tue, 23 Mar 2021 23:41:10 +0530 - -gitlab (13.9.4+ds1-1) experimental; urgency=medium - - * New upstream version 13.9.4+ds1 (Fixes Remote code execution via unsafe - user-controlled markdown rendering options) - - -- Pirate Praveen Fri, 19 Mar 2021 00:10:35 +0530 - -gitlab (13.9.3+ds1-2) experimental; urgency=medium - - * Update minimum versions of ruby-rugged and ruby-licensee (packaged versions - of these gems work again) - - -- Pirate Praveen Thu, 11 Mar 2021 21:46:20 +0530 - -gitlab (13.9.3+ds1-1) experimental; urgency=medium - - * New upstream version 13.9.3+ds1 - * Refresh patches - * Update debian/upstream-file-list - * Add set -e and fix typos in file names - * Update maintscript (remove obsolete initializers) and - upstream-config-file-list - * Update dependencies - - -- Pirate Praveen Thu, 11 Mar 2021 21:11:52 +0530 - -gitlab (13.8.5+ds1-2) experimental; urgency=medium - - * Update minimum version of gitaly to 13.8~ - * Fix typo in dependency (ruby-azure-storage-common) - - -- Pirate Praveen Tue, 09 Mar 2021 16:59:45 +0530 - -gitlab (13.8.5+ds1-1) experimental; urgency=medium - - * New upstream version 13.8.5+ds1 - * Refresh patches - * Relax dependency on bcrypt and webrick in Gemfile - * Update minimum versions of dependencies - - -- Pirate Praveen Mon, 08 Mar 2021 23:37:34 +0530 - -gitlab (13.7.8+ds1-1) experimental; urgency=medium - - [ Dmitry Smirnov ] - * watch: fixed upstream MUT/tarballs downloading with "uscan" and "origtargz". - * L:debian-rules-uses-unnecessary-dh-argument - * CI: minor corrections; exclude "buster-backports" and tags. - * watch: added "repacksuffix=+ds1". - * changelog update - * watch: corrected for "uscan --download-version" case. - - [ Pirate Praveen ] - * Remove elasticsearch-model component from debian/gbp.conf (now included - in elasticsearch-rails component) - * New upstream version 13.7.8+ds1 (Fixes: CVE-2021-22185, CVE-2021-22186) - * Refresh patches - * Update minimum version of ruby-thrift to 0.14~ - - -- Pirate Praveen Fri, 05 Mar 2021 16:21:41 +0530 - -gitlab (13.7.7-2) experimental; urgency=medium - - * Remove config-file-list generated during build from repo - * Remove more obsolete config files, thanks to Dragos Jarca and Lars Kruse - (Closes: #983779) - - -- Pirate Praveen Tue, 02 Mar 2021 23:55:53 +0530 - -gitlab (13.7.7-1) experimental; urgency=medium - - * New upstream version 13.7.7 - * Add --quiet to gitlab-sidekiq.service running bundle install --local - * Switch back to ruby-rugged 0.28 (use snapshot.debian.org) - * Refresh patches - * Ignore embedded gitlab-workhorse (packaged separately) - * Update minimum versions of ruby-fog-google and ruby-mail-room - * Add resolutions: typescript 4.1.5 in package.json - * Update minimum versions to ruby-commonmarker and ruby-progressbar - * Remove obsolete feature flags and initializers (Closes: #983346) - * Automatically check if any config files changed during build - - -- Pirate Praveen Mon, 01 Mar 2021 19:32:24 +0530 - -gitlab (13.6.7-3) experimental; urgency=medium - - * Add --quiet to gitlab-sidekiq.service running bundle install --local - * Switch back to ruby-rugged 0.28 (use snapshot.debian.org) - - -- Pirate Praveen Wed, 24 Feb 2021 21:46:34 +0530 - -gitlab (13.6.7-2) experimental; urgency=medium - - * Change dependency on ruby to ruby2.7 - * Regenerate Gemfile.lock before gitlab-sidekiq service start. Also provide - gitlab-update-gemfile-lock command to manually regenerate Gemfile.lock - (Closes: #944698, #914989) - * Update minimum version of gitaly (for gitaly-git2go command) - - -- Pirate Praveen Fri, 19 Feb 2021 14:20:13 +0530 - -gitlab (13.6.7-1) experimental; urgency=medium - - * Update minimum version of ruby to 2.7.2 and rubygems-integration to 1.18 - * New upstream version 13.6.7 - - -- Pirate Praveen Thu, 11 Feb 2021 23:39:07 +0530 - -gitlab (13.6.6-1) experimental; urgency=medium - - * Use gitlab-rails-console command in README.Debian - * Document how to activate a new user from rails console - * Update minimum version of ruby-attr-encrypted - * New upstream version 13.6.6 (Fixes: CVE-2021-22172, CVE-2021-22169) - - -- Pirate Praveen Thu, 04 Feb 2021 15:48:11 +0530 - -gitlab (13.6.5-1) experimental; urgency=medium - - [ Pirate Praveen ] - * Add node_modules as first path to resolve in webpack.config.js - * Fix syntax of nginx.ssl.config.example - - [ Dmitry Smirnov ] - * copyright: corrected syntax to pass "cme check dpkg-copyright". - - [ Pirate Praveen ] - * New upstream version 13.5.7 - * Update minimum version of ruby-mini-magick - * Update minimum version of node-popper.js - * New upstream version 13.6.5 - * Refresh patches - * Update upstream-file-list - * Update minimum version of dependencies and add new dependencies - * Sync patches with buster-fasttrack branch - - -- Pirate Praveen Sat, 30 Jan 2021 20:30:57 +0530 - -gitlab (13.5.6-1) experimental; urgency=medium - - * Use node-css-loader 5.x and node-postcss 8.x - * Switch to yarn 2.x with node-modules plugin - * Refactor to make node_modules and package.json write-able - * Use link: and portal: protocols in package.json for packaged modules - * Use link protocol only in case of permission errors - * New upstream version 13.5.5 - * Update nginx configuration using upstream templates - * Don't install yarn.lock (we use some dependencies from system) - * Switch back to using lodash from npmjs.com (see #979531) - * New upstream version 13.5.6 (Fixes: CVE-2021-22166, CVE-2020-26414) - - -- Pirate Praveen Fri, 08 Jan 2021 16:49:21 +0530 - -gitlab (13.4.7-2) unstable; urgency=medium - - [ Sruthi Chandran ] - * Add canvas as externals in webpack.config.js - - [ Pirate Praveen ] - * Use packaged versions of uuid, mermaid, katex, minimatch, js-yaml, - webpack-stats-plugin and font-awesome node modules - * Tighten dependency on node-autosize for bug fix (error in browser console) - - -- Pirate Praveen Thu, 17 Dec 2020 16:14:45 +0530 - -gitlab (13.4.7-1) unstable; urgency=medium - - * Use packaged version of pdfjs-dist and adapt for worker-loader 3 api - * Remove schema-utils 3.0 from package.json (incompatibilities resolved) - All modules depending on schema-utils are now provided by debian packages - only - * Install grpc using gem command (ruby-grpc package has an unfixed - regression - see #966653) - * Update uuid to ^8.3.1 in package.json - * New upstream version 13.4.7 (Fixes: CVE-2020-26407, CVE-2020-26408, - CVE-2020-13357, CVE-2020-26411, CVE-2020-26409) - * Drop dependency on ruby-grpc (now handled by gem install) - - -- Pirate Praveen Tue, 08 Dec 2020 15:32:56 +0530 - -gitlab (13.4.6-3) unstable; urgency=medium - - [ Pirate Praveen ] - * Use packaged version of css-loader, raw-loader, file-loader, style-loader - and copy-webpack-plugin - * Add schema-utils 3.0, mkdirp 1.0 and loader-utils 2.0 to package.json - to force yarn to move incompatible versions from gitlab's node_modules - directory to node_modules directory of other modules (Closes: #976310) - - -- Sruthi Chandran Sun, 06 Dec 2020 22:54:05 +0530 - -gitlab (13.4.6-2) unstable; urgency=medium - - * Upload to unstable (Closes: #976294) - * Set minimum version for grpc and google-protobuf - - -- Sruthi Chandran Wed, 02 Dec 2020 23:45:40 +0530 - -gitlab (13.4.6-1) experimental; urgency=medium - - [ Pirate Praveen ] - * Relax more test dependencies - * Add more autopkgtest dependencies - * Update patches to adjust more autopkgtest dependencies in Gemfile - * Run tests again and grant required database privilleges - * Run only a single test for now - * New upstream version 13.4.6 - * Bump Standards-Version to 4.5.1 (no changes needed) - - [ Sruthi Chandran ] - * Drop unused patch files - * Refresh patches - * Update new and removed files from d/gitlab.install - * Update dependencies - * Create link for .gitlab_kas_secret - - -- Sruthi Chandran Fri, 27 Nov 2020 02:25:29 +0530 - -gitlab (13.3.9-1) unstable; urgency=medium - - * Team Upload - - [ Pirate Praveen ] - * Relax dependency on bullet rubygem in Gemfile - * Add new autopkgtest dependencies - * Comment out png_quantizator dependency in Gemfile - - [ Abraham Raji ] - * New upstream version 13.3.9 (Fixes: CVE-2020-13355, CVE-2020-26405, - CVE-2020-13358, CVE-2020-13359, CVE-2020-13340, CVE-2020-13340, - CVE-2020-13353, CVE-2020-13354, CVE-2020-13352, CVE-2020-13356, - CVE-2020-13351, CVE-2020-13350, CVE-2020-13349, CVE-2020-13348) - - -- Abraham Raji Thu, 05 Nov 2020 12:23:49 +0530 - -gitlab (13.3.8-1) unstable; urgency=medium - - * New upstream version 13.3.8 - * Refresh patches - * Install new directory data - * Tighten versions of dependencies - * Create btree_gist extension in postgres database - * Switch back to using css-loader module from npmjs.com - * Tighten dependency on gitlab-shell and gitaly - - -- Pirate Praveen Wed, 28 Oct 2020 21:02:48 +0530 - -gitlab (13.2.10-1) unstable; urgency=medium - - [ Abraham Raji ] - * New upstream version 13.2.10 (Fixes: CVE-2020-13333, CVE-2020-13332, - CVE-2020-13335, CVE-2020-13334, CVE-2020-13327) - - -- Abraham Raji Sat, 03 Oct 2020 22:31:26 +0000 - -gitlab (13.2.8-2) unstable; urgency=medium - - [ Cédric Boutillier ] - * [ci skip] Add .gitattributes to keep unwanted files out of the source package - - [ Pirate Praveen ] - * Use packaged versions of prosemirror-markdown and timeago.js node modules - - -- Pirate Praveen Sun, 06 Sep 2020 14:11:53 +0530 - -gitlab (13.2.8-1) unstable; urgency=medium - - * Drop faraday-middleware-aws-signers-v4 from components list - * New upstream version 13.2.8 (Fixes: CVE-2020-13318, CVE-2020-13301, - CVE-2020-13284, CVE-2020-13298, CVE-2020-13313, CVE-2020-13311, - CVE-2020-13289, CVE-2020-13302, CVE-2020-13314, CVE-2020-13309, - CVE-2020-13287, CVE-2020-13306, CVE-2020-13299, CVE-2020-13300, - CVE-2020-13317, CVE-2020-13303, CVE-2020-13316, CVE-2020-13304, - CVE-2020-13305, CVE-2020-13307, CVE-2020-13308, CVE-2020-13315, - CVE-2020-13297, CVE-2020-13310) - * Refresh patches - * Update minimum version of node-jquery to 3.5 - * Remove faraday-middleware-aws-signers-v4 from upstream-file-list - - -- Pirate Praveen Thu, 03 Sep 2020 11:20:31 +0530 - -gitlab (13.2.6-3) unstable; urgency=medium - - [ Karthik ] - * Add puma dependency to debian/control, add puma systemd service, update - gitlab service with puma - - [ Pirate Praveen ] - * Add gitlab-puma.service as dependency of gitlab.service - * Remove unicorn from Gemfile and choose puma - * Add puma.rb and use it from gitlab-puma.service - * Update minimum version of gitlab-common to use unix socket in gitlab-shell - * Remove gitlab-unicorn.service and install gitlab-puma.service - - -- Pirate Praveen Thu, 20 Aug 2020 23:23:49 +0530 - -gitlab (13.2.6-2) unstable; urgency=medium - - * Switch to aws-sdk v3 with upstream patch - * Drop phantomjs from autopkgtest dependencies - * Add needs-internet restriction to autopkgtest - - -- Pirate Praveen Thu, 20 Aug 2020 17:30:32 +0530 - -gitlab (13.2.6-1) unstable; urgency=medium - - * New upstream version 13.2.6 - - -- Pirate Praveen Wed, 19 Aug 2020 03:01:51 +0530 - -gitlab (13.2.5-1) unstable; urgency=medium - - * Bump minimum version of webpack to 4.43 - * New upstream version 13.2.5 with a security fix (CVE ID not assigned yet) - * Refresh patches - * Relax dependency on ruby-browser - - -- Pirate Praveen Tue, 18 Aug 2020 20:03:24 +0530 - -gitlab (13.2.3-2) unstable; urgency=medium - - [ Pirate Praveen ] - * Tighten dependency on ruby-gitaly and ruby-acme-client - - [ Abraham Raji ] - * Added copyright notices for templates (Closes: #966085) - - [ Pirate Praveen ] - * Relax dependency on ruby-gitlab-sidekiq-fetcher - * Relax dependency on sidekiq gem in Gemfile to allow 6.x version - (Closes: #968239) - * Reupload to unstable (the version in unstable is already uninstallable, - so depending on some packages from experimental is not worse, it helps - security team as they need to worry about less CVEs) - - -- Pirate Praveen Tue, 11 Aug 2020 19:46:51 +0530 - -gitlab (13.2.3-1) experimental; urgency=medium - - * Move tmp/backups outside /run via symbolic link - * New upstream version 13.2.1 - * Refresh patches - * Tighten dependencies - * Remove files no longer shipped by upstream from install - * Allow gitlab user to create schema - * New upstream version 13.2.3 - - -- Pirate Praveen Sun, 09 Aug 2020 22:54:13 +0530 - -gitlab (13.1.6-1) experimental; urgency=medium - - * Move tmp/backups outside /run via symbolic link - * New upstream version 13.1.6 (Fixes: CVE-2020-13280, CVE-2020-13281, - CVE-2020-13286, CVE-2020-13285, CVE-2020-13283, CVE-2020-13282, - CVE-2020-13292, CVE-2020-13293, CVE-2020-13294, CVE-2020-13291, - CVE-2020-13288, CVE-2020-13290, CVE-2020-132935) - - -- Pirate Praveen Sun, 09 Aug 2020 01:30:33 +0530 - -gitlab (13.1.4-2) experimental; urgency=medium - - * Update minimum version of ruby to 2.7 - * Drop ruby 2.5 compat patches, we have ruby 2.7 in fasttrack now - * Remove obsolete initializer: rack_attack_new.rb (thanks to sunweaver and - onlyjob) - * Fix permissions for ${gitlab_data_dir}/shared/artifacts/tmp/* (thanks to - sunweaver) - - -- Pirate Praveen Thu, 16 Jul 2020 17:22:17 +0530 - -gitlab (13.1.4-1) experimental; urgency=medium - - * Tighten dependencies for ruby 2.7 support in fasttrack - * New upstream version 13.1.4 - - -- Pirate Praveen Fri, 10 Jul 2020 23:49:52 +0530 - -gitlab (13.1.3-1) experimental; urgency=medium - - * Use packaged versions of d3 and d3-sankey node modules - * Use packaged version of codemirror - * New upstream version 13.1.3 (Fixes: CVE-2020-15525) - - -- Pirate Praveen Thu, 09 Jul 2020 12:54:05 +0530 - -gitlab (13.1.2-1) experimental; urgency=medium - - * New upstream version 13.1.2 with many security fixes (CVE IDs not - assigned yet) - * Refresh patches - * Update minimum version of ruby-kaminari to 1.2.1 - - -- Pirate Praveen Thu, 02 Jul 2020 01:55:18 +0530 - -gitlab (13.1.1-1) experimental; urgency=medium - - * Use packaged version of node-compression-webpack-plugin - * Update minimum version of ruby-oauth2 to 1.4.4 - * Add patch to fix ruby 2.5 compatibility issue - * Use packaged versions: node-brace-expansion and node-cache-loader - * Use packaged version of node-glob - * New upstream version 13.1.1 - * Update minimum version of ruby-mail-room - * Refresh patches - - -- Pirate Praveen Wed, 01 Jul 2020 17:09:20 +0530 - -gitlab (13.1.0-1) experimental; urgency=medium - - * Update minimum version of webpack to 4.30~ - * Drop dependency on ruby-liquid and ruby-influxdb - * New upstream version 13.1.0 - * Refresh patches - * Update debian/upstream-file-list for new release - * Relax dependency on faraday gem - * Add rack-timeout gem to Gemfile - * Tighten dependencies (remove ruby-omniauth-ultraauth) - * Update dependencies on ruby-faraday, ruby-sentry-raven and - ruby-grape-entity - * Switch to using structure.sql from schema.rb for database initialization - - -- Pirate Praveen Mon, 29 Jun 2020 15:51:48 +0530 - -gitlab (13.0.6-2) experimental; urgency=medium - - * Switch to using structure.sql from schema.rb for database initialization - * Add rack-timeout gem to Gemfile - * Relax dependency on ruby-grape-entity - - -- Pirate Praveen Sat, 27 Jun 2020 23:07:50 +0530 - -gitlab (13.0.6-1) experimental; urgency=medium - - * New upstream version 13.0.6 with a security fix (CVE ID not - assigned yet) - - -- Pirate Praveen Thu, 11 Jun 2020 17:01:47 +0530 - -gitlab (13.0.4-1) experimental; urgency=medium - - * Add link to issue about missing rack-timeout - * Tighten dependency on ruby-gitaly and yarnpkg - * Update minimum version for rm_conffile to include 12.10.7 - * New upstream version 13.0.4 with a security fix (CVE ID not - assigned yet) - - -- Pirate Praveen Thu, 04 Jun 2020 15:26:50 +0530 - -gitlab (13.0.3-1) experimental; urgency=medium - - * New upstream version 13.0.0 - * Refresh patches - * Handle newly added files in this release - * Add (ruby-)rack-timeout to Gemfile and Depends - * Remove obsolete initializer from /etc/gitlab - * Use packaged version of node-vue-template-compiler - * Tighten minimum version of gitaly - * New upstream version 13.0.3 - - -- Pirate Praveen Sat, 30 May 2020 21:13:54 +0530 - -gitlab (12.10.7-1) experimental; urgency=medium - - * New upstream version 12.10.7 with many security fixes (CVE IDs not - assigned yet) - - -- Pirate Praveen Thu, 28 May 2020 23:13:13 +0530 - -gitlab (12.10.3-3) experimental; urgency=medium - - * Update css-loader options in config/webpack.config.js - - -- Pirate Praveen Mon, 18 May 2020 16:35:38 +0530 - -gitlab (12.10.3-2) experimental; urgency=medium - - * Update dependency on node-css-loader to 2.1.1 - - -- Pirate Praveen Sat, 16 May 2020 15:57:44 +0530 - -gitlab (12.10.3-1) experimental; urgency=medium - - * New upstream version 12.10.3 - * Use packaged version of vue node module - * Update minimum version of ruby-faraday - - -- Pirate Praveen Sat, 09 May 2020 16:28:56 +0530 - -gitlab (12.10.2-2) experimental; urgency=medium - - * Use packaged version of node-babel-loader - * Relax dependency on net-ssh gem to allow new major version - - -- Pirate Praveen Mon, 04 May 2020 07:00:12 +0530 - -gitlab (12.10.2-1) experimental; urgency=medium - - * Fix debian/watch for new gitlab.com tags page change - * New upstream version 12.10.2 (Fixes: CVE-2020-12448, CVE-2020-10187) - * Update minimum version of ruby-nokogiri to 1.10.9 - - -- Pirate Praveen Fri, 01 May 2020 12:38:53 +0530 - -gitlab (12.10.1-1) experimental; urgency=medium - - * Use packaged version of babel node module - * New upstream version 12.10.1 - - -- Pirate Praveen Sat, 25 Apr 2020 11:02:26 +0530 - -gitlab (12.10.0-1) experimental; urgency=medium - - * Drop embedded copy of derailed_benchmarks and use packaged version - * Stop excluding non-dfsg files (removed upstream) - * New upstream version 12.10.0 - * Refresh patches - * Update gitlab.install (remove files not present) - * Update upstream file list - * Tighten dependencies - * Fix typo in dependency name - * Update lintian overrides - * Make db/structure.sql writable by gitlab user - * Tighten dependency on gitaly - * Remove initializer not needed (we have the required rails version) - * Relax dependency on gitaly ruby gem in Gemfile - - -- Pirate Praveen Wed, 22 Apr 2020 23:51:56 +0530 - -gitlab (12.9.3+dfsg-1) experimental; urgency=medium - - * New upstream version 12.9.3+dfsg (Fixes: CVE-2020-11505, CVE-2020-11506, - CVE-2020-11649) - * Refresh patches - - -- Pirate Praveen Wed, 15 Apr 2020 14:49:03 +0530 - -gitlab (12.9.2+dfsg-1) experimental; urgency=medium - - * Exclude one_password binaries and embed snowplow-javascript-tracker - (Closes: #943987) - * New upstream version 12.9.2+dfsg - * Add comments to all patches - - -- Pirate Praveen Mon, 13 Apr 2020 15:19:33 +0530 - -gitlab (12.9.2-6) experimental; urgency=medium - - * Move source package also to contrib as gitlab-common is moved to src:gitaly - * Update lintian overrides - * Update copyright file with missing attributions - - -- Pirate Praveen Sun, 12 Apr 2020 19:46:25 +0530 - -gitlab (12.9.2-5) experimental; urgency=medium - - [ vv221 ] - * Build assets generated by webpack in production mode (Closes: #956508, - #927297) - - [ Pirate Praveen ] - * Drop gitlab-common binary (moved to src:gitaly) - * Drop work around for missing assets/select2.png (not required in - NODE_ENV=production mode for webpack) - - -- Pirate Praveen Sun, 12 Apr 2020 17:52:22 +0530 - -gitlab (12.9.2-4) experimental; urgency=medium - - * Remove --max-old-path option to webpack (correctly passed in NODE_OPTIONS) - * Exclude packaged modules from transpiling (webpack/babel-loader) - (Closes: #956449) - - -- Pirate Praveen Sat, 11 Apr 2020 19:53:38 +0530 - -gitlab (12.9.2-3) experimental; urgency=medium - - * Tighten dependency on gitlab-common - - -- Pirate Praveen Sat, 11 Apr 2020 16:37:06 +0530 - -gitlab (12.9.2-2) experimental; urgency=medium - - * Tighten dependency on ruby-graphql (for backports) - * Pass NODE_OPTIONS="--max-old-space-size=2048" to webpack to work with - nodejs 10 (Closes: #956211) - - -- Pirate Praveen Sat, 11 Apr 2020 01:29:14 +0530 - -gitlab (12.9.2-1) experimental; urgency=medium - - * Switch to gitlab's fork of derailed_benchmarks gem - * New upstream version 12.9.2 - * Change dependency: ruby-slack-notifier -> ruby-slack-messenger - * Tighten dependencies: ruby-rouge, ruby-diffy, ruby-gitlab-labkit - * Tighten dependencies: ruby-mail-room, ruby-gitaly, gitaly - * Tighten dependencies: gitlab-shell, gitlab-workhorse - * Update node-* dependencies - * Remove dependencies: node-cache-loader, node-raw-loader, node-file-loader - * Update minimum version of nodejs to 12 (See #956211) - * Add special handling for webpack to find .json file (Closes: #956218) - * Override json evil license lintian error (listed as an example license) - - -- Pirate Praveen Fri, 10 Apr 2020 09:25:28 +0530 - -gitlab (12.8.8-6) experimental; urgency=medium - - * Start nginx after letsencrypt configuration - * Drop dependency on libjs-pdf (not needed anymore) - * Remove obsolete initializer: active_record_becomes.rb (Closes: #955732) - - -- Pirate Praveen Sat, 04 Apr 2020 16:11:16 +0530 - -gitlab (12.8.8-5) experimental; urgency=medium - - * Add a work around for missing assets/select2.png error on web console - (See upstream issue #213245) - - -- Pirate Praveen Fri, 03 Apr 2020 17:44:31 +0530 - -gitlab (12.8.8-4) experimental; urgency=medium - - * Refresh protobuf compat patch (remove fuzz) - * Use jquery.waitforimages from npmjs.com (packaged version is broken) - - -- Pirate Praveen Thu, 02 Apr 2020 20:22:43 +0530 - -gitlab (12.8.8-3) experimental; urgency=medium - - * Tighten dependencies for dependencies in buster-backports - * Tighten dependency on ruby-grape-path-helpers (fixes issue creation) - - -- Pirate Praveen Wed, 01 Apr 2020 20:24:55 +0530 - -gitlab (12.8.8-2) experimental; urgency=medium - - * Exclude core-js from transpiling (Closes: #954993) - - -- Pirate Praveen Sat, 28 Mar 2020 19:55:14 +0530 - -gitlab (12.8.8-1) experimental; urgency=medium - - * New upstream version 12.8.8 (Fixes: CVE-2020-9795, CVE-2020-10956, - CVE-2020-10955, CVE-2020-10954, CVE-2020-10952) - * Bump Standards-Version to 4.5.0 (no changes needed) - * Add new dependencies for embedded derailed_benchmarks gem - - -- Pirate Praveen Sat, 28 Mar 2020 18:12:33 +0530 - -gitlab (12.8.6-1) experimental; urgency=medium - - [ Sruthi Chandran ] - * New upstream version 12.8.6 - * Update embedded module versions - * Remove embedded doorkeeper as it is available in experimental - * Deleted patches already applied upstream - 0488-relax-rdoc.patch, - 0670-allow-doorkeepr-4_3.patch, 0770-bump-node-d3.patch - * Refresh patches - - [ Pirate Praveen ] - * Add ruby-stackprof as dependency - * Drop unused patch files - * Drop patch to lower minimum ruby version (already satsfied in buster) - * Removed now unused d3 modules from dependencies - * Tighten dependency on ruby-method-source and ruby-grape - * Cherry pick patch from upstream merge request to support grape 1.3 - * Fix protobuf compatibility issue with patch (Closes: #942633) - * Tighten dependency on ruby-rack and ruby-rails - - -- Pirate Praveen Thu, 26 Mar 2020 17:25:38 +0530 - -gitlab (12.6.8-2) experimental; urgency=medium - - * Relax dependency on rails in Gemfile - * Relax deckar01-task_list dependency in Gemfile - - -- Pirate Praveen Tue, 17 Mar 2020 17:31:39 +0530 - -gitlab (12.6.8-1) experimental; urgency=medium - - * Refresh stable gems in test group - * Update autopkgtest Depends - * Include development, test group in Gemfile for autopkgtest - * Use packaged version of node-xterm - * New upstream version 12.6.8 - - -- Pirate Praveen Sat, 07 Mar 2020 23:23:03 +0530 - -gitlab (12.6.7-2) experimental; urgency=medium - - * Use more packaged node modules - * Don't run full autopkgtest till some gems are packaged - - -- Pirate Praveen Sun, 23 Feb 2020 19:48:40 +0530 - -gitlab (12.6.7-1) experimental; urgency=medium - - [ Abhijith PA ] - * New upstream version 12.6.6 (Fixes: CVE-2020-7973, CVE-2020-7968) - * Remove patch 0760-bump-rubyzip.patch - * Refresh patches. - - [ Pirate Praveen ] - * Update minimum version of ruby-excon and ruby-rack-cors - * New upstream version 12.6.7 - * Relax ruby-rack-cors version in Gemfile - * Add lines removed by mistake in an earlier commit - * Relax dependency on rdoc (ruby 2.5 comes with rdoc 6.0) - * Refresh patches again to relax all stable gems - - -- Pirate Praveen Sat, 15 Feb 2020 14:12:32 +0100 - -gitlab (12.6.4-1) experimental; urgency=medium - - * New upstream version 12.6.4 - * Fix and restore 0740-use-packaged-modules.patch contents of which was - deleted by mistake earlier - * Remove embedded core-js as required version is now available - - -- Sruthi Chandran Tue, 14 Jan 2020 01:24:48 +0530 - -gitlab (12.6.2-2) experimental; urgency=medium - - [ Utkarsh Gupta ] - * Embed doorkeeper (Closes: #947754) - * Fix d/control - - [ Sruthi Chandran ] - * Remove .eslintrc.yml files to fix lintian errors - * Remove embedded module heapy as packaged version is now available - - -- Utkarsh Gupta Sat, 04 Jan 2020 02:59:10 +0530 - -gitlab (12.6.2-1) experimental; urgency=medium - - * New upstream version 12.6.2 (Fixes: CVE-2019-20142, CVE-2019-20143, - CVE-2019-20144, CVE-2019-20145, CVE-2019-20146, CVE-2019-20147, - CVE-2019-20148, CVE-2020-5197) - - -- Pirate Praveen Fri, 03 Jan 2020 19:14:46 +0530 - -gitlab (12.6.1-1) experimental; urgency=medium - - [ Sruthi Chandran ] - * New upstream version 12.6.1 - * Remove embedded gitlab peek as no longer required - * Refresh patches - * Override false lintian error - - [ Pirate Praveen ] - * Tighten dependencies - * Remove gitlab-peek from upstream-file-list (component removed) - * Update minimum version of ruby-aws-sdk for bug fix - * Remove obsolete initializer: rack_attack_git_basic_auth.rb - - -- Pirate Praveen Thu, 02 Jan 2020 01:12:27 +0530 - -gitlab (12.5.4-2) experimental; urgency=medium - - * Update minimum version of ruby-gpgme to 2.0.19 - * Update minimum version of ruby-premailer-rails to 1.10.3 - - -- Pirate Praveen Tue, 31 Dec 2019 15:48:16 +0530 - -gitlab (12.5.4-1) experimental; urgency=medium - - * New upstream version 12.5.4 - * Refresh patches - * Update upstream file list - * Relax dependency on responders in Gemfile - * Tighten dependencies - * Relax dependency on grpc and google-protobuf gems (to fix ssh access) - - -- Pirate Praveen Mon, 30 Dec 2019 17:36:49 +0530 - -gitlab (12.4.6-1) experimental; urgency=medium - - [ Pirate Praveen ] - * Update minimum version of yarnpkg to 1.19~ - * Check if yarn cache directory is present before updating permissions - * Update minimum version of git to 2.24~ - * New upstream version 12.3.8 - * Refresh patches - * Remove EE only gems from Gemfile - * Update minimum versions of ruby-graphql and ruby-fog-google - * [Embedded dependencies] Remove snowplow-tracker and add - elasticsearch-model, elasticsearch-rails, - faraday-middleware-aws-signers-v4 and gitlab-peek - * Update minimum versions of ruby-aws-sdk, ruby-gitlab-sidekiq-fetcher, - ruby-jira, ruby-chronic-duration, ruby-prof, gitlab-shell - * Relax dependency on kubeclient in Gemfile to allow 4.3 - * Remove gitlab-license gem from Gemfile (EE only) - * Add new dependencies: ruby-net-ntp, ruby-unleash, ruby-net-dns, - ruby-countries, ruby-elasticsearch as dependency - - [ Abhijith PA ] - * New upstream version 12.3.9 - - [ Pirate Praveen ] - * New upstream version 12.4.6 - * Don't install 16790-render-xml-artifacts.yml - * Update ignored files and upstream files lists - * Relax asciidoctor-plantuml and rouge in Gemfile - * Add dependency on ruby-gitlab-net-dns - * Remove obsolete config file - * Update asciidoctor-plantuml require statement for new api - * Update minimum version of gitaly, asciidoctor-plantuml, ruby-rouge - - -- Pirate Praveen Thu, 26 Dec 2019 21:03:03 +0530 - -gitlab (12.2.9-5) experimental; urgency=medium - - * Bump minimum version of ruby-font-awesome-rails to allow rails 5.2.3 - * Add patches for CVEs (Fixes: CVE-2019-19254, CVE-2019-19257) - * Tighten dependency on gitlab-workhorse and gitaly (Fixes: CVE-2019-19260) - * Set minimum version of ruby-gitlab-labkit as 0.5~ (for gitaly 1.65.2) - - -- Pirate Praveen Fri, 29 Nov 2019 12:10:38 +0530 - -gitlab (12.2.9-4) experimental; urgency=medium - - * Update node-d3 to version 5.12 (required to update rollup to 1.x) - - -- Pirate Praveen Fri, 22 Nov 2019 21:25:38 +0530 - -gitlab (12.2.9-3) experimental; urgency=medium - - [ Dmitry Smirnov ] - * Revert "Add sp.js to debian/missing-sources" - - [ Pirate Praveen ] - * Add gitlab-rails-console command as a convenience script - * Update minimum version for rm_confifile maintscript option - - [ Utkarsh Gupta ] - * Add patch to bump rubyzip (Closes: #944906) - - [ Pirate Praveen ] - * Bump minimum version of ruby-zip to 2.0 to match Gemfile - - -- Pirate Praveen Wed, 20 Nov 2019 13:16:32 +0530 - -gitlab (12.2.9-2) experimental; urgency=medium - - * Change .cache/yarn/v4 -> .cache/yarn/v6 - * Add sp.js to debian/missing-sources - - -- Utkarsh Gupta Sat, 02 Nov 2019 01:40:43 +0530 - -gitlab (12.2.9-1) experimental; urgency=high - - * New upstream version 12.2.9 (Fixes: CVE-2019-18446 CVE-2019-18447 - CVE-2019-18448 CVE-2019-18449 CVE-2019-18450 CVE-2019-18451 - CVE-2019-18452 CVE-2019-18453 CVE-2019-18454 CVE-2019-18455 - CVE-2019-18457 CVE-2019-18458 CVE-2019-18459 CVE-2019-18460 - CVE-2019-18461 CVE-2019-18462 CVE-2019-18463) - - -- Utkarsh Gupta Thu, 31 Oct 2019 01:43:16 +0530 - -gitlab (12.2.8-2) experimental; urgency=medium - - [ Dmitry Smirnov ] - * CI: new lintian job + minor corrections - * CI: re-factored - - [ Pirate Praveen ] - * Update minimum versions of bundler and nodejs - * Update minimum versions of gitaly, gitlab-workhorse and gitlab-shell - - -- Pirate Praveen Thu, 24 Oct 2019 23:47:12 +0530 - -gitlab (12.2.8-1) experimental; urgency=medium - - [ Dmitry Smirnov ] - * CI: unpack MUT components - - [ Sruthi Chandran ] - * New upstream version 12.2.8 - * Update deps - * Embed snowplow-tracker as component - * Use system ruby-statistics - * Add contracts, dependency of embedded snowplow in dependencies - * Refresh patches and delete obselete patches - * Remove old config files - - [ Pirate Praveen ] - * Add ruby-invisible-captcha as dependency - * Tighten dependency on ruby-gitlab-labkit - * Remove obsolete conf file: initializers/postgresql_opclasses_support.rb - - -- Sruthi Chandran Sun, 20 Oct 2019 22:59:27 +0530 - -gitlab (12.1.14-1) experimental; urgency=medium - - [ Pirate Praveen ] - * Add node-core-js (<< 3~) constraint to use embedded core-js module - (Closes: #941909) - - [ Utkarsh Gupta ] - * New upstream version 12.1.14 - * Bump Standards-Version to 4.4.1 - - -- Utkarsh Gupta Mon, 07 Oct 2019 21:29:31 +0530 - -gitlab (12.1.13-2) experimental; urgency=medium - - * Fix last version of initializers/active_record_verbose_query_logs.rb (this - fixes the failure during installation) - - -- Pirate Praveen Sat, 05 Oct 2019 23:08:35 +0530 - -gitlab (12.1.13-1) experimental; urgency=medium - - [ Sruthi Chandran ] - * New upstream version 12.1.13 - * Refresh patches and delete patches already applied upstream - * Remove already packaged embedded modules (arel, gitlab-labkit, jwt, - omniauth-google-oauth2 and rails) - * Add patch to relax gitlab-labkit - * Add derailed_benchmarks, heapy and ruby-statistics gems as components - - [ Pirate Praveen ] - * Tighten dependencies - * Fix relative path in config/initializers - * Set path for gitlab.rb - * Remove obsolete initializers - - [ Dmitry Smirnov ] - * Added helper script to unpack MUT components; CI orig tarball handling correction. - - -- Sruthi Chandran Sat, 05 Oct 2019 12:15:28 +0530 - -gitlab (12.0.9-4) experimental; urgency=medium - - * Update minimum version of gitaly to 1.47.3 - - -- Pirate Praveen Fri, 27 Sep 2019 22:46:22 +0530 - -gitlab (12.0.9-3) experimental; urgency=medium - - * Update watch file (gitlab-ce is now gitlab-foss) - * Add core-js 3 as component (require transition) - - -- Pirate Praveen Wed, 25 Sep 2019 15:52:54 +0530 - -gitlab (12.0.9-2) experimental; urgency=medium - - * Add patch to bump asciidoctor (Closes: #940814) - * Update minimum version for asciidoctor and ruby-octokit - - -- Utkarsh Gupta Mon, 16 Sep 2019 22:37:08 +0530 - -gitlab (12.0.9-1) experimental; urgency=high - - * Team Upload - * New upstream version 12.0.9 (Closes: #940007) - (Fixes: CVE-2019-16170) - - -- Nilesh Wed, 11 Sep 2019 10:12:18 -0400 - -gitlab (12.0.8-3) experimental; urgency=medium - - * Update minimum version of ruby-gitaly-proto dependency - - -- Pirate Praveen Wed, 11 Sep 2019 11:13:07 +0530 - -gitlab (12.0.8-2) experimental; urgency=medium - - * Add missing dependencies - - -- Pirate Praveen Tue, 10 Sep 2019 23:33:54 +0530 - -gitlab (12.0.8-1) experimental; urgency=high - - * New upstream version 12.0.8 (Fixes: CVE-2019-15728 CVE-2019-15730 - CVE-2019-15722 CVE-2019-15729 CVE-2019-15721 CVE-2019-15727 CVE-2019-15726 - CVE-2019-15724 CVE-2019-15725 CVE-2019-15723 CVE-2019-15732 CVE-2019-15731 - CVE-2019-15738 CVE-2019-15737 CVE-2019-15734 CVE-2019-15739 CVE-2019-15740 - CVE-2019-15733 CVE-2019-15736 CVE-2019-15741) - * Remove dfsg as the files are removed upstream - * Refresh patches and delete obsolete patches - * Remove already packaged embedded modules (ruby-omniauth-ultraauth, - ruby-omniauth-salesforce, ruby-apollo-upload-server and ruby-sassc-rails) - - -- Sruthi Chandran Sat, 07 Sep 2019 21:38:23 +0530 - -gitlab (11.11.8+dfsg-1) experimental; urgency=medium - - * New upstream security release 11.11.8+dfsg (Closes: #934708) - (Fixes: CVE-2019-14942 CVE-2019-14944) - * Remove embedded jaeger-client, opentracing and thrift - - -- Sruthi Chandran Wed, 14 Aug 2019 17:14:06 +0530 - -gitlab (11.11.7+dfsg-1) experimental; urgency=medium - - [ Pirate Praveen ] - * New upstream security release 11.11.7+dfsg (Closes: #933785) - (Fixes: CVE-2019-5470, CVE-2019-5469, CVE-2019-5468, CVE-2019-5466, - CVE-2019-5465, CVE-2019-5464, CVE-2019-5463, CVE-2019-5462, CVE-2019-5461) - * Use packaged version of node-d3 - * Refresh patches - * Bump standards version to 4.4.0 - * Install security.txt - * Update embedded rails version to 5.1.7 - * Add ruby-omniauth-openid-connect, ruby-sassc and ruby-jaeger-client as - new dependencies. - * Embed omniauth-ultraauth, omniauth-salesforce, apollo_upload_server, - sassc-rails, gitlab-labkit - * Update dependency on ruby-sidekiq and ruby-nokogiri, gitaly, - ruby-fog-google, ruby-batch-loader, ruby-gitaly-proto, ruby-grpc - - [ Dmitry Smirnov ] - * CI: dropped .git directory and added job to build on Buster. - - [ Pirate Praveen ] - * Update minimum version of gitaly - * Switch to packaged version of webpack - * Use packaged versions of node-worker-loader, node-cache-loader, - node-imports-loader, node-exports-loader, node-url-loader, node-raw-loader - and node-file-loader - * Remove upstream-file-list.new in clean - - -- Pirate Praveen Sun, 11 Aug 2019 13:00:50 +0530 - -gitlab (11.10.8+dfsg-1) experimental; urgency=medium - - [ Pirate Praveen ] - * New upstream security release 11.10.8+dfsg (Fixes: CVE-2019-13001, - CVE-2019-13002, CVE-2019-13003, CVE-2019-13004, CVE-2019-13005, - CVE-2019-13006, CVE-2019-13007, CVE-2019-13009,CVE-2019-13010, - CVE-2019-13011, CVE-2019-13121) - * Refresh patches - * Use packaged versions of node-autosize, axios, brace-expansion, chart.js, - core-js, css-loader, d3-* sub modules, fuzzaldrin-plus, glob, jed, jquery, - jquery-ujs, jquery.waitforimages, js-cookie, jszip, jszip-utils, mousetrap, - popper.js, raven-js, bootstrap, three-orbit-control, three-stl-loader, - timeago.js, dateformat, webpack-stats-plugin and vue-resource - * Use packaged pikaday and update path in application.scss (Closes: #930529) - - -- Pirate Praveen Sun, 07 Jul 2019 13:14:52 +0530 - -gitlab (11.10.5+dfsg-1) experimental; urgency=medium - - [ Pirate Praveen ] - * New upstream security release 11.10.5+dfsg (Closes: #930004) - (Fixes: CVE-2019-12428, CVE-2019-12431, CVE-2019-12432, CVE-2019-12433, - CVE-2019-12434, CVE-2019-12441, CVE-2019-12442, CVE-2019-12443, - CVE-2019-12444, CVE-2019-12445, CVE-2019-12446) - * Arrange changelog in chronological order - * Refresh patches - - [ Abhijith PA ] - * Update changelog - - -- Pirate Praveen Wed, 05 Jun 2019 12:35:18 +0530 - -gitlab (11.8.10+dfsg-1) unstable; urgency=medium - - * Team upload - * New upstream release. - * Remove unwanted lintian-overrides. [ 26a2fcc3] - - -- Abhijith PA Thu, 30 May 2019 16:15:39 +0530 - -gitlab (11.10.4+dfsg-2) experimental; urgency=medium - - * Bump devise to 4.6.2 - * Add patch to bump devise to 4.6.2 - - -- Utkarsh Gupta Tue, 21 May 2019 21:07:19 +0530 - -gitlab (11.10.4+dfsg-1) experimental; urgency=medium - - [ Utkarsh Gupta ] - * New upstream version 11.10.4+dfsg - * Update d/changelog - * Update 0050-relax-stable-libs.patch - * Refresh d/patches - * Install graphql-tag via yarnpkg - * Update d/copyright to exclude pdf.* - * Add lintian-overrides for false-positive errors - * Update d/control to update gem versions - * Do not use --frozen-lockfile with yarnpkg - * Update d/upstream-file-list - * Make yarn.lock writable - * Add myself as an uploader - - [ Abhijith PA ] - * remove embedded pdf.js and use libjs-pdf - - [ Pirate Praveen ] - * Remove obsolete configuration files - - -- Utkarsh Gupta Sat, 18 May 2019 01:40:29 +0530 - -gitlab (11.8.9+dfsg-1) unstable; urgency=medium - - * Team upload - * New upstream version 11.8.9+dfsg (Fixes: CVE-2019-11544, CVE-2019-11546, - CVE-2019-11547, CVE-2019-11548, CVE-2019-11549) (Closes: #928221) - * Update d/patches/* - - -- Utkarsh Gupta Sat, 04 May 2019 00:56:51 +0530 - -gitlab (11.8.6+dfsg-1) unstable; urgency=medium - - * Team upload - * New upstream version 11.8.6 (Fixes: CVE-2018-5158, CVE-2019-10109, - CVE-2019-10110, CVE-2019-10111, CVE-2019-10113, CVE-2019-10115, - CVE-2019-10116, CVE-2019-10640) - * Use libjs-pdf instead of embedded pdf.js - * Add gitlab.examples - - -- Abhijith PA Wed, 03 Apr 2019 18:19:49 +0530 - -gitlab (11.8.3-1) unstable; urgency=high - - [ Pirate Praveen ] - * Set minimum version of git to 2.18 - - [ Sruthi Chandran ] - * New upstream version 11.8.3 (Closes: #925196) (Fixes: CVE-2019-9866) - - -- Sruthi Chandran Fri, 22 Mar 2019 00:19:33 +0530 - -gitlab (11.8.2-3) unstable; urgency=medium - - * Add link to gitlab page on Debian wiki in README.Debian - * Set minimum version of ruby to 1:2.5~ and add conflict with libruby2.3 - (to support smooth upgrading from stretch-backports) - * Tighten dependency on ruby-lograge - * Remove obsolete config files - * Drop patch which expected rails 5.2 - * Handle migration from rails 4.2 - - -- Pirate Praveen Sun, 17 Mar 2019 18:34:25 +0530 - -gitlab (11.8.2-2) unstable; urgency=medium - - [ Sruthi Chandran ] - * Refactor tmpfiles.d/ conf files - * Embed omniauth-google-oauth2 and jwt-2.1.0 (as we are in freeze) - * Relax nokogiri - - [ Pirate Praveen ] - * Remove dependency on npm and use yarnpkg directly instead - * Tighten dependency on gitaly and gitlab-shell - * Move gitlab-shell dependency to gitlab-common - - -- Pirate Praveen Fri, 15 Mar 2019 22:12:52 +0530 - -gitlab (11.8.2-1) experimental; urgency=medium - - * New upstream version 11.8.2 (Closes: #924447) (Fixes: CVE-2019-9170, - CVE-2019-9171, CVE-2019-9172, CVE-2019-9174, CVE-2019-9175, CVE-2019-9176, - CVE-2019-9178, CVE-2019-9179, CVE-2019-9217, CVE-2019-9219, CVE-2019-9220, - CVE-2019-9221, CVE-2019-9222, CVE-2019-9223, CVE-2019-9224, CVE-2019-9225, - CVE-2019-9485) - * Refresh patches and remove 0120-remove-tracing-group.patch - * Embed opentracing, jaeger-client and thrift - - -- Sruthi Chandran Thu, 14 Mar 2019 17:09:17 +0530 - -gitlab (11.8.0-1) experimental; urgency=medium - - [ Dmitry Smirnov ] - * Moved list of files from Files-Excluded to "clean" file to avoid error - in `mk-origtargz`. - - [ Sruthi Chandran ] - * New upstream version 11.8.0 - * Refresh patches - * Update script in debian/upstream-file-count-check.sh to identify - new/removed files - - [ Pirate Praveen ] - * Refresh patches with fuzz - * Update dependency on ruby-rack, ruby-pg, ruby-fog*, ruby-truncato, - ruby-nokogiri, ruby-acts-as-taggable-on, ruby-kubeclient, - ruby-gitaly-proto, ruby-omniauth-azure-oauth2, ruby-google-api-client, - ruby-sidekiq-cron, ruby-oauth2, ruby-googleauth - * Remove tracing group from Gemfile - * Replace rails 5.2 patch with rails 5.1 patch from upstream - * Remove monkey patch not needed with rails 5.2 - * Embed rails 5.1 temporarily till gitlab supports rails 5.2 - * Create target file of secrets.yml symbolic link - * Set GEM_PATH for using embedded gems - * Tighten dependency on libjs-uglify - - -- Pirate Praveen Tue, 12 Mar 2019 21:29:55 +0530 - -gitlab (11.5.10+dfsg-1) unstable; urgency=medium - - * New upstream version 11.5.10+dfsg (Closes: #921059) (Fixes: CVE-2019-6781, - CVE-2019-6782, CVE-2019-6783, CVE-2019-6784, CVE-2019-6785, CVE-2019-6786, - CVE-2019-6787, CVE-2019-6788, CVE-2019-6789, CVE-2019-6790, CVE-2019-6791, - CVE-2019-6792, CVE-2019-6794, CVE-2019-6795, CVE-2019-6796, CVE-2019-6960, - CVE-2019-6995, CVE-2019-6997, CVE-2019-7155, CVE-2019-7176) - * Refresh patches - * Add ruby-zip as dependency - * Relax dependency on ruby-carrierwave - - -- Pirate Praveen Sat, 02 Feb 2019 18:14:16 +0530 - -gitlab (11.5.7+dfsg-1) unstable; urgency=medium - - * Team upload - * New upstream version 11.5.7+dfsg - * Fix CVE-2019-6240: Arbitrary repo read in Gitlab project import - (Closes: #919822) - - -- Abhijith PA Sun, 20 Jan 2019 21:37:01 +0530 - -gitlab (11.5.6+dfsg-1) unstable; urgency=high - - * New upstream version 11.5.6+dfsg (Closes: #918086) (Fixes: CVE-2018-20488, - CVE-2018-20489, CVE-2018-20490, CVE-2018-20491, CVE-2018-20492, - CVE-2018-20493, CVE-2018-20494, CVE-2018-20495, CVE-2018-20496, - CVE-2018-20497, CVE-2018-20498, CVE-2018-20499, CVE-2018-20500, - CVE-2018-20501, CVE-2018-20507) - * Bump Standards-Version to 4.3.0 - - -- Sruthi Chandran Thu, 03 Jan 2019 12:56:20 +0530 - -gitlab (11.6.0+dfsg-1) experimental; urgency=medium - - * New upstream version 11.6.0+dfsg - * Refresh patches - * Remove 0650-fix-8-to-10-migration.patch - * Don't install .eslintrc.yml - * Add patch to relax rails in Gemfile - * Relax gitlab-sidekiq-fetcher - * Add patch 0680-rails-5_2.patch to make it work with rails5.2 - * Remove config/initializers/active_record_verbose_query_logs.rb - * Set path for yarn - - -- Sruthi Chandran Sun, 23 Dec 2018 12:16:18 +0530 - -gitlab (11.5.5+dfsg-1) unstable; urgency=high - - [ Pirate Praveen ] - * Restart gitlab before checks in postinst (fixes failures in some checks) - * Explicitly call /usr/bin/bundle to avoid gem installed bundler - * Move gitlab-rake to /usr/sbin (depends on /sbin/runuser) - * Remove optional bullet dependency from Gemfile - * Add Gemfile.autopkgtest to specify test only dependencies - * Install test only dependencies from rubygems.org for autopkgtest - * Drop autopkgtest dependencies installed from rubygems.org - * Relax dependency on rspec-rails - * Add golang-any as autopkgtest dependency (to build gitlab-shell) - * Add gitaly: client_path to gitlab.yml - - [ Sruthi Chandran ] - * New upstream version 11.5.5+dfsg (Fixes: CVE-2018-20229) - * Add myself to uploaders - - -- Sruthi Chandran Fri, 21 Dec 2018 20:27:36 +0530 - -gitlab (11.5.4+dfsg-1) unstable; urgency=medium - - * New upstream version 11.5.4+dfsg (Fixes: CVE-2018-20144) - * Add a note about reusing existing system users for Gitlab instance - (Closes: #916243) - * Add an example fqdn in debconf template (Closes: #916306) - * Update minimum version of ruby-nokogiri to 1.8.4 - * Look for changes in /usr/share/rubygems-integration as well for triggering - Gemfile.lock refresh - * Remove world write permissions of .yarn-metadata.json files - (Closes: #915860) - * Restart gitaly before gitlab:check in postinst - - -- Pirate Praveen Sat, 15 Dec 2018 14:43:41 +0530 - -gitlab (11.5.3+dfsg-1) experimental; urgency=medium - - * New upstream version 11.5.3+dfsg - * Only gitlab binary needs to be in contrib (Closes: #915759) - * Tighten dependency on ruby-octokit - * Set minimum version of ruby-sass to 3.5 - * Refresh patches - * Update dependencies - - -- Pirate Praveen Thu, 13 Dec 2018 14:57:24 +0530 - -gitlab (11.4.9+dfsg-2) unstable; urgency=medium - - * Reupload to unstable - - -- Pirate Praveen Sat, 08 Dec 2018 12:49:53 +0530 - -gitlab (11.4.9+dfsg-1) experimental; urgency=medium - - * New upstream version 11.4.9+dfsg - * Refresh patches - * Update dependencies - * Remove gitlab-markup dependency (replaced by github-markup) - - -- Pirate Praveen Thu, 06 Dec 2018 13:21:50 +0530 - -gitlab (11.3.11+dfsg-1) unstable; urgency=high - - * New upstream security release 11.3.11+dfsg (Fixes: CVE-2018-19493, - CVE-2018-19494, CVE-2018-19495, CVE-2018-19496, CVE-2018-19569, - CVE-2018-19570, CVE-2018-19571, CVE-2018-19572, CVE-2018-19573, - CVE-2018-19574, CVE-2018-19575, CVE-2018-19576, CVE-2018-19577, - CVE-2018-19580, CVE-2018-19583, CVE-2018-19585) - - -- Pirate Praveen Thu, 29 Nov 2018 21:57:18 +0530 - -gitlab (11.3.10+dfsg-2) unstable; urgency=medium - - * Reupload to unstable - - -- Pirate Praveen Thu, 22 Nov 2018 20:44:42 +0530 - -gitlab (11.3.10+dfsg-1) experimental; urgency=medium - - * New upstream version 11.3.10+dfsg (Closes: #914166) (Fixes: CVE-2018-19359) - * Relax ruby-js-regex version - * Tighten dependencies (update minimum versions) - - -- Pirate Praveen Wed, 21 Nov 2018 11:49:29 +0530 - -gitlab (11.2.8+dfsg-2) unstable; urgency=medium - - * Add gitlab-rake as a command (Closes: #814506) - * Revert to using github-linguist 5 - - -- Pirate Praveen Tue, 20 Nov 2018 10:46:03 +0530 - -gitlab (11.2.8+dfsg-1) experimental; urgency=medium - - * New upstream version 11.2.8+dfsg - (Fixes: CVE-2018-18646, CVE-2018-18645, CVE-2018-18641, CVE-2018-18640) - - -- Pirate Praveen Sun, 18 Nov 2018 18:42:27 +0530 - -gitlab (11.1.8+dfsg-2) unstable; urgency=medium - - * Reupload to unstable - * Add CVEs fixed in 11.1.6 release (Fixes: CVE-2018-16049, CVE-2018-16050, - CVE-2018-16051, Missing CSRF in System Hooks, Persistent XSS in Pipeline - Tooltip) - - -- Pirate Praveen Sat, 17 Nov 2018 12:56:07 +0530 - -gitlab (11.1.8+dfsg-1) experimental; urgency=medium - - * New upstream version 11.1.8+dfsg - (Fixes: CVE-2018-17450, CVE-2018-17454, CVE-2018-15472, CVE-2018-17449, - CVE-2018-17452, CVE-2018-17451, CVE-2018-17453, CVE-2018-17455, - CVE-2018-17537, CVE-2018-17536) - - -- Pirate Praveen Fri, 16 Nov 2018 16:45:36 +0530 - -gitlab (10.8.7+dfsg-1) unstable; urgency=medium - - * New upstream version 10.8.7+dfsg - (Fixes: CVE-2018-14602, CVE-2018-14603, CVE-2018-14604, CVE-2018-14605, - CVE-2018-14606) - * Refresh and rename patches (to make numbering consistent) - * Add dependency on bzip2 (Closes: #910058) - * Add ruby-device-detector as new dependency and tighten dependency versions - * Remove chmod/chown -R usage in postinst - - -- Pirate Praveen Mon, 15 Oct 2018 15:55:10 +0530 - -gitlab (10.7.7+dfsg-3) unstable; urgency=medium - - * Give gitlab_user ownership of gitlab_data_dir after creating user - (Closes: #910929) - * Relax default_value_for, dropzonejs-rails, net-ssh in Gemfile - * Remove .eslintrc from binary package - * Add ruby-ed25519 and remove ruby-rbnacl - * Remove chown -R commands from postinst - - -- Pirate Praveen Sat, 13 Oct 2018 22:29:59 +0530 - -gitlab (10.7.7+dfsg-2) unstable; urgency=medium - - [ Lucas Kanashiro ] - * Relax recaptcha version (Closes: #907488) - - [ Pirate Praveen ] - * Reupload to unstable (required protobuf and grpc is now in unstable) - * Bump dependency on gitaly (for user management via gitlab-common) - * Bump Standards-Version to 4.2.1 (no changes needed) - - -- Pirate Praveen Sat, 13 Oct 2018 00:11:14 +0530 - -gitlab (10.7.7+dfsg-1) experimental; urgency=medium - - * New upstream version 10.7.7+dfsg (Fixes: CVE-2018-14364) (Closes: #904026) - * Bump Standards-Version to 4.2.0 (no changes needed) - - -- Pirate Praveen Mon, 20 Aug 2018 21:38:35 +0530 - -gitlab (10.7.6+dfsg-2) experimental; urgency=medium - - * Support html-sanitizer >= 2.7.1 (see upstream issue 48415) - - -- Pirate Praveen Sat, 30 Jun 2018 16:51:41 +0530 - -gitlab (10.7.6+dfsg-1) experimental; urgency=medium - - * New upstream version 10.7.6+dfsg - * Refresh patches - * Move common dependencies to gitlab-common - * Don't remove gitlab_data_dir in purge - * Support upgrading from 8.13 to 10.x (Upstream issue 48040) - - -- Pirate Praveen Wed, 27 Jun 2018 16:14:20 +0530 - -gitlab (10.7.5+dfsg-3) experimental; urgency=medium - - * Relax ruby version check (2.3.3 includes security fixes) - * Add gitlab-common binary to handle user creation for gitlab and gitaly - (Closes: #901310) - - -- Pirate Praveen Wed, 13 Jun 2018 10:57:34 +0530 - -gitlab (10.7.5+dfsg-2) experimental; urgency=medium - - * Bump minimum version of gitlab-workhorse to 4.1.0 - - -- Pirate Praveen Sun, 03 Jun 2018 20:54:56 +0530 - -gitlab (10.7.5+dfsg-1) experimental; urgency=medium - - * New upstream version 10.7.5+dfsg (Closes: #900522) - - -- Pirate Praveen Sun, 03 Jun 2018 19:54:01 +0530 - -gitlab (10.7.3+dfsg-1) experimental; urgency=medium - - [ Dmitry Smirnov ] - * CI: experimental CI. - * CI: origtargz - * copyright: format URL to HTTPS. - * watch file to version 4; get tar.bz2 instead of tar.gz; - - [ Pirate Praveen ] - * Fix filenamemagle as well to use bz2 - * New upstream version 10.7.3+dfsg - * Refresh patches - * Upload to experimental (required versions of ruby-rugged and ruby-grpc - are only available in experimental. libgit2-dev and libgrpc-dev needs - library transitions and coordination.) - - -- Pirate Praveen Sat, 12 May 2018 20:52:12 +0530 - -gitlab (10.6.5+dfsg-2) unstable; urgency=medium - - * Set minimum version of nodejs to 6 (punycode@2.1.0 needs nodejs >= 6) - * Use yarn installed webpack - * Remove symlinks for vendored files (now using it directly) - - -- Pirate Praveen Wed, 02 May 2018 18:11:00 +0530 - -gitlab (10.6.5+dfsg-1) unstable; urgency=medium - - * Use vendored js files (to ease backporting to jessie) - * Update watch file for new gitlab.com download url pattern - * New upstream version 10.6.5+dfsg - * Bump Standards-Version to 4.1.4 (no changes needed) - - -- Pirate Praveen Tue, 01 May 2018 15:13:49 +0530 - -gitlab (10.6.3+dfsg-3) unstable; urgency=medium - - * Relax dependency on asciidoctor-plantuml - - -- Pirate Praveen Sun, 29 Apr 2018 16:59:15 +0530 - -gitlab (10.6.3+dfsg-2) unstable; urgency=medium - - [ Dmitry Smirnov ] - * Build-Depends tightening: ruby-grape-entity (>= 0.7.1~) - * gitlab.yml.example: fixed path to "gitaly.socket". - * Recommends += gitaly; (Closes: #894015) - * Fixed versioning of dependencies (ruby-arel (>= 6.0.4~) is crucial). - * New patch to fix Markdown rendering (Closes: #895871). - - [ Pirate Praveen ] - * Fix ruby-unf-ext version constraint - * Update description, webpack is in main now - * Install all frontend dependencies via npm (to ease backporting to stretch) - - -- Pirate Praveen Fri, 27 Apr 2018 13:26:18 +0530 - -gitlab (10.6.3+dfsg-1) unstable; urgency=medium - - * New upstream version 10.6.3 (Closes: #894867, #894868, #894869) - - -- Pirate Praveen Thu, 05 Apr 2018 14:05:46 +0530 - -gitlab (10.6.2+dfsg-1) unstable; urgency=medium - - * New upstream version 10.6.2 - * Refresh patches - * Tighten dependency on ruby-loofah - * Relax dependency on grape-entity (Closes: #894668) - - -- Pirate Praveen Wed, 04 Apr 2018 22:27:43 +0530 - -gitlab (10.6.0+dfsg-1) unstable; urgency=medium - - * New upstream version 10.6.0 - - -- Pirate Praveen Tue, 27 Mar 2018 20:01:24 +0530 - -gitlab (10.5.6+dfsg-1) unstable; urgency=medium - - [ Dmitry Smirnov ] - * Tighten/version dependency ruby-net-ldap: - - [ Pirate Praveen ] - * New upstream version 10.5.6 (Closes: #893905) - Fixes: CVE-2018-8801 CVE-2018-8971 - * Tighten dependency on ruby-omniauth-auth0 - - -- Pirate Praveen Mon, 26 Mar 2018 14:41:54 +0530 - -gitlab (10.5.5+dfsg-3) unstable; urgency=medium - - * Relax kubeclient dependency - * Remove plantuml_lexer.rb initializer from /etc (Closes: #893867) - - -- Pirate Praveen Fri, 23 Mar 2018 21:01:56 +0530 - -gitlab (10.5.5+dfsg-2) unstable; urgency=medium - - * Tighten ruby-devise to 4.4.3 - * Remove devDependencies from package.json - * Start using system node libs, don't add yarn to package.json - * Isolate yarn to its own directory - - -- Pirate Praveen Thu, 22 Mar 2018 21:32:02 +0530 - -gitlab (10.5.5+dfsg-1) unstable; urgency=medium - - [ Dmitry Smirnov ] - * Depends += "ruby-excon (>= 0.60.0~)" - * Added new patch to fix Markdown rendering (Closes: #890757). - * Depends: set minimum version for "rake". - - [ Pirate Praveen ] - * New upstream version 10.5.5 (Closes: #888508) - - Fixes multiple security vulnerabilities in 10.3.4 (CVE-2017-0914, - CVE-2017-0916, CVE-2017-0917, CVE-2017-0918, CVE-2017-0923, - CVE-2017-0925, CVE-2017-0926, CVE-2017-0927, CVE-2017-3710) - * Remove files no longer present in vendor from Files-Excluded - * Refresh patches - * Add new node-* dependencies already in the archive as depends - * Tighten dependencies - * Bump debhelper compat to 10 and standards version to 4.1.3 - - -- Pirate Praveen Sun, 18 Mar 2018 15:17:08 +0530 - -gitlab (9.5.4+dfsg-7) unstable; urgency=medium - - * Reupload to unstable - * Remove locale directory during purge - * Locales should be compiled before precompiling assets - - -- Pirate Praveen Thu, 01 Mar 2018 23:45:44 +0530 - -gitlab (9.5.4+dfsg-6) experimental; urgency=medium - - * Relax dependencies in Gemfile for rdoc ruby-prof - * Build locale and make locale directory writable by symlinking to /var/lib - (Closes: #890877) - * Remove work around for libjs-jquery-atwho bug (1.5.4+dfsg.1-2 works) - - -- Pirate Praveen Fri, 23 Feb 2018 00:01:33 +0530 - -gitlab (9.5.4+dfsg-5) experimental; urgency=medium - - * Use jquery from system for compatibility with at.js in node_modules - * Use document-register-element 1.3.0 (1.7.2 is not compatible) - - -- Pirate Praveen Wed, 14 Feb 2018 20:10:18 +0530 - -gitlab (9.5.4+dfsg-4) experimental; urgency=medium - - * Add workaround for broken libjs-jquery-atwho (#890391) - (Download at.js from npmjs.com dist tarball) - - -- Pirate Praveen Wed, 14 Feb 2018 17:19:26 +0530 - -gitlab (9.5.4+dfsg-3) experimental; urgency=medium - - [ Dmitry Smirnov ] - * Fixed dependencies. - - [ Pirate Praveen ] - * Update npm itself using npm (for @ support in module names) - - -- Pirate Praveen Wed, 14 Feb 2018 14:45:11 +0530 - -gitlab (9.5.4+dfsg-2) experimental; urgency=medium - - * Relax dependencies in Gemfile - * Tighten dependencies in control - * Bump standards - * Add missing attributions - * Fix permissions for .gitlab_shell_secret - - -- Pirate Praveen Tue, 26 Dec 2017 17:31:57 +0530 - -gitlab (9.5.4+dfsg-1) experimental; urgency=medium - - * New upstream release - * Move to contrib (packaging of node modules for front end is not complete) - * Use npm install for front end dependencies - * Refresh patches - * Tighten/update dependencies - * Update gitlab.yml.example - * Fix gitlab-mailroom service - * Update overrides - * Replace vendored js with system libs - - -- Pirate Praveen Wed, 13 Dec 2017 10:50:15 +0530 - -gitlab (8.13.11+dfsg1-11) unstable; urgency=medium - - * Tighten dependency on ruby-truncato - - -- Pirate Praveen Mon, 14 Aug 2017 12:21:40 +0530 - -gitlab (8.13.11+dfsg1-10) unstable; urgency=medium - - * Relax dependency on ruby-net-ssh (Closes: #868246) - - -- Pirate Praveen Sun, 30 Jul 2017 16:14:02 +0530 - -gitlab (8.13.11+dfsg1-9) unstable; urgency=medium - - * Relax dependency on ruby-asana and ruby-webmock - - -- Pirate Praveen Tue, 18 Jul 2017 14:07:05 +0530 - -gitlab (8.13.11+dfsg1-8) unstable; urgency=medium - - * Export all variables declared in gitlab-debian.conf from - /etc/default/gitlab (Closes: #863950) Thanks to yyoshino - - -- Pirate Praveen Mon, 05 Jun 2017 22:00:03 +0530 - -gitlab (8.13.11+dfsg1-7) unstable; urgency=medium - - * Correctly bind dbconfig-common configuration file to gitlab package - (and not to $gitlab_user) in debian/config - * Revert change in debian/postinst from previous upload which incorrectly - binds dbconfig-common configuration file to $gitlab_user package - - -- Pirate Praveen Fri, 12 May 2017 10:12:55 +0530 - -gitlab (8.13.11+dfsg1-6) unstable; urgency=medium - - * Remove hard coded gitlab user in postinst (Closes: #862329) - * Remove dbconfig-common config files on purge - - -- Pirate Praveen Thu, 11 May 2017 22:29:06 +0530 - -gitlab (8.13.11+dfsg1-5) unstable; urgency=medium - - * Fix letsencrypt email handling in config - * Minor update in postrm output - - -- Pirate Praveen Thu, 27 Apr 2017 11:23:43 +0530 - -gitlab (8.13.11+dfsg1-4) unstable; urgency=medium - - * Check if gitlab_data_dir is defined before using it - * Ask email address for letsencrypt updates - - -- Pirate Praveen Wed, 26 Apr 2017 21:12:25 +0530 - -gitlab (8.13.11+dfsg1-3) unstable; urgency=medium - - * Quote variable in test -n (Thanks to Benjamin Drung) - - -- Pirate Praveen Fri, 21 Apr 2017 16:02:25 +0530 - -gitlab (8.13.11+dfsg1-2) unstable; urgency=medium - - * Integrate dbconfig-common (Closes: #859200) - * Don't set default gitlab user in postinst - * Change template name from purge to purge_data - * Switch to runuser from su (runuser correctly handles PAM sessions) - - -- Pirate Praveen Fri, 21 Apr 2017 13:16:43 +0530 - -gitlab (8.13.11+dfsg1-1) unstable; urgency=medium - - [ Balasankar C ] - * Repack source to remove fuzzaldrin-plus.js (Closes: #858725) - - [ Pirate Praveen ] - * debian/postrm: Make checks idempotent (use if in place of &&) - * debian/postrm: Check variables are defined before using them - * debian/config: pre-seed variables to debconf db from config files - * debian/postinst: - - make sure all required variables are present in the config file - - handle reconfiguration correctly by reapplying variables from debconf db - to config files - - Don't touch systemd override.conf if already exist - - -- Pirate Praveen Thu, 20 Apr 2017 11:47:49 +0530 - -gitlab (8.13.11+dfsg-8) unstable; urgency=medium - - * Don't fail if gitlab-debian.defaults not found (to support upgrading - from older versions) - * Be more defensive in rm -rf - - -- Pirate Praveen Thu, 23 Mar 2017 17:16:50 +0530 - -gitlab (8.13.11+dfsg-7) unstable; urgency=medium - - [ Balasankar C ] - * Add patch cve-2017-0882.patch (Fixes: CVE-2017-0882) - - [ Pirate Praveen ] - * Move gitlab_log_dir variable to /etc (needed got gitlab-unicorn service) - - -- Pirate Praveen Tue, 21 Mar 2017 18:28:43 +0530 - -gitlab (8.13.11+dfsg-6) unstable; urgency=medium - - * Improve configuration file parsing by using source (Closes: #857967) - - -- Pirate Praveen Fri, 17 Mar 2017 22:29:40 +0530 - -gitlab (8.13.11+dfsg-5) unstable; urgency=medium - - * Move variables used only in maintainer scripts to /usr/lib from /etc - (Closes: #856606) - * Use command -v to check existence of dropdb command in postrm - - -- Pirate Praveen Tue, 14 Mar 2017 17:21:21 +0530 - -gitlab (8.13.11+dfsg-4) unstable; urgency=medium - - [ Balasankar C ] - * Update description to specify that the package is non-omnibus, unlike the - official one from GitLab. - * Remove database on purge only if necessary commands are available - (Closes: #855579) - - [ Pirate Praveen ] - * Use /usr/lib/gitlab/templates for config file templates used in postinst - (See 854658#34) - * Add more checks in postrm to avoid failures which can be ignored - - -- Balasankar C Fri, 24 Feb 2017 17:06:52 +0530 - -gitlab (8.13.11+dfsg-3) unstable; urgency=medium - - * Allow choosing gitlab user (Closes: #854617) - * Optionally remove all data on purge (Closes: #821087, #839929) - - [ Johannes Schauer ] - * Amend the README.Debian with instructions of how to upgrade from - non-Debian installations (Closes: #823743) - - -- Pirate Praveen Thu, 16 Feb 2017 17:35:29 +0530 - -gitlab (8.13.11+dfsg-2) unstable; urgency=medium - - * Use upstream patch for git 2.11 support (Closes: #853251) - * Set minimum version of gitlab-shell to 3.6.6-3 - (required for git 2.11 support) - - -- Pirate Praveen Tue, 07 Feb 2017 11:24:36 +0530 - -gitlab (8.13.11+dfsg-1) unstable; urgency=medium - - * New upstream release - * Remove WoSign from suggested free SSL providers (they stopped providing - free SSL certificates from September 2016) - * Backport git 2.11 support (Closes: #851714) - - -- Pirate Praveen Wed, 18 Jan 2017 13:21:17 +0530 - -gitlab (8.13.6+dfsg2-2) unstable; urgency=medium - - * Add patch cve-2016-9469.diff (Fixes: CVE-2016-9469) (Closes: #847157) - * Use ruby-jquery-ui-rails 6 (Closes: #847337) - * Enable more tests - * Use -C for specifing sidekiq queues, Thanks to Justin F. Hallett - (Closes: #847114) - * Add dpkg trigger to refresh Gemfile.lock if a dependency is changed - (Closes: #847420) - - -- Pirate Praveen Sun, 11 Dec 2016 22:06:59 +0530 - -gitlab (8.13.6+dfsg2-1) unstable; urgency=medium - - * Run tests with RAILS_ENV=test - * Relax dependency on ruby-grape-entity - * Remove tasks related to linting from orig.tar - - -- Pirate Praveen Wed, 30 Nov 2016 16:15:29 +0530 - -gitlab (8.13.6+dfsg1-3) unstable; urgency=medium - - * Fix autopkgtest with upstream patch (Closes: #845656) - - -- Pirate Praveen Mon, 28 Nov 2016 23:52:13 +0530 - -gitlab (8.13.6+dfsg1-2) unstable; urgency=medium - - * Replace embedded copy of fuzzaldrin-plus with libjs-fuzzaldrin-plus - (Closes: #814871) - - -- Pirate Praveen Fri, 25 Nov 2016 22:05:14 +0530 - -gitlab (8.13.6+dfsg1-1) unstable; urgency=medium - - * New upstream release (Closes: #845180) - * Replace embedded copy of fuzzaldrin-plus with libjs-fuzzaldrin-plus - - -- Pirate Praveen Thu, 24 Nov 2016 15:29:27 +0530 - -gitlab (8.13.3+dfsg1-2) unstable; urgency=medium - - * Reupload to unstable (Closes: #843519) - - -- Pirate Praveen Fri, 11 Nov 2016 10:56:31 +0530 - -gitlab (8.13.3+dfsg1-1) experimental; urgency=medium - - * New upstream release (Fixes: CVE-2016-9086) - * Refresh patches - * Add dependency on lsb-base - - -- Pirate Praveen Fri, 04 Nov 2016 16:23:49 +0530 - -gitlab (8.12.3+dfsg1-1) unstable; urgency=medium - - * New upstream release (Closes: #838256) - * Use spec.rake and spec.pattern to select tests - * Use INCLUDE_TEST_DEPENDS variable in Gemfile to select test dependencies - (--without does not work with --local in bundle install) - * Move /usr/share/gitlab/.bundle to /var/lib/gitlab - * Create db/schema.rb only in postinst (Closes: #838668) - - [ Dmitry Smirnov ] - * Fix failure to start masked gitlab.service after reinstall - - -- Pirate Praveen Sat, 01 Oct 2016 15:23:17 +0530 - -gitlab (8.11.3+dfsg1-3) unstable; urgency=medium - - * Run some of gitlab provided tests as autopkgtests - - -- Pirate Praveen Sat, 17 Sep 2016 21:41:51 +0530 - -gitlab (8.11.3+dfsg1-2) unstable; urgency=medium - - * Use config/initializers/secret_token.rb to create secrets.yml - (backup your secrets.yml if you are upgrading) - - -- Pirate Praveen Sat, 17 Sep 2016 14:53:04 +0530 - -gitlab (8.11.3+dfsg1-1) unstable; urgency=medium - - * New upstream release - * Remove ruby-devise-async dependency - - -- Pirate Praveen Fri, 16 Sep 2016 12:44:05 +0530 - -gitlab (8.10.5+dfsg-3) unstable; urgency=high - - * Remove ruby-activerecord-deprecated-finders dependency - (removed from Gemfile) - * Setting urgency=high as it helps fix #835749 - - -- Pirate Praveen Wed, 07 Sep 2016 23:18:08 +0530 - -gitlab (8.10.5+dfsg-2) unstable; urgency=medium - - * Reupload to unstable - - -- Pirate Praveen Thu, 01 Sep 2016 13:17:03 +0530 - -gitlab (8.10.5+dfsg-1) experimental; urgency=medium - - * New upstream release - rouge 2.0 is now compatible (Closes: #830111) - * Refresh patches - * Update dependencies - - -- Pirate Praveen Wed, 31 Aug 2016 19:24:55 +0530 - -gitlab (8.9.0+dfsg-10) unstable; urgency=medium - - * Relax dependency on rails in Gemfile (Closes: #834907) - - -- Pirate Praveen Mon, 22 Aug 2016 11:07:21 +0530 - -gitlab (8.9.0+dfsg-9) unstable; urgency=medium - - * Create gitlab user as system user (Closes: #834037) - - [ Dmitry Smirnov ] - * New patch to fix error 500 on runners page (Closes: #819903) - Thanks, Libor Klepáč. - - -- Pirate Praveen Mon, 15 Aug 2016 19:51:05 +0530 - -gitlab (8.9.0+dfsg-8) unstable; urgency=medium - - * Update ruby-unicorn-worker-killer dependency - * Don't fail when .ssh exist - - -- Pirate Praveen Tue, 26 Jul 2016 15:03:10 +0530 - -gitlab (8.9.0+dfsg-7) unstable; urgency=medium - - * Tighten dependencies - * Allow unicorn 5.0 - - -- Pirate Praveen Thu, 21 Jul 2016 13:51:37 +0530 - -gitlab (8.9.0+dfsg-6) unstable; urgency=medium - - * Create .ssh/authorized_keys in postinst - - -- Pirate Praveen Wed, 20 Jul 2016 23:13:59 +0530 - -gitlab (8.9.0+dfsg-5) unstable; urgency=medium - - * Tighten dependencies - * Don't run gitlab:shell:install in postinst (Closes: #831877) - (installed config.yml works) - * Add a note about CAcert and browser trust - - [ Dmitry Smirnov ] - * Do not leave dangling symlinks behind after purge - * Remove generated assets on purge - * rules: do not install LICENSE files - * rules: properly use dh-systemd (Closes: #820991) - * Rewrite terrible upstream .service files: - - added meta "gitlab.service" that work alike corresponding init.d script - - new .service files with support for "reload" and propagation of "reload" from "gitlab.service" - - non-forking PIDFILE-less implementation - This change fixes services' start-up and postinst error on first install. - * templates: Replace StartSSL with CACert - - -- Pirate Praveen Wed, 20 Jul 2016 20:28:21 +0530 - -gitlab (8.9.0+dfsg-4) unstable; urgency=medium - - * Move config files to /usr/share/doc as examples and - copy them to /var/lib for modification (Closes: #821086) - * Fix gitlab-shell's config.yml handling (Closes: #827846) - - -- Pirate Praveen Thu, 14 Jul 2016 19:53:16 +0530 - -gitlab (8.9.0+dfsg-3) unstable; urgency=medium - - * Relax grape and rouge in Gemfile - - -- Pirate Praveen Sun, 10 Jul 2016 20:23:41 +0530 - -gitlab (8.9.0+dfsg-2) unstable; urgency=medium - - * Reupload to unstable - * Relax omniauth-google-oauth2 in Gemfile - - -- Pirate Praveen Sat, 09 Jul 2016 20:14:24 +0530 - -gitlab (8.9.0+dfsg-1) experimental; urgency=medium - - * New upstream release - * Refresh patches and update dependencies - - -- Pirate Praveen Thu, 23 Jun 2016 23:54:28 +0530 - -gitlab (8.9.0+dfsg~rc4-1) experimental; urgency=medium - - * New upstream release candidate - * Refresh patches - * Use jquery in place of jquery2 (debian has only jquery and it has same API) - * Remove /etc/gitlab/initializers/devise_async.rb (removed upstream) - * Symlink /usr/share/gitlab/.ssh to var/lib/gitlab/.ssh - - -- Pirate Praveen Wed, 22 Jun 2016 13:57:27 +0530 - -gitlab (8.8.2+dfsg-5) unstable; urgency=medium - - * Relax dependencies for all stable libraries (>= 1.0) (Closes: #827374) - - -- Pirate Praveen Thu, 16 Jun 2016 12:31:40 +0530 - -gitlab (8.8.2+dfsg-4) unstable; urgency=high - - * Allow minor updates for ruby-state-machines-activerecord (Closes: #827013) - - -- Pirate Praveen Sun, 12 Jun 2016 12:51:19 +0530 - -gitlab (8.8.2+dfsg-3) unstable; urgency=medium - - * Update minimum version of rails to 4.2.6 - * Update minimum version of ruby-request-store to 1.3 - * Add postgresql-contrib as dependency for pg_trgm extension - (Closes: #826302) - * Add ruby-coffee-script-source (>= 1.10.0~) as dependency - - -- Pirate Praveen Sun, 05 Jun 2016 18:20:51 +0530 - -gitlab (8.8.2+dfsg-2) unstable; urgency=medium - - * Move gitlab-shell's config.yml to /etc - * Update minimum version of gitlab-shell to 3.0.0 - - -- Pirate Praveen Sat, 04 Jun 2016 21:47:12 +0530 - -gitlab (8.8.2+dfsg-1) unstable; urgency=medium - - * New upstream release (Closes: #823290) - * Refresh patches - * Bump standards version to 3.9.8 (no changes) - * Enable the pg_trgm extension for postgresql - * Check if nginx site configuration directory is present before copying - (Closes: #821085) - * Symlink /run/gitlab/cache to /var/lib/gitlab/cache (or /run gets filled up) - * Remove debconf db on purge - - -- Pirate Praveen Thu, 02 Jun 2016 22:27:15 +0530 - -gitlab (8.5.8+dfsg-5) unstable; urgency=medium - - * Make nginx optional (Closes: #819260) - * Manage nginx configuration via ucf (Closes: #819262) - * Manage gitlab-debian.conf and gitlab.yml via ucf - * Make postinst more verbose - - -- Pirate Praveen Fri, 08 Apr 2016 17:29:34 +0530 - -gitlab (8.5.8+dfsg-4) unstable; urgency=medium - - * Tighten version requirements for dependencies - * Fix permissions for uploads - * Run db:migrate when db exist - * Restrict file permissions for secret files (Closes: #819412) - * Move db to /var/lib/gitlab (fix migrations) - - [ Libor Klepáč ] - * Create builds directory in /var/log (Closes: #819907) - - -- Pirate Praveen Tue, 05 Apr 2016 22:55:36 +0530 - -gitlab (8.5.8+dfsg-3) unstable; urgency=medium - - * Reupload to unstable - * Add mail-transport-agent as dependency - * Symlink 'shared' to /var/lib/gitlab instead of 'shared/cache' - - gitlab expects everything inside shared to be in the same file system. - * Use embedded copy of fuzzaldrin-plus (See #814871 for more details) - * Bring back db check in postinst (initialize the db only if it is empty) - * Choose unicode for db encoding - * Don't run letsencrypt if certificate is already present - - -- Pirate Praveen Tue, 05 Apr 2016 00:14:30 +0530 - -gitlab (8.5.8+dfsg-2) experimental; urgency=medium - - * Change letsencrypt from depends to recommends - - -- Pirate Praveen Sun, 03 Apr 2016 11:09:51 +0530 - -gitlab (8.5.8+dfsg-1) experimental; urgency=medium - - * New upstream release - - -- Pirate Praveen Sat, 02 Apr 2016 21:30:27 +0530 - -gitlab (8.4.3+dfsg-12) unstable; urgency=medium - - [ Libor Klepáč ] - * Add fix-wiki.patch: Fix wiki display (Closes: #815465) - - [ Pirate Praveen ] - * Use redis-server.service instead of redis.service (which is an alias to - redis-server.service and won't be available if redis-server.service is - disabled) in systemd files. - - -- Pirate Praveen Fri, 18 Mar 2016 19:12:10 +0530 - -gitlab (8.4.3+dfsg-11) unstable; urgency=medium - - * Relax stable library versions requirement - * Relax dependency on grape-entity - - [ Johannes Schauer ] - * Add diagnostic info to README.Debian - * Add steps of migrating a source install to debian package - - -- Pirate Praveen Wed, 16 Mar 2016 20:16:47 +0530 - -gitlab (8.4.3+dfsg-10) unstable; urgency=medium - - [ Balasankar C ] - * Team upload. - * Bump Standards Version (No Changes). - * Fix typo in debian/README.Debian. - * 0038-relax-net-ssh.patch : Add dep3 header. - - [ Pirate Praveen ] - * Replace gitlab:setup with db:schema:load and db:seed_fu (Closes: #815798) - * Relax rails dependency in Gemfile (Closes: #817150) - - -- Pirate Praveen Tue, 15 Mar 2016 19:42:59 +0530 - -gitlab (8.4.3+dfsg-9) unstable; urgency=medium - - * Reorganize directory layout (Closes: #814476) - - Move gitlab user's home directory to /var/lib - - Add config as a symlink to /etc/gitlab - - Add log as a symlink to /var/log/gitlab - - Add public as a symlink to /var/lib/gitlab/public - - Add more files that needs write permission to /var - - -- Pirate Praveen Thu, 18 Feb 2016 22:51:32 +0530 - -gitlab (8.4.3+dfsg-8) unstable; urgency=medium - - * Install tmpfiles.d/gitlab.conf and allow www-data user to read /run/gitlab - (Closes: #814714) - * Switch to sendmail method by default. - - -- Pirate Praveen Tue, 16 Feb 2016 13:58:16 +0530 - -gitlab (8.4.3+dfsg-7) unstable; urgency=medium - - * bc should be in build-dep (Closes: #814695) - * fix pid file mismatch between /etc/default/gitlab and systemd service files - (Closes: #814714) - * use tmpfiles.d for /run/gitlab (Closes: #814713) Thanks to Christian Seiler - - -- Pirate Praveen Tue, 16 Feb 2016 00:08:18 +0530 - -gitlab (8.4.3+dfsg-6) unstable; urgency=medium - - * Fix pid and sockets path for gitlab-workhorse - - -- Pirate Praveen Sun, 14 Feb 2016 12:45:24 +0530 - -gitlab (8.4.3+dfsg-5) unstable; urgency=medium - - * Switch to su from sudo - - -- Pirate Praveen Sat, 13 Feb 2016 23:53:42 +0530 - -gitlab (8.4.3+dfsg-4) unstable; urgency=medium - - * Don't overwrite existing database (Closes: #814458) - * Write logs, pids and sockets to /var (Closes: #814476) - * Add more files to debian/install (Closes: #814503) - * Add a check in debian/rules for installing all files - - -- Pirate Praveen Sat, 13 Feb 2016 21:55:51 +0530 - -gitlab (8.4.3+dfsg-3) unstable; urgency=medium - - * Check if /run/systemd/system dirctory exist for systemd - - -- Pirate Praveen Fri, 12 Feb 2016 01:01:59 +0530 - -gitlab (8.4.3+dfsg-2) unstable; urgency=medium - - [ Balasankar C ] - * Add email configuration via sendmail method - - [ Pirate Praveen ] - * Download certificates via letsencrypt - * Check /proc/1/cmdline for systemd (Closes: #814413) - - -- Pirate Praveen Fri, 12 Feb 2016 00:17:01 +0530 - -gitlab (8.4.3+dfsg-1) unstable; urgency=medium - - * New upstream release - * Refresh patches (rails version is in sync) - * Configure ssl for nginx if selected - * Use letsencrypt certificate paths if selected - * Add git as dependency (Closes: #813807) - * SSH key upload is working (Closes: #812861) - * Configure gitlab_url as workwround (Closes: #813770 ) - - -- Pirate Praveen Tue, 09 Feb 2016 23:39:34 +0530 - -gitlab (8.4.0+dfsg-2) unstable; urgency=medium - - * Add systemd units (Closes: #812841) - * Remove Gemfile.lock if found before bundle install - (Closes: #813550) (Closes: #812907) - - -- Pirate Praveen Thu, 04 Feb 2016 16:28:26 +0530 - -gitlab (8.4.0+dfsg-1) unstable; urgency=medium - - * New upstream release - * Use su instead of sudo everywhere (Closes: #812951) - * Add rake and ruby-sentry-raven as dependencies - * Remove patch 0107-relax-omniauth-facebook.patch - - -- Pirate Praveen Tue, 02 Feb 2016 19:28:45 +0530 - -gitlab (8.4.0+dfsg~rc2-4) unstable; urgency=medium - - * Reupload to unstable - * Relax ruby-net-ssh dependency - - -- Pirate Praveen Thu, 28 Jan 2016 02:01:57 +0530 - -gitlab (8.4.0+dfsg~rc2-3) experimental; urgency=medium - - * Read gitlab-debian.conf from /etc/default/gitlab - - Use debian specific configuration in init script - * Add nginx to dependencies (Closes: #812724) - * Add ruby-influxdb to dependencies (Closes: #812839) - * Add missing dependecies from Gemfile and tighen versions - * Use environmental variables by commenting out defaults in gitlab.yml - - -- Pirate Praveen Wed, 27 Jan 2016 13:40:31 +0530 - -gitlab (8.4.0+dfsg~rc2-2) experimental; urgency=medium - - * Add README.Debian to document debian specific changes - * Make mysql optional (Closes: #812345) - * Configure hostname via debconf and integrate nginx - - -- Pirate Praveen Sun, 24 Jan 2016 15:19:19 +0530 - -gitlab (8.4.0+dfsg~rc2-1) experimental; urgency=medium - - * Initial release (Closes: #651606) - - -- Pirate Praveen Wed, 20 Jan 2016 00:56:59 +0530 diff --git a/debian/check-ruby-syntax.sh b/debian/check-ruby-syntax.sh deleted file mode 100644 index c2c4b9068a..0000000000 --- a/debian/check-ruby-syntax.sh +++ /dev/null @@ -1,4 +0,0 @@ -# For whole tree -find . -name \*.rb -exec ruby -wc {} \; 2>&1 | grep error -# For changed files -for i in `git diff --name-only debian/13.1.1-1 HEAD | grep \.rb\$`; do ruby -wc $i; done diff --git a/debian/clean b/debian/clean deleted file mode 100644 index 32d8aa5a8b..0000000000 --- a/debian/clean +++ /dev/null @@ -1,44 +0,0 @@ -## Debian CI: -debian/.gitlab-ci.yml - -lib/tasks/haml-lint.rake -lib/tasks/rubocop.rake -lib/tasks/scss-lint.rake - -debian/upstream-file-list.new -debian/upstream-config-file-list.new - -# We have rails > 6.0.2 -config/initializers/active_record_fix_insert_all.rb - -# We have sidekiq 6 -config/initializers/mailer_retries.rb - -# We have puma 5.2.2 -config/initializers/puma_client_tempfile_patch.rb - -# For workhorse -## Failing tests that require test data from the Internet: -workhorse/main_test.go -workhorse/authorization_test.go -workhorse/channel_test.go -workhorse/gitaly_integration_test.go -workhorse/gitaly_test.go -workhorse/jobs_test.go -workhorse/sendfile_test.go -workhorse/upload_test.go -workhorse/internal/upload/*_test.go -workhorse/internal/objectstore/*_test.go -workhorse/internal/redis/*_test.go -## Need definitions from excluded test files -workhorse/cable_test.go -## Need github.com/johannesboyne/gofakes3/backend/s3mem -workhorse/internal/objectstore/s3_object_test.go -workhorse/internal/objectstore/test/s3_stub.go -workhorse/internal/filestore/file_handler_test.go -workhorse/internal/upload/destination/objectstore/test/s3_stub.go -workhorse/internal/upload/destination/objectstore/s3_object_test.go -workhorse/internal/upload/destination/destination_test.go -## Failing tests -workhorse/internal/gitaly/gitaly_test.go -workhorse/internal/gitaly/unmarshal_test.go diff --git a/debian/conf/cable.yml b/debian/conf/cable.yml deleted file mode 100644 index e00fec4805..0000000000 --- a/debian/conf/cable.yml +++ /dev/null @@ -1,9 +0,0 @@ -production: - adapter: redis - url: redis://localhost:6379 -development: - adapter: redis - url: redis://localhost:6379 -test: - adapter: redis - url: redis://localhost:6379 diff --git a/debian/conf/database.yml b/debian/conf/database.yml deleted file mode 100644 index d623d01af5..0000000000 --- a/debian/conf/database.yml +++ /dev/null @@ -1,51 +0,0 @@ -# -# PRODUCTION -# -production: - main: - adapter: postgresql - host: /var/run/postgresql - encoding: unicode - database: gitlab_production - pool: 10 - # username: git - # password: - # host: localhost - # port: 5432 - -# -# Development specific -# -development: - main: - adapter: postgresql - encoding: unicode - database: gitlabhq_development - pool: 5 - username: postgres - password: - -# -# Staging specific -# -staging: - main: - adapter: postgresql - encoding: unicode - database: gitlabhq_staging - pool: 5 - username: postgres - password: - -# Warning: The database defined as "test" will be erased and -# re-generated from your development database when you run "rake". -# Do not set this db to the same as development or production. -test: &test - main: - adapter: postgresql - encoding: unicode - host: /var/run/postgresql - database: gitlab_test - pool: 5 - #username: postgres - password: diff --git a/debian/conf/gitlab b/debian/conf/gitlab deleted file mode 100755 index 651b242a7e..0000000000 --- a/debian/conf/gitlab +++ /dev/null @@ -1,73 +0,0 @@ -#! /bin/sh - -# Copy this lib/support/init.d/gitlab.default.example file to -# /etc/default/gitlab in order for it to apply to your system. - -# RAILS_ENV defines the type of installation that is running. -# Normal values are "production", "test" and "development". -RAILS_ENV="production" - -# Read debian specific configuration -. /etc/gitlab/gitlab-debian.conf -. /etc/gitlab-common/gitlab-common.conf - -for i in $(grep -v '#' /etc/gitlab/gitlab-debian.conf | cut -d= -f 1) -do - export $i -done - -# app_user defines the user that GitLab is run as. -# The default is "git". -export app_user=${gitlab_user} - -# app_root defines the folder in which gitlab and it's components are installed. -# The default is "/home/$app_user/gitlab" -app_root=${gitlab_app_root} - -# gitlab_log_dir is defined in /etc/gitlab/gitlab-debian.conf - -# pid_path defines a folder in which the gitlab and it's components place their pids. -# This variable is also used below to define the relevant pids for the gitlab components. -# The default is "$app_root/tmp/pids" -pid_path="${gitlab_pid_path}" - -# socket_path defines the folder in which gitlab places the sockets -#The default is "$app_root/tmp/sockets" -socket_path="${gitlab_pid_path}" - -# web_server_pid_path defines the path in which to create the pid file fo the web_server -# The default is "$pid_path/unicorn.pid" -web_server_pid_path="$pid_path/unicorn.pid" - -# sidekiq_pid_path defines the path in which to create the pid file for sidekiq -# The default is "$pid_path/sidekiq.pid" -sidekiq_pid_path="$pid_path/sidekiq.pid" - -# sidekiq_logfile defines log file used by sidekiq -sidekiq_logfile="${gitlab_log_dir}/sidekiq.log" - -gitlab_workhorse_pid_path="$pid_path/gitlab-workhorse.pid" -# The -listenXxx settings determine where gitlab-workhorse -# listens for connections from NGINX. To listen on localhost:8181, write -# '-listenNetwork tcp -listenAddr localhost:8181'. -# The -authBackend setting tells gitlab-workhorse where it can reach -# Unicorn. -gitlab_workhorse_options="-listenUmask 0 -listenNetwork unix -listenAddr $socket_path/gitlab-workhorse.socket -authBackend http://127.0.0.1:8080" -gitlab_workhorse_log="${gitlab_log_dir}/gitlab-workhorse.log" - -# mail_room_enabled specifies whether mail_room, which is used to process incoming email, is enabled. -# This is required for the Reply by email feature. -# The default is "false" -mail_room_enabled=false - -# mail_room_pid_path defines the path in which to create the pid file for mail_room -# The default is "$pid_path/mail_room.pid" -mail_room_pid_path="$pid_path/mail_room.pid" - -# mail_room_logfile defines log file used by mailroom -mail_room_logfile="${gitlab_log_dir}/mail_room.log" - -# shell_path defines the path of shell for "$app_user" in case you are using -# shell other than "bash" -# The default is "/bin/bash" -shell_path="/bin/bash" diff --git a/debian/conf/gitlab-debian.conf.example b/debian/conf/gitlab-debian.conf.example deleted file mode 100644 index 2e324bf3d7..0000000000 --- a/debian/conf/gitlab-debian.conf.example +++ /dev/null @@ -1,12 +0,0 @@ -# Variables with all small letters are debian specific -# Variables with all caps are passed to gitlab app -RAILS_ENV=production -DB=postgres -GEM_HOME=/var/lib/gitlab/.gem -# This will be replaced by debian/rules at the time of build. -GITLAB_DEBIAN_VERSION="__NEW_VERSION__" -SALSA_TAG_URL="https://salsa.debian.org/ruby-team/gitlab/tags/debian/" -gitlab_app_root=/usr/share/gitlab -gitlab_data_dir=/var/lib/gitlab -gitlab_pid_path=/run/gitlab -gitlab_log_dir=/var/log/gitlab diff --git a/debian/conf/gitlab.target b/debian/conf/gitlab.target deleted file mode 100644 index acceaf73cb..0000000000 --- a/debian/conf/gitlab.target +++ /dev/null @@ -1,14 +0,0 @@ -##################################################### -# -# GitLab version : 5.x - 7.x -# Contributors : davispuh, mtorromeo, axilleas, boeserwolf91, Stefan Tatschner (rumpelsepp) -# Downloaded from : https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/init/systemd -# -#################################################### - -[Unit] -Description=GitLab Service -Requires=gitlab-puma.service gitlab-sidekiq.service gitlab-mailroom.service gitlab-workhorse.service - -[Install] -WantedBy=multi-user.target diff --git a/debian/conf/gitlab.yml.example b/debian/conf/gitlab.yml.example deleted file mode 100644 index 8969d6c9f0..0000000000 --- a/debian/conf/gitlab.yml.example +++ /dev/null @@ -1,744 +0,0 @@ -# # # # # # # # # # # # # # # # # # -# GitLab application config file # -# # # # # # # # # # # # # # # # # # -# -########################### NOTE ##################################### -# This file should not receive new settings. All configuration options # -# * are being moved to ApplicationSetting model! # -# If a setting requires an application restart say so in that screen. # -# If you change this file in a Merge Request, please also create # -# a MR on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests # -######################################################################## -# -# -# How to use: -# 1. Copy file as gitlab.yml -# 2. Update gitlab -> host with your fully qualified domain name -# 3. Update gitlab -> email_from -# 4. If you installed Git from source, change git -> bin_path to /usr/local/bin/git -# IMPORTANT: If Git was installed in a different location use that instead. -# You can check with `which git`. If a wrong path of Git is specified, it will -# result in various issues such as failures of GitLab CI builds. -# 5. Review this configuration file for other settings you may want to adjust - -# For Debian specific changes: See /usr/share/doc/README.Debian - -production: &base - # - # 1. GitLab app settings - # ========================== - - ## GitLab settings - gitlab: - ## Web server settings (note: host is the FQDN, do not include http://) - #host: localhost - #port: 80 # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details - https: false # Set to true if using HTTPS, see installation.md#using-https for additional HTTPS configuration details - - # Uncommment this line below if your ssh host is different from HTTP/HTTPS one - # (you'd obviously need to replace ssh.host_example.com with your own host). - # Otherwise, ssh host will be set to the `host:` value above - # ssh_host: ssh.host_example.com - - # Relative URL support - # WARNING: We recommend using an FQDN to host GitLab in a root path instead - # of using a relative URL. - # Documentation: http://doc.gitlab.com/ce/install/relative_url.html - # Uncomment and customize the following line to run in a non-root path - # - # relative_url_root: /gitlab - - # Trusted Proxies - # Customize if you have GitLab behind a reverse proxy which is running on a different machine. - # Add the IP address for your reverse proxy to the list, otherwise users will appear signed in from that address. - trusted_proxies: - # Examples: - #- 192.168.1.0/24 - #- 192.168.2.1 - #- 2001:0db8::/32 - - # Uncomment and customize if you can't use the default user to run GitLab (default: 'git') - user: git #gitlab_user (DON'T REMOVE THIS COMMENT) - user_home: /var/lib/gitlab - - ## Date & Time settings - # Uncomment and customize if you want to change the default time zone of GitLab application. - # To see all available zones, run `bundle exec rake time:zones:all RAILS_ENV=production` - # time_zone: 'UTC' - - ## Email settings - # Uncomment and set to false if you need to disable email sending from GitLab (default: true) - # email_enabled: true - # Email address used in the "From" field in mails sent by GitLab - # Using environmental variables from /etc/gitlab/gitlab-debian.conf - # email_from: example@example.com - # email_display_name: GitLab - # email_reply_to: noreply@example.com - # email_subject_suffix: '' - - # Email server smtp settings are in config/initializers/smtp_settings.rb.sample - - # default_can_create_group: false # default: true - # username_changing_enabled: false # default: true - User can change her username/namespace - - ## Automatic issue closing - # If a commit message matches this regular expression, all issues referenced from the matched text will be closed. - # This happens when the commit is pushed or merged into the default branch of a project. - # When not specified the default issue_closing_pattern as specified below will be used. - # Tip: you can test your closing pattern at http://rubular.com. - # issue_closing_pattern: '((?:[Cc]los(?:e[sd]?|ing)|[Ff]ix(?:e[sd]|ing)?|[Rr]esolv(?:e[sd]?|ing))(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?:, *| +and +)?)|([A-Z][A-Z0-9_]+-\d+))+)' - - ## Default project features settings - default_projects_features: - issues: true - merge_requests: true - wiki: true - snippets: true - builds: true - container_registry: true - - ## Webhook settings - # Number of seconds to wait for HTTP response after sending webhook HTTP POST request (default: 10) - # webhook_timeout: 10 - - ## Repository downloads directory - # When a user clicks e.g. 'Download zip' on a project, a temporary zip file is created in the following directory. - # The default is 'shared/cache/archive/' relative to the root of the Rails app. - # repository_downloads_path: shared/cache/archive/ - - ## Reply by email - # Allow users to comment on issues and merge requests by replying to notification emails. - # For documentation on how to set this up, see http://doc.gitlab.com/ce/administration/reply_by_email.html - incoming_email: - enabled: false - - # The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to. - # The placeholder can be omitted but if present, it must appear in the "user" part of the address (before the `@`). - address: "gitlab-incoming+%{key}@gmail.com" - - # Email account username - # With third party providers, this is usually the full email address. - # With self-hosted email servers, this is usually the user part of the email address. - user: "gitlab-incoming@gmail.com" - # Email account password - password: "[REDACTED]" - - # IMAP server host - host: "imap.gmail.com" - # IMAP server port - port: 993 - # Whether the IMAP server uses SSL - ssl: true - # Whether the IMAP server uses StartTLS - start_tls: false - - # The mailbox where incoming mail will end up. Usually "inbox". - mailbox: "inbox" - # The IDLE command timeout. - idle_timeout: 60 - - ## Build Artifacts - artifacts: - enabled: true - # The location where build artifacts are stored (default: shared/artifacts). - # path: shared/artifacts - - ## Git LFS - lfs: - enabled: true - # The location where LFS objects are stored (default: shared/lfs-objects). - # storage_path: shared/lfs-objects - - ## GitLab Pages - pages: - enabled: false - # The location where pages are stored (default: shared/pages). - # path: shared/pages - - # The domain under which the pages are served: - # http://group.example.com/project - # or project path can be a group page: group.example.com - host: example.com - port: 80 # Set to 443 if you serve the pages with HTTPS - https: false # Set to true if you serve the pages with HTTPS - # external_http: ["1.1.1.1:80", "[2001::1]:80"] # If defined, enables custom domain support in GitLab Pages - # external_https: ["1.1.1.1:443", "[2001::1]:443"] # If defined, enables custom domain and certificate support in GitLab Pages - - ## Mattermost - ## For enabling Add to Mattermost button - mattermost: - enabled: false - host: 'https://mattermost.example.com' - - ## Gravatar - ## For Libravatar see: http://doc.gitlab.com/ce/customization/libravatar.html - gravatar: - # gravatar urls: possible placeholders: %{hash} %{size} %{email} %{username} - # plain_url: "http://..." # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon - # ssl_url: "https://..." # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon - - ## Auxiliary jobs - # Periodically executed jobs, to self-heal Gitlab, do external synchronizations, etc. - # Please read here for more information: https://github.com/ondrejbartas/sidekiq-cron#adding-cron-job - cron_jobs: - # Flag stuck CI jobs as failed - stuck_ci_jobs_worker: - cron: "0 * * * *" - # Execute scheduled triggers - pipeline_schedule_worker: - cron: "19 * * * *" - # Remove expired build artifacts - expire_build_artifacts_worker: - cron: "50 * * * *" - # Periodically run 'git fsck' on all repositories. If started more than - # once per hour you will have concurrent 'git fsck' jobs. - repository_check_worker: - cron: "20 * * * *" - # Send admin emails once a week - admin_email_worker: - cron: "0 0 * * 0" - - # Remove outdated repository archives - repository_archive_cache_worker: - cron: "0 * * * *" - - registry: - # enabled: true - # host: registry.example.com - # port: 5005 - # api_url: http://localhost:5000/ # internal address to the registry, will be used by GitLab to directly communicate with API - # key: config/registry.key - # path: shared/registry - # issuer: gitlab-issuer - - # - # 2. GitLab CI settings - # ========================== - - gitlab_ci: - # Default project notifications settings: - # - # Send emails only on broken builds (default: true) - # all_broken_builds: true - # - # Add pusher to recipients list (default: false) - # add_pusher: true - - # The location where build traces are stored (default: builds/). Relative paths are relative to Rails.root - # builds_path: builds/ - - # - # 3. Auth settings - # ========================== - - ## LDAP settings - # You can test connections and inspect a sample of the LDAP users with login - # access by running: - # bundle exec rake gitlab:ldap:check RAILS_ENV=production - ldap: - enabled: false - servers: - ########################################################################## - # - # Since GitLab 7.4, LDAP servers get ID's (below the ID is 'main'). GitLab - # Enterprise Edition now supports connecting to multiple LDAP servers. - # - # If you are updating from the old (pre-7.4) syntax, you MUST give your - # old server the ID 'main'. - # - ########################################################################## - main: # 'main' is the GitLab 'provider ID' of this LDAP server - ## label - # - # A human-friendly name for your LDAP server. It is OK to change the label later, - # for instance if you find out it is too large to fit on the web page. - # - # Example: 'Paris' or 'Acme, Ltd.' - label: 'LDAP' - - # Example: 'ldap.mydomain.com' - host: '_your_ldap_server' - # This port is an example, it is sometimes different but it is always an integer and not a string - port: 389 # usually 636 for SSL - uid: 'sAMAccountName' # This should be the attribute, not the value that maps to uid. - - # Examples: 'america\\momo' or 'CN=Gitlab Git,CN=Users,DC=mydomain,DC=com' - bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' - password: '_the_password_of_the_bind_user' - - # Encryption method. The "method" key is deprecated in favor of - # "encryption". - # - # Examples: "start_tls" or "simple_tls" or "plain" - # - # Deprecated values: "tls" was replaced with "start_tls" and "ssl" was - # replaced with "simple_tls". - # - encryption: 'plain' - - # Enables SSL certificate verification if encryption method is - # "start_tls" or "simple_tls". (Defaults to false for backward- - # compatibility) - verify_certificates: false - - # Specifies the path to a file containing a PEM-format CA certificate, - # e.g. if you need to use an internal CA. - # - # Example: '/etc/ca.pem' - # - ca_file: '' - - # Specifies the SSL version for OpenSSL to use, if the OpenSSL default - # is not appropriate. - # - # Example: 'TLSv1_1' - # - ssl_version: '' - - # Set a timeout, in seconds, for LDAP queries. This helps avoid blocking - # a request if the LDAP server becomes unresponsive. - # A value of 0 means there is no timeout. - timeout: 10 - - # This setting specifies if LDAP server is Active Directory LDAP server. - # For non AD servers it skips the AD specific queries. - # If your LDAP server is not AD, set this to false. - active_directory: true - - # If allow_username_or_email_login is enabled, GitLab will ignore everything - # after the first '@' in the LDAP username submitted by the user on login. - # - # Example: - # - the user enters 'jane.doe@example.com' and 'p@ssw0rd' as LDAP credentials; - # - GitLab queries the LDAP server with 'jane.doe' and 'p@ssw0rd'. - # - # If you are using "uid: 'userPrincipalName'" on ActiveDirectory you need to - # disable this setting, because the userPrincipalName contains an '@'. - allow_username_or_email_login: false - - # To maintain tight control over the number of active users on your GitLab installation, - # enable this setting to keep new users blocked until they have been cleared by the admin - # (default: false). - block_auto_created_users: false - - # Base where we can search for users - # - # Ex. 'ou=People,dc=gitlab,dc=example' or 'DC=mydomain,DC=com' - # - base: '' - - # Filter LDAP users - # - # Format: RFC 4515 https://tools.ietf.org/search/rfc4515 - # Ex. (employeeType=developer) - # - # Note: GitLab does not support omniauth-ldap's custom filter syntax. - # - # Example for getting only specific users: - # '(&(objectclass=user)(|(samaccountname=momo)(samaccountname=toto)))' - # - user_filter: '' - - # LDAP attributes that GitLab will use to create an account for the LDAP user. - # The specified attribute can either be the attribute name as a string (e.g. 'mail'), - # or an array of attribute names to try in order (e.g. ['mail', 'email']). - # Note that the user's LDAP login will always be the attribute specified as `uid` above. - attributes: - # The username will be used in paths for the user's own projects - # (like `gitlab.example.com/username/project`) and when mentioning - # them in issues, merge request and comments (like `@username`). - # If the attribute specified for `username` contains an email address, - # the GitLab username will be the part of the email address before the '@'. - username: ['uid', 'userid', 'sAMAccountName'] - email: ['mail', 'email', 'userPrincipalName'] - - # If no full name could be found at the attribute specified for `name`, - # the full name is determined using the attributes specified for - # `first_name` and `last_name`. - name: 'cn' - first_name: 'givenName' - last_name: 'sn' - - # GitLab EE only: add more LDAP servers - # Choose an ID made of a-z and 0-9 . This ID will be stored in the database - # so that GitLab can remember which LDAP server a user belongs to. - # uswest2: - # label: - # host: - # .... - - - ## OmniAuth settings - omniauth: - # Allow login via Twitter, Google, etc. using OmniAuth providers - enabled: false - - # Uncomment this to automatically sign in with a specific omniauth provider's without - # showing GitLab's sign-in page (default: show the GitLab sign-in page) - # auto_sign_in_with_provider: saml - - # Sync user's email address from the specified Omniauth provider every time the user logs - # in (default: nil). And consequently make this field read-only. - # sync_email_from_provider: cas3 - - # CAUTION! - # This allows users to login without having a user account first. Define the allowed providers - # using an array, e.g. ["saml", "twitter"], or as true/false to allow all providers or none. - # User accounts will be created automatically when authentication was successful. - allow_single_sign_on: ["saml"] - - # Locks down those users until they have been cleared by the admin (default: true). - block_auto_created_users: true - # Look up new users in LDAP servers. If a match is found (same uid), automatically - # link the omniauth identity with the LDAP account. (default: false) - auto_link_ldap_user: false - - # Allow users with existing accounts to login and auto link their account via SAML - # login, without having to do a manual login first and manually add SAML - # (default: false) - auto_link_saml_user: false - - # Set different Omniauth providers as external so that all users creating accounts - # via these providers will not be able to have access to internal projects. You - # will need to use the full name of the provider, like `google_oauth2` for Google. - # Refer to the examples below for the full names of the supported providers. - # (default: []) - external_providers: [] - - ## Auth providers - # Uncomment the following lines and fill in the data of the auth provider you want to use - # If your favorite auth provider is not listed you can use others: - # see https://github.com/gitlabhq/gitlab-public-wiki/wiki/Custom-omniauth-provider-configurations - # The 'app_id' and 'app_secret' parameters are always passed as the first two - # arguments, followed by optional 'args' which can be either a hash or an array. - # Documentation for this is available at http://doc.gitlab.com/ce/integration/omniauth.html - providers: - # See omniauth-cas3 for more configuration details - # - { name: 'cas3', - # label: 'cas3', - # args: { - # url: 'https://sso.example.com', - # disable_ssl_verification: false, - # login_url: '/cas/login', - # service_validate_url: '/cas/p3/serviceValidate', - # logout_url: '/cas/logout'} } - # - { name: 'authentiq', - # # for client credentials (client ID and secret), go to https://www.authentiq.com/developers - # app_id: 'YOUR_CLIENT_ID', - # app_secret: 'YOUR_CLIENT_SECRET', - # args: { - # scope: 'aq:name email~rs address aq:push' - # # callback_url parameter is optional except when 'gitlab.host' in this file is set to 'localhost' - # # callback_url: 'YOUR_CALLBACK_URL' - # } - # } - # - { name: 'github', - # app_id: 'YOUR_APP_ID', - # app_secret: 'YOUR_APP_SECRET', - # url: "https://github.com/", - # verify_ssl: true, - # args: { scope: 'user:email' } } - # - { name: 'bitbucket', - # app_id: 'YOUR_APP_ID', - # app_secret: 'YOUR_APP_SECRET' } - # - { name: 'gitlab', - # app_id: 'YOUR_APP_ID', - # app_secret: 'YOUR_APP_SECRET', - # args: { scope: 'api' } } - # - { name: 'google_oauth2', - # app_id: 'YOUR_APP_ID', - # app_secret: 'YOUR_APP_SECRET', - # args: { access_type: 'offline', approval_prompt: '' } } - # - { name: 'facebook', - # app_id: 'YOUR_APP_ID', - # app_secret: 'YOUR_APP_SECRET' } - # - { name: 'twitter', - # app_id: 'YOUR_APP_ID', - # app_secret: 'YOUR_APP_SECRET' } - # - # - { name: 'saml', - # label: 'Our SAML Provider', - # groups_attribute: 'Groups', - # external_groups: ['Contractors', 'Freelancers'], - # args: { - # assertion_consumer_service_url: 'https://gitlab.example.com/users/auth/saml/callback', - # idp_cert_fingerprint: '43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8', - # idp_sso_target_url: 'https://login.example.com/idp', - # issuer: 'https://gitlab.example.com', - # name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient' - # } } - # - # - { name: 'crowd', - # args: { - # crowd_server_url: 'CROWD SERVER URL', - # application_name: 'YOUR_APP_NAME', - # application_password: 'YOUR_APP_PASSWORD' } } - # - # - { name: 'auth0', - # args: { - # client_id: 'YOUR_AUTH0_CLIENT_ID', - # client_secret: 'YOUR_AUTH0_CLIENT_SECRET', - # namespace: 'YOUR_AUTH0_DOMAIN' } } - - # SSO maximum session duration in seconds. Defaults to CAS default of 8 hours. - # cas3: - # session_duration: 28800 - - # Shared file storage settings - shared: - # path: /mnt/gitlab # Default: shared - - # Gitaly settings - gitaly: - # Path to the directory containing Gitaly client executables. - client_path: /usr/bin - # Default Gitaly authentication token. Can be overriden per storage. Can - # be left blank when Gitaly is running locally on a Unix socket, which - # is the normal way to deploy Gitaly. - token: - - # - # 4. Advanced settings - # ========================== - - ## Repositories settings - repositories: - # Paths where repositories can be stored. Give the canonicalized absolute pathname. - # IMPORTANT: None of the path components may be symlink, because - # gitlab-shell invokes Dir.pwd inside the repository path and that results - # real path not the symlink. - storages: # You must have at least a `default` storage path. - default: - path: /var/lib/gitlab/repositories/ - gitaly_address: unix:/run/gitlab/sockets/private/gitaly.socket # TCP connections are supported too (e.g. tcp://host:port) - # gitaly_token: 'special token' # Optional: override global gitaly.token for this storage. - failure_count_threshold: 10 # number of failures before stopping attempts - failure_wait_time: 30 # Seconds after an access failure before allowing access again - failure_reset_time: 1800 # Time in seconds to expire failures - storage_timeout: 5 # Time in seconds to wait before aborting a storage access attempt - - - ## Backup settings - backup: - path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/) - # archive_permissions: 0640 # Permissions for the resulting backup.tar file (default: 0600) - # keep_time: 604800 # default: 0 (forever) (in seconds) - # pg_schema: public # default: nil, it means that all schemas will be backed up - # upload: - # # Fog storage connection settings, see http://fog.io/storage/ . - # connection: - # provider: AWS - # region: eu-west-1 - # aws_access_key_id: AKIAKIAKI - # aws_secret_access_key: 'secret123' - # # The remote 'directory' to store your backups. For S3, this would be the bucket name. - # remote_directory: 'my.s3.bucket' - # # Use multipart uploads when file size reaches 100MB, see - # # http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html - # multipart_chunk_size: 104857600 - # # Turns on AWS Server-Side Encryption with Amazon S3-Managed Keys for backups, this is optional - # # encryption: 'AES256' - # # Specifies Amazon S3 storage class to use for backups, this is optional - # # storage_class: 'STANDARD' - - ## GitLab Shell settings - gitlab_shell: - path: /usr/share/gitlab-shell/ - hooks_path: /usr/share/gitlab-shell/hooks/ - - # File that contains the secret key for verifying access for gitlab-shell. - # Default is '.gitlab_shell_secret' relative to Rails.root (i.e. root of the GitLab app). - # secret_file: /var/lib/gitlab/.gitlab_shell_secret - - # Git over HTTP - upload_pack: true - receive_pack: true - - # Git import/fetch timeout - # git_timeout: 800 - - # If you use non-standard ssh port you need to specify it - # ssh_port: 22 - - workhorse: - # File that contains the secret key for verifying access for gitlab-workhorse. - # Default is '.gitlab_workhorse_secret' relative to Rails.root (i.e. root of the GitLab app). - # secret_file: /var/lib/gitlab/.gitlab_workhorse_secret - - ## Git settings - # CAUTION! - # Use the default values unless you really know what you are doing - git: - bin_path: /usr/bin/git - # The next value is the maximum memory size grit can use - # Given in number of bytes per git object (e.g. a commit) - # This value can be increased if you have very large commits - max_size: 20971520 # 20.megabytes - # Git timeout to read a commit, in seconds - timeout: 10 - - ## Webpack settings - # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running - # on a given port instead of serving directly from /assets/webpack. This is only indended for use - # in development. - webpack: - # dev_server: - # enabled: true - # host: localhost - # port: 3808 - - ## Monitoring - # Built in monitoring settings - monitoring: - # Time between sampling of unicorn socket metrics, in seconds - # unicorn_sampler_interval: 10 - # IP whitelist to access monitoring endpoints - ip_whitelist: - - 127.0.0.0/8 - - # Sidekiq exporter is webserver built in to Sidekiq to expose Prometheus metrics - sidekiq_exporter: - # enabled: true - # address: localhost - # port: 3807 - - # - # 5. Extra customization - # ========================== - - extra: - ## Google analytics. Uncomment if you want it - # google_analytics_id: '_your_tracking_id' - - ## Piwik analytics. - # piwik_url: '_your_piwik_url' - # piwik_site_id: '_your_piwik_site_id' - - rack_attack: - git_basic_auth: - # Rack Attack IP banning enabled - # enabled: true - # - # Whitelist requests from 127.0.0.1 for web proxies (NGINX/Apache) with incorrect headers - # ip_whitelist: ["127.0.0.1"] - # - # Limit the number of Git HTTP authentication attempts per IP - # maxretry: 10 - # - # Reset the auth attempt counter per IP after 60 seconds - # findtime: 60 - # - # Ban an IP for one hour (3600s) after too many auth attempts - # bantime: 3600 - -development: - <<: *base - -test: - <<: *base - gravatar: - enabled: true - lfs: - enabled: false - gitlab: - host: localhost - port: 80 - - # When you run tests we clone and setup gitlab-shell - # In order to setup it correctly you need to specify - # your system username you use to run GitLab - # user: YOUR_USERNAME - pages: - path: tmp/tests/pages - repositories: - storages: - default: - path: tmp/tests/repositories/ - gitaly_address: unix:tmp/tests/gitaly/gitaly.socket - failure_count_threshold: 999999 - failure_wait_time: 0 - storage_timeout: 30 - broken: - path: tmp/tests/non-existent-repositories - gitaly_address: unix:tmp/tests/gitaly/gitaly.socket - - gitaly: - enabled: true - token: secret - backup: - path: tmp/tests/backups - gitlab_shell: - path: tmp/tests/gitlab-shell/ - hooks_path: tmp/tests/gitlab-shell/hooks/ - issues_tracker: - redmine: - title: "Redmine" - project_url: "http://redmine/projects/:issues_tracker_id" - issues_url: "http://redmine/:project_id/:issues_tracker_id/:id" - new_issue_url: "http://redmine/projects/:issues_tracker_id/issues/new" - jira: - title: "JIRA" - url: https://sample_company.atlassian.net - project_key: PROJECT - - omniauth: - enabled: true - allow_single_sign_on: true - external_providers: [] - - providers: - - { name: 'cas3', - label: 'cas3', - args: { url: 'https://sso.example.com', - disable_ssl_verification: false, - login_url: '/cas/login', - service_validate_url: '/cas/p3/serviceValidate', - logout_url: '/cas/logout'} } - - { name: 'github', - app_id: 'YOUR_APP_ID', - app_secret: 'YOUR_APP_SECRET', - url: "https://github.com/", - verify_ssl: false, - args: { scope: 'user:email' } } - - { name: 'bitbucket', - app_id: 'YOUR_APP_ID', - app_secret: 'YOUR_APP_SECRET' } - - { name: 'gitlab', - app_id: 'YOUR_APP_ID', - app_secret: 'YOUR_APP_SECRET', - args: { scope: 'api' } } - - { name: 'google_oauth2', - app_id: 'YOUR_APP_ID', - app_secret: 'YOUR_APP_SECRET', - args: { access_type: 'offline', approval_prompt: '' } } - - { name: 'facebook', - app_id: 'YOUR_APP_ID', - app_secret: 'YOUR_APP_SECRET' } - - { name: 'twitter', - app_id: 'YOUR_APP_ID', - app_secret: 'YOUR_APP_SECRET' } - - { name: 'auth0', - args: { - client_id: 'YOUR_AUTH0_CLIENT_ID', - client_secret: 'YOUR_AUTH0_CLIENT_SECRET', - namespace: 'YOUR_AUTH0_DOMAIN' } } - - { name: 'authentiq', - app_id: 'YOUR_CLIENT_ID', - app_secret: 'YOUR_CLIENT_SECRET', - args: { scope: 'aq:name email~rs address aq:push' } } - ldap: - enabled: false - servers: - main: - label: ldap - host: 127.0.0.1 - port: 3890 - uid: 'uid' - encryption: 'plain' # "start_tls" or "simple_tls" or "plain" - base: 'dc=example,dc=com' - user_filter: '' - group_base: 'ou=groups,dc=example,dc=com' - admin_group: '' - -staging: - <<: *base diff --git a/debian/conf/nginx.conf.example b/debian/conf/nginx.conf.example deleted file mode 100644 index c0b1e15cc2..0000000000 --- a/debian/conf/nginx.conf.example +++ /dev/null @@ -1,121 +0,0 @@ -## GitLab -## -## Lines starting with two hashes (##) are comments with information. -## Lines starting with one hash (#) are configuration parameters that can be uncommented. -## -################################## -## CONTRIBUTING ## -################################## -## -## If you change this file in a Merge Request, please also create -## a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests -## -################################### -## configuration ## -################################### -## -## See installation.md#using-https for additional HTTPS configuration details. - -upstream gitlab-workhorse { - # GitLab socket file, - # for Omnibus this would be: unix:/var/opt/gitlab/gitlab-workhorse/socket - server unix:/run/gitlab/gitlab-workhorse.socket fail_timeout=0; -} - -map $http_upgrade $connection_upgrade_gitlab { - default upgrade; - '' close; -} - -## NGINX 'combined' log format with filtered query strings -log_format gitlab_access $remote_addr - $remote_user [$time_local] "$request_method $gitlab_filtered_request_uri $server_protocol" $status $body_bytes_sent "$gitlab_filtered_http_referer" "$http_user_agent"; - -## Remove private_token from the request URI -# In: /foo?private_token=unfiltered&authenticity_token=unfiltered&feed_token=unfiltered&... -# Out: /foo?private_token=[FILTERED]&authenticity_token=unfiltered&feed_token=unfiltered&... -map $request_uri $gitlab_temp_request_uri_1 { - default $request_uri; - ~(?i)^(?.*)(?[\?&]private[\-_]token)=[^&]*(?.*)$ "$start$temp=[FILTERED]$rest"; -} - -## Remove authenticity_token from the request URI -# In: /foo?private_token=[FILTERED]&authenticity_token=unfiltered&feed_token=unfiltered&... -# Out: /foo?private_token=[FILTERED]&authenticity_token=[FILTERED]&feed_token=unfiltered&... -map $gitlab_temp_request_uri_1 $gitlab_temp_request_uri_2 { - default $gitlab_temp_request_uri_1; - ~(?i)^(?.*)(?[\?&]authenticity[\-_]token)=[^&]*(?.*)$ "$start$temp=[FILTERED]$rest"; -} - -## Remove feed_token from the request URI -# In: /foo?private_token=[FILTERED]&authenticity_token=[FILTERED]&feed_token=unfiltered&... -# Out: /foo?private_token=[FILTERED]&authenticity_token=[FILTERED]&feed_token=[FILTERED]&... -map $gitlab_temp_request_uri_2 $gitlab_filtered_request_uri { - default $gitlab_temp_request_uri_2; - ~(?i)^(?.*)(?[\?&]feed[\-_]token)=[^&]*(?.*)$ "$start$temp=[FILTERED]$rest"; -} - -## A version of the referer without the query string -map $http_referer $gitlab_filtered_http_referer { - default $http_referer; - ~^(?.*)\? $temp; -} - -## Normal HTTP host -server { - ## Either remove "default_server" from the listen line below, - ## or delete the /etc/nginx/sites-enabled/default file. This will cause gitlab - ## to be served if you visit any address that your server responds to, eg. - ## the ip address of the server (http://x.x.x.x/)n 0.0.0.0:80 default_server; - listen 0.0.0.0:80; - listen [::]:80; - server_name YOUR_SERVER_FQDN; ## Replace this with something like gitlab.example.com - server_tokens off; ## Don't show the nginx version number, a security best practice - - ## See app/controllers/application_controller.rb for headers set - - ## Real IP Module Config - ## http://nginx.org/en/docs/http/ngx_http_realip_module.html - real_ip_header X-Real-IP; ## X-Real-IP or X-Forwarded-For or proxy_protocol - real_ip_recursive off; ## If you enable 'on' - ## If you have a trusted IP address, uncomment it and set it - # set_real_ip_from YOUR_TRUSTED_ADDRESS; ## Replace this with something like 192.168.1.0/24 - - ## Individual nginx logs for this GitLab vhost - access_log /var/log/nginx/gitlab_access.log gitlab_access; - error_log /var/log/nginx/gitlab_error.log; - - location / { - client_max_body_size 0; - gzip off; - - ## https://github.com/gitlabhq/gitlabhq/issues/694 - ## Some requests take more than 30 seconds. - proxy_read_timeout 300; - proxy_connect_timeout 300; - proxy_redirect off; - - proxy_http_version 1.1; - - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade_gitlab; - - proxy_pass http://gitlab-workhorse; - } - - error_page 404 /404.html; - error_page 422 /422.html; - error_page 500 /500.html; - error_page 502 /502.html; - error_page 503 /503.html; - location ~ ^/(404|422|500|502|503)\.html$ { - # Location to the GitLab's public directory, - # for Omnibus this would be: /opt/gitlab/embedded/service/gitlab-rails/public. - root /usr/share/gitlab/public; - internal; - } - -} diff --git a/debian/conf/nginx.ssl.conf.example b/debian/conf/nginx.ssl.conf.example deleted file mode 100644 index d7bc54a3e1..0000000000 --- a/debian/conf/nginx.ssl.conf.example +++ /dev/null @@ -1,170 +0,0 @@ -## GitLab -## -## Modified from nginx http version -## Modified from http://blog.phusion.nl/2012/04/21/tutorial-setting-up-gitlab-on-debian-6/ -## Modified from https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html -## -## Lines starting with two hashes (##) are comments with information. -## Lines starting with one hash (#) are configuration parameters that can be uncommented. -## -################################## -## CONTRIBUTING ## -################################## -## -## If you change this file in a Merge Request, please also create -## a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests -## -################################### -## configuration ## -################################### -## -## See installation.md#using-https for additional HTTPS configuration details. - -upstream gitlab-workhorse { - # GitLab socket file, - # for Omnibus this would be: unix:/var/opt/gitlab/gitlab-workhorse/socket - server unix:/run/gitlab/gitlab-workhorse.socket fail_timeout=0; -} - -map $http_upgrade $connection_upgrade_gitlab_ssl { - default upgrade; - '' close; -} - - -## NGINX 'combined' log format with filtered query strings -log_format gitlab_ssl_access $remote_addr - $remote_user [$time_local] "$request_method $gitlab_ssl_filtered_request_uri $server_protocol" $status $body_bytes_sent "$gitlab_ssl_filtered_http_referer" "$http_user_agent"; - -## Remove private_token from the request URI -# In: /foo?private_token=unfiltered&authenticity_token=unfiltered&feed_token=unfiltered&... -# Out: /foo?private_token=[FILTERED]&authenticity_token=unfiltered&feed_token=unfiltered&... -map $request_uri $gitlab_ssl_temp_request_uri_1 { - default $request_uri; - ~(?i)^(?.*)(?[\?&]private[\-_]token)=[^&]*(?.*)$ "$start$temp=[FILTERED]$rest"; -} - -## Remove authenticity_token from the request URI -# In: /foo?private_token=[FILTERED]&authenticity_token=unfiltered&feed_token=unfiltered&... -# Out: /foo?private_token=[FILTERED]&authenticity_token=[FILTERED]&feed_token=unfiltered&... -map $gitlab_ssl_temp_request_uri_1 $gitlab_ssl_temp_request_uri_2 { - default $gitlab_ssl_temp_request_uri_1; - ~(?i)^(?.*)(?[\?&]authenticity[\-_]token)=[^&]*(?.*)$ "$start$temp=[FILTERED]$rest"; -} - -## Remove feed_token from the request URI -# In: /foo?private_token=[FILTERED]&authenticity_token=[FILTERED]&feed_token=unfiltered&... -# Out: /foo?private_token=[FILTERED]&authenticity_token=[FILTERED]&feed_token=[FILTERED]&... -map $gitlab_ssl_temp_request_uri_2 $gitlab_ssl_filtered_request_uri { - default $gitlab_ssl_temp_request_uri_2; - ~(?i)^(?.*)(?[\?&]feed[\-_]token)=[^&]*(?.*)$ "$start$temp=[FILTERED]$rest"; -} - -## A version of the referer without the query string -map $http_referer $gitlab_ssl_filtered_http_referer { - default $http_referer; - ~^(?.*)\? $temp; -} - - -## Redirects all HTTP traffic to the HTTPS host -server { - ## Either remove "default_server" from the listen line below, - ## or delete the /etc/nginx/sites-enabled/default file. This will cause gitlab - ## to be served if you visit any address that your server responds to, eg. - ## the ip address of the server (http://x.x.x.x/) - listen 0.0.0.0:80; - listen [::]:80 ipv6only=on; - server_name YOUR_SERVER_FQDN; ## Replace this with something like gitlab.example.com - server_tokens off; ## Don't show the nginx version number, a security best practice - return 301 https://$http_host$request_uri; - access_log /var/log/nginx/gitlab_access.log gitlab_ssl_access; - error_log /var/log/nginx/gitlab_error.log; -} - -## HTTPS host -server { - listen 0.0.0.0:443 ssl; - listen [::]:443 ipv6only=on ssl; - server_name YOUR_SERVER_FQDN; ## Replace this with something like gitlab.example.com - server_tokens off; ## Don't show the nginx version number, a security best practice - - ## Strong SSL Security - ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/ - ssl on; - ssl_certificate /etc/gitlab/ssl/gitlab.crt; - ssl_certificate_key /etc/gitlab/ssl/gitlab.key; - - # GitLab needs backwards compatible ciphers to retain compatibility with Java IDEs - ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_prefer_server_ciphers on; - ssl_session_cache shared:SSL:10m; - ssl_session_timeout 5m; - - ## See app/controllers/application_controller.rb for headers set - - ## [Optional] If your certficate has OCSP, enable OCSP stapling to reduce the overhead and latency of running SSL. - ## Replace with your ssl_trusted_certificate. For more info see: - ## - https://medium.com/devops-programming/4445f4862461 - ## - https://www.ruby-forum.com/topic/4419319 - ## - https://www.digitalocean.com/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx - # ssl_stapling on; - # ssl_stapling_verify on; - # ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt; - # resolver 208.67.222.222 208.67.222.220 valid=300s; # Can change to your DNS resolver if desired - # resolver_timeout 5s; - - ## [Optional] Generate a stronger DHE parameter: - ## sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096 - ## - # ssl_dhparam /etc/ssl/certs/dhparam.pem; - - ## [Optional] Enable HTTP Strict Transport Security - # add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; - - ## Real IP Module Config - ## http://nginx.org/en/docs/http/ngx_http_realip_module.html - real_ip_header X-Real-IP; ## X-Real-IP or X-Forwarded-For or proxy_protocol - real_ip_recursive off; ## If you enable 'on' - ## If you have a trusted IP address, uncomment it and set it - # set_real_ip_from YOUR_TRUSTED_ADDRESS; ## Replace this with something like 192.168.1.0/24 - - ## Individual nginx logs for this GitLab vhost - access_log /var/log/nginx/gitlab_access.log gitlab_ssl_access; - error_log /var/log/nginx/gitlab_error.log; - - location / { - client_max_body_size 0; - gzip off; - - ## https://github.com/gitlabhq/gitlabhq/issues/694 - ## Some requests take more than 30 seconds. - proxy_read_timeout 300; - proxy_connect_timeout 300; - proxy_redirect off; - - proxy_http_version 1.1; - - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-Ssl on; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade_gitlab_ssl; - - proxy_pass http://gitlab-workhorse; - } - - error_page 404 /404.html; - error_page 422 /422.html; - error_page 500 /500.html; - error_page 502 /502.html; - error_page 503 /503.html; - location ~ ^/(404|422|500|502|503)\.html$ { - # Location to the GitLab's public directory, - # for Omnibus this would be: /opt/gitlab/embedded/service/gitlab-rails/public - root /usr/share/gitlab/public; - internal; - } -} diff --git a/debian/conf/puma.rb b/debian/conf/puma.rb deleted file mode 100644 index 500f845429..0000000000 --- a/debian/conf/puma.rb +++ /dev/null @@ -1,78 +0,0 @@ -# frozen_string_literal: true - -# Load "path" as a rackup file. -# -# The default is "config.ru". -# -rackup 'config.ru' -pidfile "#{ENV['gitlab_pid_path']}/puma.pid" -state_path "#{ENV['gitlab_pid_path']}/puma.state" - -stdout_redirect File.join(ENV['gitlab_log_dir'],"puma.stdout.log"), - File.join(ENV['gitlab_log_dir'],"puma.stderr.log"), - true - -# Configure "min" to be the minimum number of threads to use to answer -# requests and "max" the maximum. -# -# The default is "0, 16". -# -threads 1, 16 - -# By default, workers accept all requests and queue them to pass to handlers. -# When false, workers accept the number of simultaneous requests configured. -# -# Queueing requests generally improves performance, but can cause deadlocks if -# the app is waiting on a request to itself. See https://github.com/puma/puma/issues/612 -# -# When set to false this may require a reverse proxy to handle slow clients and -# queue requests before they reach puma. This is due to disabling HTTP keepalive -queue_requests false - -# Bind the server to "url". "tcp://", "unix://" and "ssl://" are the only -# accepted protocols. -bind "unix://#{ENV['gitlab_pid_path']}/gitlab.socket" - -workers 3 - -require_relative "#{ENV['gitlab_app_root']}/lib/gitlab/cluster/lifecycle_events" -require_relative "#{ENV['gitlab_app_root']}/lib/gitlab/cluster/puma_worker_killer_initializer" - -on_restart do - # Signal application hooks that we're about to restart - Gitlab::Cluster::LifecycleEvents.do_before_master_restart -end - -before_fork do - # Signal to the puma killer - Gitlab::Cluster::PumaWorkerKillerInitializer.start @config.options unless ENV['DISABLE_PUMA_WORKER_KILLER'] - - # Signal application hooks that we're about to fork - Gitlab::Cluster::LifecycleEvents.do_before_fork -end - -Gitlab::Cluster::LifecycleEvents.set_puma_options @config.options -on_worker_boot do - # Signal application hooks of worker start - Gitlab::Cluster::LifecycleEvents.do_worker_start -end - -# Preload the application before starting the workers; this conflicts with -# phased restart feature. (off by default) -preload_app! - -tag 'gitlab-puma-worker' - -# Verifies that all workers have checked in to the master process within -# the given timeout. If not the worker process will be restarted. Default -# value is 60 seconds. -# -worker_timeout 60 - -# Use json formatter -require_relative "#{ENV['gitlab_app_root']}/lib/gitlab/puma_logging/json_formatter" - -json_formatter = Gitlab::PumaLogging::JSONFormatter.new -log_formatter do |str| - json_formatter.call(str) -end diff --git a/debian/conf/resque.yml b/debian/conf/resque.yml deleted file mode 100644 index 0c706be301..0000000000 --- a/debian/conf/resque.yml +++ /dev/null @@ -1,8 +0,0 @@ -# If you change this file in a Merge Request, please also create -# a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests -# -development: redis://localhost:6379 -test: redis://localhost:6379 -# default redis configuration in debian is tcp -#production: unix:/var/run/redis/redis.sock -production: redis://localhost:6379 diff --git a/debian/conf/smtp_settings.rb b/debian/conf/smtp_settings.rb deleted file mode 100644 index 0f7201db34..0000000000 --- a/debian/conf/smtp_settings.rb +++ /dev/null @@ -1,15 +0,0 @@ -# To enable smtp email delivery for your GitLab instance do the following: -# 1. Rename this file to smtp_settings.rb -# 2. Edit settings inside this file -# 3. Restart GitLab instance -# -# For full list of options and their values see http://api.rubyonrails.org/classes/ActionMailer/Base.html -# -# If you change this file in a Merge Request, please also create a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests - -if Rails.env.production? - Rails.application.config.action_mailer.delivery_method = :sendmail - Rails.application.config.action_mailer.default_options = {from: "#{ENV['GITLAB_EMAIL_FROM']}" || "#{Settings.gitlab['email_from']}" || ''} - - ActionMailer::Base.sendmail_settings = {} -end diff --git a/debian/conf/tmpfiles.d/gitlab.conf b/debian/conf/tmpfiles.d/gitlab.conf deleted file mode 100644 index a2612109a8..0000000000 --- a/debian/conf/tmpfiles.d/gitlab.conf +++ /dev/null @@ -1,2 +0,0 @@ -L /run/gitlab/cache - - - - /var/cache/gitlab -L /run/gitlab/backups - - - - /var/lib/gitlab/backups diff --git a/debian/control b/debian/control deleted file mode 100644 index bead7fa475..0000000000 --- a/debian/control +++ /dev/null @@ -1,555 +0,0 @@ -Source: gitlab -Section: net -Priority: optional -Maintainer: Debian Ruby Team -Uploaders: Cédric Boutillier , - Pirate Praveen , - Balasankar C , - Sruthi Chandran , - Utkarsh Gupta -Build-Depends: debhelper-compat (= 13), - gem2deb, - dh-golang, -# See #1016217 (gccgo and x/net don't work well together right now) -# golang-any (>= 2:1.17~), - golang-go (>= 2:1.17~), - bc, - golang-github-alecthomas-chroma-v2-dev, - golang-github-aws-aws-sdk-go-dev, - golang-github-azure-azure-storage-blob-go-dev (>= 0.10~), - golang-github-beorn7-perks-dev, - golang-github-client9-reopen-dev, - golang-github-davecgh-go-spew-dev, - golang-github-dgrijalva-jwt-go-dev (>= 3.2.0~), - golang-github-disintegration-imaging-dev, - golang-github-fzambia-sentinel-dev, - golang-github-garyburd-redigo-dev, - golang-github-golang-jwt-jwt-dev, - golang-github-google-uuid-dev, - golang-github-getsentry-raven-go-dev (>= 0.2~), - golang-github-gomodule-redigo-dev, - golang-github-grpc-ecosystem-go-grpc-prometheus-dev, - golang-github-hashicorp-yamux-dev (>= 0.0+git20210316.a95892c~), - golang-github-jfbus-httprs-dev, - golang-github-jtolds-gls-dev (>= 4.20~), - golang-github-jpillora-backoff-dev, - golang-github-mitchellh-copystructure-dev, - golang-github-mitchellh-reflectwalk-dev, - golang-github-pmezard-go-difflib-dev, - golang-github-prometheus-client-golang-dev, - golang-github-prometheus-client-model-dev, - golang-github-prometheus-common-dev, - golang-github-ryszard-goskiplist-dev, - golang-github-sebest-xff-dev, - golang-github-sirupsen-logrus-dev, - golang-github-stretchr-testify-dev (>= 1.4~), - golang-gitlab-gitlab-org-gitaly-dev (>= 15.2~), - golang-github-beevik-ntp-dev, - golang-gitlab-gitlab-org-labkit-dev (>= 1.14~), - golang-gocloud-dev, - golang-golang-x-crypto-dev, - golang-golang-x-net-dev, - golang-golang-x-sys-dev (>= 0.0~git20180510.7dfd129~), - golang-google-genproto-dev, - golang-goprotobuf-dev (>= 1.4.3~), - golang-honnef-go-tools-dev, - golang-procfs-dev, - golang-protobuf-extensions-dev, - golang-toml-dev, - golang-websocket-dev, - golang-google-grpc-dev (>= 1.38~), - libimage-exiftool-perl -Standards-Version: 4.6.1 -Vcs-Git: https://salsa.debian.org/ruby-team/gitlab.git -Vcs-Browser: https://salsa.debian.org/ruby-team/gitlab -Homepage: https://about.gitlab.com/ -XS-Ruby-Versions: all -XS-Go-Import-Path: gitlab.com/gitlab-org/gitlab - -Package: gitlab -Section: contrib/net -Architecture: all -XB-Ruby-Versions: ${ruby:Versions} -Depends: ${shlibs:Depends}, ${misc:Depends}, - gitlab-common (>= 15.1~), - ruby (>= 1:2.7~), - rubygems-integration (>= 1.18~), - lsb-base (>= 3.0-6), - rake (>= 12.3.0~), - bundler (>= 1.17.3~), - postgresql-client, - postgresql-contrib (>= 12~), - dbconfig-pgsql | dbconfig-no-thanks, - bc, - redis-server (>= 5:6.0.12~), -# See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=956211 - nodejs (>= 12~), - nginx | httpd, - default-mta | postfix | exim4 | mail-transport-agent, - openssh-client, - bzip2, - ucf, - gitlab-workhorse (>= ${source:Version}), - ruby-rails (>= 2:6.1.4.7~), - ruby-websocket-extensions (>= 0.1.5~), - ruby-bootsnap (>= 1.12~), - ruby-responders (>= 3.0~), - ruby-sprockets (>= 3.7~), - ruby-view-component (>= 2.50~), - ruby-default-value-for (>= 3.4~), -#ruby-mysql2 | ruby-pg, - ruby-pg (>= 1.3~), - ruby-rugged (>= 1.2~), - ruby-grape-path-helpers (>= 1.7~), - ruby-faraday (>= 1.0~), - ruby-marginalia (>= 1.10~), -# Authorization - ruby-declarative-policy (>= 1.1), -# Authentication libraries - ruby-devise (>= 4.7.1~), - ruby-bcrypt (>= 3.1.14~), - ruby-doorkeeper (>= 5.5~), - ruby-doorkeeper-openid-connect (>= 1.7.5~), - ruby-rexml (>= 3.2.3.1~), - ruby-saml (>= 1.13~), - ruby-omniauth (>= 1.8~), - ruby-omniauth-auth0 (>= 2.0~), - ruby-omniauth-azure-activedirectory-v2, - ruby-omniauth-azure-oauth2 (>= 0.0.10~), - ruby-omniauth-cas3 (>= 1.1.4~), - ruby-omniauth-dingtalk-oauth2, - ruby-omniauth-alicloud, - ruby-omniauth-facebook (>= 4.0~), - ruby-omniauth-github (>= 1.4~), - ruby-omniauth-gitlab (>= 1.0.2~), - ruby-omniauth-google-oauth2 (>= 0.6~), - ruby-omniauth-kerberos (>= 0.3.0-3~), - ruby-omniauth-oauth2-generic (>= 0.2.2~), - ruby-omniauth-saml (>= 1.10~), - ruby-omniauth-shibboleth (>= 1.3~), - ruby-omniauth-twitter (>= 1.4~), - ruby-omniauth-crowd (>= 2.2~), - ruby-omniauth-authentiq (>= 0.3.3~), - ruby-omniauth-openid-connect (>= 0.9~), - ruby-omniauth-salesforce (>= 1.0.5~), - ruby-omniauth-atlassian-oauth2 (>= 0.2.0~), - ruby-rack-oauth2 (>= 1.19~), - ruby-jwt (>= 2.1~), -# Spam and anti-bot protection - ruby-recaptcha (>= 4.11~), - ruby-akismet (>= 3.0~), - ruby-invisible-captcha (>= 1.1~), -# Two-factor authentication - ruby-devise-two-factor (>= 4.0.2~), - ruby-rqrcode-rails3 (>= 0.1.7-2~), - ruby-rqrcode (>= 1.2~), - ruby-attr-encrypted (>= 3.1.0-3~), - ruby-u2f (>= 0.2.1~), -# GitLab Pages - ruby-validates-hostname (>= 1.0.11~), - ruby-zip (>= 2.3.2~), -# GitLab Pages letsencrypt support - ruby-acme-client (>= 2.0.9~), -# Browser detection - ruby-browser (>= 4.2~), -# OS detection for usage ping - ohai (>= 16.13.0-2~), -# GPG - ruby-gpgme (>= 2.0.19~), -# LDAP Auth - ruby-omniauth-ldap (>= 2.2~), - ruby-ntlm (>= 0.6.1~), - ruby-net-ldap (>= 0.16.3~), -# API - ruby-grape (>= 1.5.1~), - ruby-grape-entity (>= 0.10~), - ruby-rack-cors (>= 1.0.6~), -# GraphQL API - ruby-graphql (>= 1.13.12~), - ruby-graphiql-rails (>= 1.4.10~), - ruby-apollo-upload-server (>= 2.1~), -# Used by BulkImport feature (group::import) - ruby-graphlient (>= 0.4.0), -# Disable strong_params so that Mash does not respond to :permitted? - ruby-hashie-forbidden-attributes, -# Pagination - ruby-kaminari (>= 1.2.1~), -# HAML - ruby-hamlit (>= 2.15~), -# Files attachments - ruby-carrierwave (>= 1.3.2~), - ruby-mini-magick (>= 4.10.1~), -# for backups - ruby-fog-aws (>= 3.12~), - ruby-fog-core (>= 2.1~), - ruby-excon (>= 0.72~), - ruby-fog-google (>= 1.15~), - ruby-fog-local (>= 0.6~), - ruby-fog-openstack (>= 1.0~), - ruby-fog-rackspace (>= 0.1.1~), - ruby-fog-aliyun (>= 0.3~), - ruby-gitlab-fog-azure-rm (>= 1.3~), - ruby-azure-storage-blob (>= 2.0.0-3~), - ruby-azure-storage-common (>= 2.0.1-5~), -# for Google storage - ruby-google-api-client (>= 0.44.2~), -# for aws storage - ruby-unf (>= 0.1.4-2~), - ruby-unf-ext (>= 0.0.7.4), -# Seed data - ruby-seed-fu (>= 2.3.7~), -# Search -# ruby-elasticsearch-model (>= 0.1.9~), embedded - ruby-elasticsearch (>= 5.0.3~), -# ruby-elasticsearch-rails (>= 0.1.9~), embedded - ruby-elasticsearch-api (>= 6.8.2~), - ruby-aws-sdk-core (>= 3.0~), - ruby-aws-sdk-cloudformation (>= 1.0~), - ruby-aws-sdk-s3 (>= 1.0~), - ruby-faraday-middleware-aws-sigv4, - ruby-typhoeus (>= 1.4~), -# Markdown and HTML processing - ruby-html-pipeline (>= 2.13.2~), - ruby-task-list (>= 2.3.1~), - ruby-gitlab-markup, - ruby-github-markup (>= 1.7~), - ruby-commonmarker (>= 0.23.4~), - ruby-kramdown (>= 2.3.1~), - ruby-redcloth (>= 4.3.2-3~), -# rdoc is built-in with ruby - ruby-org (>= 0.9.12-2~), - ruby-creole (>= 0.5.0~), - ruby-wikicloth (>= 0.8.1~), - asciidoctor (>= 2.0.10~), - ruby-asciidoctor-include-ext (>= 0.4~), - ruby-asciidoctor-plantuml (>= 0.0.12~), - ruby-asciidoctor-kroki (>= 0.5~), - ruby-rouge (>= 3.29~), - ruby-truncato (>= 0.7.11~), - ruby-bootstrap-form (>= 4.2~), - ruby-nokogiri (>= 1.13.6~), - ruby-escape-utils (>= 1.2.1~), -# Calendar rendering - ruby-icalendar, -# Diffs - ruby-diffy (>= 3.3~), - ruby-diff-match-patch (>= 0.1~), -# Application server - ruby-rack (>= 2.2.4~), - ruby-rack-timeout (>= 0.6.0~), - puma (>= 5.6.2~), - ruby-puma-worker-killer (>= 0.3.1~), - ruby-sd-notify, -# State machine - ruby-state-machines-activerecord (>= 0.8~), - ruby-state-machines-activemodel (>= 0.7.1~), -# Issue tags - ruby-acts-as-taggable-on (>= 9.0~), -# Background jobs - ruby-sidekiq (>= 6.4~), - ruby-sidekiq-cron (>= 1.2~), - ruby-redis-namespace (>= 1.8.1~), - ruby-gitlab-sidekiq-fetcher (>= 0.8~), -# Cron Parser - ruby-fugit (>= 1.2.1~), -# HTTP requests - ruby-httparty (>= 0.16.4~), -# Colored output to console - ruby-rainbow (>= 3.0~), -# Progress bar - ruby-progressbar (>= 1.10~), -# GitLab settings - ruby-settingslogic (>= 2.0.9~), -# Linear-time regex library for untrusted regular expressions - ruby-re2 (>= 1.4~), -# Misc - ruby-version-sorter (>= 2.2.4~), -# Export Ruby Regex to Javascript - ruby-js-regex (>= 3.7~), -# User agent parsing - ruby-device-detector, -# Redis - ruby-redis (>= 4.4~), - ruby-connection-pool (>= 2.0~), -# Redis session store - ruby-redis-rails (>= 5.0.2~), - ruby-redis-activesupport (>= 5.2~), - ruby-redis-actionpack (>= 5.2~), -# Discord integration - ruby-discordrb-webhooks (>= 3.4~), -# JIRA integration - ruby-jira (>= 2.1.4~), -# Flowdock integration - ruby-flowdock (>= 0.7~), - ruby-posix-spawn (>= 0.3.13~), -# Slack integration - ruby-slack-messenger (>= 2.3.3~), -# Hangouts Chat integration - ruby-hangouts-chat (>= 0.0.5), -# Asana integration - ruby-asana (>= 0.10.3~), -# FogBugz integration - ruby-fogbugz (>= 0.2.1-3~), -# Kubernetes integration - ruby-kubeclient (>= 4.9.2~), - ruby-recursive-open-struct (>= 1.1.1~), - ruby-http (>= 4.4~), -# Sanitize user input - ruby-sanitize (>= 6.0~), - ruby-babosa (>= 1.0.3~), -# Sanitizes SVG input - ruby-loofah (>= 2.18~), -# Working with license - ruby-licensee (>= 9.14.1~), -# Protect against bruteforcing - ruby-rack-attack (>= 6.3~), -# Ace editor - ruby-ace-rails-ap (>= 4.1~), -# Detect and convert string character encoding - ruby-charlock-holmes (>= 0.7.5~), -# Detect mime content type from content - ruby-ruby-magic (>= 0.5~), -# Faster blank - ruby-fast-blank, -# Parse time & duration - ruby-gitlab-chronic (>= 0.10.5~), - ruby-gitlab-chronic-duration (>= 0.10.6.2~), -# - ruby-webpack-rails (>= 0.9.10~), -# Many node modules are still in NEW, some are yet to be packaged -# so we use yarn to downlod those and hence gitlab is in contrib - yarnpkg (>= 1.22.4~), - ruby-rack-proxy (>= 0.7.2~), -# - ruby-sassc-rails (>= 2.1~), - ruby-sassc (>= 2.0~), - ruby-autoprefixer-rails (>= 10.2.5.1~), - ruby-terser (>= 1.0.2~), -# - ruby-addressable (>= 2.8~), - ruby-tanuki-emoji (>= 0.6~), - ruby-gon (>= 6.4~), - ruby-request-store (>= 1.5~), - ruby-virtus (>= 1.0.5-3~), - ruby-base32 (>= 0.3.0~), -# Sentry integration - ruby-sentry-raven (>= 3.1~), - ruby-sentry-ruby (>= 5.1.1~), - ruby-sentry-rails (>= 5.1.1~), - ruby-sentry-sidekiq (>= 5.1.1~), -# PostgreSQL query parsing - ruby-pg-query (>= 2.1~), -# - ruby-premailer-rails (>= 1.10.3-2~), -# LabKit: Tracing and Correlation - ruby-gitlab-labkit (>= 0.23~), -# Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0 -# because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900 - ruby-thrift (>= 0.14~), -# I18n - ruby-ruby-parser (>= 3.15~), - ruby-whitequark-parser (>= 3.0~), - ruby-rails-i18n (>= 6.0~), - ruby-gettext-i18n-rails (>= 1.8~), - ruby-gettext-i18n-rails-js (>= 1.3~), - ruby-gettext (>= 3.3.3~), -# - ruby-batch-loader (>= 2.0.1~), -# Perf bar - ruby-peek (>= 1.1~), -# Snowplow events tracking - ruby-snowplow-tracker (>= 0.6.1~), -# Memory benchmarks - ruby-derailed-benchmarks, -# Metrics - ruby-method-source (>= 1.0~), - ruby-webrick (>= 1.6.1~), - ruby-prometheus-client-mmap (>= 0.16.2~), -# - ruby-warning (>= 1.3~), -# - ruby-octokit (>= 4.15~), -# - ruby-mail-room (>= 0.10.0+really0.0.9~), -# - ruby-email-reply-trimmer (>= 0.1~), - ruby-html2text, -# - ruby-prof (>= 1.3~), - ruby-stackprof (>= 0.2.15~), - ruby-rbtrace (>= 0.4~), - ruby-memory-profiler (>= 0.9~), - ruby-benchmark-memory (>= 0.1~), - ruby-activerecord-explain-analyze (>= 0.1~), -# OAuth - ruby-oauth2 (>= 1.4.4~), -# oauth2 2.0 is installed from rubygems.org - ruby-omniauth-oauth2 (>= 1.7.3~), -# Health check - ruby-health-check (>= 3.0~), -# System information - ruby-vmstat (>= 2.3~), - ruby-sys-filesystem (>= 1.4.3~), -# NTP client - ruby-net-ntp, -# SSH keys support - ruby-ssh-data (>= 1.2~), -# Spamcheck GRPC protocol definitions - ruby-spamcheck, -# Gitaly GRPC client - ruby-gitaly (>= 15.2~), -# KAS GRPC protocol definitions - ruby-kas-grpc, -# - ruby-grpc (>= 1.30.2~), -# - ruby-google-protobuf (>= 3.19.4~), -# - ruby-toml-rb (>= 2.0~), -# Feature toggles - ruby-flipper (>= 0.21~), - ruby-flipper-active-record (>= 0.21~), - ruby-flipper-active-support-cache-store (>= 0.21~), - ruby-unleash (>= 3.2.2~), - ruby-gitlab-experiment (>= 0.7.1~), -# Structured logging - ruby-lograge (>= 0.10~), - ruby-grape-logging (>= 1.8~), -# DNS Lookup - ruby-gitlab-net-dns (>= 0.9.1~), -# Countries list - ruby-countries (>= 3.0~), - ruby-retriable (>= 3.1.2~), -# LRU cache - ruby-lru-redux, - ruby-erubi (>= 1.9~), - ruby-mail (>= 2.7.1), -# File encryption - ruby-lockbox (>= 0.6.2~), -# Email validation - ruby-valid-email, -# JSON - ruby-json (>= 2.5.1~), - ruby-json-schema (>= 2.8.1-2~), - ruby-json-schemer (>= 0.2.12~), - ruby-oj (>= 3.13.19~), - ruby-multi-json (>= 1.14.1~), - ruby-yajl (>= 1.4.1~), - ruby-webauthn (>= 2.5~), - ruby-parslet, - ruby-ipynbdiff (>= 0.4.7~), - ruby-ed25519 (>= 1.3~), -# packaged node modules - all node packages are not packaged yet - node-rails-actioncable, - node-autosize (>= 4.0.2~dfsg1-5~), - node-axios (>= 0.17.1~), - node-babel7, - node-babel-loader (>= 8.0~), - node-babel-plugin-lodash, - node-bootstrap, - node-brace-expansion (>= 1.1.8~), - node-cache-loader (>= 4.1~), - node-clipboard (>= 2.0.8~), - node-codemirror, - node-compression-webpack-plugin (>= 3.0.1~), - node-copy-webpack-plugin (>= 5.0~), - node-core-js (>= 3.2.1~), - node-cron-validator, - node-css-loader (>= 5.0~), -# node-d3 includes d3-sankey - node-d3 (>= 5.16~), - node-d3-selection (>= 1.2~), - node-dateformat (>= 5.0.1~), - node-deckar01-task-list (>= 2.2.1), - node-dompurify (>= 2.3.6~), - node-exports-loader (>= 0.7~), - node-imports-loader (>= 0.8~), - node-file-loader (>= 5.0~), - node-font-awesome, - node-fuzzaldrin-plus (>= 0.5~), - node-glob (>= 7.1.6~), - node-jed (>= 1.1.1-2~), - node-jquery (>= 3.5~), - node-jquery-ujs, -# Broken -# node-jquery.waitforimages, - node-js-cookie (>= 3.0~), - node-js-yaml (>= 3.13.1~), - node-jszip, - node-jszip-utils (>= 0.0.2+dfsg-2~), - node-katex (>= 0.13~), - node-lodash (>= 4.17.21+dfsg+~cs8.31.189.20210220~), - node-marked (>= 0.3~), - node-mermaid (>= 8.13.10~), - node-minimatch, - node-miragejs, - node-mousetrap, - node-pdfjs-dist, -# Include node-pikaday only after @gitlab/ui is accepted -# node-pikaday (>= 1.8.0-2~), - node-popper.js (>= 1.16.1~), - node-postcss (>= 8.4.5~), - node-prismjs (>= 1.6~), - node-prosemirror-markdown (>= 1.5.2~), - node-prosemirror-model (>= 1.16.1~), - node-prosemirror-state (>= 1.3.4~), - node-prosemirror-view, - node-raven-js, - node-raw-loader (>= 4.0~), - node-style-loader (>= 1.0~), - node-three-orbit-controls (>= 82.1.0-3~), - node-three-stl-loader (>= 1.0.4~), - node-timeago.js (>= 4.0~), - node-underscore (>= 1.9~), - node-url-loader (>= 3.0~), - node-uuid (>= 8.1~), - node-vue (>= 2.6.10~), - node-vue-resource (>= 1.5.1~), -# Blocked by #927254 -# node-vue-router, - webpack (>= 4.43~), - node-webpack-stats-plugin, - node-worker-loader (>= 2.0~), - node-xterm, -# using yarn install for remaining node modules as it is in contrib -# node-babel-core, -# node-babel-eslint, -# node-babel-loader, -# node-babel-plugin-transform-define, -# node-babel-preset-latest, -# node-babel-preset-stage-2, -# node-debug (>= 3.1.0~), -# node-katex, -# node-marked, -# gitlab-sidekiq was failing without puma - puma -Recommends: certbot, - gitaly (>= 15.2~), - openssh-server -Conflicts: libruby2.5 -Description: git powered software platform to collaborate on code (non-omnibus) - gitlab provides web based interface to host source code and track issues. - It allows anyone for fork a repository and send merge requests. Code review - is possible using merge request workflow. Using groups and roles project - access can be controlled. - . - Unlike the official package from GitLab Inc., this package does not use - omnibus. - . - Note: Currently this package is in contrib because it uses yarn to install - some of its front end dependencies. - -Package: gitlab-workhorse -Section: net -Architecture: any -Depends: ${misc:Depends}, - ${shlibs:Depends} -Built-Using: ${misc:Built-Using} -Description: unloads Git HTTP traffic from the GitLab Rails app (Unicorn) - gitlab-workhorse was designed to unload Git HTTP traffic from the GitLab Rails - app (Unicorn) to a separate daemon. It also serves 'git archive' downloads for - GitLab. All authentication and authorization logic is still handled by the - GitLab Rails app. - . - Architecture: Git client -> NGINX -> gitlab-workhorse (makes auth request to - GitLab Rails app) -> git-upload-pack diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index a0336ef59a..0000000000 --- a/debian/copyright +++ /dev/null @@ -1,691 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: gitlab-foss -Source: https://gitlab.com/gitlab-org/gitlab-foss -Comment: This package installs front end dependencies (nodejs modules) using - yarn package manager from outside debian. This can go to main when all - those nodejs modules are packaged in main. -Files-Excluded-elasticsearch-rails: - CHANGELOG.md - CONTRIBUTING.md - ~elasticsearch-model - elasticsearch-persistence - ~elasticsearch-rails - Gemfile - Rakefile - README.md - -Files: * -Copyright: 2011-2015 GitLab B.V. -License: Expat - -Files: app/assets/stylesheets/framework/animations.scss -Copyright: 2016 Daniel Eden -License: Expat - -Files: config/initializers/postgresql_cte.rb -Copyright: 2012 Dan McClain -License: Expat - -Files: config/initializers/postgresql_opclasses_support.rb -Copyright: 2004-2016 David Heinemeier Hansson -License: Expat - -Files: debian/* -Copyright: 2015-2020 Pirate Praveen -License: Expat - -Files: doc/legal/*_contributor_license_agreement.md -Copyright: the Google Open Source Programs Office -License: CC-BY-3.0 - -Files: elasticsearch* -Copyright: 2014 Elasticsearch -License: Apache-2.0 - -Files: faraday-middleware-aws-signers-v4/* -Copyright: 2015 Genki Sugawara -License: Expat - -Files: snowplow-javascript-tracker/* -Copyright: 2010 Anthon Pang - 2012 Snowplow Analytics Ltd -License: BSD-3-clause - -Files: vendor/Dockerfile/hexo/themes/landscape/Gruntfile.js* - vendor/gitlab-ci-yml/* -Copyright: 2016-2017, GitLab.org -License: Expat - -Files: vendor/gitignore/* -Copyright: Github, Inc -License: CC0-1.0 - -Files: vendor/assets/javascripts/jasmine-jquery.js -Copyright: 2010-2014 Wojciech Zawistowski, Travis Jeffery -License: Expat - -Files: vendor/assets/javascripts/jquery.endless-scroll.js -Copyright: 2008 Fred Wu -License: Expat or GPL-3+ - -Files: vendor/assets/javascripts/u2f.js -Copyright: 2014-2015, Google Inc. -License: BSD-3-clause - -Files: vendor/assets/javascripts/jquery.scrollTo.js -Copyright: 2007-2015, Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com -License: Expat - -Files: vendor/assets/javascripts/snowplow/sp.js -Copyright: Anthon Pang, Snowplow Analytics Ltd -License: BSD-2-clause - -Files: vendor/assets/stylesheets/cropper.css -Copyright: 2014-2016, Fengyuan Chen and contributors -License: Expat - -Files: vendor/assets/javascripts/latinise.js -Copyright: Ed (http://semplicewebsites.com/removing-accents-javascript) -License: public-domain - -Files: vendor/project_templates/hugo.tar.gz -Copyright: 2014 Spencer Lyon - 2015 Dean Attali, - 2017 Michael Romero - 2011-2015 Twitter, Inc. - 2005, 2014 jQuery Foundation, Inc. -License: Expat -Comment: hugo.tar.gz has project.bundle which contains these notices - -Files: vendor/project_templates/hexo.tar.gz -Copyright: 2013 Tommy Chen - 2012 Janis Skarnelis - janis@fancyapps.com - 2018 Font Awesome -License: Expat and GPL-3+ and Font-Awesome-Free-License -Comment: hexo.tar.gz has project.bundle which contains these notices - -Files: vendor/project_templates/gatsby.tar.gz -Copyright: 2015 gatsbyjs -License: Expat -Comment: gatsby.tar.gz has project.bundle which contains the above notice - -Files: vendor/project_templates/nfhexo.tar.gz -Copyright: 2013 Tommy Chen - 2012 Janis Skarnelis - janis@fancyapps.com - 2018 Font Awesome -License: Expat and GPL-3+ and Font-Awesome-Free-License -Comment: nfhexo.tar.gz has project.bundle which contains these notices - -Files: vendor/project_templates/nfhugo.tar.gz -Copyright: 2014 Spencer Lyon - 2015 Dean Attali, - 2017 Michael Romero - 2011-2015 Twitter, Inc. - 2005, 2014 jQuery Foundation, Inc. -License: Expat -Comment: nfhugo.tar.gz has project.bundle which contains these notices - -Files: vendor/project_templates/spring.tar.gz -Copyright: 2004 Apache Software Foundation (ASF) -License: Apache-2.0 -Comment: spring.tar.gz has project.bundle which contains this notice - -License: Apache-2.0 - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - . - http://www.apache.org/licenses/LICENSE-2.0 - . - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - . - On Debian systems, the full text of the Apache-2.0 license - can be found in the file '/usr/share/common-licenses/Apache-2.0' - -License: BSD-2-clause - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - . - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - . - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - . - THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -License: BSD-3-clause - All rights reserved. - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - . - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of highlight.js nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -License: CC-BY-3.0 - THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS - CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS - PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK - OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS - PROHIBITED. - . - BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND - AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS - LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE - RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS - AND CONDITIONS. - . - 1. Definitions - . - 1. "Adaptation" means a work based upon the Work, or upon the Work - and other pre-existing works, such as a translation, adaptation, - derivative work, arrangement of music or other alterations of a - literary or artistic work, or phonogram or performance and - includes cinematographic adaptations or any other form in which - the Work may be recast, transformed, or adapted including in any - form recognizably derived from the original, except that a work - that constitutes a Collection will not be considered an Adaptation - for the purpose of this License. For the avoidance of doubt, where - the Work is a musical work, performance or phonogram, the - synchronization of the Work in timed-relation with a moving image - ("synching") will be considered an Adaptation for the purpose of - this License. - 2. "Collection" means a collection of literary or artistic works, - such as encyclopedias and anthologies, or performances, phonograms - or broadcasts, or other works or subject matter other than works - listed in Section 1(f) below, which, by reason of the selection - and arrangement of their contents, constitute intellectual - creations, in which the Work is included in its entirety in - unmodified form along with one or more other contributions, each - constituting separate and independent works in themselves, which - together are assembled into a collective whole. A work that - constitutes a Collection will not be considered an Adaptation (as - defined above) for the purposes of this License. - 3. "Distribute" means to make available to the public the original - and copies of the Work or Adaptation, as appropriate, through sale - or other transfer of ownership. - 4. "Licensor" means the individual, individuals, entity or entities - that offer(s) the Work under the terms of this License. - 5. "Original Author" means, in the case of a literary or artistic - work, the individual, individuals, entity or entities who created - the Work or if no individual or entity can be identified, the - publisher; and in addition (i) in the case of a performance the - actors, singers, musicians, dancers, and other persons who act, - sing, deliver, declaim, play in, interpret or otherwise perform - literary or artistic works or expressions of folklore; (ii) in the - case of a phonogram the producer being the person or legal entity - who first fixes the sounds of a performance or other sounds; and, - (iii) in the case of broadcasts, the organization that transmits - the broadcast. - 6. "Work" means the literary and/or artistic work offered under the - terms of this License including without limitation any production - in the literary, scientific and artistic domain, whatever may be - the mode or form of its expression including digital form, such as - a book, pamphlet and other writing; a lecture, address, sermon or - other work of the same nature; a dramatic or dramatico-musical - work; a choreographic work or entertainment in dumb show; a - musical composition with or without words; a cinematographic work - to which are assimilated works expressed by a process analogous to - cinematography; a work of drawing, painting, architecture, - sculpture, engraving or lithography; a photographic work to which - are assimilated works expressed by a process analogous to - photography; a work of applied art; an illustration, map, plan, - sketch or three-dimensional work relative to geography, - topography, architecture or science; a performance; a broadcast; a - phonogram; a compilation of data to the extent it is protected as - a copyrightable work; or a work performed by a variety or circus - performer to the extent it is not otherwise considered a literary - or artistic work. - 7. "You" means an individual or entity exercising rights under this - License who has not previously violated the terms of this License - with respect to the Work, or who has received express permission - from the Licensor to exercise rights under this License despite a - previous violation. - 8. "Publicly Perform" means to perform public recitations of the Work - and to communicate to the public those public recitations, by any - means or process, including by wire or wireless means or public - digital performances; to make available to the public Works in - such a way that members of the public may access these Works from - a place and at a place individually chosen by them; to perform the - Work to the public by any means or process and the communication - to the public of the performances of the Work, including by public - digital performance; to broadcast and rebroadcast the Work by any - means including signs, sounds or images. - 9. "Reproduce" means to make copies of the Work by any means - including without limitation by sound or visual recordings and the - right of fixation and reproducing fixations of the Work, including - storage of a protected performance or phonogram in digital form or - other electronic medium. - . - 2. Fair Dealing Rights. Nothing in this License is intended to reduce, - limit, or restrict any uses free from copyright or rights arising - from limitations or exceptions that are provided for in connection - with the copyright protection under copyright law or other - applicable laws. - . - 3. License Grant. Subject to the terms and conditions of this License, - Licensor hereby grants You a worldwide, royalty-free, non-exclusive, - perpetual (for the duration of the applicable copyright) license to - exercise the rights in the Work as stated below: - . - 1. to Reproduce the Work, to incorporate the Work into one or more - Collections, and to Reproduce the Work as incorporated in the - Collections; - 2. to create and Reproduce Adaptations provided that any such - Adaptation, including any translation in any medium, takes - reasonable steps to clearly label, demarcate or otherwise identify - that changes were made to the original Work. For example, a - translation could be marked "The original work was translated from - English to Spanish," or a modification could indicate "The - original work has been modified."; - 3. to Distribute and Publicly Perform the Work including as - incorporated in Collections; and, - 4. to Distribute and Publicly Perform Adaptations. - 5. - . - For the avoidance of doubt: - 1. Non-waivable Compulsory License Schemes. In those - jurisdictions in which the right to collect royalties - through any statutory or compulsory licensing scheme cannot - be waived, the Licensor reserves the exclusive right to - collect such royalties for any exercise by You of the rights - granted under this License; - 2. Waivable Compulsory License Schemes. In those jurisdictions - in which the right to collect royalties through any - statutory or compulsory licensing scheme can be waived, the - Licensor waives the exclusive right to collect such - royalties for any exercise by You of the rights granted - under this License; and, - 3. Voluntary License Schemes. The Licensor waives the right to - collect royalties, whether individually or, in the event - that the Licensor is a member of a collecting society that - administers voluntary licensing schemes, via that society, - from any exercise by You of the rights granted under this - License. - . - The above rights may be exercised in all media and formats whether now - known or hereafter devised. The above rights include the right to make - such modifications as are technically necessary to exercise the rights - in other media and formats. Subject to Section 8(f), all rights not - expressly granted by Licensor are hereby reserved. - . - 4. Restrictions. The license granted in Section 3 above is expressly - made subject to and limited by the following restrictions: - . - 1. You may Distribute or Publicly Perform the Work only under the - terms of this License. You must include a copy of, or the Uniform - Resource Identifier (URI) for, this License with every copy of the - Work You Distribute or Publicly Perform. You may not offer or - impose any terms on the Work that restrict the terms of this - License or the ability of the recipient of the Work to exercise - the rights granted to that recipient under the terms of the - License. You may not sublicense the Work. You must keep intact all - notices that refer to this License and to the disclaimer of - warranties with every copy of the Work You Distribute or Publicly - Perform. When You Distribute or Publicly Perform the Work, You may - not impose any effective technological measures on the Work that - restrict the ability of a recipient of the Work from You to - exercise the rights granted to that recipient under the terms of - the License. This Section 4(a) applies to the Work as incorporated - in a Collection, but this does not require the Collection apart - from the Work itself to be made subject to the terms of this - License. If You create a Collection, upon notice from any Licensor - You must, to the extent practicable, remove from the Collection - any credit as required by Section 4(b), as requested. If You - create an Adaptation, upon notice from any Licensor You must, to - the extent practicable, remove from the Adaptation any credit as - required by Section 4(b), as requested. - 2. If You Distribute, or Publicly Perform the Work or any Adaptations - or Collections, You must, unless a request has been made pursuant - to Section 4(a), keep intact all copyright notices for the Work - and provide, reasonable to the medium or means You are utilizing: - (i) the name of the Original Author (or pseudonym, if applicable) - if supplied, and/or if the Original Author and/or Licensor - designate another party or parties (e.g., a sponsor institute, - publishing entity, journal) for attribution ("Attribution - Parties") in Licensor's copyright notice, terms of service or by - other reasonable means, the name of such party or parties; (ii) - the title of the Work if supplied; (iii) to the extent reasonably - practicable, the URI, if any, that Licensor specifies to be - associated with the Work, unless such URI does not refer to the - copyright notice or licensing information for the Work; and (iv) , - consistent with Section 3(b), in the case of an Adaptation, a - credit identifying the use of the Work in the Adaptation (e.g., - "French translation of the Work by Original Author," or - "Screenplay based on original Work by Original Author"). The - credit required by this Section 4 (b) may be implemented in any - reasonable manner; provided, however, that in the case of a - Adaptation or Collection, at a minimum such credit will appear, - if a credit for all contributing authors of the Adaptation or - Collection appears, then as part of these credits and in a manner - at least as prominent as the credits for the other contributing - authors. For the avoidance of doubt, You may only use the credit - required by this Section for the purpose of attribution in the - manner set out above and, by exercising Your rights under this - License, You may not implicitly or explicitly assert or imply any - connection with, sponsorship or endorsement by the Original - Author, Licensor and/or Attribution Parties, as appropriate, of - You or Your use of the Work, without the separate, express prior - written permission of the Original Author, Licensor and/or - Attribution Parties. - 3. Except as otherwise agreed in writing by the Licensor or as may be - otherwise permitted by applicable law, if You Reproduce, - Distribute or Publicly Perform the Work either by itself or as - part of any Adaptations or Collections, You must not distort, - mutilate, modify or take other derogatory action in relation to - the Work which would be prejudicial to the Original Author's honor - or reputation. Licensor agrees that in those jurisdictions (e.g. - Japan), in which any exercise of the right granted in Section 3(b) - of this License (the right to make Adaptations) would be deemed to - be a distortion, mutilation, modification or other derogatory - action prejudicial to the Original Author's honor and reputation, - the Licensor will waive or not assert, as appropriate, this - Section, to the fullest extent permitted by the applicable - national law, to enable You to reasonably exercise Your right - under Section 3(b) of this License (right to make Adaptations) but - not otherwise. - . - 5. Representations, Warranties and Disclaimer - . - UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR - OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY - KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, - INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, - FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF - LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF - ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW - THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO - YOU. - . - 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE - LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY - FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY - DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF - LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - . - 7. Termination - . - 1. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this License. - Individuals or entities who have received Adaptations or - Collections from You under this License, however, will not have - their licenses terminated provided such individuals or entities - remain in full compliance with those licenses. Sections 1, 2, 5, - 6, 7, and 8 will survive any termination of this License. - 2. Subject to the above terms and conditions, the license granted - here is perpetual (for the duration of the applicable copyright in - the Work). Notwithstanding the above, Licensor reserves the right - to release the Work under different license terms or to stop - distributing the Work at any time; provided, however that any such - election will not serve to withdraw this License (or any other - license that has been, or is required to be, granted under the - terms of this License), and this License will continue in full - force and effect unless terminated as stated above. - . - 8. Miscellaneous - . - 1. Each time You Distribute or Publicly Perform the Work or a - Collection, the Licensor offers to the recipient a license to the - Work on the same terms and conditions as the license granted to - You under this License. - 2. Each time You Distribute or Publicly Perform an Adaptation, - Licensor offers to the recipient a license to the original Work on - the same terms and conditions as the license granted to You under - this License. - 3. If any provision of this License is invalid or unenforceable under - applicable law, it shall not affect the validity or enforceability - of the remainder of the terms of this License, and without further - action by the parties to this agreement, such provision shall be - reformed to the minimum extent necessary to make such provision - valid and enforceable. - 4. No term or provision of this License shall be deemed waived and no - breach consented to unless such waiver or consent shall be in - writing and signed by the party to be charged with such waiver or - consent. - 5. This License constitutes the entire agreement between the parties - with respect to the Work licensed here. There are no - understandings, agreements or representations with respect to the - Work not specified here. Licensor shall not be bound by any - additional provisions that may appear in any communication from - You. This License may not be modified without the mutual written - agreement of the Licensor and You. - 6. The rights granted under, and the subject matter referenced, in - this License were drafted utilizing the terminology of the Berne - Convention for the Protection of Literary and Artistic Works (as - amended on September 28, 1979), the Rome Convention of 1961, the - WIPO Copyright Treaty of 1996, the WIPO Performances and - Phonograms Treaty of 1996 and the Universal Copyright Convention - (as revised on July 24, 1971). These rights and subject matter - take effect in the relevant jurisdiction in which the License - terms are sought to be enforced according to the corresponding - provisions of the implementation of those treaty provisions in the - applicable national law. If the standard suite of rights granted - under applicable copyright law includes additional rights not - granted under this License, such additional rights are deemed to - be included in the License; this License is not intended to - restrict the license of any rights under applicable law. - -License: CC0-1.0 - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL - SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT - RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. - CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR - THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR - DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR - WORKS PROVIDED HEREUNDER. - . - Statement of Purpose - . - The laws of most jurisdictions throughout the world automatically confer - exclusive Copyright and Related Rights (defined below) upon the creator and - subsequent owner(s) (each and all, an "owner") of an original work of - authorship and/or a database (each, a "Work"). - . - Certain owners wish to permanently relinquish those rights to a Work for the - purpose of contributing to a commons of creative, cultural and scientific - works ("Commons") that the public can reliably and without fear of later - claims of infringement build upon, modify, incorporate in other works, reuse - and redistribute as freely as possible in any form whatsoever and for any - purposes, including without limitation commercial purposes. These owners may - contribute to the Commons to promote the ideal of a free culture and the - further production of creative, cultural and scientific works, or to gain - reputation or greater distribution for their Work in part through the use - and efforts of others. - . - For these and/or other purposes and motivations, and without any expectation - of additional consideration or compensation, the person associating CC0 with - a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright - and Related Rights in the Work, voluntarily elects to apply CC0 to the Work - and publicly distribute the Work under its terms, with knowledge of his or her - Copyright and Related Rights in the Work and the meaning and intended legal - effect of CC0 on those rights. - . - Copyright and Related Rights. A Work made available under CC0 may be protected - by copyright and related or neighboring rights ("Copyright and Related - Rights"). Copyright and Related Rights include, but are not limited to, - the following: - . - the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - moral rights retained by the original author(s) and/or performer(s); - publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - rights protecting against unfair competition in regards to a Work, subject - to the limitations in paragraph 4(a), below; - rights protecting the extraction, dissemination, use and reuse of data - in a Work; - database rights (such as those arising under Directive 96/9/EC of the European - Parliament and of the Council of 11 March 1996 on the legal protection of - databases, and under any national implementation thereof, including any - amended or successor version of such directive); and - other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - . - 2. Waiver. To the greatest extent permitted by, but not in contravention of, - applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and - unconditionally waives, abandons, and surrenders all of Affirmer's Copyright - and Related Rights and associated claims and causes of action, whether now - known or unknown (including existing as well as future claims and causes of - action), in the Work (i) in all territories worldwide, (ii) for the maximum - duration provided by applicable law or treaty (including future time - extensions), (iii) in any current or future medium and for any number of - copies, and (iv) for any purpose whatsoever, including without limitation - commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes - the Waiver for the benefit of each member of the public at large and to the - detriment of Affirmer's heirs and successors, fully intending that such Waiver - shall not be subject to revocation, rescission, cancellation, termination, - or any other legal or equitable action to disrupt the quiet enjoyment of the - Work by the public as contemplated by Affirmer's express Statement of Purpose. - . - 3. Public License Fallback. Should any part of the Waiver for any reason be - judged legally invalid or ineffective under applicable law, then the Waiver - shall be preserved to the maximum extent permitted taking into account - Affirmer's express Statement of Purpose. In addition, to the extent the Waiver - is so judged Affirmer hereby grants to each affected person a royalty-free, - non transferable, non sublicensable, non exclusive, irrevocable and - unconditional license to exercise Affirmer's Copyright and Related Rights - in the Work (i) in all territories worldwide, (ii) for the maximum duration - provided by applicable law or treaty (including future time extensions), - (iii) in any current or future medium and for any number of copies, and (iv) - for any purpose whatsoever, including without limitation commercial, - advertising or promotional purposes (the "License"). The License shall be - deemed effective as of the date CC0 was applied by Affirmer to the Work. - Should any part of the License for any reason be judged legally invalid or - ineffective under applicable law, such partial invalidity or ineffectiveness - shall not invalidate the remainder of the License, and in such case Affirmer - hereby affirms that he or she will not (i) exercise any of his or her - remaining Copyright and Related Rights in the Work or (ii) assert any - associated claims and causes of action with respect to the Work, in either - case contrary to Affirmer's express Statement of Purpose. - . - 4. Limitations and Disclaimers. - . - No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether - or not discoverable, all to the greatest extent permissible under applicable - law. - . - Affirmer disclaims responsibility for clearing rights of other persons that - may apply to the Work or any use thereof, including without limitation any - person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, - permissions or other rights required for any use of the Work. - . - Affirmer understands and acknowledges that Creative Commons is not a party - to this document and has no duty or obligation with respect to this CC0 or - use of the Work. - -License: Expat - 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. - -License: Font-Awesome-Free-License - Font Awesome Free is free, open source, and GPL friendly. You can use it for - commercial projects, open source projects, or really almost whatever you want. - Full Font Awesome Free license: https://fontawesome.com/license/free. - . - # Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) - In the Font Awesome Free download, the CC BY 4.0 license applies to all icons - packaged as SVG and JS file types. - . - # Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL) - In the Font Awesome Free download, the SIL OFL license applies to all icons - packaged as web and desktop font files. - . - # Code: MIT License (https://opensource.org/licenses/MIT) - In the Font Awesome Free download, the MIT license applies to all non-font and - non-icon files. - . - # Attribution - Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font - Awesome Free files already contain embedded comments with sufficient - attribution, so you shouldn't need to do anything additional when using these - files normally. - . - We've kept attribution comments terse, so we ask that you do not actively work - to remove them from files, especially code. They're a great way for folks to - learn about Font Awesome. - . - # Brand Icons - All brand icons are trademarks of their respective owners. The use of these - trademarks does not indicate endorsement of the trademark holder by Font - Awesome, nor vice versa. **Please do not use brand logos for any purpose except - to represent the company, product, or service to which they refer.** - -License: GPL-3+ - This program is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 3 of the License, or (at your option) any later - version. - . - This program is distributed in the hope that it will be - useful, but WITHOUT ANY WARRANTY; without even the implied - warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the GNU General Public License for more - details. - . - You should have received a copy of the GNU General Public - License along with this package; if not, write to the Free - Software Foundation, Inc., 51 Franklin St, Fifth Floor, - Boston, MA 02110-1301 USA - . - On Debian systems, the full text of the GNU General Public - License version 3 can be found in the file - `/usr/share/common-licenses/GPL-3'. - -License: public-domain - All scripts are Public Domain. diff --git a/debian/gbp.conf b/debian/gbp.conf deleted file mode 100644 index 9331c87730..0000000000 --- a/debian/gbp.conf +++ /dev/null @@ -1,2 +0,0 @@ -[DEFAULT] -component = [ 'elasticsearch-rails', 'snowplow-javascript-tracker', 'workhorse-vendor' ] diff --git a/debian/gitlab-rails-console.sh b/debian/gitlab-rails-console.sh deleted file mode 100755 index e6242bfb5c..0000000000 --- a/debian/gitlab-rails-console.sh +++ /dev/null @@ -1,12 +0,0 @@ -#! /bin/sh - -set -e - -# Read debian specific configuration -. /etc/gitlab-common/gitlab-common.conf -. /etc/gitlab/gitlab-debian.conf -export DB RAILS_ENV GEM_HOME - -cd /usr/share/gitlab - -runuser -u ${gitlab_user} -- sh -c "/usr/bin/bundle exec rails console -e production" diff --git a/debian/gitlab-rake.sh b/debian/gitlab-rake.sh deleted file mode 100755 index ba847eb1f0..0000000000 --- a/debian/gitlab-rake.sh +++ /dev/null @@ -1,12 +0,0 @@ -#! /bin/bash -# Using bash for ${variable@Q} option for passing quotes from command line argument to rake -set -e - -# Read debian specific configuration -. /etc/gitlab-common/gitlab-common.conf -. /etc/gitlab/gitlab-debian.conf -export DB RAILS_ENV GEM_HOME - -cd /usr/share/gitlab - -runuser -u ${gitlab_user} -- sh -c "/usr/bin/bundle exec rake ${@@Q}" diff --git a/debian/gitlab-update-gemfile-lock.sh b/debian/gitlab-update-gemfile-lock.sh deleted file mode 100755 index 1782895d74..0000000000 --- a/debian/gitlab-update-gemfile-lock.sh +++ /dev/null @@ -1,16 +0,0 @@ -#! /bin/sh - -set -e - -# Read debian specific configuration -. /etc/gitlab-common/gitlab-common.conf -. /etc/gitlab/gitlab-debian.conf -export DB RAILS_ENV - -cd /usr/share/gitlab - -# Remove all lines from Gemfile.lock -runuser -u ${gitlab_user} -- sh -c "touch ${gitlab_data_dir}/Gemfile.lock && \ -truncate -s 0 ${gitlab_data_dir}/Gemfile.lock" -# Regenerate Gemfile.lock -runuser -u ${gitlab_user} -- sh -c '/usr/bin/bundle install --local' diff --git a/debian/gitlab-workhorse.install b/debian/gitlab-workhorse.install deleted file mode 100644 index 451ddc0d8e..0000000000 --- a/debian/gitlab-workhorse.install +++ /dev/null @@ -1 +0,0 @@ -debian/tmp/usr/bin diff --git a/debian/gitlab.config b/debian/gitlab.config deleted file mode 100755 index a43db2953f..0000000000 --- a/debian/gitlab.config +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -# config maintainer script for gitlab - -CONFIGFILE=/etc/gitlab/gitlab-debian.conf - -set -e - -# source debconf stuffs -. /usr/share/debconf/confmodule - -# Load config file, if it exists. - if [ -e $CONFIGFILE ]; then - . $CONFIGFILE || true - - # Store values from config file into - # debconf db. - db_set gitlab/fqdn "$GITLAB_HOST" - db_set gitlab/ssl "${GITLAB_HTTPS:-false}" - db_set gitlab/letsencrypt "${gitlab_letsencrypt:-false}" - if [ -n "$gitlab_letsencrypt_email" ]; then - db_set gitlab/letsencrypt_email "${gitlab_letsencrypt_email}" - fi - fi - -# What is your fqdn? -db_input high gitlab/fqdn || true -db_go - -# Do you want https? -db_input high gitlab/ssl || true -db_go - -# Don't prompt for letsencrypt if not installed -if command -v letsencrypt >/dev/null; then - # Do you want Let's Encrypt? - db_get gitlab/ssl - if [ "${RET}" = "true" ] - then - db_input high gitlab/letsencrypt || true - db_go - db_get gitlab/letsencrypt - gitlab_letsencrypt=$RET - if [ "$gitlab_letsencrypt" = "true" ]; then - # Get email for letsencrypt updates - db_input high gitlab/letsencrypt_email || true - db_go - fi - fi -fi - -db_get gitlab-common/user -gitlab_user=$RET - -# source dbconfig-common shell library, and call the hook function -if [ -f /usr/share/dbconfig-common/dpkg/config ]; then - . /usr/share/dbconfig-common/dpkg/config - - dbc_dbtypes="pgsql" - dbc_dbname="gitlab_production" - dbc_dbuser="$gitlab_user" - - dbc_go gitlab "$@" -fi diff --git a/debian/gitlab.dirs b/debian/gitlab.dirs deleted file mode 100644 index 2a7d95db81..0000000000 --- a/debian/gitlab.dirs +++ /dev/null @@ -1,3 +0,0 @@ -/var/cache/gitlab -/var/log/gitlab -/var/log/gitlab-shell diff --git a/debian/gitlab.docs b/debian/gitlab.docs deleted file mode 100644 index 389dbb95e0..0000000000 --- a/debian/gitlab.docs +++ /dev/null @@ -1,2 +0,0 @@ -README.md -debian/README.Debian diff --git a/debian/gitlab.gitlab-mailroom.service b/debian/gitlab.gitlab-mailroom.service deleted file mode 100644 index b29f5fafbc..0000000000 --- a/debian/gitlab.gitlab-mailroom.service +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=Gitlab mailroom Worker -PartOf=gitlab.target -Requires=gitlab-puma.service -Wants=gitlab-puma.service -After=gitlab-puma.service -PartOf=gitlab.service -ReloadPropagatedFrom=gitlab-puma.service - -[Service] -Type=simple -WorkingDirectory=/usr/share/gitlab -EnvironmentFile=/etc/gitlab/gitlab-debian.conf -SyslogIdentifier=gitlab-mailroom -ExecStart=/usr/bin/bundle exec mail_room -q -c /etc/gitlab/mail_room.yml -Restart=on-abnormal - -[Install] -WantedBy=gitlab.target diff --git a/debian/gitlab.gitlab-puma.service b/debian/gitlab.gitlab-puma.service deleted file mode 100644 index cbf6ab1347..0000000000 --- a/debian/gitlab.gitlab-puma.service +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=GitLab Puma Server -PartOf=gitlab.target -Wants=redis-server.service -Wants=postgresql.service -After=redis-server.service postgresql.service -PartOf=gitlab.service -ReloadPropagatedFrom=gitlab.service -Conflicts=gitlab-unicorn.service - -[Service] -Type=simple -WorkingDirectory=/usr/share/gitlab -EnvironmentFile=/etc/gitlab/gitlab-debian.conf -EnvironmentFile=-/etc/default/gitlab -SyslogIdentifier=gitlab-puma -ExecStart=/usr/bin/bundle exec puma -C config/puma.rb -e $RAILS_ENV -ExecReload=/bin/kill -USR2 $MAINPID -Restart=on-abnormal - -[Install] -WantedBy=gitlab.target diff --git a/debian/gitlab.gitlab-sidekiq.service b/debian/gitlab.gitlab-sidekiq.service deleted file mode 100644 index f8b18a3010..0000000000 --- a/debian/gitlab.gitlab-sidekiq.service +++ /dev/null @@ -1,26 +0,0 @@ -[Unit] -Description=GitLab Sidekiq Worker -PartOf=gitlab.target -Wants=redis-server.service -Wants=postgresql.service -After=redis-server.service postgresql.service -PartOf=gitlab.service -ReloadPropagatedFrom=gitlab.service - -[Service] -Type=simple -WorkingDirectory=/usr/share/gitlab -EnvironmentFile=/etc/gitlab/gitlab-debian.conf -SyslogIdentifier=gitlab-sidekiq -ExecStartPre=truncate -s 0 Gemfile.lock -ExecStartPre=/usr/bin/bundle install --local --quiet -ExecStart=/usr/bin/bundle exec sidekiq \ - -C /etc/gitlab/sidekiq_queues.yml \ - -e $RAILS_ENV -Restart=on-abnormal - -## No "Type=notify" support; wait for service to initialise: -ExecStartPost=-/bin/sh -c "for i in 4 4 4 4 4 4 4 4; do sleep $i; (ps -h -o command -p $MAINPID | grep -q -P \"sidekiq\s\d\.\d\.\d\") && exit 0; done" - -[Install] -WantedBy=gitlab.target diff --git a/debian/gitlab.gitlab-workhorse.service b/debian/gitlab.gitlab-workhorse.service deleted file mode 100644 index 68f6f5a819..0000000000 --- a/debian/gitlab.gitlab-workhorse.service +++ /dev/null @@ -1,25 +0,0 @@ -[Unit] -Description=Gitlab Workhorse handles slow HTTP requests for Gitlab. -PartOf=gitlab.target -Requires=gitlab-puma.service -Wants=gitlab-puma.service -After=gitlab-puma.service -PartOf=gitlab.service -ReloadPropagatedFrom=gitlab-puma.service - -[Service] -Type=simple -WorkingDirectory=/usr/share/gitlab -EnvironmentFile=/etc/gitlab/gitlab-debian.conf -SyslogIdentifier=gitlab-workhorse -ExecStart=/usr/bin/gitlab-workhorse \ - -listenUmask 0 \ - -listenNetwork unix \ - -listenAddr ${gitlab_pid_path}/gitlab-workhorse.socket \ - -authBackend http://127.0.0.1:8080 \ - -authSocket ${gitlab_pid_path}/gitlab.socket \ - -documentRoot ${gitlab_app_root}/public -Restart=on-abnormal - -[Install] -WantedBy=gitlab.target diff --git a/debian/gitlab.init b/debian/gitlab.init deleted file mode 120000 index 0b6059fed7..0000000000 --- a/debian/gitlab.init +++ /dev/null @@ -1 +0,0 @@ -../lib/support/init.d/gitlab \ No newline at end of file diff --git a/debian/gitlab.install b/debian/gitlab.install deleted file mode 100644 index 9cd7b9477f..0000000000 --- a/debian/gitlab.install +++ /dev/null @@ -1,79 +0,0 @@ -debian/conf/gitlab etc/default -debian/conf/puma.rb etc/gitlab -debian/conf/database.yml etc/gitlab -debian/conf/gitlab.yml.example usr/lib/gitlab/templates -debian/conf/resque.yml etc/gitlab -debian/conf/cable.yml etc/gitlab -debian/conf/gitlab-debian.conf.example usr/lib/gitlab/templates -debian/conf/*.target lib/systemd/system -debian/conf/smtp_settings.rb etc/gitlab/initializers -debian/conf/tmpfiles.d/gitlab.conf /usr/lib/tmpfiles.d/ -debian/conf/nginx.conf.example usr/lib/gitlab/templates -debian/conf/nginx.ssl.conf.example usr/lib/gitlab/templates -debian/rake-tasks.sh usr/lib/gitlab/scripts -debian/gitlab-rake.sh usr/lib/gitlab/scripts -debian/gitlab-rails-console.sh usr/lib/gitlab/scripts -debian/gitlab-update-gemfile-lock.sh usr/lib/gitlab/scripts -.browserslistrc usr/share/gitlab -.editorconfig usr/share/gitlab -.license_encryption_key.pub usr/share/gitlab -.markdownlint.yml usr/share/gitlab -.overcommit.yml.example usr/share/gitlab -.solargraph.yml.example usr/share/gitlab -.vale.ini usr/share/gitlab -babel.config.js usr/share/gitlab -app usr/share/gitlab -bin usr/share/gitlab -CHANGELOG.md usr/share/gitlab -changelogs usr/share/gitlab -config/* etc/gitlab -config.ru usr/share/gitlab -CONTRIBUTING.md usr/share/gitlab -crowdin.yml usr/share/gitlab -danger usr/share/gitlab -data usr/share/gitlab -Dangerfile usr/share/gitlab -doc usr/share/gitlab -docker-compose.yml usr/share/gitlab -Dockerfile.assets usr/share/gitlab -fixtures usr/share/gitlab -Gemfile usr/share/gitlab -Guardfile usr/share/gitlab -generator_templates usr/share/gitlab -glfm_specification usr/share/gitlab -GITLAB_ELASTICSEARCH_INDEXER_VERSION usr/share/gitlab -GITLAB_KAS_VERSION usr/share/gitlab -GITLAB_METRICS_EXPORTER_VERSION usr/share/gitlab -GITLAB_PAGES_VERSION usr/share/gitlab -GITALY_SERVER_VERSION usr/share/gitlab -GITLAB_SHELL_VERSION usr/share/gitlab -GITLAB_WORKHORSE_VERSION usr/share/gitlab -haml_lint usr/share/gitlab -INSTALLATION_TYPE usr/share/gitlab -jest.config.*.js usr/share/gitlab -jest_resolver.js usr/share/gitlab -lib usr/share/gitlab -locale usr/share/gitlab -MAINTENANCE.md usr/share/gitlab -metrics_server usr/share/gitlab -package.json var/lib/gitlab -patches var/lib/gitlab -PHILOSOPHY.md usr/share/gitlab -PROCESS.md usr/share/gitlab -rubocop usr/share/gitlab -Rakefile usr/share/gitlab -README.md usr/share/gitlab -scripts usr/share/gitlab -security.txt usr/share/gitlab -sidekiq_cluster usr/share/gitlab -spec usr/share/gitlab -storybook usr/share/gitlab -tests.yml usr/share/gitlab -tooling usr/share/gitlab -vendor usr/share/gitlab -VERSION usr/share/gitlab -shared var/lib/gitlab -public var/lib/gitlab -db var/lib/gitlab -elasticsearch-rails/elasticsearch-model usr/share/gitlab/vendor/gems -elasticsearch-rails/elasticsearch-rails usr/share/gitlab/vendor/gems diff --git a/debian/gitlab.links b/debian/gitlab.links deleted file mode 100644 index fd258daa0f..0000000000 --- a/debian/gitlab.links +++ /dev/null @@ -1,26 +0,0 @@ -var/lib/gitlab/public usr/share/gitlab/public -var/lib/gitlab/shared usr/share/gitlab/shared -var/lib/gitlab/db usr/share/gitlab/db -var/lib/gitlab/node_modules usr/share/gitlab/node_modules -var/lib/gitlab/package.json usr/share/gitlab/package.json -var/lib/gitlab/yarn-error.log usr/share/gitlab/yarn-error.log -var/lib/gitlab/yarn.lock usr/share/gitlab/yarn.lock -var/lib/gitlab/.yarn usr/share/gitlab/.yarn -var/lib/gitlab/.yarnrc.yml usr/share/gitlab/.yarnrc.yml -var/lib/gitlab/.ssh usr/share/gitlab/.ssh -var/lib/gitlab/.bundle usr/share/gitlab/.bundle -var/lib/gitlab/secrets.yml etc/gitlab/secrets.yml -var/lib/gitlab/locale usr/share/gitlab/app/assets/javascripts/locale -usr/share/gitlab/app/assets/javascripts/locale.static/index.js var/lib/gitlab/locale/index.js -usr/share/gitlab/scripts var/lib/gitlab/scripts -var/log/gitlab usr/share/gitlab/log -var/log/gitlab/builds usr/share/gitlab/builds -run/gitlab usr/share/gitlab/tmp -etc/gitlab usr/share/gitlab/config -/var/lib/gitlab/.gitlab_workhorse_secret /usr/share/gitlab/.gitlab_workhorse_secret -/var/lib/gitlab/.gitlab_shell_secret /usr/share/gitlab/.gitlab_shell_secret -/var/lib/gitlab/.gitlab_kas_secret /usr/share/gitlab/.gitlab_kas_secret -/var/lib/gitlab/Gemfile.lock /usr/share/gitlab/Gemfile.lock -/usr/lib/gitlab/scripts/gitlab-rake.sh /usr/sbin/gitlab-rake -/usr/lib/gitlab/scripts/gitlab-rails-console.sh /usr/sbin/gitlab-rails-console -/usr/lib/gitlab/scripts/gitlab-update-gemfile-lock.sh /usr/sbin/gitlab-update-gemfile-lock diff --git a/debian/gitlab.lintian-overrides b/debian/gitlab.lintian-overrides deleted file mode 100644 index 11842207b0..0000000000 --- a/debian/gitlab.lintian-overrides +++ /dev/null @@ -1,40 +0,0 @@ -# Used by chkconfig tool for rpm based systems, it can be safely ignored -gitlab: init.d-script-has-unknown-lsb-keyword etc/init.d/gitlab:15 chkconfig - -# just an example, not used directly -gitlab: executable-not-elf-or-script usr/share/gitlab/lib/support/init.d/gitlab.default.example - -# just an example, not used directly -gitlab: executable-not-elf-or-script usr/share/gitlab/lib/support/deploy/deploy.sh - -# comes from upstream, timestamp will not change on rebuilds -gitlab: package-contains-timestamped-gzip usr/share/gitlab/spec/fixtures/ci_build_artifacts_metadata.gz - -# upgrade handled via apt, script not required -gitlab: executable-not-elf-or-script usr/share/gitlab/bin/upgrade.rb -gitlab: executable-not-elf-or-script usr/share/gitlab/bin/ci/upgrade.rb - -# False-positives: there are no init.d files for those services: -init.d-script-not-marked-as-conffile etc/init.d/gitlab-sidekiq -init.d-script-not-marked-as-conffile etc/init.d/gitlab-workhorse -init.d-script-not-marked-as-conffile etc/init.d/gitlab-unicorn -init.d-script-not-marked-as-conffile etc/init.d/gitlab-mailroom - -# Not needed; SysV uses one 'gitlab' init script. -init.d-script-not-included-in-package etc/init.d/gitlab-workhorse -init.d-script-not-included-in-package etc/init.d/gitlab-sidekiq -init.d-script-not-included-in-package etc/init.d/gitlab-mailroom -init.d-script-not-included-in-package etc/init.d/gitlab-unicorn - -# libjs-cropper is 1.2.2, embedded cropper.js is 2.3.0 and a different upstream -embedded-javascript-library usr/share/gitlab/app/assets/javascripts/lib/cropper.js please use libjs-cropper -# This is not the raphael library -embedded-javascript-library usr/share/gitlab/app/assets/javascripts/lib/raphael.js please use libjs-raphael -embedded-javascript-library usr/share/gitlab/app/assets/javascripts/network/raphael.js please use libjs-raphael -# This is not the jquery library -embedded-javascript-library usr/share/gitlab/app/assets/javascripts/extensions/jquery.js please use libjs-jquery -embedded-javascript-library usr/share/gitlab/vendor/assets/javascripts/extensions/jquery.js please use libjs-jquery -embedded-javascript-library usr/share/gitlab/app/assets/javascripts/commons/jquery.js please use libjs-jquery -# used as test data -package-contains-vcs-control-file usr/share/gitlab/spec/javascripts/fixtures/.gitignore -package-contains-eslint-config-file usr/share/gitlab/spec/javascripts/.eslintrc.yml diff --git a/debian/gitlab.maintscript b/debian/gitlab.maintscript deleted file mode 100644 index fdfe10b9ad..0000000000 --- a/debian/gitlab.maintscript +++ /dev/null @@ -1,707 +0,0 @@ -rm_conffile /etc/gitlab/initializers/devise_async.rb 8.8.2+dfsg-5 gitlab -rm_conffile /etc/gitlab/gitlab.teatro.yml 8.11.3+dfsg1-1 gitlab -rm_conffile /etc/gitlab/initializers/haml.rb 8.11.3+dfsg1-1 gitlab -rm_conffile /etc/gitlab/initializers/math_lexer.rb 9.5.4+dfsg-7 gitlab -rm_conffile /etc/gitlab/initializers/plantuml_lexer.rb 9.5.4+dfsg-7 gitlab -rm_conffile /etc/gitlab/initializers/additional_headers_interceptor.rb 11.2.8+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/asset_sync.rb 11.5.3+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/email_template_interceptor.rb 11.2.8+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/active_record_verbose_query_logs.rb 11.6.0+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/active_record_array_type_casting.rb 11.8.2-3 gitlab -rm_conffile /etc/gitlab/initializers/active_record_avoid_type_casting_in_uniqueness_validator.rb 11.8.2-3 gitlab -rm_conffile /etc/gitlab/initializers/active_record_locking.rb 11.8.2-3 gitlab -rm_conffile /etc/gitlab/initializers/application_controller_renderer.rb 11.8.2-3 gitlab -rm_conffile /etc/gitlab/initializers/ar5_batching.rb 11.8.2-3 gitlab -rm_conffile /etc/gitlab/initializers/ar5_pg_10_support.rb 11.8.2-3 gitlab -dir_to_symlink /usr/share/gitlab/app/assets/javascripts/locale /var/lib/gitlab/locale 9.5.4+dfsg-5 gitlab -rm_conffile /etc/gitlab/initializers/active_record_query_trace.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/artifacts_direct_upload_support.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/ar_monkey_patch.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/carrierwave.rb 11.8.9+dfsg-1 gitlab -#rm_conffile /etc/gitlab/initializers/carrierwave_patch.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/devise.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/disable_email_interceptor.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/gollum.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/grape_route_helpers_fix.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/inflections.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/kubeclient.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/monkey_patch.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/public_key.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/redis_config.rb 11.8.9+dfsg-1 gitlab -rm_conffile /etc/gitlab/initializers/active_record_verbose_query_logs.rb 12.0.9-4 gitlab -rm_conffile /etc/gitlab/initializers/active_record_mysql_timestamp.rb 12.2.9-1+fto10+1 gitlab -rm_conffile /etc/gitlab/initializers/ar_mysql_jsonb_support.rb 12.2.9-1+fto10+1 gitlab -rm_conffile /etc/gitlab/initializers/postgresql_opclasses_support.rb 12.2.9-1+fto10+1 gitlab -rm_conffile /etc/gitlab/initializers/pages.rb 12.3.9-1+fto10+1 gitlab -rm_conffile /etc/gitlab/initializers/rack_attack_git_basic_auth.rb 12.5.4-2+fto10+2 gitlab -rm_conffile /etc/gitlab/initializers/active_record_query_cache.rb 12.6.8-1+fto10+1 gitlab -rm_conffile /etc/gitlab/initializers/correlation_id.rb 12.6.8-1+fto10+1 gitlab -rm_conffile /etc/gitlab/initializers/active_record_becomes.rb 12.6.8-1+fto10+1 gitlab -rm_conffile /etc/gitlab/initializers/0_thread_cache.rb 12.10.7-1+fto10+1 gitlab -rm_conffile /etc/gitlab/initializers/rack_attack_new.rb 13.1.4-1+fto10+3 gitlab -#rm_conffile /etc/gitlab/initializers/flipper.rb 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/zip_pages_deployments.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vue_issue_header.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/view_diffs_file_by_file.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/unified_diff_lines.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/suggest_pipeline.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/security_on_demand_scans_http_header_validation.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/save_raw_usage_data.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/reactive_caching_limit_environment.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/product_analytics_aggregated_metrics.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pg_hint_plan_for_issuables.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pages_serve_from_artifacts_archive.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/http_integrations_list.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/highlight_current_diff_row.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/group_level_integrations.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitlab_ci_yml_preview.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/feature_flags_new_version.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/environment_auto_stop_start_on_create.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/count_uploads_size_in_storage_stats.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_variable_expansion_in_rules_changes.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_manual_bridges.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_job_line_links.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cd_auto_rollback.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/burnup_charts.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/bulk_update_health_status.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/boards_with_swimlanes.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/admin_approval_for_new_user_signups.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/api_kaminari_count_with_limit.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/backfill_partitioned_audit_events.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/branch_push_merge_commit_analyze.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_always_refresh_merge_requests_from_beginning.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_bridge_pipeline_details.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_bulk_insert_on_create.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_daily_code_coverage.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_delete_objects_low_concurrency.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_download_daily_code_coverage.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_job_heartbeats_runner.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_key_autocomplete.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_lint_creates_pipeline_with_dry_run.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_lint_vue.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pipeline_rewind_iid.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_send_deployment_hook_when_start.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_trace_new_fog_store.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_update_queues_for_online_runners.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cleanup_lfs_during_gc.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/clusters_list_redesign.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_api.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_cleanup.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_fast_tag_delete.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/deploy_boards_dedupe_instances.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/deploy_from_footer.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/deployment_filters.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/design_management_reference_filter_gfm_pipeline.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/design_management_todo_button.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/disable_shared_runners_on_group.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dynamic_image_resizing_owner.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dynamic_image_resizing_requester.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/export_lfs_objects_projects.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/expose_environment_path_in_alert_details.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/filter_pipelines_search.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/g_compliance_dashboard_feature.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/graphql_lookahead_support.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/improved_mr_merged_at_queries.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/inactive_policy_condition.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/invite_email_experiment.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/kubernetes_cluster_namespace_role_admin.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/lfs_link_existing_object.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/marginalia.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_base_pipelines.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_red_head_comments_position_on_demand.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_request_short_pipeline_serializer.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/migrate_bio_to_user_details.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/modifed_path_ci_variables.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/monaco_blobs.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/monaco_ci.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/multi_select_board.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_variables_ui.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/oj_json.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/one_dimensional_matrix.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/packages_coming_soon.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pages_artifacts_archive.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/periodic_project_authorization_recalculation.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/push_mirror_syncs_lfs.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/release_asset_link_editing.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/release_asset_link_type.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/release_evidence_collection.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/release_issue_summary.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/release_show_page.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/resource_access_token.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/safezip_use_rubyzip.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/search_filter_by_confidential.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/show_contributor_on_note.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/snippet_multiple_files.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/snippets_edit_vue.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/snippets_vue.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/soft_fail_count_by_state.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/sql-set-operators.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/sql_set_operators.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/sse_erb_support.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/sse_image_uploads.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/store_ci_pipeline_counts_by_status.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/store_instance_statistics_measurements.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/store_mentioned_users_to_db.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/sync_metrics_dashboards.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_resource_state_change_events.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_unique_test_cases_parsed.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/users_search.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/wiki_events_on_git_push.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/licensed/incident_sla.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/licensed/minimal_access_role.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/licensed/resource_access_token.yml 13.6.7-4 gitlab -rm_conffile /etc/gitlab/initializers/0_active_model_5_compat.rb 13.6.7-4 gitlab -rm_conffile /etc/gitlab/initializers/0_inflections.rb 13.6.7-4 gitlab -rm_conffile /etc/gitlab/initializers/actioncable.rb 13.6.7-4 gitlab -rm_conffile /etc/gitlab/initializers/actionpack_generate_old_csrf_token.rb 13.6.7-4 gitlab -rm_conffile /etc/gitlab/initializers/config_initializers_active_record_locking.rb 13.6.7-4 gitlab -#rm_conffile /etc/gitlab/initializers/gitlab_experiment.rb 13.6.7-4 gitlab -rm_conffile /etc/gitlab/initializers/oj.rb 13.6.7-4 gitlab -rm_conffile /etc/gitlab/routes/ci.rb 13.6.7-4 gitlab -rm_conffile /etc/gitlab/routes/instance_statistics.rb 13.6.7-4 gitlab -rm_conffile /etc/gitlab/feature_flags/development/async_update_pages_config.yml 13.7.7-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dynamic_image_resizing.yml 13.7.7-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dynamic_image_resizing_owner.yml 13.7.7-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dynamic_image_resizing_requester.yml 13.7.7-1 gitlab -rm_conffile /etc/gitlab/initializers/rack_attack_global.rb 13.7.7-1 gitlab -rm_conffile /etc/gitlab/initializers/postgresql_limit_fix.rb 13.7.7-1 gitlab -rm_conffile /etc/gitlab/initializers/mysql_ignore_postgresql_options.rb 13.7.7-1 gitlab -rm_conffile /etc/gitlab/initializers/mysql_set_length_for_binary_indexes.rb 13.7.7-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/api_json_content_type.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/approval_suggestions.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/builds.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/caching_experiments.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cd_skipped_deployment_status.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_allow_failure_with_exit_codes.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_auto_cancel_all_pipelines.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_bridge_dependency_variables.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_disable_validates_dependencies.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_include_multiple_files_from_project.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_live_trace_use_fog_attributes.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pipeline_open_merge_requests.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pipelines_for_merge_request_finder_new_cte.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_seed_block_run_before_workflow_rules.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/core_security_mr_widget.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/core_security_mr_widget_downloads.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/coverage_fuzzing_mr_widget.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dag_pipeline_tab.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/deploy_keys_on_protected_branches.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/deploy_tokens_api.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/diff_check_with_paths_changed_rpc.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/feature_flags_legacy_read_only.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/feature_flags_legacy_read_only_override.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/forking.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_catfile-cache.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_deny_disk_access.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/github_import_pull_request_reviews.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitlab_experiments.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitpod.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/graphql_pipeline_analytics.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/graphql_pipeline_header.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/group_members_filtered_search.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/hide_jump_to_next_unresolved_in_threads.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/import_requirements_csv.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/invisible_captcha.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/issues.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jira_connect_full_namespace_sync.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jira_sync_builds.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/lfs_chunked_encoding.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/maintenance_mode.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_orchestration_service.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_ref_auto_sync.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_ref_auto_sync_lock.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_request_reviewers.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_requests.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/metrics_dashboard.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/mr_commit_neighbor_nav.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/multiline_comments.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_pipeline_form_prefilled_vars.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_project_level_vsa_backend.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/operations.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pages.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pat_creation_api_for_admin.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/repository.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/reset_integrations.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/restrict_access_to_build_debug_mode.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/reviewer_approval_rules.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/service_desk_custom_address.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/show_inherited_labels.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/smart_cobertura_parser.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/snippets.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/squash_options.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/startup_css.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/test_failure_history.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_issue_activity_actions.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_unique_wiki_page_views.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/upload_middleware_jwt_params_handler.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_incident_management_alerts_total_unique_counts.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_incident_management_incidents_total_unique_counts.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vue_2fa_recovery_codes.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vue_group_members_list.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vue_issuable_sidebar.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/webperf_experiment.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/whats_new_drawer.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/widget_visibility_polling.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/wiki.yml 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/initializers/grape_patch.rb 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/initializers/rack_attack_logging.rb 13.8.5+ds1-2 gitlab -rm_conffile /etc/gitlab/initializers/hipchat_client_patch.rb 13.9.4+ds1-3 gitlab -rm_conffile /etc/gitlab/feature_flags/development/add_issues_button.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/batch_suggestions.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cached_sidebar_open_issues_count.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_instance_variables_ui.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_jwt_include_environment.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_mini_pipeline_gl_dropdown.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pipeline_editor_page.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_rules_variables.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_trigger_payload_into_pipeline.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/clear_status_with_quick_options.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cluster_agent_list.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/codequality_backend_comparison.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/collect_package_events_redis.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/coverage_data_new_finder.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dashboard_pipeline_status.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dynamic_nonce_creation.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitlab_org_sitemap.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/graphql_individual_release_page.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/graphql_logging.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/improved_merge_diff_highlighting.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/instance_statistics.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jira_issues_list.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jira_issues_show_integration.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_request_cached_pipeline_serializer.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_request_rebase_nowait_lock.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/multiple_http_integrations_custom_mapping.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_jira_connect_ui.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/optimized_merge_request_count_with_merged_at_filter.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pages_migration_mark_as_not_deployed.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pages_serve_from_deployments.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pages_serve_from_migrated_zip.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pages_use_legacy_storage_lease.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/paginate_commit_view.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pipelines_security_report_summary.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/project_transactionless_destroy.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/query_deploymenys_via_finished_at_in_vsa.yml 13.10.4+ds1-1 gitlab -#rm_conffile /etc/gitlab/feature_flags/development/recursive_approach_for_all_projects.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/remove_comment_close_reopen.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/remove_resolve_note.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/resource_access_token_feature.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/saas_add_seats_button.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/saml_group_links.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/search_settings_in_page.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/secure_security_and_compliance_configuration_page_on_ce.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/security_on_demand_scans_site_validation.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/shared_group_membership_auth.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/simplified_commit_status_group_name.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/skip_dag_manual_and_delayed_jobs.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/suggestions_custom_commit.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_api.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_g_compliance_dashboard.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_i_source_code_code_intelligence.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_track_ci_templates_unique_projects.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/user_mode_in_session.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/value_stream_analytics_extended_form.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vue_notification_dropdown.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vue_project_members_list.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/experiment/ci_syntax_templates_experiment_percentage.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/experiment/customize_homepage_experiment_percentage.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/experiment/invite_members_version_a_experiment_percentage.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/ops/marginalia.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/metrics/settings/20210204124924_elasticsearch_enabled.yml 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/initializers/json_validator_patch.rb 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/initializers/puma_client_tempfile_patch.rb 13.10.4+ds1-1 gitlab -rm_conffile /etc/gitlab/initializers/action_dispatch_journey_formatter.rb 13.12.9+ds1-3 gitlab -rm_conffile /etc/gitlab/initializers/labkit_middleware.rb 13.12.9+ds1-3 gitlab -rm_conffile /etc/gitlab/initializers/mailer_retries.rb 13.12.9+ds1-3 gitlab -rm_conffile /etc/gitlab/initializers/transaction_metrics.rb 14.1.7+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/additional_snowplow_tracking.yml 14.4.4+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/block_anonymous_global_searches.yml 14.5.3+ds1-1 gitlab -rm_conffile /etc/gitlab/initializers/0_acts_as_taggable.rb 14.5.3+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/additional_snowplow_tracking.yml 14.5.3+ds1-1 gitlab -rm_conffile /etc/gitlab/initializers/sherlock.rb 14.6.5+ds1-2 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_enforce_requests_limits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_go_user_merge_branch.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_mep_mep.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_pack_objects_hook_with_sidechannel.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/abort_deleted_project_pipelines.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/add_actor_based_user_to_snowplow_tracking.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/add_namespace_and_project_to_snowplow_tracking.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/admin_application_settings_service_usage_data_center.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/admin_deploy_keys_vue.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/allow_unsafe_ruby_regexp.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/api_caching_merge_requests.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/api_caching_rate_limit_branches.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/api_caching_rate_limit_repository_compare.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/api_caching_tags.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/api_v3_commits_skip_diff_files.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/atomic_sidekiq_scheduler.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/avoid_cross_joins_environments_in_self_and_descendants.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/between_commits_via_list_commits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/between_uses_list_commits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/block_external_fork_network_mirrors.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/board_new_list.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/branches_pagination_without_count.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/broadcast_issue_updates.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/bulk_expire_project_artifacts.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cached_encoding_detection.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cached_issues_state_count.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cached_loading_hints.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cached_mr_title.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cached_mr_widget.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cache_merge_to_ref_calls.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cache_shared_runners_enabled.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/changes_batch_commits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/chat_notification_deployment_protected_branch_filter.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/check_mergeability_async_in_widget.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_archived_build_trace_checksum.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_artifact_fast_removal_large_loop_limit.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_build_tags_limit.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_bulk_insert_tags.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_create_external_pr_pipeline_async.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_daily_limit_for_pipeline_schedules.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_decompose_for_namespace_monthly_usage_query.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_delete_objects_high_concurrency.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_delete_objects_medium_concurrency.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_destroy_all_expired_service.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_drop_cyclical_triggered_pipelines.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_find_runners_by_ci_mirrors.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_fix_commit_status_retried.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_fix_order_of_subsequent_jobs.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_idempotent_pipeline_process_worker.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_include_rules.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_job_trace_force_encode.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_minutes_track_live_consumption.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_modified_paths_of_external_prs.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_namespace_project_mirrors.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_new_artifact_file_reader.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_new_query_for_pending_stuck_jobs.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_optimize_project_records_destruction.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_order_subsequent_jobs_by_stage.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pending_builds_maintain_ci_minutes_data.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pending_builds_maintain_namespace_traversal_ids.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pending_builds_maintain_shared_runners_data.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pending_builds_maintain_tags_data.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pending_builds_project_runners_decoupling.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pending_builds_queue_maintain.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pending_builds_table_resiliency.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pipeline_add_job_with_lock.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_pipeline_merge_request_presence_check.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_predefined_vars_in_builder.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_preload_runner_tags.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_queueing_builds_enabled_checks.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_queueing_denormalize_ci_minutes_information.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_queueing_denormalize_namespace_traversal_ids.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_queueing_denormalize_shared_runners_information.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_queueing_denormalize_tags_information.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_remove_update_retried_from_process_pipeline.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_reset_bridge_with_subsequent_jobs.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_runner_limits_override.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_runner_limits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_runners_short_circuit_assignable_for.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_same_stage_job_needs.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_scoped_job_token.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_skip_legacy_extra_minutes_recalculation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_skip_require_credit_card_for_addon_ci_minutes.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_store_trace_outside_transaction.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_synchronous_artifact_parsing.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_track_shared_runner_builds.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_untrack_shared_runner_builds.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_use_variables_builder_definitions.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_validate_job_length.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_variables_builder_config_variables.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ci_variables_builder_memoize_secret_variables.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/cluster_vulnerabilities.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/configurable_diff_limits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/configure_iac_scanning_via_mr.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/consolidated_edit_button.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_expiration_policies_historic_entry.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_cdn_redirect.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_expiration_policies_caching.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_expiration_policies_throttling.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_follow_redirects_middleware.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_migration_phase1_allow.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_migration_phase1_deny.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/container_registry_migration_phase1.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/content_editor_block_tables.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/context_commits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/create_deployment_in_separate_transaction.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/create_project_namespace_on_project_create.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/create_project_settings.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/create_vulnerabilities_via_api.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/custom_preloader_for_deployments.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dast_meta_tag_validation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dast_profile_disable_joins.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dast_runner_site_validation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dast_scanner_profile_disable_joins.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dast_site_profile_disable_joins.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dast_view_scans.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/decomposed_ci_query_in_pipelines_for_merge_request_finder.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/default_merge_ref_for_diffs.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/delete_branch_confirmation_modals.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dependency_proxy_for_private_groups.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dependency_proxy_manifest_workhorse.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/dependency_proxy_workhorse.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/deployment_approval_rules.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/deployment_approvals.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/deployments_archive.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/diffs_batch_render_cached.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/diff_searching_usage_data.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/diff_settings_usage_data.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/diffs_virtual_scrolling.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/display_outdated_line_diff.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/distribute_github_parallel_import.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/drop_detached_partitions.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/early_prepare_for_mergeability.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ensure_verified_primary_email_for_2fa.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/environment_last_visible_pipeline_disable_joins.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/environment_multiple_stop_actions.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/environments_by_deployments_finder_exists_optimization.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/env_last_deployment_by_finished_at.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/expire_job_and_pipeline_cache_synchronously.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/export_reduce_relation_batch_size.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/files_api_throttling.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/finding_ci_pipeline_disable_joins.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/find_tag_via_gitaly.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/fix_comment_scroll.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/fix_related_environments_for_merge_requests.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/fork_project_form.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/generate_iids_without_explicit_locking.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/generic_packages.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/geo_token_user_authentication.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/get_tag_signatures.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_backup.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_replace_wiki_update_page.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_tags_finder.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_upload_pack_gitaly_hooks.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitaly_user_merge_branch_access_error.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/github_importer_use_diff_note_with_suggestions.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/gitlab_shell_upload_pack_sidechannel.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/grape_gitlab_json.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/graphql_board_lists.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/graphql_ci_runner_executor.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/group_authorized_agents.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/group_ci_cd_analytics_page.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/group_import_export.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/group_level_protected_environments.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/group_project_api_preload_plans.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/group_releases_finder_inoperator.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/groups_runners_token_prefix.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/group_wiki_settings_toggle.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/header_read_timeout_buffered_io.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/help_page_documentation_redirect.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/hide_access_tokens.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/import_project_from_remote_file.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/import_redis_increment_by.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/improved_container_scan_matching.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/improved_emoji_picker.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/incident_timeline_event_tab.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/increased_diff_limits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/integration_form_sections.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/invite_members_group_modal.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/issue_boards_filtered_search.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/issue_rebalancing_optimization.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/issue_rebalancing_with_retry.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/iteration_cadences.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jira_connect_asymmetric_jwt.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jira_connect_installation_update.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jira_issue_details_edit_labels.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jira_issue_details_edit_status.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jira_use_first_ref_by_oid.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/job_deployment_count.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jobs_tab_vue.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/json_limited_encoder.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/jupyter_clean_diffs.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/keyset_pagination_for_groups_api.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/labels_widget.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/lfk_fair_queueing.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/lfs_auto_link_fork_source.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/limited_diff_highlighting.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_application_setting_ancestor_scopes.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_application_settings_elasticsearch_limited_namespaces.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_ee_group_ancestor_scopes.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_group_ancestor_scopes.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_group_descendants_finder.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_group_including_descendants_by.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_group_plans_preloaded_ancestor_scopes.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_groups_template_finder_extended_group_search.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_group_tree_ancestor_scopes.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_members_finder_ancestor_scopes.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_mirrors_worker_roots.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_participants_service_ancestor_scopes.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_user_group_notification_settings_finder_ancestors_scopes.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_user_groups_with_developer_maintainer_project_access.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/linear_user_membership_groups.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/load_balancing_for_deployments_hooks_worker.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/load_balancing_for_export_workers.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/load_balancing_for_update_all_mirrors_worker.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/local_file_reviews.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/log_implicit_sidekiq_status_calls.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/log_import_export_relation_creation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/loose_foreign_key_cleanup.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/loose_index_scan_for_distinct_values.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/mailgun_events_receiver.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/managed_alerts_deprecation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/markdown_continue_lists.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_request_discussion_cache.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_request_show_render_cached.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/merge_service_ping_instrumented_metrics.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/migrate_user_mentions.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/milestone_reference_pattern.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/mrc_api_use_raw_diffs_from_gitaly.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/mr_changes_fluid_layout.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/multiple_gpg_signatures.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_customersdot_staging_url.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_dir_modal.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_environments_table.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_route_ci_minutes_purchase.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_route_storage_purchase.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/new_vulnerability_form.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/nullify_in_batches_on_user_deletion.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/operational_vulnerabilities.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/optimized_issuable_label_filter.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/optimized_issue_neighbor_queries.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/optimize_merge_request_parser.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/optimize_safe_find_or_create_by.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/other_storage_tab.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/package_details_apollo.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/package_list_apollo.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/packages_installable_package_files.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/packages_npm_abbreviated_metadata.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/packages_nuget_new_package_file_updater.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pages_smart_check_outdated_sha.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/paginatable_namespace_drop_down_for_project_creation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/paginated_tree_graphql_query.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/partition_pruning.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/permitted_attributes_for_import_export.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pipeline_editor_branch_switcher.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pipeline_editor_drawer.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pipeline_editor_empty_state_action.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pipeline_editor_mini_graph.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pipeline_schedules_with_tags.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/pipeline_source_filter.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/preserve_latest_wal_locations_for_idempotent_jobs.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/prevent_sensitive_fields_from_serializable_hash.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/prohibit_hexadecimal_branch_names.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/project_import_schedule_worker_job_tracker.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/projects_runners_token_prefix.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/project_storage_ui.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/publish_project_deleted_event.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/push_rules_supersede_code_owners.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/query_project_ci_feature_usages_for_coverage.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/rate_limited_service_issues_create.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/rate_limit_profile_update_username.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/rate_limit_user_by_id_endpoint.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/rate_limit_username_exists_endpoint.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/rate_limit_user_sign_up_endpoint.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/read_from_vulnerability_finding_evidence.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/real_time_issue_sidebar.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/rearrange_pipelines_table.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/redirect_to_latest_template_jobs_browser_performance_testing.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/redirect_to_latest_template_jobs_build.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/redirect_to_latest_template_security_api_fuzzing.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/redirect_to_latest_template_security_dast.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/redirect_to_latest_template_terraform.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/redirect_to_latest_template_verify_browser_performance.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/refactor_text_viewer.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/reference_cache_memoization.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/release_evidence.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/releases_index_apollo_client.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/remove_composer_v1_cache_code.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/remove_import_data_on_failure.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/report_on_long_redis_durations.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/request_apdex_counters.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/retarget_merge_requests.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/roadmap_settings.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/runner_detailed_view_vue_ui.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/runner_graphql_query.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/runner_list_group_view_vue_ui.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/runner_read_only_admin_view.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/sbom_survey.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/scim_token_vue.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/secure_vulnerability_training.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/security_finding_build_disable_joins.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/security_orchestration_policies_configuration.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/security_report_ingestion_framework.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/serverless_domain.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/set_full_path.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/settings_operations_prometheus_service.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/show_author_on_note.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/show_relevant_approval_rule_approvers.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/show_report_validation_warnings.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/sidekiq_push_bulk_in_batches.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/skip_pages_deploy_to_legacy_storage.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/skip_scheduling_workers_for_replicas.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/snippets_binary_blob.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/sort_by_project_users_by_project_authorizations_user_id.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/specialized_service_for_project_member_auth_refresh.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/specialized_worker_for_project_share_update_auth_recalculation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/specialized_worker_for_project_transfer_auth_recalculation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/spread_parallel_import.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/store_mentions_without_subtransaction.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/strong_parameters_for_project_controller.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/suppress_apollo_errors_during_navigation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/surface_environment_creation_failure_override.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/surface_environment_creation_failure.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/swimlanes_buffered_rendering.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/sync_traversal_ids_before_commit.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/tags_finder_gitaly.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/terms_of_service_vue.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_editor_edit_actions.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_epic_boards_activity.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_error_tracking_activity.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_file_size_over_highlight_limit.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_geo_proxy_events.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_highlight_timeouts.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_importer_activity.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/track_unique_visits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/tribute_autocomplete.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/ukraine_support_tanuki.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/update_all_mirrors_job_tracker.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/update_deployment_after_transaction_commit.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_design_action.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_instrumentation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_i_snippets_show.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_i_testing_group_code_coverage_visit_total.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_i_testing_load_performance_widget_total.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_i_testing_metrics_report_artifact_uploaders.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_i_testing_metrics_report_widget_total.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_i_testing_summary_widget_total.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_i_testing_test_case_parsed.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_i_testing_web_performance_widget_total.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_static_site_editor_commits.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/usage_data_static_site_editor_merge_requests.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/use_cmark_renderer.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/use_model_load_balancing.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/use_multi_store.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/use_optimized_group_labels_query.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/use_primary_and_secondary_stores_for_sessions.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/use_primary_store_as_default_for_sessions.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/user_refresh_from_replica_worker_uses_replica_db.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/users_expanding_widgets_usage_data.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/use_specialized_worker_for_project_auth_recalculation.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/use_upsert_query_for_mr_metrics.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/validate_namespace_parent_type.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/variable_inside_variable.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/verify_participants_access.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/verify_protected_tags_for_pull_mirror.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vue_epics_list.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vue_integration_form.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vue_issuables_list.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vulnerability_finding_replace_metadata.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vulnerability_flags.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vulnerability_location_image_filter.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vulnerability_reads_table.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vulnerability_report_pagination.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/vuln_report_new_project_filter.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/web_ide_primary_edit.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/wiki_front_matter.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/wiki_switch_between_content_editor_raw_markdown.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/feature_flags/development/workhorse_use_sidechannel.yml 14.10.5+ds1-1 gitlab -rm_conffile /etc/gitlab/initializers/00_active_record_gitlab_schema.rb 15.0.4+ds1-1 gitlab -rm_conffile /etc/gitlab/initializers/set_active_support_hash_digest_class.rb 15.1.4+ds1-1 gitlab -rm_conffile /etc/gitlab/initializers/0_post_deployment_migrations.rb 15.2.2+ds1-3 gitlab -rm_conffile /etc/gitlab/initializers/0_runtime_identify.rb 15.2.2+ds1-3 gitlab -rm_conffile /etc/gitlab/initializers/active_record_build_select.rb 15.2.2+ds1-3 gitlab -rm_conffile /etc/gitlab/initializers/active_record_ping.rb 15.2.2+ds1-3 gitlab -rm_conffile /etc/gitlab/initializers/asciidoctor_patch.rb 15.2.2+ds1-3 gitlab -rm_conffile /etc/gitlab/initializers/graphql.rb 15.2.2+ds1-3 gitlab diff --git a/debian/gitlab.postinst b/debian/gitlab.postinst deleted file mode 100755 index ef68d1b7ec..0000000000 --- a/debian/gitlab.postinst +++ /dev/null @@ -1,381 +0,0 @@ -#! /bin/sh -# postinst script for gitlab -# copied from postinst script for hplip -# $Id: hplip.postinst,v 1.1 2005/10/15 21:39:04 hmh Exp $ -# -# see: dh_installdeb(1) - -set -e - -# Setup variables -# Now using gitlab-common.defaults to override variables used only in -# maintainer scripts. Earlier versions used gitlab-debian.conf for this. -# Now gitlab-debian.conf will only have user/admin configurable variables -# and variables required by systemd services. -gitlab_common_defaults=/usr/lib/gitlab-common/gitlab-common.defaults -test -f ${gitlab_common_defaults} && . ${gitlab_common_defaults} - -# Show debconf questions -. /usr/share/debconf/confmodule -. /usr/share/dbconfig-common/dpkg/postinst - -# summary of how this script can be called: -# * `configure' -# * `abort-upgrade' -# * `abort-remove' `in-favour' -# -# * `abort-deconfigure' `in-favour' -# `removing' -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package -# -# quoting from the policy: -# Any necessary prompting should almost always be confined to the -# post-installation script, and should be protected with a conditional -# so that unnecessary prompting doesn't happen if a package's -# installation fails and the `postinst' is called with `abort-upgrade', -# `abort-remove' or `abort-deconfigure'. - -####################################################################### -# Read debian specific configuration -####################################################################### - -# Always copy the example configuration file in case there are newer entries -# added by maintainer -cp ${gitlab_debian_conf_example} ${gitlab_debian_conf_private} -. ${gitlab_debian_conf_private} - -# If /etc/gitlab/gitlab-debian.conf is already present, use it -test -f ${gitlab_debian_conf} && . ${gitlab_debian_conf} -export DB RAILS_ENV - -# Read default values (we cannot do this before gitlab-debian.conf is exported -# as we want to override variables set by gitlab-debian.conf in earlier gitlab -# versions with gitlab-debian.defaults) -. ${gitlab_common_defaults} - -# Read gitlab_user from gitlab-common.conf -test -f ${gitlab_common_conf} && . ${gitlab_common_conf} - -# Required for embedded gems -export GEM_HOME=/var/lib/gitlab/.gem -export GEM_PATH=$(gem env gempath) - -# Once bundler gets --prefer-local option (merged upstream) these will be automated -# Updating these rubygem packages are complicated -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v 1.8.0 "^graphiql-rails$" >/dev/null; then gem install -v 1.8.0 graphiql-rails; fi" -# gitlab-dangerfiles is required in Rakefile and has many dependencies -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i "^gitlab-dangerfiles$" >/dev/null; then gem install gitlab-dangerfiles; fi" - -# TODO: Update packages for these gems -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v 7.2 "^elasticsearch-model$" >/dev/null; then gem install -v 7.2 elasticsearch-model; fi" -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v 7.2 "^elasticsearch-rails$" >/dev/null; then gem install -v 7.2 elasticsearch-rails; fi" -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v 3.14 "^fog-aws$" >/dev/null; then gem install -v 3.14 fog-aws; fi" -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v 6.6 "^rack-attack$" >/dev/null; then gem install -v 6.6 rack-attack; fi" -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v 3.131 "^aws-sdk-core$" >/dev/null; then gem install -v 3.131 aws-sdk-core; fi" -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v 1.114 "^aws-sdk-s3$" >/dev/null; then gem install -v 1.114 aws-sdk-s3; fi" -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v 0.10.13 "^asana$" >/dev/null; then gem install -v 0.10.13 asana; fi" -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v '~> 7.0' "^rails-i18n$" >/dev/null; then gem install -v '~> 7.0' rails-i18n; fi" -runuser -u ${gitlab_user} -- sh -c "if ! gem list -i -v '~> 2.0' "^oauth2$" >/dev/null; then gem install -v '~> 2.0' oauth2; fi" - -####################################################################### -# update Gemfile.lock and yarn.lock, always -####################################################################### -runuser -u ${gitlab_user} -- sh -c "touch ${gitlab_data_dir}/Gemfile.lock && \ -truncate -s 0 ${gitlab_data_dir}/Gemfile.lock" -# Don't modify yarn.lock until all dependencies are packaged -#runuser -u ${gitlab_user} -- sh -c "touch ${gitlab_data_dir}/yarn.lock && \ -#truncate -s 0 ${gitlab_data_dir}/yarn.lock" -runuser -u ${gitlab_user} -- sh -c "touch ${gitlab_data_dir}/yarn-error.log" -cd ${gitlab_app_root} -if ! runuser -u ${gitlab_user} -- sh -c 'bundle --local --quiet'; then - if [ "$1" = "triggered" ]; then - # probably triggered in the middle of an system upgrade; ignore failure - # but abort here - echo "#########################################################################" - echo "# Failed to detect gitlab dependencies; if you are in the middle of an #" - echo "# upgrade, this is probably fine, there will be another attempt later. #" - echo "# #" - echo "# If you are NOT in the middle of an upgrade, there is probably a real #" - echo "# issue. Please report a bug. #" - echo "#########################################################################" - exit 0 - else - # something is really broken - exit 1 - fi -fi -cd - >/dev/null - -case "$1" in - configure) - gitlab_builds_log=${gitlab_log_dir}/builds - gitlab_repo_path=${gitlab_data_dir}/repositories - gitlab_uploads_path=${gitlab_data_dir}/public/uploads - - # Create directories and change ownership - echo "Creating runtime directories for gitlab..." - # Setup ssh key file - runuser -u ${gitlab_user} -- sh -c "mkdir -p ${gitlab_data_dir}/.ssh" - runuser -u ${gitlab_user} -- sh -c "touch ${gitlab_data_dir}/.ssh/authorized_keys" - # Create .bundle for .bundle/config - runuser -u ${gitlab_user} -- sh -c "mkdir -p ${gitlab_data_dir}/.bundle" - # Create locale for app/assets/javascripts/locale - runuser -u ${gitlab_user} -- sh -c "mkdir -p ${gitlab_data_dir}/locale" - # Create backup directory for tmp/backups symbolic link - runuser -u ${gitlab_user} -- sh -c "mkdir -p ${gitlab_data_dir}/backups" - # Create more required directories - mkdir -p ${gitlab_pid_path} - chown ${gitlab_user}: ${gitlab_data_dir}/public ${gitlab_cache_path} \ - ${gitlab_log_dir} ${gitlab_shell_log} ${gitlab_pid_path} \ - ${gitlab_data_dir}/db ${gitlab_data_dir}/locale ${gitlab_data_dir}/shared \ - ${gitlab_data_dir}/shared/* ${gitlab_data_dir}/shared/artifacts/* \ - ${gitlab_data_dir}/shared/artifacts/tmp/* - for i in ${gitlab_repo_path} ${gitlab_uploads_path}\ - ${gitlab_shell_log} ${gitlab_builds_log}; do - runuser -u ${gitlab_user} -- sh -c "mkdir -p $i" - done - - # nginx/httpd should be able to connect to gitlab-workhorse.socket and serve public - chown ${gitlab_user}:${nginx_user} ${gitlab_uploads_path}/../* ${gitlab_pid_path} - - # Customize permissions - echo "Updating file permissions..." - chmod ug+rwX,o-rwx,u-s,g+s ${gitlab_repo_path}/ - for i in ${gitlab_data_dir} ${gitlab_shell_root}; do - chown ${gitlab_user}: $i - done - - # Make package.json writable for yarn 2 - chown ${gitlab_user}: /var/lib/gitlab/package.json - - runuser -u ${gitlab_user} -- sh -c "chmod 700 ${gitlab_uploads_path}" - runuser -u ${gitlab_user} -- sh -c 'git config --global core.autocrlf "input"' - - # Commands below needs to be run from gitlab_app_root - cd ${gitlab_app_root} - - # Obtain hostname from debconf db - echo "Configuring hostname and email..." - db_get gitlab/fqdn - GITLAB_HOST=$RET - GITLAB_EMAIL_FROM="no-reply@$GITLAB_HOST" - GITLAB_EMAIL_DISPLAY_NAME="Gitlab" - GITLAB_EMAIL_REPLY_TO="no-reply@$GITLAB_HOST" - # Check if ssl option is selected - db_get gitlab/ssl - GITLAB_HTTPS=$RET - gl_proto="http" - db_get gitlab/letsencrypt - gitlab_letsencrypt=$RET - db_get gitlab/letsencrypt_email - gitlab_letsencrypt_email=$RET - - cp -a -f ${gitlab_debian_conf_private} ${gitlab_debian_conf_private}.tmp - - # If the admin deleted or commented some variables but then set - # them via debconf, (re-)add them to the conffile. - test -z "$GITLAB_HOST" || grep -Eq '^ *GITLAB_HOST=' ${gitlab_debian_conf_private} || \ - echo "GITLAB_HOST=" >> ${gitlab_debian_conf_private} - test -z "$GITLAB_EMAIL_FROM" || grep -Eq '^ *GITLAB_EMAIL_FROM=' ${gitlab_debian_conf_private} || \ - echo "GITLAB_EMAIL_FROM=" >> ${gitlab_debian_conf_private} - test -z "$GITLAB_EMAIL_DISPLAY_NAME" || grep -Eq '^ *GITLAB_EMAIL_DISPLAY_NAME=' ${gitlab_debian_conf_private} || \ - echo "GITLAB_EMAIL_DISPLAY_NAME=" >> ${gitlab_debian_conf_private} - test -z "$GITLAB_EMAIL_REPLY_TO" || grep -Eq '^ *GITLAB_EMAIL_REPLY_TO=' ${gitlab_debian_conf_private} || \ - echo "GITLAB_EMAIL_REPLY_TO=" >> ${gitlab_debian_conf_private} - test -z "$GITLAB_HTTPS" || grep -Eq '^ *GITLAB_HTTPS=' ${gitlab_debian_conf_private} || \ - echo "GITLAB_HTTPS=" >> ${gitlab_debian_conf_private} - test -z "$gitlab_letsencrypt" || grep -Eq '^ *gitlab_letsencrypt=' ${gitlab_debian_conf_private} || \ - echo "gitlab_letsencrypt=" >> ${gitlab_debian_conf_private} - test -z "$gitlab_letsencrypt_email" || grep -Eq '^ *gitlab_letsencrypt_email=' ${gitlab_debian_conf_private} || \ - echo "gitlab_letsencrypt_email=" >> ${gitlab_debian_conf_private} - sed -e "s/^ *GITLAB_HOST=.*/GITLAB_HOST=\"$GITLAB_HOST\"/" \ - -e "s/^ *GITLAB_EMAIL_FROM=.*/GITLAB_EMAIL_FROM=\"$GITLAB_EMAIL_FROM\"/" \ - -e "s/^ *GITLAB_EMAIL_DISPLAY_NAME=.*/GITLAB_EMAIL_DISPLAY_NAME=\"$GITLAB_EMAIL_DISPLAY_NAME\"/" \ - -e "s/^ *GITLAB_EMAIL_REPLY_TO=.*/GITLAB_EMAIL_REPLY_TO=\"$GITLAB_EMAIL_REPLY_TO\"/" \ - -e "s/^ *GITLAB_HTTPS=.*/GITLAB_HTTPS=\"$GITLAB_HTTPS\"/" \ - -e "s/^ *gitlab_letsencrypt=.*/gitlab_letsencrypt=\"$gitlab_letsencrypt\"/" \ - -e "s/^ *gitlab_letsencrypt_email=.*/gitlab_letsencrypt_email=\"$gitlab_letsencrypt_email\"/" \ - < ${gitlab_debian_conf_private} > ${gitlab_debian_conf_private}.tmp - mv -f ${gitlab_debian_conf_private}.tmp ${gitlab_debian_conf_private} - - # Copy example configurations - cp ${gitlab_yml_example} ${gitlab_yml_private} - cp ${gitlab_shell_config_example} ${gitlab_shell_config_private} - - # Set gitlab user first time - sed -i "s/GITLAB_USER/${gitlab_user}/" ${gitlab_yml_private} - # Update gitlab user (its a hack, proper fix is to have gitlab accept GITLAB_USER variable) - sed -i "s/^ *user:.* #gitlab_user/ user: $gitlab_user #gitlab_user/" ${gitlab_yml_private} - - if [ "$GITLAB_HTTPS" = "true" ]; then - echo "Configuring nginx with HTTPS..." - # Workaround for #813770 - gl_proto="https" - echo "Configuring gitlab with HTTPS..." - sed -i "s/#port: 80/port: 443/" ${gitlab_yml_private} - sed -i "s/https: false/https: true/" ${gitlab_yml_private} - echo "Updating gitlab_url in gitlab-shell configuration..." - sed -i \ - "s/gitlab_url: http*:\/\/.*/gitlab_url: ${gl_proto}:\/\/${GITLAB_HOST}/"\ - ${gitlab_shell_config_private} - - mkdir -p /etc/gitlab/ssl - nginx_conf_example=${nginx_ssl_conf_example} - - # Check if letsencrypt option is selected - if [ "$gitlab_letsencrypt" = "true" ]; then - echo "Configuring letsencrypt..." - ln -sf /etc/letsencrypt/live/${GITLAB_HOST}/fullchain.pem \ - /etc/gitlab/ssl/gitlab.crt - ln -sf /etc/letsencrypt/live/${GITLAB_HOST}/privkey.pem \ - /etc/gitlab/ssl/gitlab.key - - # Check if certificate is already present - if [ -e /etc/letsencrypt/live/${GITLAB_HOST}/fullchain.pem ]; then - echo "Let's encrypt certificate already present." - else - # Port 80 and 443 should be available for letsencrypt - if command -v nginx > /dev/null; then - echo "Stopping nginx for letsencrypt..." - invoke-rc.d nginx stop - fi - db_get gitlab/letsencrypt_email - gitlab_letsencrypt_email=$RET - LETSENCRYPT_CMD="letsencrypt --standalone --agree-tos -m $gitlab_letsencrypt_email -d ${GITLAB_HOST} certonly" - $LETSENCRYPT_CMD || { - echo "letsencrypt auto configuration failed..." - echo "Stop your webserver and try running letsencrypt manually..." - echo "$LETSENCRYPT_CMD" - } - if command -v nginx > /dev/null; then - echo "Starting nginx (letsencrypt configuration completed) ..." - invoke-rc.d nginx start - fi - fi - fi - else - # Revert https setting - sed -i "s/port: 443/#port: 80/" ${gitlab_yml_private} - sed -i "s/https: true/https: false/" ${gitlab_yml_private} - fi - - # Cleanup in case letsencrypt were disabled later - if [ "$gitlab_letsencrypt" = "false" ]; then - if [ -L /etc/gitlab/ssl/gitlab.crt ]; then - if [ "$(file /etc/gitlab/ssl/gitlab.crt|awk '{ print $NF }')" = "/etc/letsencrypt/live/${GITLAB_HOST}/fullchain.pem" ]; then - echo "Removing symbolic links to letsencrypt certificate..." - rm -f /etc/gitlab/ssl/gitlab.crt - fi - fi - if [ -L /etc/gitlab/ssl/gitlab.key ]; then - if [ "$(file /etc/gitlab/ssl/gitlab.key|awk '{ print $NF }')" = "/etc/letsencrypt/live/${GITLAB_HOST}/privkey.pem" ]; then - echo "Removing symbolic links to letsencrypt certificate private key..." - rm -f /etc/gitlab/ssl/gitlab.key - fi - fi - fi - - # Override User for systemd services - for service in mailroom puma sidekiq workhorse; do - path=/etc/systemd/system/gitlab-${service}.service.d - mkdir -p $path - if [ -e $path/override.conf ]; then - echo "$path/override.conf already exist" - # Make sure only gitlab user is updated - sed -i "s/^ *User=.*/User=$gitlab_user/" $path/override.conf - else - printf "[Service]\nUser=${gitlab_user}\n" > $path/override.conf - fi - done - - # Manage gitlab-shell's config.yml via ucf - mkdir -p /etc/gitlab-shell - echo "Registering ${gitlab_shell_config} via ucf" - ucf --debconf-ok --three-way ${gitlab_shell_config_private} ${gitlab_shell_config} - ucfr gitlab ${gitlab_shell_config} - - # Manage gitlab.yml via ucf - echo "Registering ${gitlab_yml} via ucf" - ucf --debconf-ok --three-way ${gitlab_yml_private} ${gitlab_yml} - ucfr gitlab ${gitlab_yml} - - # Manage gitlab-debian.conf via ucf - echo "Registering ${gitlab_debian_conf} via ucf" - ucf --debconf-ok --three-way ${gitlab_debian_conf_private} ${gitlab_debian_conf} - ucfr gitlab ${gitlab_debian_conf} - - # configure nginx site - if test -d /etc/nginx/sites-available/; then - if test -f ${nginx_conf_example}; then - nginx_site="/etc/nginx/sites-available/${GITLAB_HOST}" - sed -e "s/YOUR_SERVER_FQDN/${GITLAB_HOST}/"\ - ${nginx_conf_example} >${nginx_site_private} - ucf --debconf-ok --three-way ${nginx_site_private} ${nginx_site} - ucfr gitlab ${nginx_site} - ln -fs ${nginx_site} /etc/nginx/sites-enabled/ - else - echo "nginx example configuration file not found" - exit 1 - fi - fi - # Reload nginx - if command -v nginx > /dev/null; then - echo "Reloading nginx configuration..." - invoke-rc.d nginx reload - fi - - dbc_go gitlab "$@" - db_stop - - # enable the pg_trgm extension - runuser -u postgres -- sh -c "psql -d gitlab_production -c \"CREATE EXTENSION IF NOT EXISTS pg_trgm;\"" - - # enable the btree_gist extension - runuser -u postgres -- sh -c "psql -d gitlab_production -c \"CREATE EXTENSION IF NOT EXISTS btree_gist;\"" - # Allow gitlab user to create schema - runuser -u postgres -- sh -c "psql -c \"GRANT CREATE ON database gitlab_production TO ${gitlab_user};\"" - - # Remove Gemfile.lock if present - rm -f ${gitlab_data_dir}/Gemfile.lock - - # Create Gemfile.lock and .secret in /var/lib/gitlab - runuser -u ${gitlab_user} -- sh -c "touch ${gitlab_data_dir}/Gemfile.lock" - - echo "Verifying we have all required libraries..." - runuser -u ${gitlab_user} -- sh -c 'bundle install --without development test --local' - - echo "Running final rake tasks and tweaks..." - . /usr/lib/gitlab/scripts/rake-tasks.sh - ;; - - triggered) - # Already handled - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -#DEBHELPER# - -case "$1" in - configure) - if command -v gitaly > /dev/null; then - echo "Restarting gitaly..." - invoke-rc.d gitaly restart - fi - echo "Restarting gitlab-sidekiq..." - systemctl restart gitlab-sidekiq - echo "Restarting gitlab..." - invoke-rc.d gitlab restart - echo "Running rake checks..." - gitlab-rake gitlab:check - ;; -esac diff --git a/debian/gitlab.postrm b/debian/gitlab.postrm deleted file mode 100644 index 80239d0435..0000000000 --- a/debian/gitlab.postrm +++ /dev/null @@ -1,223 +0,0 @@ -#! /bin/sh -# postrm.skeleton -# Skeleton maintainer script showing all the possible cases. -# Written by Charles Briscoe-Smith, March-June 1998. Public Domain. - -# Abort if any command returns an error value -set -e - -# Set variables -gitlab_common_defaults=/var/lib/gitlab-common/gitlab-common.defaults - -# This script is called twice during the removal of the package; once -# after the removal of the package's files from the system, and as -# the final step in the removal of this package, after the package's -# conffiles have been removed. - -# Ensure the menu system is updated - -# Read debian specific configuration -if [ -f ${gitlab_common_defaults} ] -then - . ${gitlab_common_defaults} -else - echo "${gitlab_common_defaults} not found. Not removing anything." - exit 0 -fi - -if [ -f ${gitlab_debian_conf} ] -then - . ${gitlab_debian_conf} -else - echo "${gitlab_debian_conf} not found. Not removing anything." - exit 0 -fi - -if [ -f ${gitlab_common_conf} ] -then - . ${gitlab_common_conf} -else - echo "${gitlab_common_conf} not found. Not removing anything." - exit 0 -fi - -safely_remove() { - CANDIDATE_DIR=$1 - if [ -n "${CANDIDATE_DIR}" ];then - if [ -e ${CANDIDATE_DIR} ]; then - echo "Removing: $i" - rm -rf ${CANDIDATE_DIR} - fi - fi -} - -case "$1" in - remove) - # This package is being removed, but its configuration has not yet - # been purged. - : - - # Remove diversion - # ldconfig is NOT needed during removal of a library, only during - # installation - - ;; - purge) - # This package has previously been removed and is now having - # its configuration purged from the system. - : - # purge debconf questions - if [ -e /usr/share/debconf/confmodule ]; then - # Source debconf library. - . /usr/share/debconf/confmodule - - # Do you want to remove all data? - db_input high gitlab/purge_data || true - db_go - - # Check if we should remove data? - db_get gitlab/purge_data - if [ "${RET}" = "true" ]; then - if [ -n "${gitlab_data_dir}" ] && [ -d ${gitlab_data_dir} ]; then - for i in shared public db repositories secrets.yml Gemfile.lock; do - if [ -e ${gitlab_data_dir}/$i ]; then - echo "Removing: ${gitlab_data_dir}/$i" - rm -rf ${gitlab_data_dir}/$i; fi - done - fi - for i in ${gitlab_log_dir} ${gitlab_cache_path} ${gitlab_pid_path}; do - safely_remove $i - done - - # Remove locale directory - echo "Removing: ${gitlab_app_root}/app/assets/javascripts/locale" - safely_remove ${gitlab_app_root}/app/assets/javascripts/locale - - if [ ! -z "${gitlab_user}" ]; then - # Do only if gitlab_user is set - if command -v dropdb >/dev/null; then - echo "Removing Database: gitlab_production" - if runuser -u ${gitlab_user} -- sh -c 'psql gitlab_production -c ""' ; then su postgres -c "dropdb gitlab_production"; fi - else - echo "dropdb command not found. Hence not removing database." - fi - else - echo "gitlab_user not set. Hence not removing user." - fi - safely_remove ${gitlab_ssl_path} - fi - - # Remove my changes to the db. - db_purge - fi - - nginx_site="/etc/nginx/sites-available/${GITLAB_HOST}" - dbconfig_config="/etc/dbconfig-common/gitlab.conf" - - if [ -f ${nginx_site} ]; then echo "Found nginx site configuration at ${nginx_site}..."; fi - - - # we mimic dpkg as closely as possible, so we remove configuration - # files with dpkg backup extensions too: - ### Some of the following is from Tore Anderson: - for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist; do - rm -f ${nginx_site}$ext - rm -f ${gitlab_debian_conf}$ext - rm -f ${gitlab_yml}$ext - rm -f ${gitlab_tmpfiles}$ext - rm -f ${gitlab_shell_config}$ext - rm -f ${dbconfig_config}$ext - done - - for i in ${nginx_site} ${gitlab_debian_conf} ${gitlab_yml} \ -${gitlab_tmpfiles} ${gitlab_shell_config} ${dbconfig_config}; do - # remove the configuration file itself - if [ -f $i ] ; then rm -f $i; fi - # and finally clear it out from the ucf database - if which ucf >/dev/null; then - if [ -n "$i" ]; then ucf --purge $i; fi - fi - if which ucfr >/dev/null; then - if [ -n "$i" ]; then ucfr --purge gitlab $i; fi - fi - done - - # remove generated assets - if [ -n "${gitlab_data_dir}" ]; then safely_remove ${gitlab_data_dir}/public/assets; fi - - # Remove private copies of configuration files - rm -f ${nginx_site_private} - rm -f ${gitlab_debian_conf_private} - rm -f ${gitlab_yml_private} - rm -f ${gitlab_tmpfiles_private} - rm -f ${gitlab_shell_config_private} - - # Remove systemd service overrides - for service in mailroom unicorn sidekiq workhorse; do - path=/etc/systemd/system/gitlab-${service}.service.d - rm -rf $path - done - - # cleanup complete - exit 0 - - ;; - disappear) - if test "$2" != overwriter; then - echo "$0: undocumented call to \`postrm $*'" 1>&2 - exit 0 - fi - # This package has been completely overwritten by package $3 - # (version $4). All our files are already gone from the system. - # This is a special case: neither "prerm remove" nor "postrm remove" - # have been called, because dpkg didn't know that this package would - # disappear until this stage. - : - - ;; - upgrade) - # About to upgrade FROM THIS VERSION to version $2 of this package. - # "prerm upgrade" has been called for this version, and "preinst - # upgrade" has been called for the new version. Last chance to - # clean up. - : - - ;; - failed-upgrade) - # About to upgrade from version $2 of this package TO THIS VERSION. - # "prerm upgrade" has been called for the old version, and "preinst - # upgrade" has been called for this version. This is only used if - # the previous version's "postrm upgrade" couldn't handle it and - # returned non-zero. (Fix old postrm bugs here.) - : - - ;; - abort-install) - # Back out of an attempt to install this package. Undo the effects of - # "preinst install...". There are two sub-cases. - : - - if test "${2+set}" = set; then - # When the install was attempted, version $2's configuration - # files were still on the system. Undo the effects of "preinst - # install $2". - : - - else - # We were being installed from scratch. Undo the effects of - # "preinst install". - : - - fi ;; - abort-upgrade) - # Back out of an attempt to upgrade this package from version $2 - # TO THIS VERSION. Undo the effects of "preinst upgrade $2". - : - - ;; - *) echo "$0: didn't understand being called with \`$1'" 1>&2 - exit 0;; -esac - -#DEBHELPER# -exit 0 diff --git a/debian/gitlab.preinst b/debian/gitlab.preinst deleted file mode 100644 index 731dbb0637..0000000000 --- a/debian/gitlab.preinst +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -set -e - -pg_version=$(pg_lsclusters |grep 5432 |awk '{print $1}') - -if [ "${pg_version}" -lt 12 ]; then - echo "========================================================================" - echo "Upgrade postgresql to at least version 12 before upgrading gitlab." - echo "You can use pg_upgradecluster command to upgrade the postgresql version." - echo "Aborting gitlab installation..." - echo "========================================================================" - exit 1 -fi - -#DEBHELPER# diff --git a/debian/gitlab.service b/debian/gitlab.service deleted file mode 100644 index 173ff87e8b..0000000000 --- a/debian/gitlab.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=GitLab Services -BindsTo=gitlab-puma.service gitlab-sidekiq.service gitlab-mailroom.service gitlab-workhorse.service -After=gitlab-puma.service gitlab-sidekiq.service gitlab-mailroom.service gitlab-workhorse.service - -[Service] -Type=idle -RemainAfterExit=yes -ExecStart=-/bin/true -ExecReload=-/bin/true - -[Install] -WantedBy=gitlab.target diff --git a/debian/gitlab.templates b/debian/gitlab.templates deleted file mode 100644 index 425219ffa6..0000000000 --- a/debian/gitlab.templates +++ /dev/null @@ -1,66 +0,0 @@ -Template: gitlab/fqdn -Type: string -Default: localhost -_Description: Fully qualified domain name for this instance of Gitlab: - Please choose the domain name which should be used to access this - instance of Gitlab. - . - This should be the fully qualified name as seen from the Internet, with - the domain name that will be used to access the Gitlab instance, without any - protocol specifiers like https://. - . - If a reverse proxy is used, give the hostname that the proxy server - responds to. - . - Example: git.example.com - -Template: gitlab/ssl -Type: boolean -Default: false -_Description: Enable https? - Enabling https means that an SSL/TLS certificate is required to access this - Gitlab instance (as Nginx will be configured to respond only to https - requests). A self-signed certificate is enough for local testing (and can be - generated using, for instance, the package easy-rsa), but it is not - recommended for a production instance. - . - Some certificate authorities like Let's Encrypt (letsencrypt.org), CAcert - (cacert.org) offer free SSL/TLS certificates. - Note: CAcert issued certificates are not trusted by all browsers, it requires - installing CAcert's root certificate in such cases. - . - Nginx must be reloaded after the certificate and key files are made available - at /etc/gitlab/ssl. letsencrypt package may be used to automate interaction - with Let's Encrypt to obtain a certificate. - -Template: gitlab/letsencrypt -Type: boolean -Default: false -_Description: Use Let's Encrypt? - Symbolic links to certificate and key created using letsencrypt package - (/etc/letencrypt/live) will be added to /etc/gitlab/ssl if this option is - selected. - . - Otherwise, certificate and key files have to be placed manually to - /etc/gitlab/ssl directory as 'gitlab.crt' and 'gitlab.key'. - . - Nginx will be stopped, if this option is selected, to allow letsencrypt to use - ports 80 and 443 during domain ownership validation and certificate retrieval - step. - . - Note: letsencrypt does not have a usable nginx plugin currently, so - certificates must be renewed manually after 3 months, when current - letsencrypt certificate expire. If you choose yes here, you will also be - agreeing to letsencrypt terms of service. - -Template: gitlab/letsencrypt_email -Type: string -_Description: Email address for letsencrypt updates: - Please provide a valid email address for letsencrypt updates. - -Template: gitlab/purge_data -Type: boolean -Default: true -_Description: Remove all data? - This will permanently remove all data of this Gitlab instance such as database, - repositories, uploaded files, SSH public keys etc. diff --git a/debian/gitlab.triggers b/debian/gitlab.triggers deleted file mode 100644 index 3a8224ff94..0000000000 --- a/debian/gitlab.triggers +++ /dev/null @@ -1,2 +0,0 @@ -interest-noawait /usr/lib/ruby/vendor_ruby -interest-noawait /usr/share/rubygems-integration diff --git a/debian/ignored-file-list b/debian/ignored-file-list deleted file mode 100644 index 9736b0e91d..0000000000 --- a/debian/ignored-file-list +++ /dev/null @@ -1,38 +0,0 @@ -builds -.codeclimate.yml -.csscomb.json -db -debian -.dockerignore -.eslintignore -.eslintrc.yml -.foreman -Gemfile.lock -.gitattributes -.github -.gitignore -.gitlab -.gitlab-ci.yml -.gitpod.yml -.haml-lint.yml -.haml-lint_todo.yml -LICENSE -log -.mailmap -.mdlrc -.mdlrc.style -.nvmrc -.prettierignore -.prettierrc -.projections.json.example -public -qa -.rubocop_todo.yml -.rubocop.yml -.ruby-version -snowplow-javascript-tracker -.test_license_encryption_key.pub -.theia -tmp -workhorse-vendor -.yamllint diff --git a/debian/missing-sources/latinise.js b/debian/missing-sources/latinise.js deleted file mode 100644 index 9447df4f4b..0000000000 --- a/debian/missing-sources/latinise.js +++ /dev/null @@ -1,1005 +0,0 @@ -// Generated from latin_map.pl Sun Jun 20 20:17:18 2010 -var Latinise = {}; -Latinise.latin_map = { -'Á': 'A', // LATIN CAPITAL LETTER A WITH ACUTE -'Ă': 'A', // LATIN CAPITAL LETTER A WITH BREVE -'Ắ': 'A', // LATIN CAPITAL LETTER A WITH BREVE AND ACUTE -'Ặ': 'A', // LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW -'Ằ': 'A', // LATIN CAPITAL LETTER A WITH BREVE AND GRAVE -'Ẳ': 'A', // LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE -'Ẵ': 'A', // LATIN CAPITAL LETTER A WITH BREVE AND TILDE -'Ǎ': 'A', // LATIN CAPITAL LETTER A WITH CARON -'Â': 'A', // LATIN CAPITAL LETTER A WITH CIRCUMFLEX -'Ấ': 'A', // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE -'Ậ': 'A', // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW -'Ầ': 'A', // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE -'Ẩ': 'A', // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE -'Ẫ': 'A', // LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE -'Ä': 'A', // LATIN CAPITAL LETTER A WITH DIAERESIS -'Ǟ': 'A', // LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON -'Ȧ': 'A', // LATIN CAPITAL LETTER A WITH DOT ABOVE -'Ǡ': 'A', // LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON -'Ạ': 'A', // LATIN CAPITAL LETTER A WITH DOT BELOW -'Ȁ': 'A', // LATIN CAPITAL LETTER A WITH DOUBLE GRAVE -'À': 'A', // LATIN CAPITAL LETTER A WITH GRAVE -'Ả': 'A', // LATIN CAPITAL LETTER A WITH HOOK ABOVE -'Ȃ': 'A', // LATIN CAPITAL LETTER A WITH INVERTED BREVE -'Ā': 'A', // LATIN CAPITAL LETTER A WITH MACRON -'Ą': 'A', // LATIN CAPITAL LETTER A WITH OGONEK -'Å': 'A', // LATIN CAPITAL LETTER A WITH RING ABOVE -'Ǻ': 'A', // LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE -'Ḁ': 'A', // LATIN CAPITAL LETTER A WITH RING BELOW -'Ⱥ': 'A', // LATIN CAPITAL LETTER A WITH STROKE -'Ã': 'A', // LATIN CAPITAL LETTER A WITH TILDE -'Ꜳ': 'AA', // LATIN CAPITAL LETTER AA -'Æ': 'AE', // LATIN CAPITAL LETTER AE -'Ǽ': 'AE', // LATIN CAPITAL LETTER AE WITH ACUTE -'Ǣ': 'AE', // LATIN CAPITAL LETTER AE WITH MACRON -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER AFRICAN D' (Ɖ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER ALPHA' (Ɑ) -'Ꜵ': 'AO', // LATIN CAPITAL LETTER AO -'Ꜷ': 'AU', // LATIN CAPITAL LETTER AU -'Ꜹ': 'AV', // LATIN CAPITAL LETTER AV -'Ꜻ': 'AV', // LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR -'Ꜽ': 'AY', // LATIN CAPITAL LETTER AY -'Ḃ': 'B', // LATIN CAPITAL LETTER B WITH DOT ABOVE -'Ḅ': 'B', // LATIN CAPITAL LETTER B WITH DOT BELOW -'Ɓ': 'B', // LATIN CAPITAL LETTER B WITH HOOK -'Ḇ': 'B', // LATIN CAPITAL LETTER B WITH LINE BELOW -'Ƀ': 'B', // LATIN CAPITAL LETTER B WITH STROKE -'Ƃ': 'B', // LATIN CAPITAL LETTER B WITH TOPBAR -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER BROKEN L' (Ꝇ) -'Ć': 'C', // LATIN CAPITAL LETTER C WITH ACUTE -'Č': 'C', // LATIN CAPITAL LETTER C WITH CARON -'Ç': 'C', // LATIN CAPITAL LETTER C WITH CEDILLA -'Ḉ': 'C', // LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE -'Ĉ': 'C', // LATIN CAPITAL LETTER C WITH CIRCUMFLEX -'Ċ': 'C', // LATIN CAPITAL LETTER C WITH DOT ABOVE -'Ƈ': 'C', // LATIN CAPITAL LETTER C WITH HOOK -'Ȼ': 'C', // LATIN CAPITAL LETTER C WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER CON' (Ꝯ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER CUATRILLO' (Ꜭ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER CUATRILLO WITH COMMA' (Ꜯ) -'Ď': 'D', // LATIN CAPITAL LETTER D WITH CARON -'Ḑ': 'D', // LATIN CAPITAL LETTER D WITH CEDILLA -'Ḓ': 'D', // LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW -'Ḋ': 'D', // LATIN CAPITAL LETTER D WITH DOT ABOVE -'Ḍ': 'D', // LATIN CAPITAL LETTER D WITH DOT BELOW -'Ɗ': 'D', // LATIN CAPITAL LETTER D WITH HOOK -'Ḏ': 'D', // LATIN CAPITAL LETTER D WITH LINE BELOW -'Dz': 'D', // LATIN CAPITAL LETTER D WITH SMALL LETTER Z -'Dž': 'D', // LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON -'Đ': 'D', // LATIN CAPITAL LETTER D WITH STROKE -'Ƌ': 'D', // LATIN CAPITAL LETTER D WITH TOPBAR -'DZ': 'DZ', // LATIN CAPITAL LETTER DZ -'DŽ': 'DZ', // LATIN CAPITAL LETTER DZ WITH CARON -'É': 'E', // LATIN CAPITAL LETTER E WITH ACUTE -'Ĕ': 'E', // LATIN CAPITAL LETTER E WITH BREVE -'Ě': 'E', // LATIN CAPITAL LETTER E WITH CARON -'Ȩ': 'E', // LATIN CAPITAL LETTER E WITH CEDILLA -'Ḝ': 'E', // LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE -'Ê': 'E', // LATIN CAPITAL LETTER E WITH CIRCUMFLEX -'Ế': 'E', // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE -'Ệ': 'E', // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW -'Ề': 'E', // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE -'Ể': 'E', // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE -'Ễ': 'E', // LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE -'Ḙ': 'E', // LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW -'Ë': 'E', // LATIN CAPITAL LETTER E WITH DIAERESIS -'Ė': 'E', // LATIN CAPITAL LETTER E WITH DOT ABOVE -'Ẹ': 'E', // LATIN CAPITAL LETTER E WITH DOT BELOW -'Ȅ': 'E', // LATIN CAPITAL LETTER E WITH DOUBLE GRAVE -'È': 'E', // LATIN CAPITAL LETTER E WITH GRAVE -'Ẻ': 'E', // LATIN CAPITAL LETTER E WITH HOOK ABOVE -'Ȇ': 'E', // LATIN CAPITAL LETTER E WITH INVERTED BREVE -'Ē': 'E', // LATIN CAPITAL LETTER E WITH MACRON -'Ḗ': 'E', // LATIN CAPITAL LETTER E WITH MACRON AND ACUTE -'Ḕ': 'E', // LATIN CAPITAL LETTER E WITH MACRON AND GRAVE -'Ę': 'E', // LATIN CAPITAL LETTER E WITH OGONEK -'Ɇ': 'E', // LATIN CAPITAL LETTER E WITH STROKE -'Ẽ': 'E', // LATIN CAPITAL LETTER E WITH TILDE -'Ḛ': 'E', // LATIN CAPITAL LETTER E WITH TILDE BELOW -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER EGYPTOLOGICAL AIN' (Ꜥ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF' (Ꜣ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER ENG' (Ŋ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER ESH' (Ʃ) -'Ꝫ': 'ET', // LATIN CAPITAL LETTER ET -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER ETH' (Ð) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER EZH' (Ʒ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER EZH REVERSED' (Ƹ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER EZH WITH CARON' (Ǯ) -'Ḟ': 'F', // LATIN CAPITAL LETTER F WITH DOT ABOVE -'Ƒ': 'F', // LATIN CAPITAL LETTER F WITH HOOK -'Ǵ': 'G', // LATIN CAPITAL LETTER G WITH ACUTE -'Ğ': 'G', // LATIN CAPITAL LETTER G WITH BREVE -'Ǧ': 'G', // LATIN CAPITAL LETTER G WITH CARON -'Ģ': 'G', // LATIN CAPITAL LETTER G WITH CEDILLA -'Ĝ': 'G', // LATIN CAPITAL LETTER G WITH CIRCUMFLEX -'Ġ': 'G', // LATIN CAPITAL LETTER G WITH DOT ABOVE -'Ɠ': 'G', // LATIN CAPITAL LETTER G WITH HOOK -'Ḡ': 'G', // LATIN CAPITAL LETTER G WITH MACRON -'Ǥ': 'G', // LATIN CAPITAL LETTER G WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER GAMMA' (Ɣ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER GLOTTAL STOP' (Ɂ) -'Ḫ': 'H', // LATIN CAPITAL LETTER H WITH BREVE BELOW -'Ȟ': 'H', // LATIN CAPITAL LETTER H WITH CARON -'Ḩ': 'H', // LATIN CAPITAL LETTER H WITH CEDILLA -'Ĥ': 'H', // LATIN CAPITAL LETTER H WITH CIRCUMFLEX -'Ⱨ': 'H', // LATIN CAPITAL LETTER H WITH DESCENDER -'Ḧ': 'H', // LATIN CAPITAL LETTER H WITH DIAERESIS -'Ḣ': 'H', // LATIN CAPITAL LETTER H WITH DOT ABOVE -'Ḥ': 'H', // LATIN CAPITAL LETTER H WITH DOT BELOW -'Ħ': 'H', // LATIN CAPITAL LETTER H WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER HALF H' (Ⱶ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER HENG' (Ꜧ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER HWAIR' (Ƕ) -'Í': 'I', // LATIN CAPITAL LETTER I WITH ACUTE -'Ĭ': 'I', // LATIN CAPITAL LETTER I WITH BREVE -'Ǐ': 'I', // LATIN CAPITAL LETTER I WITH CARON -'Î': 'I', // LATIN CAPITAL LETTER I WITH CIRCUMFLEX -'Ï': 'I', // LATIN CAPITAL LETTER I WITH DIAERESIS -'Ḯ': 'I', // LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE -'İ': 'I', // LATIN CAPITAL LETTER I WITH DOT ABOVE -'Ị': 'I', // LATIN CAPITAL LETTER I WITH DOT BELOW -'Ȉ': 'I', // LATIN CAPITAL LETTER I WITH DOUBLE GRAVE -'Ì': 'I', // LATIN CAPITAL LETTER I WITH GRAVE -'Ỉ': 'I', // LATIN CAPITAL LETTER I WITH HOOK ABOVE -'Ȋ': 'I', // LATIN CAPITAL LETTER I WITH INVERTED BREVE -'Ī': 'I', // LATIN CAPITAL LETTER I WITH MACRON -'Į': 'I', // LATIN CAPITAL LETTER I WITH OGONEK -'Ɨ': 'I', // LATIN CAPITAL LETTER I WITH STROKE -'Ĩ': 'I', // LATIN CAPITAL LETTER I WITH TILDE -'Ḭ': 'I', // LATIN CAPITAL LETTER I WITH TILDE BELOW -'Ꝺ': 'D', // LATIN CAPITAL LETTER INSULAR D -'Ꝼ': 'F', // LATIN CAPITAL LETTER INSULAR F -'Ᵹ': 'G', // LATIN CAPITAL LETTER INSULAR G -'Ꞃ': 'R', // LATIN CAPITAL LETTER INSULAR R -'Ꞅ': 'S', // LATIN CAPITAL LETTER INSULAR S -'Ꞇ': 'T', // LATIN CAPITAL LETTER INSULAR T -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER IOTA' (Ɩ) -'Ꝭ': 'IS', // LATIN CAPITAL LETTER IS -'Ĵ': 'J', // LATIN CAPITAL LETTER J WITH CIRCUMFLEX -'Ɉ': 'J', // LATIN CAPITAL LETTER J WITH STROKE -'Ḱ': 'K', // LATIN CAPITAL LETTER K WITH ACUTE -'Ǩ': 'K', // LATIN CAPITAL LETTER K WITH CARON -'Ķ': 'K', // LATIN CAPITAL LETTER K WITH CEDILLA -'Ⱪ': 'K', // LATIN CAPITAL LETTER K WITH DESCENDER -'Ꝃ': 'K', // LATIN CAPITAL LETTER K WITH DIAGONAL STROKE -'Ḳ': 'K', // LATIN CAPITAL LETTER K WITH DOT BELOW -'Ƙ': 'K', // LATIN CAPITAL LETTER K WITH HOOK -'Ḵ': 'K', // LATIN CAPITAL LETTER K WITH LINE BELOW -'Ꝁ': 'K', // LATIN CAPITAL LETTER K WITH STROKE -'Ꝅ': 'K', // LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE -'Ĺ': 'L', // LATIN CAPITAL LETTER L WITH ACUTE -'Ƚ': 'L', // LATIN CAPITAL LETTER L WITH BAR -'Ľ': 'L', // LATIN CAPITAL LETTER L WITH CARON -'Ļ': 'L', // LATIN CAPITAL LETTER L WITH CEDILLA -'Ḽ': 'L', // LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW -'Ḷ': 'L', // LATIN CAPITAL LETTER L WITH DOT BELOW -'Ḹ': 'L', // LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON -'Ⱡ': 'L', // LATIN CAPITAL LETTER L WITH DOUBLE BAR -'Ꝉ': 'L', // LATIN CAPITAL LETTER L WITH HIGH STROKE -'Ḻ': 'L', // LATIN CAPITAL LETTER L WITH LINE BELOW -'Ŀ': 'L', // LATIN CAPITAL LETTER L WITH MIDDLE DOT -'Ɫ': 'L', // LATIN CAPITAL LETTER L WITH MIDDLE TILDE -'Lj': 'L', // LATIN CAPITAL LETTER L WITH SMALL LETTER J -'Ł': 'L', // LATIN CAPITAL LETTER L WITH STROKE -'LJ': 'LJ', // LATIN CAPITAL LETTER LJ -'Ḿ': 'M', // LATIN CAPITAL LETTER M WITH ACUTE -'Ṁ': 'M', // LATIN CAPITAL LETTER M WITH DOT ABOVE -'Ṃ': 'M', // LATIN CAPITAL LETTER M WITH DOT BELOW -'Ɱ': 'M', // LATIN CAPITAL LETTER M WITH HOOK -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER MIDDLE-WELSH LL' (Ỻ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER MIDDLE-WELSH V' (Ỽ) -'Ń': 'N', // LATIN CAPITAL LETTER N WITH ACUTE -'Ň': 'N', // LATIN CAPITAL LETTER N WITH CARON -'Ņ': 'N', // LATIN CAPITAL LETTER N WITH CEDILLA -'Ṋ': 'N', // LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW -'Ṅ': 'N', // LATIN CAPITAL LETTER N WITH DOT ABOVE -'Ṇ': 'N', // LATIN CAPITAL LETTER N WITH DOT BELOW -'Ǹ': 'N', // LATIN CAPITAL LETTER N WITH GRAVE -'Ɲ': 'N', // LATIN CAPITAL LETTER N WITH LEFT HOOK -'Ṉ': 'N', // LATIN CAPITAL LETTER N WITH LINE BELOW -'Ƞ': 'N', // LATIN CAPITAL LETTER N WITH LONG RIGHT LEG -'Nj': 'N', // LATIN CAPITAL LETTER N WITH SMALL LETTER J -'Ñ': 'N', // LATIN CAPITAL LETTER N WITH TILDE -'NJ': 'NJ', // LATIN CAPITAL LETTER NJ -'Ó': 'O', // LATIN CAPITAL LETTER O WITH ACUTE -'Ŏ': 'O', // LATIN CAPITAL LETTER O WITH BREVE -'Ǒ': 'O', // LATIN CAPITAL LETTER O WITH CARON -'Ô': 'O', // LATIN CAPITAL LETTER O WITH CIRCUMFLEX -'Ố': 'O', // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE -'Ộ': 'O', // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW -'Ồ': 'O', // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE -'Ổ': 'O', // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE -'Ỗ': 'O', // LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE -'Ö': 'O', // LATIN CAPITAL LETTER O WITH DIAERESIS -'Ȫ': 'O', // LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON -'Ȯ': 'O', // LATIN CAPITAL LETTER O WITH DOT ABOVE -'Ȱ': 'O', // LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON -'Ọ': 'O', // LATIN CAPITAL LETTER O WITH DOT BELOW -'Ő': 'O', // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -'Ȍ': 'O', // LATIN CAPITAL LETTER O WITH DOUBLE GRAVE -'Ò': 'O', // LATIN CAPITAL LETTER O WITH GRAVE -'Ỏ': 'O', // LATIN CAPITAL LETTER O WITH HOOK ABOVE -'Ơ': 'O', // LATIN CAPITAL LETTER O WITH HORN -'Ớ': 'O', // LATIN CAPITAL LETTER O WITH HORN AND ACUTE -'Ợ': 'O', // LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW -'Ờ': 'O', // LATIN CAPITAL LETTER O WITH HORN AND GRAVE -'Ở': 'O', // LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE -'Ỡ': 'O', // LATIN CAPITAL LETTER O WITH HORN AND TILDE -'Ȏ': 'O', // LATIN CAPITAL LETTER O WITH INVERTED BREVE -'Ꝋ': 'O', // LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY -'Ꝍ': 'O', // LATIN CAPITAL LETTER O WITH LOOP -'Ō': 'O', // LATIN CAPITAL LETTER O WITH MACRON -'Ṓ': 'O', // LATIN CAPITAL LETTER O WITH MACRON AND ACUTE -'Ṑ': 'O', // LATIN CAPITAL LETTER O WITH MACRON AND GRAVE -'Ɵ': 'O', // LATIN CAPITAL LETTER O WITH MIDDLE TILDE -'Ǫ': 'O', // LATIN CAPITAL LETTER O WITH OGONEK -'Ǭ': 'O', // LATIN CAPITAL LETTER O WITH OGONEK AND MACRON -'Ø': 'O', // LATIN CAPITAL LETTER O WITH STROKE -'Ǿ': 'O', // LATIN CAPITAL LETTER O WITH STROKE AND ACUTE -'Õ': 'O', // LATIN CAPITAL LETTER O WITH TILDE -'Ṍ': 'O', // LATIN CAPITAL LETTER O WITH TILDE AND ACUTE -'Ṏ': 'O', // LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS -'Ȭ': 'O', // LATIN CAPITAL LETTER O WITH TILDE AND MACRON -'Ƣ': 'OI', // LATIN CAPITAL LETTER OI -'Ꝏ': 'OO', // LATIN CAPITAL LETTER OO -'Ɛ': 'E', // LATIN CAPITAL LETTER OPEN E -'Ɔ': 'O', // LATIN CAPITAL LETTER OPEN O -'Ȣ': 'OU', // LATIN CAPITAL LETTER OU -'Ṕ': 'P', // LATIN CAPITAL LETTER P WITH ACUTE -'Ṗ': 'P', // LATIN CAPITAL LETTER P WITH DOT ABOVE -'Ꝓ': 'P', // LATIN CAPITAL LETTER P WITH FLOURISH -'Ƥ': 'P', // LATIN CAPITAL LETTER P WITH HOOK -'Ꝕ': 'P', // LATIN CAPITAL LETTER P WITH SQUIRREL TAIL -'Ᵽ': 'P', // LATIN CAPITAL LETTER P WITH STROKE -'Ꝑ': 'P', // LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER -'Ꝙ': 'Q', // LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE -'Ꝗ': 'Q', // LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER R ROTUNDA' (Ꝛ) -'Ŕ': 'R', // LATIN CAPITAL LETTER R WITH ACUTE -'Ř': 'R', // LATIN CAPITAL LETTER R WITH CARON -'Ŗ': 'R', // LATIN CAPITAL LETTER R WITH CEDILLA -'Ṙ': 'R', // LATIN CAPITAL LETTER R WITH DOT ABOVE -'Ṛ': 'R', // LATIN CAPITAL LETTER R WITH DOT BELOW -'Ṝ': 'R', // LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON -'Ȑ': 'R', // LATIN CAPITAL LETTER R WITH DOUBLE GRAVE -'Ȓ': 'R', // LATIN CAPITAL LETTER R WITH INVERTED BREVE -'Ṟ': 'R', // LATIN CAPITAL LETTER R WITH LINE BELOW -'Ɍ': 'R', // LATIN CAPITAL LETTER R WITH STROKE -'Ɽ': 'R', // LATIN CAPITAL LETTER R WITH TAIL -'Ꜿ': 'C', // LATIN CAPITAL LETTER REVERSED C WITH DOT -'Ǝ': 'E', // LATIN CAPITAL LETTER REVERSED E -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER RUM ROTUNDA' (Ꝝ) -'Ś': 'S', // LATIN CAPITAL LETTER S WITH ACUTE -'Ṥ': 'S', // LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE -'Š': 'S', // LATIN CAPITAL LETTER S WITH CARON -'Ṧ': 'S', // LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE -'Ş': 'S', // LATIN CAPITAL LETTER S WITH CEDILLA -'Ŝ': 'S', // LATIN CAPITAL LETTER S WITH CIRCUMFLEX -'Ș': 'S', // LATIN CAPITAL LETTER S WITH COMMA BELOW -'Ṡ': 'S', // LATIN CAPITAL LETTER S WITH DOT ABOVE -'Ṣ': 'S', // LATIN CAPITAL LETTER S WITH DOT BELOW -'Ṩ': 'S', // LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER SALTILLO' (Ꞌ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER SCHWA' (Ə) -'ẞ': 'SS', // LATIN CAPITAL LETTER SHARP S -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL' (Ɋ) -'Ť': 'T', // LATIN CAPITAL LETTER T WITH CARON -'Ţ': 'T', // LATIN CAPITAL LETTER T WITH CEDILLA -'Ṱ': 'T', // LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW -'Ț': 'T', // LATIN CAPITAL LETTER T WITH COMMA BELOW -'Ⱦ': 'T', // LATIN CAPITAL LETTER T WITH DIAGONAL STROKE -'Ṫ': 'T', // LATIN CAPITAL LETTER T WITH DOT ABOVE -'Ṭ': 'T', // LATIN CAPITAL LETTER T WITH DOT BELOW -'Ƭ': 'T', // LATIN CAPITAL LETTER T WITH HOOK -'Ṯ': 'T', // LATIN CAPITAL LETTER T WITH LINE BELOW -'Ʈ': 'T', // LATIN CAPITAL LETTER T WITH RETROFLEX HOOK -'Ŧ': 'T', // LATIN CAPITAL LETTER T WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER THORN' (Þ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER THORN WITH STROKE' (Ꝥ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER' (Ꝧ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER TONE FIVE' (Ƽ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER TONE SIX' (Ƅ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER TONE TWO' (Ƨ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER TRESILLO' (Ꜫ) -'Ɐ': 'A', // LATIN CAPITAL LETTER TURNED A -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER TURNED INSULAR G' (Ꝿ) -'Ꞁ': 'L', // LATIN CAPITAL LETTER TURNED L -'Ɯ': 'M', // LATIN CAPITAL LETTER TURNED M -'Ʌ': 'V', // LATIN CAPITAL LETTER TURNED V -'Ꜩ': 'TZ', // LATIN CAPITAL LETTER TZ -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER U BAR' (Ʉ) -'Ú': 'U', // LATIN CAPITAL LETTER U WITH ACUTE -'Ŭ': 'U', // LATIN CAPITAL LETTER U WITH BREVE -'Ǔ': 'U', // LATIN CAPITAL LETTER U WITH CARON -'Û': 'U', // LATIN CAPITAL LETTER U WITH CIRCUMFLEX -'Ṷ': 'U', // LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW -'Ü': 'U', // LATIN CAPITAL LETTER U WITH DIAERESIS -'Ǘ': 'U', // LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE -'Ǚ': 'U', // LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON -'Ǜ': 'U', // LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE -'Ǖ': 'U', // LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON -'Ṳ': 'U', // LATIN CAPITAL LETTER U WITH DIAERESIS BELOW -'Ụ': 'U', // LATIN CAPITAL LETTER U WITH DOT BELOW -'Ű': 'U', // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -'Ȕ': 'U', // LATIN CAPITAL LETTER U WITH DOUBLE GRAVE -'Ù': 'U', // LATIN CAPITAL LETTER U WITH GRAVE -'Ủ': 'U', // LATIN CAPITAL LETTER U WITH HOOK ABOVE -'Ư': 'U', // LATIN CAPITAL LETTER U WITH HORN -'Ứ': 'U', // LATIN CAPITAL LETTER U WITH HORN AND ACUTE -'Ự': 'U', // LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW -'Ừ': 'U', // LATIN CAPITAL LETTER U WITH HORN AND GRAVE -'Ử': 'U', // LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE -'Ữ': 'U', // LATIN CAPITAL LETTER U WITH HORN AND TILDE -'Ȗ': 'U', // LATIN CAPITAL LETTER U WITH INVERTED BREVE -'Ū': 'U', // LATIN CAPITAL LETTER U WITH MACRON -'Ṻ': 'U', // LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS -'Ų': 'U', // LATIN CAPITAL LETTER U WITH OGONEK -'Ů': 'U', // LATIN CAPITAL LETTER U WITH RING ABOVE -'Ũ': 'U', // LATIN CAPITAL LETTER U WITH TILDE -'Ṹ': 'U', // LATIN CAPITAL LETTER U WITH TILDE AND ACUTE -'Ṵ': 'U', // LATIN CAPITAL LETTER U WITH TILDE BELOW -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER UPSILON' (Ʊ) -'Ꝟ': 'V', // LATIN CAPITAL LETTER V WITH DIAGONAL STROKE -'Ṿ': 'V', // LATIN CAPITAL LETTER V WITH DOT BELOW -'Ʋ': 'V', // LATIN CAPITAL LETTER V WITH HOOK -'Ṽ': 'V', // LATIN CAPITAL LETTER V WITH TILDE -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER VEND' (Ꝩ) -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER VISIGOTHIC Z' (Ꝣ) -'Ꝡ': 'VY', // LATIN CAPITAL LETTER VY -'Ẃ': 'W', // LATIN CAPITAL LETTER W WITH ACUTE -'Ŵ': 'W', // LATIN CAPITAL LETTER W WITH CIRCUMFLEX -'Ẅ': 'W', // LATIN CAPITAL LETTER W WITH DIAERESIS -'Ẇ': 'W', // LATIN CAPITAL LETTER W WITH DOT ABOVE -'Ẉ': 'W', // LATIN CAPITAL LETTER W WITH DOT BELOW -'Ẁ': 'W', // LATIN CAPITAL LETTER W WITH GRAVE -'Ⱳ': 'W', // LATIN CAPITAL LETTER W WITH HOOK -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER WYNN' (Ƿ) -'Ẍ': 'X', // LATIN CAPITAL LETTER X WITH DIAERESIS -'Ẋ': 'X', // LATIN CAPITAL LETTER X WITH DOT ABOVE -'Ý': 'Y', // LATIN CAPITAL LETTER Y WITH ACUTE -'Ŷ': 'Y', // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -'Ÿ': 'Y', // LATIN CAPITAL LETTER Y WITH DIAERESIS -'Ẏ': 'Y', // LATIN CAPITAL LETTER Y WITH DOT ABOVE -'Ỵ': 'Y', // LATIN CAPITAL LETTER Y WITH DOT BELOW -'Ỳ': 'Y', // LATIN CAPITAL LETTER Y WITH GRAVE -'Ƴ': 'Y', // LATIN CAPITAL LETTER Y WITH HOOK -'Ỷ': 'Y', // LATIN CAPITAL LETTER Y WITH HOOK ABOVE -'Ỿ': 'Y', // LATIN CAPITAL LETTER Y WITH LOOP -'Ȳ': 'Y', // LATIN CAPITAL LETTER Y WITH MACRON -'Ɏ': 'Y', // LATIN CAPITAL LETTER Y WITH STROKE -'Ỹ': 'Y', // LATIN CAPITAL LETTER Y WITH TILDE -// CANNOT FIND APPROXIMATION FOR 'LATIN CAPITAL LETTER YOGH' (Ȝ) -'Ź': 'Z', // LATIN CAPITAL LETTER Z WITH ACUTE -'Ž': 'Z', // LATIN CAPITAL LETTER Z WITH CARON -'Ẑ': 'Z', // LATIN CAPITAL LETTER Z WITH CIRCUMFLEX -'Ⱬ': 'Z', // LATIN CAPITAL LETTER Z WITH DESCENDER -'Ż': 'Z', // LATIN CAPITAL LETTER Z WITH DOT ABOVE -'Ẓ': 'Z', // LATIN CAPITAL LETTER Z WITH DOT BELOW -'Ȥ': 'Z', // LATIN CAPITAL LETTER Z WITH HOOK -'Ẕ': 'Z', // LATIN CAPITAL LETTER Z WITH LINE BELOW -'Ƶ': 'Z', // LATIN CAPITAL LETTER Z WITH STROKE -'IJ': 'IJ', // LATIN CAPITAL LIGATURE IJ -'Œ': 'OE', // LATIN CAPITAL LIGATURE OE -// CANNOT FIND APPROXIMATION FOR 'LATIN CROSS' (✝) -// CANNOT FIND APPROXIMATION FOR 'LATIN EPIGRAPHIC LETTER ARCHAIC M' (ꟿ) -// CANNOT FIND APPROXIMATION FOR 'LATIN EPIGRAPHIC LETTER I LONGA' (ꟾ) -// CANNOT FIND APPROXIMATION FOR 'LATIN EPIGRAPHIC LETTER INVERTED M' (ꟽ) -// CANNOT FIND APPROXIMATION FOR 'LATIN EPIGRAPHIC LETTER REVERSED F' (ꟻ) -// CANNOT FIND APPROXIMATION FOR 'LATIN EPIGRAPHIC LETTER REVERSED P' (ꟼ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER AIN' (ᴥ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER ALVEOLAR CLICK' (ǂ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER BIDENTAL PERCUSSIVE' (ʭ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER BILABIAL CLICK' (ʘ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER BILABIAL PERCUSSIVE' (ʬ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER DENTAL CLICK' (ǀ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER GLOTTAL STOP' (ʔ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER GLOTTAL STOP WITH STROKE' (ʡ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER INVERTED GLOTTAL STOP' (ʖ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE' (ƾ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER LATERAL CLICK' (ǁ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER PHARYNGEAL VOICED FRICATIVE' (ʕ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER RETROFLEX CLICK' (ǃ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER REVERSED ESH LOOP' (ƪ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE' (ʢ) -'ᴀ': 'A', // LATIN LETTER SMALL CAPITAL A -'ᴁ': 'AE', // LATIN LETTER SMALL CAPITAL AE -'ʙ': 'B', // LATIN LETTER SMALL CAPITAL B -'ᴃ': 'B', // LATIN LETTER SMALL CAPITAL BARRED B -'ᴄ': 'C', // LATIN LETTER SMALL CAPITAL C -'ᴅ': 'D', // LATIN LETTER SMALL CAPITAL D -'ᴇ': 'E', // LATIN LETTER SMALL CAPITAL E -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER SMALL CAPITAL ETH' (ᴆ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER SMALL CAPITAL EZH' (ᴣ) -'ꜰ': 'F', // LATIN LETTER SMALL CAPITAL F -'ɢ': 'G', // LATIN LETTER SMALL CAPITAL G -'ʛ': 'G', // LATIN LETTER SMALL CAPITAL G WITH HOOK -'ʜ': 'H', // LATIN LETTER SMALL CAPITAL H -'ɪ': 'I', // LATIN LETTER SMALL CAPITAL I -'ʁ': 'R', // LATIN LETTER SMALL CAPITAL INVERTED R -'ᴊ': 'J', // LATIN LETTER SMALL CAPITAL J -'ᴋ': 'K', // LATIN LETTER SMALL CAPITAL K -'ʟ': 'L', // LATIN LETTER SMALL CAPITAL L -'ᴌ': 'L', // LATIN LETTER SMALL CAPITAL L WITH STROKE -'ᴍ': 'M', // LATIN LETTER SMALL CAPITAL M -'ɴ': 'N', // LATIN LETTER SMALL CAPITAL N -'ᴏ': 'O', // LATIN LETTER SMALL CAPITAL O -'ɶ': 'OE', // LATIN LETTER SMALL CAPITAL OE -'ᴐ': 'O', // LATIN LETTER SMALL CAPITAL OPEN O -'ᴕ': 'OU', // LATIN LETTER SMALL CAPITAL OU -'ᴘ': 'P', // LATIN LETTER SMALL CAPITAL P -'ʀ': 'R', // LATIN LETTER SMALL CAPITAL R -'ᴎ': 'N', // LATIN LETTER SMALL CAPITAL REVERSED N -'ᴙ': 'R', // LATIN LETTER SMALL CAPITAL REVERSED R -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER SMALL CAPITAL RUM' (ꝶ) -'ꜱ': 'S', // LATIN LETTER SMALL CAPITAL S -'ᴛ': 'T', // LATIN LETTER SMALL CAPITAL T -'ⱻ': 'E', // LATIN LETTER SMALL CAPITAL TURNED E -'ᴚ': 'R', // LATIN LETTER SMALL CAPITAL TURNED R -'ᴜ': 'U', // LATIN LETTER SMALL CAPITAL U -'ᴠ': 'V', // LATIN LETTER SMALL CAPITAL V -'ᴡ': 'W', // LATIN LETTER SMALL CAPITAL W -'ʏ': 'Y', // LATIN LETTER SMALL CAPITAL Y -'ᴢ': 'Z', // LATIN LETTER SMALL CAPITAL Z -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER STRETCHED C' (ʗ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER TWO WITH STROKE' (ƻ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER VOICED LARYNGEAL SPIRANT' (ᴤ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER WYNN' (ƿ) -// CANNOT FIND APPROXIMATION FOR 'LATIN LETTER YR' (Ʀ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL CAPITAL LETTER I WITH STROKE' (ᵻ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL CAPITAL LETTER U WITH STROKE' (ᵾ) -'á': 'a', // LATIN SMALL LETTER A WITH ACUTE -'ă': 'a', // LATIN SMALL LETTER A WITH BREVE -'ắ': 'a', // LATIN SMALL LETTER A WITH BREVE AND ACUTE -'ặ': 'a', // LATIN SMALL LETTER A WITH BREVE AND DOT BELOW -'ằ': 'a', // LATIN SMALL LETTER A WITH BREVE AND GRAVE -'ẳ': 'a', // LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE -'ẵ': 'a', // LATIN SMALL LETTER A WITH BREVE AND TILDE -'ǎ': 'a', // LATIN SMALL LETTER A WITH CARON -'â': 'a', // LATIN SMALL LETTER A WITH CIRCUMFLEX -'ấ': 'a', // LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE -'ậ': 'a', // LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW -'ầ': 'a', // LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE -'ẩ': 'a', // LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE -'ẫ': 'a', // LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE -'ä': 'a', // LATIN SMALL LETTER A WITH DIAERESIS -'ǟ': 'a', // LATIN SMALL LETTER A WITH DIAERESIS AND MACRON -'ȧ': 'a', // LATIN SMALL LETTER A WITH DOT ABOVE -'ǡ': 'a', // LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON -'ạ': 'a', // LATIN SMALL LETTER A WITH DOT BELOW -'ȁ': 'a', // LATIN SMALL LETTER A WITH DOUBLE GRAVE -'à': 'a', // LATIN SMALL LETTER A WITH GRAVE -'ả': 'a', // LATIN SMALL LETTER A WITH HOOK ABOVE -'ȃ': 'a', // LATIN SMALL LETTER A WITH INVERTED BREVE -'ā': 'a', // LATIN SMALL LETTER A WITH MACRON -'ą': 'a', // LATIN SMALL LETTER A WITH OGONEK -'ᶏ': 'a', // LATIN SMALL LETTER A WITH RETROFLEX HOOK -'ẚ': 'a', // LATIN SMALL LETTER A WITH RIGHT HALF RING -'å': 'a', // LATIN SMALL LETTER A WITH RING ABOVE -'ǻ': 'a', // LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE -'ḁ': 'a', // LATIN SMALL LETTER A WITH RING BELOW -'ⱥ': 'a', // LATIN SMALL LETTER A WITH STROKE -'ã': 'a', // LATIN SMALL LETTER A WITH TILDE -'ꜳ': 'aa', // LATIN SMALL LETTER AA -'æ': 'ae', // LATIN SMALL LETTER AE -'ǽ': 'ae', // LATIN SMALL LETTER AE WITH ACUTE -'ǣ': 'ae', // LATIN SMALL LETTER AE WITH MACRON -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER ALPHA' (ɑ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK' (ᶐ) -'ꜵ': 'ao', // LATIN SMALL LETTER AO -'ꜷ': 'au', // LATIN SMALL LETTER AU -'ꜹ': 'av', // LATIN SMALL LETTER AV -'ꜻ': 'av', // LATIN SMALL LETTER AV WITH HORIZONTAL BAR -'ꜽ': 'ay', // LATIN SMALL LETTER AY -'ḃ': 'b', // LATIN SMALL LETTER B WITH DOT ABOVE -'ḅ': 'b', // LATIN SMALL LETTER B WITH DOT BELOW -'ɓ': 'b', // LATIN SMALL LETTER B WITH HOOK -'ḇ': 'b', // LATIN SMALL LETTER B WITH LINE BELOW -'ᵬ': 'b', // LATIN SMALL LETTER B WITH MIDDLE TILDE -'ᶀ': 'b', // LATIN SMALL LETTER B WITH PALATAL HOOK -'ƀ': 'b', // LATIN SMALL LETTER B WITH STROKE -'ƃ': 'b', // LATIN SMALL LETTER B WITH TOPBAR -'ɵ': 'o', // LATIN SMALL LETTER BARRED O -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER BOTTOM HALF O' (ᴗ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER BROKEN L' (ꝇ) -'ć': 'c', // LATIN SMALL LETTER C WITH ACUTE -'č': 'c', // LATIN SMALL LETTER C WITH CARON -'ç': 'c', // LATIN SMALL LETTER C WITH CEDILLA -'ḉ': 'c', // LATIN SMALL LETTER C WITH CEDILLA AND ACUTE -'ĉ': 'c', // LATIN SMALL LETTER C WITH CIRCUMFLEX -'ɕ': 'c', // LATIN SMALL LETTER C WITH CURL -'ċ': 'c', // LATIN SMALL LETTER C WITH DOT ABOVE -'ƈ': 'c', // LATIN SMALL LETTER C WITH HOOK -'ȼ': 'c', // LATIN SMALL LETTER C WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER CLOSED OMEGA' (ɷ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER CLOSED OPEN E' (ʚ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER CLOSED REVERSED OPEN E' (ɞ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER CON' (ꝯ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER CUATRILLO' (ꜭ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER CUATRILLO WITH COMMA' (ꜯ) -'ď': 'd', // LATIN SMALL LETTER D WITH CARON -'ḑ': 'd', // LATIN SMALL LETTER D WITH CEDILLA -'ḓ': 'd', // LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW -'ȡ': 'd', // LATIN SMALL LETTER D WITH CURL -'ḋ': 'd', // LATIN SMALL LETTER D WITH DOT ABOVE -'ḍ': 'd', // LATIN SMALL LETTER D WITH DOT BELOW -'ɗ': 'd', // LATIN SMALL LETTER D WITH HOOK -'ᶑ': 'd', // LATIN SMALL LETTER D WITH HOOK AND TAIL -'ḏ': 'd', // LATIN SMALL LETTER D WITH LINE BELOW -'ᵭ': 'd', // LATIN SMALL LETTER D WITH MIDDLE TILDE -'ᶁ': 'd', // LATIN SMALL LETTER D WITH PALATAL HOOK -'đ': 'd', // LATIN SMALL LETTER D WITH STROKE -'ɖ': 'd', // LATIN SMALL LETTER D WITH TAIL -'ƌ': 'd', // LATIN SMALL LETTER D WITH TOPBAR -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER DB DIGRAPH' (ȸ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER DELTA' (ẟ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER DEZH DIGRAPH' (ʤ) -'ı': 'i', // LATIN SMALL LETTER DOTLESS I -'ȷ': 'j', // LATIN SMALL LETTER DOTLESS J -'ɟ': 'j', // LATIN SMALL LETTER DOTLESS J WITH STROKE -'ʄ': 'j', // LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER DUM' (ꝱ) -'dz': 'dz', // LATIN SMALL LETTER DZ -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER DZ DIGRAPH' (ʣ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER DZ DIGRAPH WITH CURL' (ʥ) -'dž': 'dz', // LATIN SMALL LETTER DZ WITH CARON -'é': 'e', // LATIN SMALL LETTER E WITH ACUTE -'ĕ': 'e', // LATIN SMALL LETTER E WITH BREVE -'ě': 'e', // LATIN SMALL LETTER E WITH CARON -'ȩ': 'e', // LATIN SMALL LETTER E WITH CEDILLA -'ḝ': 'e', // LATIN SMALL LETTER E WITH CEDILLA AND BREVE -'ê': 'e', // LATIN SMALL LETTER E WITH CIRCUMFLEX -'ế': 'e', // LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE -'ệ': 'e', // LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW -'ề': 'e', // LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE -'ể': 'e', // LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE -'ễ': 'e', // LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE -'ḙ': 'e', // LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW -'ë': 'e', // LATIN SMALL LETTER E WITH DIAERESIS -'ė': 'e', // LATIN SMALL LETTER E WITH DOT ABOVE -'ẹ': 'e', // LATIN SMALL LETTER E WITH DOT BELOW -'ȅ': 'e', // LATIN SMALL LETTER E WITH DOUBLE GRAVE -'è': 'e', // LATIN SMALL LETTER E WITH GRAVE -'ẻ': 'e', // LATIN SMALL LETTER E WITH HOOK ABOVE -'ȇ': 'e', // LATIN SMALL LETTER E WITH INVERTED BREVE -'ē': 'e', // LATIN SMALL LETTER E WITH MACRON -'ḗ': 'e', // LATIN SMALL LETTER E WITH MACRON AND ACUTE -'ḕ': 'e', // LATIN SMALL LETTER E WITH MACRON AND GRAVE -'ⱸ': 'e', // LATIN SMALL LETTER E WITH NOTCH -'ę': 'e', // LATIN SMALL LETTER E WITH OGONEK -'ᶒ': 'e', // LATIN SMALL LETTER E WITH RETROFLEX HOOK -'ɇ': 'e', // LATIN SMALL LETTER E WITH STROKE -'ẽ': 'e', // LATIN SMALL LETTER E WITH TILDE -'ḛ': 'e', // LATIN SMALL LETTER E WITH TILDE BELOW -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER EGYPTOLOGICAL AIN' (ꜥ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER EGYPTOLOGICAL ALEF' (ꜣ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER ENG' (ŋ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER ESH' (ʃ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER ESH WITH CURL' (ʆ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER ESH WITH PALATAL HOOK' (ᶋ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER ESH WITH RETROFLEX HOOK' (ᶘ) -'ꝫ': 'et', // LATIN SMALL LETTER ET -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER ETH' (ð) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER EZH' (ʒ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER EZH REVERSED' (ƹ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER EZH WITH CARON' (ǯ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER EZH WITH CURL' (ʓ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER EZH WITH RETROFLEX HOOK' (ᶚ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER EZH WITH TAIL' (ƺ) -'ḟ': 'f', // LATIN SMALL LETTER F WITH DOT ABOVE -'ƒ': 'f', // LATIN SMALL LETTER F WITH HOOK -'ᵮ': 'f', // LATIN SMALL LETTER F WITH MIDDLE TILDE -'ᶂ': 'f', // LATIN SMALL LETTER F WITH PALATAL HOOK -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER FENG DIGRAPH' (ʩ) -'ǵ': 'g', // LATIN SMALL LETTER G WITH ACUTE -'ğ': 'g', // LATIN SMALL LETTER G WITH BREVE -'ǧ': 'g', // LATIN SMALL LETTER G WITH CARON -'ģ': 'g', // LATIN SMALL LETTER G WITH CEDILLA -'ĝ': 'g', // LATIN SMALL LETTER G WITH CIRCUMFLEX -'ġ': 'g', // LATIN SMALL LETTER G WITH DOT ABOVE -'ɠ': 'g', // LATIN SMALL LETTER G WITH HOOK -'ḡ': 'g', // LATIN SMALL LETTER G WITH MACRON -'ᶃ': 'g', // LATIN SMALL LETTER G WITH PALATAL HOOK -'ǥ': 'g', // LATIN SMALL LETTER G WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER GAMMA' (ɣ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER GLOTTAL STOP' (ɂ) -'ḫ': 'h', // LATIN SMALL LETTER H WITH BREVE BELOW -'ȟ': 'h', // LATIN SMALL LETTER H WITH CARON -'ḩ': 'h', // LATIN SMALL LETTER H WITH CEDILLA -'ĥ': 'h', // LATIN SMALL LETTER H WITH CIRCUMFLEX -'ⱨ': 'h', // LATIN SMALL LETTER H WITH DESCENDER -'ḧ': 'h', // LATIN SMALL LETTER H WITH DIAERESIS -'ḣ': 'h', // LATIN SMALL LETTER H WITH DOT ABOVE -'ḥ': 'h', // LATIN SMALL LETTER H WITH DOT BELOW -'ɦ': 'h', // LATIN SMALL LETTER H WITH HOOK -'ẖ': 'h', // LATIN SMALL LETTER H WITH LINE BELOW -'ħ': 'h', // LATIN SMALL LETTER H WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER HALF H' (ⱶ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER HENG' (ꜧ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER HENG WITH HOOK' (ɧ) -'ƕ': 'hv', // LATIN SMALL LETTER HV -'í': 'i', // LATIN SMALL LETTER I WITH ACUTE -'ĭ': 'i', // LATIN SMALL LETTER I WITH BREVE -'ǐ': 'i', // LATIN SMALL LETTER I WITH CARON -'î': 'i', // LATIN SMALL LETTER I WITH CIRCUMFLEX -'ï': 'i', // LATIN SMALL LETTER I WITH DIAERESIS -'ḯ': 'i', // LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE -'ị': 'i', // LATIN SMALL LETTER I WITH DOT BELOW -'ȉ': 'i', // LATIN SMALL LETTER I WITH DOUBLE GRAVE -'ì': 'i', // LATIN SMALL LETTER I WITH GRAVE -'ỉ': 'i', // LATIN SMALL LETTER I WITH HOOK ABOVE -'ȋ': 'i', // LATIN SMALL LETTER I WITH INVERTED BREVE -'ī': 'i', // LATIN SMALL LETTER I WITH MACRON -'į': 'i', // LATIN SMALL LETTER I WITH OGONEK -'ᶖ': 'i', // LATIN SMALL LETTER I WITH RETROFLEX HOOK -'ɨ': 'i', // LATIN SMALL LETTER I WITH STROKE -'ĩ': 'i', // LATIN SMALL LETTER I WITH TILDE -'ḭ': 'i', // LATIN SMALL LETTER I WITH TILDE BELOW -'ꝺ': 'd', // LATIN SMALL LETTER INSULAR D -'ꝼ': 'f', // LATIN SMALL LETTER INSULAR F -'ᵹ': 'g', // LATIN SMALL LETTER INSULAR G -'ꞃ': 'r', // LATIN SMALL LETTER INSULAR R -'ꞅ': 's', // LATIN SMALL LETTER INSULAR S -'ꞇ': 't', // LATIN SMALL LETTER INSULAR T -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER IOTA' (ɩ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER IOTA WITH STROKE' (ᵼ) -'ꝭ': 'is', // LATIN SMALL LETTER IS -'ǰ': 'j', // LATIN SMALL LETTER J WITH CARON -'ĵ': 'j', // LATIN SMALL LETTER J WITH CIRCUMFLEX -'ʝ': 'j', // LATIN SMALL LETTER J WITH CROSSED-TAIL -'ɉ': 'j', // LATIN SMALL LETTER J WITH STROKE -'ḱ': 'k', // LATIN SMALL LETTER K WITH ACUTE -'ǩ': 'k', // LATIN SMALL LETTER K WITH CARON -'ķ': 'k', // LATIN SMALL LETTER K WITH CEDILLA -'ⱪ': 'k', // LATIN SMALL LETTER K WITH DESCENDER -'ꝃ': 'k', // LATIN SMALL LETTER K WITH DIAGONAL STROKE -'ḳ': 'k', // LATIN SMALL LETTER K WITH DOT BELOW -'ƙ': 'k', // LATIN SMALL LETTER K WITH HOOK -'ḵ': 'k', // LATIN SMALL LETTER K WITH LINE BELOW -'ᶄ': 'k', // LATIN SMALL LETTER K WITH PALATAL HOOK -'ꝁ': 'k', // LATIN SMALL LETTER K WITH STROKE -'ꝅ': 'k', // LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER KRA' (ĸ) -'ĺ': 'l', // LATIN SMALL LETTER L WITH ACUTE -'ƚ': 'l', // LATIN SMALL LETTER L WITH BAR -'ɬ': 'l', // LATIN SMALL LETTER L WITH BELT -'ľ': 'l', // LATIN SMALL LETTER L WITH CARON -'ļ': 'l', // LATIN SMALL LETTER L WITH CEDILLA -'ḽ': 'l', // LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW -'ȴ': 'l', // LATIN SMALL LETTER L WITH CURL -'ḷ': 'l', // LATIN SMALL LETTER L WITH DOT BELOW -'ḹ': 'l', // LATIN SMALL LETTER L WITH DOT BELOW AND MACRON -'ⱡ': 'l', // LATIN SMALL LETTER L WITH DOUBLE BAR -'ꝉ': 'l', // LATIN SMALL LETTER L WITH HIGH STROKE -'ḻ': 'l', // LATIN SMALL LETTER L WITH LINE BELOW -'ŀ': 'l', // LATIN SMALL LETTER L WITH MIDDLE DOT -'ɫ': 'l', // LATIN SMALL LETTER L WITH MIDDLE TILDE -'ᶅ': 'l', // LATIN SMALL LETTER L WITH PALATAL HOOK -'ɭ': 'l', // LATIN SMALL LETTER L WITH RETROFLEX HOOK -'ł': 'l', // LATIN SMALL LETTER L WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER LAMBDA WITH STROKE' (ƛ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER LEZH' (ɮ) -'lj': 'lj', // LATIN SMALL LETTER LJ -'ſ': 's', // LATIN SMALL LETTER LONG S -'ẜ': 's', // LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE -'ẛ': 's', // LATIN SMALL LETTER LONG S WITH DOT ABOVE -'ẝ': 's', // LATIN SMALL LETTER LONG S WITH HIGH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER LS DIGRAPH' (ʪ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER LUM' (ꝲ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER LZ DIGRAPH' (ʫ) -'ḿ': 'm', // LATIN SMALL LETTER M WITH ACUTE -'ṁ': 'm', // LATIN SMALL LETTER M WITH DOT ABOVE -'ṃ': 'm', // LATIN SMALL LETTER M WITH DOT BELOW -'ɱ': 'm', // LATIN SMALL LETTER M WITH HOOK -'ᵯ': 'm', // LATIN SMALL LETTER M WITH MIDDLE TILDE -'ᶆ': 'm', // LATIN SMALL LETTER M WITH PALATAL HOOK -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER MIDDLE-WELSH LL' (ỻ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER MIDDLE-WELSH V' (ỽ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER MUM' (ꝳ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER N PRECEDED BY APOSTROPHE' (ʼn) -'ń': 'n', // LATIN SMALL LETTER N WITH ACUTE -'ň': 'n', // LATIN SMALL LETTER N WITH CARON -'ņ': 'n', // LATIN SMALL LETTER N WITH CEDILLA -'ṋ': 'n', // LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW -'ȵ': 'n', // LATIN SMALL LETTER N WITH CURL -'ṅ': 'n', // LATIN SMALL LETTER N WITH DOT ABOVE -'ṇ': 'n', // LATIN SMALL LETTER N WITH DOT BELOW -'ǹ': 'n', // LATIN SMALL LETTER N WITH GRAVE -'ɲ': 'n', // LATIN SMALL LETTER N WITH LEFT HOOK -'ṉ': 'n', // LATIN SMALL LETTER N WITH LINE BELOW -'ƞ': 'n', // LATIN SMALL LETTER N WITH LONG RIGHT LEG -'ᵰ': 'n', // LATIN SMALL LETTER N WITH MIDDLE TILDE -'ᶇ': 'n', // LATIN SMALL LETTER N WITH PALATAL HOOK -'ɳ': 'n', // LATIN SMALL LETTER N WITH RETROFLEX HOOK -'ñ': 'n', // LATIN SMALL LETTER N WITH TILDE -'nj': 'nj', // LATIN SMALL LETTER NJ -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER NUM' (ꝴ) -'ó': 'o', // LATIN SMALL LETTER O WITH ACUTE -'ŏ': 'o', // LATIN SMALL LETTER O WITH BREVE -'ǒ': 'o', // LATIN SMALL LETTER O WITH CARON -'ô': 'o', // LATIN SMALL LETTER O WITH CIRCUMFLEX -'ố': 'o', // LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE -'ộ': 'o', // LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW -'ồ': 'o', // LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE -'ổ': 'o', // LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE -'ỗ': 'o', // LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE -'ö': 'o', // LATIN SMALL LETTER O WITH DIAERESIS -'ȫ': 'o', // LATIN SMALL LETTER O WITH DIAERESIS AND MACRON -'ȯ': 'o', // LATIN SMALL LETTER O WITH DOT ABOVE -'ȱ': 'o', // LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON -'ọ': 'o', // LATIN SMALL LETTER O WITH DOT BELOW -'ő': 'o', // LATIN SMALL LETTER O WITH DOUBLE ACUTE -'ȍ': 'o', // LATIN SMALL LETTER O WITH DOUBLE GRAVE -'ò': 'o', // LATIN SMALL LETTER O WITH GRAVE -'ỏ': 'o', // LATIN SMALL LETTER O WITH HOOK ABOVE -'ơ': 'o', // LATIN SMALL LETTER O WITH HORN -'ớ': 'o', // LATIN SMALL LETTER O WITH HORN AND ACUTE -'ợ': 'o', // LATIN SMALL LETTER O WITH HORN AND DOT BELOW -'ờ': 'o', // LATIN SMALL LETTER O WITH HORN AND GRAVE -'ở': 'o', // LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE -'ỡ': 'o', // LATIN SMALL LETTER O WITH HORN AND TILDE -'ȏ': 'o', // LATIN SMALL LETTER O WITH INVERTED BREVE -'ꝋ': 'o', // LATIN SMALL LETTER O WITH LONG STROKE OVERLAY -'ꝍ': 'o', // LATIN SMALL LETTER O WITH LOOP -'ⱺ': 'o', // LATIN SMALL LETTER O WITH LOW RING INSIDE -'ō': 'o', // LATIN SMALL LETTER O WITH MACRON -'ṓ': 'o', // LATIN SMALL LETTER O WITH MACRON AND ACUTE -'ṑ': 'o', // LATIN SMALL LETTER O WITH MACRON AND GRAVE -'ǫ': 'o', // LATIN SMALL LETTER O WITH OGONEK -'ǭ': 'o', // LATIN SMALL LETTER O WITH OGONEK AND MACRON -'ø': 'o', // LATIN SMALL LETTER O WITH STROKE -'ǿ': 'o', // LATIN SMALL LETTER O WITH STROKE AND ACUTE -'õ': 'o', // LATIN SMALL LETTER O WITH TILDE -'ṍ': 'o', // LATIN SMALL LETTER O WITH TILDE AND ACUTE -'ṏ': 'o', // LATIN SMALL LETTER O WITH TILDE AND DIAERESIS -'ȭ': 'o', // LATIN SMALL LETTER O WITH TILDE AND MACRON -'ƣ': 'oi', // LATIN SMALL LETTER OI -'ꝏ': 'oo', // LATIN SMALL LETTER OO -'ɛ': 'e', // LATIN SMALL LETTER OPEN E -'ᶓ': 'e', // LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK -'ɔ': 'o', // LATIN SMALL LETTER OPEN O -'ᶗ': 'o', // LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK -'ȣ': 'ou', // LATIN SMALL LETTER OU -'ṕ': 'p', // LATIN SMALL LETTER P WITH ACUTE -'ṗ': 'p', // LATIN SMALL LETTER P WITH DOT ABOVE -'ꝓ': 'p', // LATIN SMALL LETTER P WITH FLOURISH -'ƥ': 'p', // LATIN SMALL LETTER P WITH HOOK -'ᵱ': 'p', // LATIN SMALL LETTER P WITH MIDDLE TILDE -'ᶈ': 'p', // LATIN SMALL LETTER P WITH PALATAL HOOK -'ꝕ': 'p', // LATIN SMALL LETTER P WITH SQUIRREL TAIL -'ᵽ': 'p', // LATIN SMALL LETTER P WITH STROKE -'ꝑ': 'p', // LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER PHI' (ɸ) -'ꝙ': 'q', // LATIN SMALL LETTER Q WITH DIAGONAL STROKE -'ʠ': 'q', // LATIN SMALL LETTER Q WITH HOOK -'ɋ': 'q', // LATIN SMALL LETTER Q WITH HOOK TAIL -'ꝗ': 'q', // LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER QP DIGRAPH' (ȹ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER R ROTUNDA' (ꝛ) -'ŕ': 'r', // LATIN SMALL LETTER R WITH ACUTE -'ř': 'r', // LATIN SMALL LETTER R WITH CARON -'ŗ': 'r', // LATIN SMALL LETTER R WITH CEDILLA -'ṙ': 'r', // LATIN SMALL LETTER R WITH DOT ABOVE -'ṛ': 'r', // LATIN SMALL LETTER R WITH DOT BELOW -'ṝ': 'r', // LATIN SMALL LETTER R WITH DOT BELOW AND MACRON -'ȑ': 'r', // LATIN SMALL LETTER R WITH DOUBLE GRAVE -'ɾ': 'r', // LATIN SMALL LETTER R WITH FISHHOOK -'ᵳ': 'r', // LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE -'ȓ': 'r', // LATIN SMALL LETTER R WITH INVERTED BREVE -'ṟ': 'r', // LATIN SMALL LETTER R WITH LINE BELOW -'ɼ': 'r', // LATIN SMALL LETTER R WITH LONG LEG -'ᵲ': 'r', // LATIN SMALL LETTER R WITH MIDDLE TILDE -'ᶉ': 'r', // LATIN SMALL LETTER R WITH PALATAL HOOK -'ɍ': 'r', // LATIN SMALL LETTER R WITH STROKE -'ɽ': 'r', // LATIN SMALL LETTER R WITH TAIL -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER RAMS HORN' (ɤ) -'ↄ': 'c', // LATIN SMALL LETTER REVERSED C -'ꜿ': 'c', // LATIN SMALL LETTER REVERSED C WITH DOT -'ɘ': 'e', // LATIN SMALL LETTER REVERSED E -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER REVERSED OPEN E' (ɜ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER REVERSED OPEN E WITH HOOK' (ɝ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK' (ᶔ) -'ɿ': 'r', // LATIN SMALL LETTER REVERSED R WITH FISHHOOK -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER RUM' (ꝵ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER RUM ROTUNDA' (ꝝ) -'ś': 's', // LATIN SMALL LETTER S WITH ACUTE -'ṥ': 's', // LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE -'š': 's', // LATIN SMALL LETTER S WITH CARON -'ṧ': 's', // LATIN SMALL LETTER S WITH CARON AND DOT ABOVE -'ş': 's', // LATIN SMALL LETTER S WITH CEDILLA -'ŝ': 's', // LATIN SMALL LETTER S WITH CIRCUMFLEX -'ș': 's', // LATIN SMALL LETTER S WITH COMMA BELOW -'ṡ': 's', // LATIN SMALL LETTER S WITH DOT ABOVE -'ṣ': 's', // LATIN SMALL LETTER S WITH DOT BELOW -'ṩ': 's', // LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE -'ʂ': 's', // LATIN SMALL LETTER S WITH HOOK -'ᵴ': 's', // LATIN SMALL LETTER S WITH MIDDLE TILDE -'ᶊ': 's', // LATIN SMALL LETTER S WITH PALATAL HOOK -'ȿ': 's', // LATIN SMALL LETTER S WITH SWASH TAIL -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER SALTILLO' (ꞌ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER SCHWA' (ə) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER SCHWA WITH HOOK' (ɚ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK' (ᶕ) -'ɡ': 'g', // LATIN SMALL LETTER SCRIPT G -'ß': 'ss', // LATIN SMALL LETTER SHARP S -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER SIDEWAYS DIAERESIZED U' (ᴞ) -'ᴑ': 'o', // LATIN SMALL LETTER SIDEWAYS O -'ᴓ': 'o', // LATIN SMALL LETTER SIDEWAYS O WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER SIDEWAYS OPEN O' (ᴒ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER SIDEWAYS TURNED M' (ᴟ) -'ᴝ': 'u', // LATIN SMALL LETTER SIDEWAYS U -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER SQUAT REVERSED ESH' (ʅ) -'ť': 't', // LATIN SMALL LETTER T WITH CARON -'ţ': 't', // LATIN SMALL LETTER T WITH CEDILLA -'ṱ': 't', // LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW -'ț': 't', // LATIN SMALL LETTER T WITH COMMA BELOW -'ȶ': 't', // LATIN SMALL LETTER T WITH CURL -'ẗ': 't', // LATIN SMALL LETTER T WITH DIAERESIS -'ⱦ': 't', // LATIN SMALL LETTER T WITH DIAGONAL STROKE -'ṫ': 't', // LATIN SMALL LETTER T WITH DOT ABOVE -'ṭ': 't', // LATIN SMALL LETTER T WITH DOT BELOW -'ƭ': 't', // LATIN SMALL LETTER T WITH HOOK -'ṯ': 't', // LATIN SMALL LETTER T WITH LINE BELOW -'ᵵ': 't', // LATIN SMALL LETTER T WITH MIDDLE TILDE -'ƫ': 't', // LATIN SMALL LETTER T WITH PALATAL HOOK -'ʈ': 't', // LATIN SMALL LETTER T WITH RETROFLEX HOOK -'ŧ': 't', // LATIN SMALL LETTER T WITH STROKE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TAILLESS PHI' (ⱷ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TC DIGRAPH WITH CURL' (ʨ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TESH DIGRAPH' (ʧ) -'ᵺ': 'th', // LATIN SMALL LETTER TH WITH STRIKETHROUGH -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER THORN' (þ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER THORN WITH STROKE' (ꝥ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER' (ꝧ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TONE FIVE' (ƽ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TONE SIX' (ƅ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TONE TWO' (ƨ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TOP HALF O' (ᴖ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TRESILLO' (ꜫ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TS DIGRAPH' (ʦ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TUM' (ꝷ) -'ɐ': 'a', // LATIN SMALL LETTER TURNED A -'ᴂ': 'ae', // LATIN SMALL LETTER TURNED AE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TURNED ALPHA' (ɒ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TURNED DELTA' (ƍ) -'ǝ': 'e', // LATIN SMALL LETTER TURNED E -'ᵷ': 'g', // LATIN SMALL LETTER TURNED G -'ɥ': 'h', // LATIN SMALL LETTER TURNED H -'ʮ': 'h', // LATIN SMALL LETTER TURNED H WITH FISHHOOK -'ʯ': 'h', // LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL -'ᴉ': 'i', // LATIN SMALL LETTER TURNED I -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TURNED INSULAR G' (ꝿ) -'ʞ': 'k', // LATIN SMALL LETTER TURNED K -'ꞁ': 'l', // LATIN SMALL LETTER TURNED L -'ɯ': 'm', // LATIN SMALL LETTER TURNED M -'ɰ': 'm', // LATIN SMALL LETTER TURNED M WITH LONG LEG -'ᴔ': 'oe', // LATIN SMALL LETTER TURNED OE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER TURNED OPEN E' (ᴈ) -'ɹ': 'r', // LATIN SMALL LETTER TURNED R -'ɻ': 'r', // LATIN SMALL LETTER TURNED R WITH HOOK -'ɺ': 'r', // LATIN SMALL LETTER TURNED R WITH LONG LEG -'ⱹ': 'r', // LATIN SMALL LETTER TURNED R WITH TAIL -'ʇ': 't', // LATIN SMALL LETTER TURNED T -'ʌ': 'v', // LATIN SMALL LETTER TURNED V -'ʍ': 'w', // LATIN SMALL LETTER TURNED W -'ʎ': 'y', // LATIN SMALL LETTER TURNED Y -'ꜩ': 'tz', // LATIN SMALL LETTER TZ -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER U BAR' (ʉ) -'ú': 'u', // LATIN SMALL LETTER U WITH ACUTE -'ŭ': 'u', // LATIN SMALL LETTER U WITH BREVE -'ǔ': 'u', // LATIN SMALL LETTER U WITH CARON -'û': 'u', // LATIN SMALL LETTER U WITH CIRCUMFLEX -'ṷ': 'u', // LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW -'ü': 'u', // LATIN SMALL LETTER U WITH DIAERESIS -'ǘ': 'u', // LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE -'ǚ': 'u', // LATIN SMALL LETTER U WITH DIAERESIS AND CARON -'ǜ': 'u', // LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE -'ǖ': 'u', // LATIN SMALL LETTER U WITH DIAERESIS AND MACRON -'ṳ': 'u', // LATIN SMALL LETTER U WITH DIAERESIS BELOW -'ụ': 'u', // LATIN SMALL LETTER U WITH DOT BELOW -'ű': 'u', // LATIN SMALL LETTER U WITH DOUBLE ACUTE -'ȕ': 'u', // LATIN SMALL LETTER U WITH DOUBLE GRAVE -'ù': 'u', // LATIN SMALL LETTER U WITH GRAVE -'ủ': 'u', // LATIN SMALL LETTER U WITH HOOK ABOVE -'ư': 'u', // LATIN SMALL LETTER U WITH HORN -'ứ': 'u', // LATIN SMALL LETTER U WITH HORN AND ACUTE -'ự': 'u', // LATIN SMALL LETTER U WITH HORN AND DOT BELOW -'ừ': 'u', // LATIN SMALL LETTER U WITH HORN AND GRAVE -'ử': 'u', // LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE -'ữ': 'u', // LATIN SMALL LETTER U WITH HORN AND TILDE -'ȗ': 'u', // LATIN SMALL LETTER U WITH INVERTED BREVE -'ū': 'u', // LATIN SMALL LETTER U WITH MACRON -'ṻ': 'u', // LATIN SMALL LETTER U WITH MACRON AND DIAERESIS -'ų': 'u', // LATIN SMALL LETTER U WITH OGONEK -'ᶙ': 'u', // LATIN SMALL LETTER U WITH RETROFLEX HOOK -'ů': 'u', // LATIN SMALL LETTER U WITH RING ABOVE -'ũ': 'u', // LATIN SMALL LETTER U WITH TILDE -'ṹ': 'u', // LATIN SMALL LETTER U WITH TILDE AND ACUTE -'ṵ': 'u', // LATIN SMALL LETTER U WITH TILDE BELOW -'ᵫ': 'ue', // LATIN SMALL LETTER UE -'ꝸ': 'um', // LATIN SMALL LETTER UM -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER UPSILON' (ʊ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER UPSILON WITH STROKE' (ᵿ) -'ⱴ': 'v', // LATIN SMALL LETTER V WITH CURL -'ꝟ': 'v', // LATIN SMALL LETTER V WITH DIAGONAL STROKE -'ṿ': 'v', // LATIN SMALL LETTER V WITH DOT BELOW -'ʋ': 'v', // LATIN SMALL LETTER V WITH HOOK -'ᶌ': 'v', // LATIN SMALL LETTER V WITH PALATAL HOOK -'ⱱ': 'v', // LATIN SMALL LETTER V WITH RIGHT HOOK -'ṽ': 'v', // LATIN SMALL LETTER V WITH TILDE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER VEND' (ꝩ) -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER VISIGOTHIC Z' (ꝣ) -'ꝡ': 'vy', // LATIN SMALL LETTER VY -'ẃ': 'w', // LATIN SMALL LETTER W WITH ACUTE -'ŵ': 'w', // LATIN SMALL LETTER W WITH CIRCUMFLEX -'ẅ': 'w', // LATIN SMALL LETTER W WITH DIAERESIS -'ẇ': 'w', // LATIN SMALL LETTER W WITH DOT ABOVE -'ẉ': 'w', // LATIN SMALL LETTER W WITH DOT BELOW -'ẁ': 'w', // LATIN SMALL LETTER W WITH GRAVE -'ⱳ': 'w', // LATIN SMALL LETTER W WITH HOOK -'ẘ': 'w', // LATIN SMALL LETTER W WITH RING ABOVE -'ẍ': 'x', // LATIN SMALL LETTER X WITH DIAERESIS -'ẋ': 'x', // LATIN SMALL LETTER X WITH DOT ABOVE -'ᶍ': 'x', // LATIN SMALL LETTER X WITH PALATAL HOOK -'ý': 'y', // LATIN SMALL LETTER Y WITH ACUTE -'ŷ': 'y', // LATIN SMALL LETTER Y WITH CIRCUMFLEX -'ÿ': 'y', // LATIN SMALL LETTER Y WITH DIAERESIS -'ẏ': 'y', // LATIN SMALL LETTER Y WITH DOT ABOVE -'ỵ': 'y', // LATIN SMALL LETTER Y WITH DOT BELOW -'ỳ': 'y', // LATIN SMALL LETTER Y WITH GRAVE -'ƴ': 'y', // LATIN SMALL LETTER Y WITH HOOK -'ỷ': 'y', // LATIN SMALL LETTER Y WITH HOOK ABOVE -'ỿ': 'y', // LATIN SMALL LETTER Y WITH LOOP -'ȳ': 'y', // LATIN SMALL LETTER Y WITH MACRON -'ẙ': 'y', // LATIN SMALL LETTER Y WITH RING ABOVE -'ɏ': 'y', // LATIN SMALL LETTER Y WITH STROKE -'ỹ': 'y', // LATIN SMALL LETTER Y WITH TILDE -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LETTER YOGH' (ȝ) -'ź': 'z', // LATIN SMALL LETTER Z WITH ACUTE -'ž': 'z', // LATIN SMALL LETTER Z WITH CARON -'ẑ': 'z', // LATIN SMALL LETTER Z WITH CIRCUMFLEX -'ʑ': 'z', // LATIN SMALL LETTER Z WITH CURL -'ⱬ': 'z', // LATIN SMALL LETTER Z WITH DESCENDER -'ż': 'z', // LATIN SMALL LETTER Z WITH DOT ABOVE -'ẓ': 'z', // LATIN SMALL LETTER Z WITH DOT BELOW -'ȥ': 'z', // LATIN SMALL LETTER Z WITH HOOK -'ẕ': 'z', // LATIN SMALL LETTER Z WITH LINE BELOW -'ᵶ': 'z', // LATIN SMALL LETTER Z WITH MIDDLE TILDE -'ᶎ': 'z', // LATIN SMALL LETTER Z WITH PALATAL HOOK -'ʐ': 'z', // LATIN SMALL LETTER Z WITH RETROFLEX HOOK -'ƶ': 'z', // LATIN SMALL LETTER Z WITH STROKE -'ɀ': 'z', // LATIN SMALL LETTER Z WITH SWASH TAIL -'ff': 'ff', // LATIN SMALL LIGATURE FF -'ffi': 'ffi', // LATIN SMALL LIGATURE FFI -'ffl': 'ffl', // LATIN SMALL LIGATURE FFL -'fi': 'fi', // LATIN SMALL LIGATURE FI -'fl': 'fl', // LATIN SMALL LIGATURE FL -'ij': 'ij', // LATIN SMALL LIGATURE IJ -// CANNOT FIND APPROXIMATION FOR 'LATIN SMALL LIGATURE LONG S T' (ſt) -'œ': 'oe', // LATIN SMALL LIGATURE OE -'st': 'st', // LATIN SMALL LIGATURE ST -'ₐ': 'a', // LATIN SUBSCRIPT SMALL LETTER A -'ₑ': 'e', // LATIN SUBSCRIPT SMALL LETTER E -'ᵢ': 'i', // LATIN SUBSCRIPT SMALL LETTER I -'ⱼ': 'j', // LATIN SUBSCRIPT SMALL LETTER J -'ₒ': 'o', // LATIN SUBSCRIPT SMALL LETTER O -'ᵣ': 'r', // LATIN SUBSCRIPT SMALL LETTER R -// CANNOT FIND APPROXIMATION FOR 'LATIN SUBSCRIPT SMALL LETTER SCHWA' (ₔ) -'ᵤ': 'u', // LATIN SUBSCRIPT SMALL LETTER U -'ᵥ': 'v', // LATIN SUBSCRIPT SMALL LETTER V -'ₓ': 'x' // LATIN SUBSCRIPT SMALL LETTER X -}; - -String.prototype.latinise = function() { - return this.replace(/[^A-Za-z0-9\[\] ]/g, function(x) { return Latinise.latin_map[x] || x; }); -}; - -// American English spelling :) -String.prototype.latinize = String.prototype.latinise; - -String.prototype.isLatin = function() { - return this == this.latinise(); -}; - diff --git a/debian/not-installed b/debian/not-installed deleted file mode 100644 index a3da66ddd2..0000000000 --- a/debian/not-installed +++ /dev/null @@ -1 +0,0 @@ -usr/share/gocode diff --git a/debian/patches/Gemfile/0010-relax-stable-libs.patch b/debian/patches/Gemfile/0010-relax-stable-libs.patch deleted file mode 100644 index d402a347ba..0000000000 --- a/debian/patches/Gemfile/0010-relax-stable-libs.patch +++ /dev/null @@ -1,517 +0,0 @@ -We should be able to update minor versions of stable libs without breaking -gitlab Gemfile - ---- a/Gemfile -+++ b/Gemfile -@@ -2,62 +2,62 @@ - - source 'https://rubygems.org' - --gem 'rails', '~> 6.1.4.7' -+gem 'rails', '~> 6.1.4', '>= 6.1.4.7' - --gem 'bootsnap', '~> 1.12.0', require: false -+gem 'bootsnap', '~> 1.12', require: false - - # Responders respond_to and respond_with - gem 'responders', '~> 3.0' - --gem 'sprockets', '~> 3.7.0' -+gem 'sprockets', '~> 3.7' - --gem 'view_component', '~> 2.50.0' -+gem 'view_component', '~> 2.50' - - # Default values for AR models --gem 'default_value_for', '~> 3.4.0' -+gem 'default_value_for', '~> 3.4' - - # Supported DBs --gem 'pg', '~> 1.3.0' -+gem 'pg', '~> 1.3' - - gem 'rugged', '~> 1.2' --gem 'grape-path-helpers', '~> 1.7.0' -+gem 'grape-path-helpers', '~> 1.7' - - gem 'faraday', '~> 1.0' --gem 'marginalia', '~> 1.10.0' -+gem 'marginalia', '~> 1.10' - - # Authorization --gem 'declarative_policy', '~> 1.1.0' -+gem 'declarative_policy', '~> 1.1' - - # Authentication libraries --gem 'devise', '~> 4.7.2' -+gem 'devise', '~> 4.7','>= 4.7.2' - gem 'devise-pbkdf2-encryptable', '~> 0.0.0', path: 'vendor/gems/devise-pbkdf2-encryptable' - gem 'bcrypt', '~> 3.1', '>= 3.1.14' --gem 'doorkeeper', '~> 5.5.0.rc2' --gem 'doorkeeper-openid_connect', '~> 1.7.5' --gem 'rexml', '~> 3.2.5' --gem 'ruby-saml', '~> 1.13.0' -+gem 'doorkeeper', '~> 5.5' -+gem 'doorkeeper-openid_connect', '~> 1.7','>= 1.7.5' -+gem 'rexml', '~> 3.2','>= 3.2.5' -+gem 'ruby-saml', '~> 1.13' - gem 'omniauth', '~> 1.8' --gem 'omniauth-auth0', '~> 2.0.0' -+gem 'omniauth-auth0', '~> 2.0' - gem 'omniauth-azure-activedirectory-v2', '~> 1.0' - gem 'omniauth-azure-oauth2', '~> 0.0.9' # Deprecated v1 version --gem 'omniauth-cas3', '~> 1.1.4' -+gem 'omniauth-cas3', '~> 1.1','>= 1.1.4' - gem 'omniauth-dingtalk-oauth2', '~> 1.0' --gem 'omniauth-alicloud', '~> 1.0.1' --gem 'omniauth-facebook', '~> 4.0.0' -+gem 'omniauth-alicloud', '~> 1.0', '>= 1.0.1' -+gem 'omniauth-facebook', '~> 4.0' - gem 'omniauth-github', '~> 1.4' --gem 'omniauth-gitlab', '~> 4.0.0', path: 'vendor/gems/omniauth-gitlab' # See vendor/gems/omniauth-gitlab/README.md -+gem 'omniauth-gitlab', '~> 4.0', path: 'vendor/gems/omniauth-gitlab' # See vendor/gems/omniauth-gitlab/README.md - gem 'omniauth-google-oauth2', '~> 0.6.0' - gem 'omniauth-oauth2-generic', '~> 0.2.2' - gem 'omniauth-saml', '~> 1.10' --gem 'omniauth-shibboleth', '~> 1.3.0' -+gem 'omniauth-shibboleth', '~> 1.3' - gem 'omniauth-twitter', '~> 1.4' --gem 'omniauth_crowd', '~> 2.4.0', path: 'vendor/gems/omniauth_crowd' # See vendor/gems/omniauth_crowd/README.md -+gem 'omniauth_crowd', '~> 2.4', path: 'vendor/gems/omniauth_crowd' # See vendor/gems/omniauth_crowd/README.md - gem 'omniauth-authentiq', '~> 0.3.3' - gem 'gitlab-omniauth-openid-connect', '~> 0.9.0', require: 'omniauth_openid_connect' --gem 'omniauth-salesforce', '~> 1.0.5' -+gem 'omniauth-salesforce', '~> 1.0','>= 1.0.5' - gem 'omniauth-atlassian-oauth2', '~> 0.2.0' --gem 'rack-oauth2', '~> 1.19.0' --gem 'jwt', '~> 2.1.0' -+gem 'rack-oauth2', '~> 1.19' -+gem 'jwt', '~> 2.1' - - # Kerberos authentication. EE-only - gem 'gssapi', group: :kerberos -@@ -66,17 +66,17 @@ - # Spam and anti-bot protection - gem 'recaptcha', '~> 4.11', require: 'recaptcha/rails' - gem 'akismet', '~> 3.0' --gem 'invisible_captcha', '~> 1.1.0' -+gem 'invisible_captcha', '~> 1.1' - - # Two-factor authentication --gem 'devise-two-factor', '~> 4.0.2' -+gem 'devise-two-factor', '~> 4.0', '>= 4.0.2' - gem 'rqrcode-rails3', '~> 0.1.7' --gem 'attr_encrypted', '~> 3.1.0' -+gem 'attr_encrypted', '~> 3.1' - gem 'u2f', '~> 0.2.1' - - # GitLab Pages --gem 'validates_hostname', '~> 1.0.11' --gem 'rubyzip', '~> 2.3.2', require: 'zip' -+gem 'validates_hostname', '~> 1.0', '>= 1.0.11' -+gem 'rubyzip', '~> 2.0', '>= 2.3.2', require: 'zip' - # GitLab Pages letsencrypt support - gem 'acme-client', '~> 2.0', '>= 2.0.9' - -@@ -87,7 +87,7 @@ - gem 'ohai', '~> 16.10' - - # GPG --gem 'gpgme', '~> 2.0.19' -+gem 'gpgme', '~> 2.0','>= 2.0.19' - - # LDAP Auth - # GitLab fork with several improvements to original library. For full list of changes -@@ -96,15 +96,15 @@ - gem 'net-ldap', '~> 0.16.3' - - # API --gem 'grape', '~> 1.5.2' -+gem 'grape', '~> 1.5','>= 1.5.2' - gem 'grape-entity', '~> 0.10.0' --gem 'rack-cors', '~> 1.1.0', require: 'rack/cors' -+gem 'rack-cors', '~> 1.1', require: 'rack/cors' - - # GraphQL API --gem 'graphql', '~> 1.13.12' -+gem 'graphql', '~> 1.13', '>= 1.13.12' - gem 'graphiql-rails', '~> 1.8' --gem 'apollo_upload_server', '~> 2.1.0' --gem 'graphql-docs', '~> 2.1.0', group: [:development, :test] -+gem 'apollo_upload_server', '~> 2.1' -+gem 'graphql-docs', '~> 2.1', group: [:development, :test] - gem 'graphlient', '~> 0.5.0' # Used by BulkImport feature (group::import) - - gem 'hashie' -@@ -115,23 +115,23 @@ - gem 'kaminari', '~> 1.0' - - # HAML --gem 'hamlit', '~> 2.15.0' -+gem 'hamlit', '~> 2.15' - - # Files attachments - gem 'carrierwave', '~> 1.3' --gem 'mini_magick', '~> 4.10.1' -+gem 'mini_magick', '~> 4.10','>= 4.10.1' - - # for backups - gem 'fog-aws', '~> 3.14' - # Locked until fog-google resolves https://github.com/fog/fog-google/issues/421. - # Also see config/initializers/fog_core_patch.rb. --gem 'fog-core', '= 2.1.0' -+gem 'fog-core', '= 2.1' - gem 'fog-google', '~> 1.15', require: 'fog/google' - gem 'fog-local', '~> 0.6' - gem 'fog-openstack', '~> 1.0' - gem 'fog-rackspace', '~> 0.1.1' - gem 'fog-aliyun', '~> 0.3' --gem 'gitlab-fog-azure-rm', '~> 1.3.0', require: 'fog/azurerm' -+gem 'gitlab-fog-azure-rm', '~> 1.3', require: 'fog/azurerm' - - # for Google storage - gem 'google-api-client', '~> 0.33' -@@ -140,38 +140,38 @@ - gem 'unf', '~> 0.1.4' - - # Seed data --gem 'seed-fu', '~> 2.3.7' -+gem 'seed-fu', '~> 2.3','>= 2.3.7' - - # Search - gem 'elasticsearch-model', '~> 7.2' - gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' --gem 'elasticsearch-api', '7.13.3' --gem 'aws-sdk-core', '~> 3.131.0' -+gem 'elasticsearch-api', '~> 7.13', '>= 7.13.3' -+gem 'aws-sdk-core', '~> 3.131' - gem 'aws-sdk-cloudformation', '~> 1' --gem 'aws-sdk-s3', '~> 1.114.0' -+gem 'aws-sdk-s3', '~> 1.114' - gem 'faraday_middleware-aws-sigv4', '~>0.3.0' --gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections -+gem 'typhoeus', '~> 1.4' # Used with Elasticsearch to support http keep-alive connections - - # Markdown and HTML processing --gem 'html-pipeline', '~> 2.13.2' --gem 'deckar01-task_list', '2.3.1' --gem 'gitlab-markup', '~> 1.8.0' --gem 'github-markup', '~> 1.7.0', require: 'github/markup' -+gem 'html-pipeline', '~> 2.13','>= 2.13.2' -+gem 'deckar01-task_list', '~> 2.3','>= 2.3.1' -+gem 'gitlab-markup', '~> 1.8' -+gem 'github-markup', '~> 1.7', require: 'github/markup' - gem 'commonmarker', '~> 0.23.4' --gem 'kramdown', '~> 2.3.1' --gem 'RedCloth', '~> 4.3.2' --gem 'rdoc', '~> 6.3.2' -+gem 'kramdown', '~> 2.3','>= 2.3.1' -+gem 'RedCloth', '~> 4.3','>= 4.3.2' -+gem 'rdoc', '~> 6.3','>= 6.3.2' - gem 'org-ruby', '~> 0.9.12' - gem 'creole', '~> 0.5.0' --gem 'wikicloth', '0.8.1' --gem 'asciidoctor', '~> 2.0.10' -+gem 'wikicloth', '~> 0.8.1' -+gem 'asciidoctor', '~> 2.0','>= 2.0.10' - gem 'asciidoctor-include-ext', '~> 0.4.0', require: false - gem 'asciidoctor-plantuml', '~> 0.0.12' - gem 'asciidoctor-kroki', '~> 0.5.0', require: false --gem 'rouge', '~> 3.29.0' -+gem 'rouge', '~> 3.29' - gem 'truncato', '~> 0.7.11' --gem 'bootstrap_form', '~> 4.2.0' --gem 'nokogiri', '~> 1.13.6' -+gem 'bootstrap_form', '~> 4.2' -+gem 'nokogiri', '~> 1.13', '>= 1.13.6' - gem 'escape_utils', '~> 1.1' - - # Calendar rendering -@@ -182,12 +182,12 @@ - gem 'diff_match_patch', '~> 0.1.0' - - # Application server --gem 'rack', '~> 2.2.4' -+gem 'rack', '~> 2.2', '>= 2.2.4' - # https://github.com/zombocom/rack-timeout/blob/master/README.md#rails-apps-manually - gem 'rack-timeout', '~> 0.6.0', require: 'rack/timeout/base' - - group :puma do -- gem 'puma', '~> 5.6.2', require: false -+ gem 'puma', '~> 5.6', '>= 5.6.2', require: false - gem 'puma_worker_killer', '~> 0.3.1', require: false - gem 'sd_notify', '~> 0.1.0', require: false - end -@@ -201,11 +201,11 @@ - # Background jobs - gem 'sidekiq', '~> 6.4' - gem 'sidekiq-cron', '~> 1.2' --gem 'redis-namespace', '~> 1.8.1' -+gem 'redis-namespace', '~> 1.8','>= 1.8.1' - gem 'gitlab-sidekiq-fetcher', '0.8.0', require: 'sidekiq-reliable-fetch' - - # Cron Parser --gem 'fugit', '~> 1.2.1' -+gem 'fugit', '~> 1.2','>= 1.2.1' - - # HTTP requests - gem 'httparty', '~> 0.16.4' -@@ -217,14 +217,14 @@ - gem 'ruby-progressbar', '~> 1.10' - - # GitLab settings --gem 'settingslogic', '~> 2.0.9' -+gem 'settingslogic', '~> 2.0', '>= 2.0.9' - - # Linear-time regex library for untrusted regular expressions --gem 're2', '~> 1.4.0' -+gem 're2', '~> 1.4' - - # Misc - --gem 'version_sorter', '~> 2.2.4' -+gem 'version_sorter', '~> 2.2', '>= 2.2.4' - - # Export Ruby Regex to Javascript - gem 'js_regex', '~> 3.7' -@@ -233,24 +233,24 @@ - gem 'device_detector' - - # Redis --gem 'redis', '~> 4.4.0' -+gem 'redis', '~> 4.4' - gem 'connection_pool', '~> 2.0' - - # Redis session store --gem 'redis-actionpack', '~> 5.2.0' -+gem 'redis-actionpack', '~> 5.2' - - # Discord integration - gem 'discordrb-webhooks', '~> 3.4', require: false - - # Jira integration --gem 'jira-ruby', '~> 2.1.4' -+gem 'jira-ruby', '~> 2.1', '>= 2.1.4' - gem 'atlassian-jwt', '~> 0.2.0' - - # Flowdock integration - gem 'flowdock', '~> 0.7' - - # Slack integration --gem 'slack-messenger', '~> 2.3.4' -+gem 'slack-messenger', '~> 2.3', '>= 2.3.4' - - # Hangouts Chat integration - gem 'hangouts-chat', '~> 0.0.5', require: 'hangouts_chat' -@@ -262,17 +262,17 @@ - gem 'ruby-fogbugz', '~> 0.2.1' - - # Kubernetes integration --gem 'kubeclient', '~> 4.9.2' -+gem 'kubeclient', '~> 4.9','>= 4.9.2' - - # Sanitize user input - gem 'sanitize', '~> 6.0' --gem 'babosa', '~> 1.0.4' -+gem 'babosa', '~> 1.0','>= 1.0.4' - - # Sanitizes SVG input --gem 'loofah', '~> 2.18.0' -+gem 'loofah', '~> 2.18' - - # Working with license --gem 'licensee', '~> 9.14.1' -+gem 'licensee', '~> 9.14','>= 9.14.1' - - # Detect and convert string character encoding - gem 'charlock_holmes', '~> 0.7.7' -@@ -289,32 +289,32 @@ - - gem 'rack-proxy', '~> 0.7.2' - --gem 'sassc-rails', '~> 2.1.0' --gem 'autoprefixer-rails', '10.2.5.1' --gem 'terser', '1.0.2' -+gem 'sassc-rails', '~> 2.1' -+gem 'autoprefixer-rails', '~> 10.2', '>= 10.2.5.1' -+gem 'terser', '~> 1.0','>= 1.0.2' - - gem 'addressable', '~> 2.8' - gem 'tanuki_emoji', '~> 0.6' --gem 'gon', '~> 6.4.0' -+gem 'gon', '~> 6.4' - gem 'request_store', '~> 1.5' - gem 'base32', '~> 0.3.0' - --gem 'gitlab-license', '~> 2.1.0' -+gem 'gitlab-license', '~> 2.1' - - # Protect against bruteforcing --gem 'rack-attack', '~> 6.6.0' -+gem 'rack-attack', '~> 6.6' - - # Sentry integration - gem 'sentry-raven', '~> 3.1' --gem 'sentry-ruby', '~> 5.1.1' --gem 'sentry-rails', '~> 5.1.1' --gem 'sentry-sidekiq', '~> 5.1.1' -+gem 'sentry-ruby', '~> 5.1', '>= 5.1.1' -+gem 'sentry-rails', '~> 5.1', '>= 5.1.1' -+gem 'sentry-sidekiq', '~> 5.1', '>= 5.1.1' - - # PostgreSQL query parsing - # --gem 'pg_query', '~> 2.1.0' -+gem 'pg_query', '~> 2.1' - --gem 'premailer-rails', '~> 1.10.3' -+gem 'premailer-rails', '~> 1.10','>= 1.10.3' - - # LabKit: Tracing and Correlation - gem 'gitlab-labkit', '~> 0.23.0' -@@ -325,11 +325,11 @@ - # I18n - gem 'ruby_parser', '~> 3.15', require: false - gem 'rails-i18n', '~> 7.0' --gem 'gettext_i18n_rails', '~> 1.8.0' -+gem 'gettext_i18n_rails', '~> 1.8' - gem 'gettext_i18n_rails_js', '~> 1.3' - gem 'gettext', '~> 3.3', require: false, group: :development - --gem 'batch-loader', '~> 2.0.1' -+gem 'batch-loader', '~> 2.0', '>= 2.0.1' - - # Perf bar - gem 'peek', '~> 1.1' -@@ -339,10 +339,10 @@ - - # Metrics - gem 'method_source', '~> 1.0', require: false --gem 'webrick', '~> 1.6.1', require: false -+gem 'webrick', '~> 1.6', '>= 1.6.1', require: false - gem 'prometheus-client-mmap', '~> 0.16', require: 'prometheus/client' - --gem 'warning', '~> 1.3.0' -+gem 'warning', '~> 1.3' - - group :development do - gem 'lefthook', '~> 1.0.0', require: false -@@ -427,22 +427,22 @@ - end - - group :test do -- gem 'fuubar', '~> 2.2.0' -+ gem 'fuubar', '~> 2.2' - gem 'rspec-retry', '~> 0.6.1' - gem 'rspec_profiling', '~> 0.0.6' - gem 'rspec-benchmark', '~> 0.6.0' - gem 'rspec-parameterized', require: false - -- gem 'capybara', '~> 3.35.3' -- gem 'capybara-screenshot', '~> 1.0.22' -- gem 'selenium-webdriver', '~> 3.142' -- -- gem 'shoulda-matchers', '~> 5.1.0', require: false -- gem 'email_spec', '~> 2.2.0' -- gem 'webmock', '~> 3.9.1' -+ gem 'capybara', '~> 3.35', '~> 3.35.3' -+ gem 'capybara-screenshot', '~> 1.0', '>= 1.0.22' -+ gem 'selenium-webdriver', '~> 3.1','>= 3.142' -+ -+ gem 'shoulda-matchers', '~> 5.1', require: false -+ gem 'email_spec', '~> 2.2' -+ gem 'webmock', '~> 3.9', '>= 3.9.1' - gem 'rails-controller-testing' - gem 'concurrent-ruby', '~> 1.1' -- gem 'test-prof', '~> 1.0.7' -+ gem 'test-prof', '~> 1.0', '>= 1.0.7' - gem 'rspec_junit_formatter' - gem 'guard-rspec' - -@@ -459,7 +459,7 @@ - gem 'email_reply_trimmer', '~> 0.1' - gem 'html2text' - --gem 'ruby-prof', '~> 1.3.0' -+gem 'ruby-prof', '~> 1.3' - gem 'stackprof', '~> 0.2.15', require: false - gem 'rbtrace', '~> 0.4', require: false - gem 'memory_profiler', '~> 0.9', require: false -@@ -473,8 +473,8 @@ - gem 'health_check', '~> 3.0' - - # System information --gem 'vmstat', '~> 2.3.0' --gem 'sys-filesystem', '~> 1.4.3' -+gem 'vmstat', '~> 2.3' -+gem 'sys-filesystem', '~> 1.4', '>= 1.4.3' - - # NTP client - gem 'net-ntp' -@@ -486,14 +486,14 @@ - gem 'spamcheck', '~> 0.1.0' - - # Gitaly GRPC protocol definitions --gem 'gitaly', '~> 15.1.0-rc1' -+gem 'gitaly', '~> 15.1' - - # KAS GRPC protocol definitions - gem 'kas-grpc', '~> 0.0.2' - --gem 'grpc', '~> 1.42.0' -+gem 'grpc', '~> 1.42' - --gem 'google-protobuf', '~> 3.19.0' -+gem 'google-protobuf', '~> 3.19' - - gem 'toml-rb', '~> 2.0' - -@@ -501,7 +501,7 @@ - gem 'flipper', '~> 0.21.0' - gem 'flipper-active_record', '~> 0.21.0' - gem 'flipper-active_support_cache_store', '~> 0.21.0' --gem 'unleash', '~> 3.2.2' -+gem 'unleash', '~> 3.2', '>= 3.2.2' - gem 'gitlab-experiment', '~> 0.7.1' - - # Structured logging -@@ -514,12 +514,12 @@ - # Countries list - gem 'countries', '~> 3.0' - --gem 'retriable', '~> 3.1.2' -+gem 'retriable', '~> 3.1', '>= 3.1.2' - - # LRU cache - gem 'lru_redux' - --gem 'erubi', '~> 1.9.0' -+gem 'erubi', '~> 1.9' - - # Locked as long as quoted-printable encoding issues are not resolved - # Monkey-patched in `config/initializers/mail_encoding_patch.rb` -@@ -534,11 +534,11 @@ - gem 'valid_email', '~> 0.1' - - # JSON --gem 'json', '~> 2.5.1' -+gem 'json', '~> 2.5', '>= 2.5.1' - gem 'json_schemer', '~> 0.2.18' --gem 'oj', '~> 3.13.19' --gem 'multi_json', '~> 1.14.1' --gem 'yajl-ruby', '~> 1.4.1', require: 'yajl' -+gem 'oj', '~> 3.13', '>= 3.13.19' -+gem 'multi_json', '~> 1.14', '>= 1.14.1' -+gem 'yajl-ruby', '~> 1.4', '>= 1.4.1', require: 'yajl' - - gem 'webauthn', '~> 2.3' - -@@ -549,7 +549,7 @@ - - gem 'ipynbdiff', path: 'vendor/gems/ipynbdiff' - --gem 'ed25519', '~> 1.3.0' -+gem 'ed25519', '~> 1.3' - - # Error Tracking OpenAPI client - # See https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/rake_tasks.md#update-openapi-client-for-error-tracking-feature diff --git a/debian/patches/Gemfile/0020-remove-development-test.patch b/debian/patches/Gemfile/0020-remove-development-test.patch deleted file mode 100644 index 06fd672d0c..0000000000 --- a/debian/patches/Gemfile/0020-remove-development-test.patch +++ /dev/null @@ -1,109 +0,0 @@ -Bundler will fail when it can't find these locally - ---- a/Gemfile -+++ b/Gemfile -@@ -104,7 +104,6 @@ - gem 'graphql', '~> 1.13', '>= 1.13.12' - gem 'graphiql-rails', '~> 1.8' - gem 'apollo_upload_server', '~> 2.1' --gem 'graphql-docs', '~> 2.1', group: [:development, :test] - gem 'graphlient', '~> 0.5.0' # Used by BulkImport feature (group::import) - - gem 'hashie' -@@ -327,7 +326,6 @@ - gem 'rails-i18n', '~> 7.0' - gem 'gettext_i18n_rails', '~> 1.8' - gem 'gettext_i18n_rails_js', '~> 1.3' --gem 'gettext', '~> 3.3', require: false, group: :development - - gem 'batch-loader', '~> 2.0', '>= 2.0.1' - -@@ -344,88 +342,6 @@ - - gem 'warning', '~> 1.3' - --group :development do -- gem 'lefthook', '~> 1.0.0', require: false -- gem 'rubocop' -- gem 'solargraph', '~> 0.44.3', require: false -- -- gem 'letter_opener_web', '~> 2.0.0' -- -- # Better errors handler -- gem 'better_errors', '~> 2.9.0' -- -- # thin instead webrick -- gem 'thin', '~> 1.8.0' -- -- gem 'sprite-factory', '~> 1.7' --end -- --group :development, :test do -- gem 'deprecation_toolkit', '~> 1.5.1', require: false -- gem 'bullet', '~> 6.1.3' -- gem 'pry-byebug' -- gem 'pry-rails', '~> 0.3.9' -- gem 'pry-shell', '~> 0.5.0' -- -- gem 'awesome_print', require: false -- -- gem 'database_cleaner', '~> 1.7.0' -- gem 'factory_bot_rails', '~> 6.2.0' -- gem 'rspec-rails', '~> 5.0.1' -- -- # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) -- gem 'minitest', '~> 5.11.0' -- -- # Generate Fake data -- gem 'ffaker', '~> 2.10' -- -- gem 'spring', '~> 2.1.0' -- gem 'spring-commands-rspec', '~> 1.0.4' -- -- gem 'gitlab-styles', '~> 7.1.0', require: false -- -- gem 'haml_lint', '~> 0.36.0', require: false -- gem 'bundler-audit', '~> 0.7.0.1', require: false -- -- gem 'benchmark-ips', '~> 2.3.0', require: false -- -- gem 'knapsack', '~> 1.21.1' -- gem 'crystalball', '~> 0.7.0', require: false -- -- gem 'simple_po_parser', '~> 1.1.6', require: false -- -- gem 'timecop', '~> 0.9.1' -- -- gem 'png_quantizator', '~> 0.2.1', require: false -- -- gem 'parallel', '~> 1.19', require: false -- -- gem 'test_file_finder', '~> 0.1.3' -- -- gem 'sigdump', '~> 0.2.4', require: 'sigdump/setup' -- -- gem 'pact', '~> 1.12' --end -- --group :development, :test, :danger do -- gem 'gitlab-dangerfiles', '~> 3.4.3', require: false --end -- --group :development, :test, :coverage do -- gem 'simplecov', '~> 0.21', require: false -- gem 'simplecov-lcov', '~> 0.8.0', require: false -- gem 'simplecov-cobertura', '~> 1.3.1', require: false -- gem 'undercover', '~> 0.4.4', require: false --end -- --# Gems required in omnibus-gitlab pipeline --group :development, :test, :omnibus do -- # Using a fork until https://github.com/pivotal/LicenseFinder/pull/816 is -- # resolved. For details, check discussion in -- # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74881 -- gem 'gitlab-license_finder', '~> 6.0', require: false --end -- - group :test do - gem 'fuubar', '~> 2.2' - gem 'rspec-retry', '~> 0.6.1' diff --git a/debian/patches/Gemfile/0030-make-test-dependencies-conditional.patch b/debian/patches/Gemfile/0030-make-test-dependencies-conditional.patch deleted file mode 100644 index 1e331a56c5..0000000000 --- a/debian/patches/Gemfile/0030-make-test-dependencies-conditional.patch +++ /dev/null @@ -1,13 +0,0 @@ -Make test dependencies conditional so we can enable them when running autopkgtest - ---- a/Gemfile -+++ b/Gemfile -@@ -342,7 +342,7 @@ - - gem 'warning', '~> 1.3' - --group :test do -+if ENV["INCLUDE_TEST_DEPENDS"] == "true" - gem 'fuubar', '~> 2.2' - gem 'rspec-retry', '~> 0.6.1' - gem 'rspec_profiling', '~> 0.0.6' diff --git a/debian/patches/Gemfile/0040-relax-httparty.patch b/debian/patches/Gemfile/0040-relax-httparty.patch deleted file mode 100644 index 4ad9d205d6..0000000000 --- a/debian/patches/Gemfile/0040-relax-httparty.patch +++ /dev/null @@ -1,13 +0,0 @@ -Allow newer versions of httparty to satisfy dependency - ---- a/Gemfile -+++ b/Gemfile -@@ -207,7 +207,7 @@ - gem 'fugit', '~> 1.2','>= 1.2.1' - - # HTTP requests --gem 'httparty', '~> 0.16.4' -+gem 'httparty', '~> 0.16' - - # Colored output to console - gem 'rainbow', '~> 3.0' diff --git a/debian/patches/Gemfile/0050-relax-rdoc.patch b/debian/patches/Gemfile/0050-relax-rdoc.patch deleted file mode 100644 index d879c9527b..0000000000 --- a/debian/patches/Gemfile/0050-relax-rdoc.patch +++ /dev/null @@ -1,13 +0,0 @@ -Allow rdoc from ruby 2.5 to match requirement - ---- a/Gemfile -+++ b/Gemfile -@@ -159,7 +159,7 @@ - gem 'commonmarker', '~> 0.23.4' - gem 'kramdown', '~> 2.3','>= 2.3.1' - gem 'RedCloth', '~> 4.3','>= 4.3.2' --gem 'rdoc', '~> 6.3','>= 6.3.2' -+gem 'rdoc', '~> 6.0' - gem 'org-ruby', '~> 0.9.12' - gem 'creole', '~> 0.5.0' - gem 'wikicloth', '~> 0.8.1' diff --git a/debian/patches/Gemfile/0090-remove-ee-only-gems.patch b/debian/patches/Gemfile/0090-remove-ee-only-gems.patch deleted file mode 100644 index 5a437d1b75..0000000000 --- a/debian/patches/Gemfile/0090-remove-ee-only-gems.patch +++ /dev/null @@ -1,21 +0,0 @@ -This gem is used only in gitlab Enterprise Edition - ---- a/Gemfile -+++ b/Gemfile -@@ -60,7 +60,6 @@ - gem 'jwt', '~> 2.1' - - # Kerberos authentication. EE-only --gem 'gssapi', group: :kerberos - gem 'timfel-krb5-auth', '~> 0.8', group: :kerberos - - # Spam and anti-bot protection -@@ -298,8 +297,6 @@ - gem 'request_store', '~> 1.5' - gem 'base32', '~> 0.3.0' - --gem 'gitlab-license', '~> 2.1' -- - # Protect against bruteforcing - gem 'rack-attack', '~> 6.6' - diff --git a/debian/patches/Gemfile/0120-relax-capybara.patch b/debian/patches/Gemfile/0120-relax-capybara.patch deleted file mode 100644 index 64d117fb94..0000000000 --- a/debian/patches/Gemfile/0120-relax-capybara.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Gemfile -+++ b/Gemfile -@@ -346,7 +346,7 @@ - gem 'rspec-benchmark', '~> 0.6.0' - gem 'rspec-parameterized', require: false - -- gem 'capybara', '~> 3.35', '~> 3.35.3' -+ gem 'capybara', '~> 3.12' - gem 'capybara-screenshot', '~> 1.0', '>= 1.0.22' - gem 'selenium-webdriver', '~> 3.1','>= 3.142' - diff --git a/debian/patches/Gemfile/0130-remove-capybara-screenshot.patch b/debian/patches/Gemfile/0130-remove-capybara-screenshot.patch deleted file mode 100644 index 7fe9e90375..0000000000 --- a/debian/patches/Gemfile/0130-remove-capybara-screenshot.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/Gemfile -+++ b/Gemfile -@@ -347,7 +347,6 @@ - gem 'rspec-parameterized', require: false - - gem 'capybara', '~> 3.12' -- gem 'capybara-screenshot', '~> 1.0', '>= 1.0.22' - gem 'selenium-webdriver', '~> 3.1','>= 3.142' - - gem 'shoulda-matchers', '~> 5.1', require: false diff --git a/debian/patches/Gemfile/0140-remove-guard-rspec.patch b/debian/patches/Gemfile/0140-remove-guard-rspec.patch deleted file mode 100644 index cafb758eba..0000000000 --- a/debian/patches/Gemfile/0140-remove-guard-rspec.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/Gemfile -+++ b/Gemfile -@@ -356,7 +356,6 @@ - gem 'concurrent-ruby', '~> 1.1' - gem 'test-prof', '~> 1.0', '>= 1.0.7' - gem 'rspec_junit_formatter' -- gem 'guard-rspec' - - # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527 - gem 'derailed_benchmarks', require: false diff --git a/debian/patches/Gemfile/0160-relax-rexml.patch b/debian/patches/Gemfile/0160-relax-rexml.patch deleted file mode 100644 index 0b166f7ac3..0000000000 --- a/debian/patches/Gemfile/0160-relax-rexml.patch +++ /dev/null @@ -1,13 +0,0 @@ -libruby2.7 has rexml 3.2.3.1 which has latest security fixes - ---- a/Gemfile -+++ b/Gemfile -@@ -34,7 +34,7 @@ - gem 'bcrypt', '~> 3.1', '>= 3.1.14' - gem 'doorkeeper', '~> 5.5' - gem 'doorkeeper-openid_connect', '~> 1.7','>= 1.7.5' --gem 'rexml', '~> 3.2','>= 3.2.5' -+gem 'rexml', '~> 3.2','>= 3.2.3.1' - gem 'ruby-saml', '~> 1.13' - gem 'omniauth', '~> 1.8' - gem 'omniauth-auth0', '~> 2.0' diff --git a/debian/patches/Gemfile/0180-add-parser-gem.patch b/debian/patches/Gemfile/0180-add-parser-gem.patch deleted file mode 100644 index 6fdb2c2edd..0000000000 --- a/debian/patches/Gemfile/0180-add-parser-gem.patch +++ /dev/null @@ -1,14 +0,0 @@ -Forwarded: https://gitlab.com/gitlab-org/gitlab/-/issues/354323 - ---- a/Gemfile -+++ b/Gemfile -@@ -19,6 +19,9 @@ - # Supported DBs - gem 'pg', '~> 1.3' - -+# Background migrations/fix vulnerabilities -+gem 'parser', '~> 3.0' -+ - gem 'rugged', '~> 1.2' - gem 'grape-path-helpers', '~> 1.7' - diff --git a/debian/patches/Gemfile/0190-relax-rdoc.patch b/debian/patches/Gemfile/0190-relax-rdoc.patch deleted file mode 100644 index 0ea21c74e3..0000000000 --- a/debian/patches/Gemfile/0190-relax-rdoc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/Gemfile -+++ b/Gemfile -@@ -161,7 +161,7 @@ - gem 'commonmarker', '~> 0.23.4' - gem 'kramdown', '~> 2.3','>= 2.3.1' - gem 'RedCloth', '~> 4.3','>= 4.3.2' --gem 'rdoc', '~> 6.0' -+gem 'rdoc' - gem 'org-ruby', '~> 0.9.12' - gem 'creole', '~> 0.5.0' - gem 'wikicloth', '~> 0.8.1' diff --git a/debian/patches/Gemfile/0200-add-gitlab-dangerfiles.patch b/debian/patches/Gemfile/0200-add-gitlab-dangerfiles.patch deleted file mode 100644 index e298fd3da5..0000000000 --- a/debian/patches/Gemfile/0200-add-gitlab-dangerfiles.patch +++ /dev/null @@ -1,11 +0,0 @@ -Rakefile need this gem - ---- a/Gemfile -+++ b/Gemfile -@@ -468,3 +468,6 @@ - # Error Tracking OpenAPI client - # See https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/rake_tasks.md#update-openapi-client-for-error-tracking-feature - gem 'error_tracking_open_api', path: 'vendor/gems/error_tracking_open_api' -+ -+# This is required for Rakefile -+gem 'gitlab-dangerfiles' diff --git a/debian/patches/nodejs/0010-set-webpack-root.patch b/debian/patches/nodejs/0010-set-webpack-root.patch deleted file mode 100644 index 52a0db2bc7..0000000000 --- a/debian/patches/nodejs/0010-set-webpack-root.patch +++ /dev/null @@ -1,13 +0,0 @@ -Debian specific patch to help webpack find sources - ---- a/config/webpack.config.js -+++ b/config/webpack.config.js -@@ -28,7 +28,7 @@ - const MonacoWebpackPlugin = require('./plugins/monaco_webpack'); - const GraphqlKnownOperationsPlugin = require('./plugins/graphql_known_operations_plugin'); - --const ROOT_PATH = path.resolve(__dirname, '..'); -+const ROOT_PATH = '/usr/share/gitlab'; - const SUPPORTED_BROWSERS = fs.readFileSync(path.join(ROOT_PATH, '.browserslistrc'), 'utf-8'); - const SUPPORTED_BROWSERS_HASH = crypto - .createHash('sha256') diff --git a/debian/patches/nodejs/0020-remove-dev-dependencies.patch b/debian/patches/nodejs/0020-remove-dev-dependencies.patch deleted file mode 100644 index 56b15dc5c2..0000000000 --- a/debian/patches/nodejs/0020-remove-dev-dependencies.patch +++ /dev/null @@ -1,68 +0,0 @@ -These are not required in production - ---- a/package.json -+++ b/package.json -@@ -199,62 +199,7 @@ - "yaml": "^2.0.0-10" - }, - "devDependencies": { -- "@gitlab/eslint-plugin": "13.1.0", -- "@gitlab/stylelint-config": "4.1.0", -- "@graphql-eslint/eslint-plugin": "3.10.6", -- "@testing-library/dom": "^7.16.2", -- "@types/jest": "^26.0.24", -- "@vue/test-utils": "1.3.0", -- "acorn": "^6.3.0", -- "ajv": "^8.10.0", -- "ajv-formats": "^2.1.1", -- "axios-mock-adapter": "^1.15.0", -- "babel-jest": "^26.5.2", -- "chalk": "^2.4.1", -- "cheerio": "^1.0.0-rc.9", -- "commander": "^2.20.3", -- "custom-jquery-matchers": "^2.1.0", -- "docdash": "^1.0.2", -- "eslint": "7.32.0", -- "eslint-import-resolver-jest": "3.0.2", -- "eslint-import-resolver-webpack": "0.13.2", -- "eslint-plugin-no-jquery": "2.7.0", -- "gettext-extractor": "^3.5.3", -- "gettext-extractor-vue": "^5.0.0", -- "glob": "^7.1.6", -- "istanbul-lib-coverage": "^3.0.0", -- "istanbul-lib-report": "^3.0.0", -- "istanbul-reports": "^3.0.0", -- "jest": "^26.5.2", -- "jest-canvas-mock": "^2.1.2", -- "jest-diff": "^27.4.6", -- "jest-environment-jsdom": "^26.5.2", -- "jest-junit": "^12.0.0", -- "jest-raw-loader": "^1.0.1", -- "jest-transform-graphql": "^2.1.0", -- "jest-util": "^26.5.2", -- "jsdoc": "^3.5.5", -- "jsdoc-vue": "^1.0.0", -- "markdownlint-cli": "0.31.0", -- "md5": "^2.2.1", -- "miragejs": "^0.1.40", -- "mock-apollo-client": "1.2.0", -- "nodemon": "^2.0.4", -- "prettier": "2.2.1", -- "prosemirror-schema-basic": "^1.1.2", -- "prosemirror-schema-list": "^1.1.6", -- "prosemirror-test-builder": "^1.0.6", -- "purgecss": "^4.0.3", -- "purgecss-from-html": "^4.0.3", -- "sass": "^1.49.9", -- "stylelint": "^14.9.1", -- "timezone-mock": "^1.0.8", -- "vue-jest": "4.0.1", -- "webpack-dev-server": "4.9.3", -- "xhr-mock": "^2.5.1", -- "yarn-check-webpack-plugin": "^1.2.0", -- "yarn-deduplicate": "^5.0.0" -- }, -+ }, - "blockedDependencies": { - "bootstrap-vue": "https://docs.gitlab.com/ee/development/fe_guide/dependencies.html#bootstrapvue" - }, diff --git a/debian/patches/nodejs/0030-use-yarnpkg.patch b/debian/patches/nodejs/0030-use-yarnpkg.patch deleted file mode 100644 index 52cce68ff6..0000000000 --- a/debian/patches/nodejs/0030-use-yarnpkg.patch +++ /dev/null @@ -1,36 +0,0 @@ -Yarn executable in debian is yarnpkg - ---- a/lib/tasks/yarn.rake -+++ b/lib/tasks/yarn.rake -@@ -3,7 +3,7 @@ - namespace :yarn do - desc 'Ensure Yarn is installed' - task :available do -- unless system('yarn --version', out: File::NULL) -+ unless system('yarnpkg --version', out: File::NULL) - warn( - 'Error: Yarn executable was not detected in the system.'.color(:red), - 'Download Yarn at https://yarnpkg.com/en/docs/install'.color(:green) -@@ -14,10 +14,10 @@ - - desc 'Ensure Node dependencies are installed' - task check: ['yarn:available'] do -- unless system('yarn check --ignore-engines', out: File::NULL) -+ unless system('yarnpkg check --ignore-engines', out: File::NULL) - warn( -- 'Error: You have unmet dependencies. (`yarn check` command failed)'.color(:red), -- 'Run `yarn install` to install missing modules.'.color(:green) -+ 'Error: You have unmet dependencies. (`yarnpkg check` command failed)'.color(:red), -+ 'Run `yarnpkg install` to install missing modules.'.color(:green) - ) - abort - end -@@ -25,7 +25,7 @@ - - desc 'Install Node dependencies with Yarn' - task install: ['yarn:available'] do -- unless system('yarn install --pure-lockfile --ignore-engines --prefer-offline') -+ unless system('yarnpkg install') - abort 'Error: Unable to install node modules.'.color(:red) - end - end diff --git a/debian/patches/nodejs/0040-use-packaged-modules.patch b/debian/patches/nodejs/0040-use-packaged-modules.patch deleted file mode 100644 index 158ee9cace..0000000000 --- a/debian/patches/nodejs/0040-use-packaged-modules.patch +++ /dev/null @@ -1,241 +0,0 @@ -Use debian packaged node modules when available - - Exclude packaged modules from transpiling - - Remove webpack-bundle-analyzer - - Resolve .json files - - Add mkdirp 1.0 and loader-utils 2.0 to ensure compatibility for packaged - modules (See #976310) - - Use link protocol for modules with permission issues (which has a bin: entry - in package.json) or dependencies. Use portal protocol only for modules that - 1. does not have any other dependency and 2. does not have a bin: entry - See https://github.com/yarnpkg/berry/issues/2266 - - Even better, portal protocol tries to satisfy even devDependencies so avoid - it - - Modules with problems compression-webpack-plugin, copy-webpack-plugin, - jszip, mkdirp, js-yaml, font-awesome, katex, cache-loader, webpack - - babel-loader, cache-loader needs loader-utils 1.x and we already have 2.x and - no compat patch - - brace-expansion is a major version ahead in the archive - - xterm build is broken (#980406) - ---- a/config/webpack.config.js -+++ b/config/webpack.config.js -@@ -16,7 +16,6 @@ - const VUE_VERSION = require('vue/package.json').version; - - const webpack = require('webpack'); --const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); - const { StatsWriterPlugin } = require('webpack-stats-plugin'); - const WEBPACK_VERSION = require('webpack/package.json').version; - -@@ -242,6 +241,8 @@ - - entry: generateEntries, - -+ externals: [ 'canvas' ], -+ - output: { - path: WEBPACK_OUTPUT_PATH, - publicPath: WEBPACK_PUBLIC_PATH, -@@ -251,10 +252,15 @@ - }, - - resolve: { -- extensions: ['.js'], -+ extensions: ['.js', '.gql', '.graphql', '.json'], -+ modules: ['node_modules','/var/lib/gitlab/node_modules','/usr/share/gitlab/vendor/node_modules','/usr/share/gitlab/node_modules/mermaid/node_modules', '/usr/share/nodejs/markdown-it/node_modules/', '/usr/lib/nodejs', '/usr/share/nodejs'], - alias, - }, - -+ resolveLoader: { -+ modules: ['node_modules','/var/lib/gitlab/node_modules', '/usr/lib/nodejs','/usr/share/nodejs'], -+ }, -+ - module: { - strictExportPresence: true, - rules: [ -@@ -353,7 +359,7 @@ - }, - { - test: /\.(eot|ttf|woff|woff2)$/, -- include: /node_modules\/(katex\/dist\/fonts|monaco-editor)/, -+ include: /(node_modules\/monaco-editor|\/usr\/share\/fonts\/truetype\/katex)/, - loader: 'file-loader', - options: { - name: '[name].[contenthash:8].[ext]', -@@ -664,19 +670,6 @@ - }, - }, - -- // optionally generate webpack bundle analysis -- WEBPACK_REPORT && -- new BundleAnalyzerPlugin({ -- analyzerMode: 'static', -- generateStatsFile: true, -- openAnalyzer: false, -- reportFilename: path.join(ROOT_PATH, 'webpack-report/index.html'), -- statsFilename: path.join(ROOT_PATH, 'webpack-report/stats.json'), -- statsOptions: { -- source: false, -- }, -- }), -- - new webpack.DefinePlugin({ - // These are used to define window.gon.ee, window.gon.jh and other things properly in tests: - 'process.env.IS_EE': JSON.stringify(IS_EE), -@@ -744,6 +737,7 @@ - - node: { - fs: 'empty', // editorconfig requires 'fs' -+ Buffer: 'mock', - setImmediate: false, - }, - }; ---- a/app/assets/javascripts/pdf/index.vue -+++ b/app/assets/javascripts/pdf/index.vue -@@ -1,6 +1,6 @@ - - - -
- -

Chroma Playground

- -
- Chroma is a general purpose syntax highlighter in pure Go. - It takes source code and other structured text and converts it into syntax highlighted HTML, ANSI-coloured text, - etc. Chroma is based heavily on Pygments, and includes translators for Pygments lexers and styles. -
- -
- {{ .CSRFField }} -
-
- -
-
- -
-
-
- -
- -
-
- -
-
-
-
- -
- -
- -
-
- -
- - - - - -
-
-
- - \ No newline at end of file diff --git a/workhorse-vendor/github.com/alecthomas/chroma/coalesce.go b/workhorse-vendor/github.com/alecthomas/chroma/coalesce.go deleted file mode 100644 index f5048951a2..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/coalesce.go +++ /dev/null @@ -1,35 +0,0 @@ -package chroma - -// Coalesce is a Lexer interceptor that collapses runs of common types into a single token. -func Coalesce(lexer Lexer) Lexer { return &coalescer{lexer} } - -type coalescer struct{ Lexer } - -func (d *coalescer) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { - var prev Token - it, err := d.Lexer.Tokenise(options, text) - if err != nil { - return nil, err - } - return func() Token { - for token := it(); token != (EOF); token = it() { - if len(token.Value) == 0 { - continue - } - if prev == EOF { - prev = token - } else { - if prev.Type == token.Type && len(prev.Value) < 8192 { - prev.Value += token.Value - } else { - out := prev - prev = token - return out - } - } - } - out := prev - prev = EOF - return out - }, nil -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/coalesce_test.go b/workhorse-vendor/github.com/alecthomas/chroma/coalesce_test.go deleted file mode 100644 index 5c181b227b..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/coalesce_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package chroma - -import ( - "testing" - - "github.com/alecthomas/assert" -) - -func TestCoalesce(t *testing.T) { - lexer := Coalesce(MustNewLexer(nil, Rules{ - "root": []Rule{ - {`[!@#$%^&*()]`, Punctuation, nil}, - }, - })) - actual, err := Tokenise(lexer, nil, "!@#$") - assert.NoError(t, err) - expected := []Token{{Punctuation, "!@#$"}} - assert.Equal(t, expected, actual) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/colour.go b/workhorse-vendor/github.com/alecthomas/chroma/colour.go deleted file mode 100644 index 15d794ce2a..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/colour.go +++ /dev/null @@ -1,164 +0,0 @@ -package chroma - -import ( - "fmt" - "math" - "strconv" - "strings" -) - -// ANSI2RGB maps ANSI colour names, as supported by Chroma, to hex RGB values. -var ANSI2RGB = map[string]string{ - "#ansiblack": "000000", - "#ansidarkred": "7f0000", - "#ansidarkgreen": "007f00", - "#ansibrown": "7f7fe0", - "#ansidarkblue": "00007f", - "#ansipurple": "7f007f", - "#ansiteal": "007f7f", - "#ansilightgray": "e5e5e5", - // Normal - "#ansidarkgray": "555555", - "#ansired": "ff0000", - "#ansigreen": "00ff00", - "#ansiyellow": "ffff00", - "#ansiblue": "0000ff", - "#ansifuchsia": "ff00ff", - "#ansiturquoise": "00ffff", - "#ansiwhite": "ffffff", - - // Aliases without the "ansi" prefix, because...why? - "#black": "000000", - "#darkred": "7f0000", - "#darkgreen": "007f00", - "#brown": "7f7fe0", - "#darkblue": "00007f", - "#purple": "7f007f", - "#teal": "007f7f", - "#lightgray": "e5e5e5", - // Normal - "#darkgray": "555555", - "#red": "ff0000", - "#green": "00ff00", - "#yellow": "ffff00", - "#blue": "0000ff", - "#fuchsia": "ff00ff", - "#turquoise": "00ffff", - "#white": "ffffff", -} - -// Colour represents an RGB colour. -type Colour int32 - -// NewColour creates a Colour directly from RGB values. -func NewColour(r, g, b uint8) Colour { - return ParseColour(fmt.Sprintf("%02x%02x%02x", r, g, b)) -} - -// Distance between this colour and another. -// -// This uses the approach described here (https://www.compuphase.com/cmetric.htm). -// This is not as accurate as LAB, et. al. but is *vastly* simpler and sufficient for our needs. -func (c Colour) Distance(e2 Colour) float64 { - ar, ag, ab := int64(c.Red()), int64(c.Green()), int64(c.Blue()) - br, bg, bb := int64(e2.Red()), int64(e2.Green()), int64(e2.Blue()) - rmean := (ar + br) / 2 - r := ar - br - g := ag - bg - b := ab - bb - return math.Sqrt(float64((((512 + rmean) * r * r) >> 8) + 4*g*g + (((767 - rmean) * b * b) >> 8))) -} - -// Brighten returns a copy of this colour with its brightness adjusted. -// -// If factor is negative, the colour is darkened. -// -// Uses approach described here (http://www.pvladov.com/2012/09/make-color-lighter-or-darker.html). -func (c Colour) Brighten(factor float64) Colour { - r := float64(c.Red()) - g := float64(c.Green()) - b := float64(c.Blue()) - - if factor < 0 { - factor++ - r *= factor - g *= factor - b *= factor - } else { - r = (255-r)*factor + r - g = (255-g)*factor + g - b = (255-b)*factor + b - } - return NewColour(uint8(r), uint8(g), uint8(b)) -} - -// BrightenOrDarken brightens a colour if it is < 0.5 brighteness or darkens if > 0.5 brightness. -func (c Colour) BrightenOrDarken(factor float64) Colour { - if c.Brightness() < 0.5 { - return c.Brighten(factor) - } - return c.Brighten(-factor) -} - -// Brightness of the colour (roughly) in the range 0.0 to 1.0 -func (c Colour) Brightness() float64 { - return (float64(c.Red()) + float64(c.Green()) + float64(c.Blue())) / 255.0 / 3.0 -} - -// ParseColour in the forms #rgb, #rrggbb, #ansi, or #. -// Will return an "unset" colour if invalid. -func ParseColour(colour string) Colour { - colour = normaliseColour(colour) - n, err := strconv.ParseUint(colour, 16, 32) - if err != nil { - return 0 - } - return Colour(n + 1) -} - -// MustParseColour is like ParseColour except it panics if the colour is invalid. -// -// Will panic if colour is in an invalid format. -func MustParseColour(colour string) Colour { - parsed := ParseColour(colour) - if !parsed.IsSet() { - panic(fmt.Errorf("invalid colour %q", colour)) - } - return parsed -} - -// IsSet returns true if the colour is set. -func (c Colour) IsSet() bool { return c != 0 } - -func (c Colour) String() string { return fmt.Sprintf("#%06x", int(c-1)) } -func (c Colour) GoString() string { return fmt.Sprintf("Colour(0x%06x)", int(c-1)) } - -// Red component of colour. -func (c Colour) Red() uint8 { return uint8(((c - 1) >> 16) & 0xff) } - -// Green component of colour. -func (c Colour) Green() uint8 { return uint8(((c - 1) >> 8) & 0xff) } - -// Blue component of colour. -func (c Colour) Blue() uint8 { return uint8((c - 1) & 0xff) } - -// Colours is an orderable set of colours. -type Colours []Colour - -func (c Colours) Len() int { return len(c) } -func (c Colours) Swap(i, j int) { c[i], c[j] = c[j], c[i] } -func (c Colours) Less(i, j int) bool { return c[i] < c[j] } - -// Convert colours to #rrggbb. -func normaliseColour(colour string) string { - if ansi, ok := ANSI2RGB[colour]; ok { - return ansi - } - if strings.HasPrefix(colour, "#") { - colour = colour[1:] - if len(colour) == 3 { - return colour[0:1] + colour[0:1] + colour[1:2] + colour[1:2] + colour[2:3] + colour[2:3] - } - } - return colour -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/colour_test.go b/workhorse-vendor/github.com/alecthomas/chroma/colour_test.go deleted file mode 100644 index adc8544c3c..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/colour_test.go +++ /dev/null @@ -1,42 +0,0 @@ -package chroma - -import ( - "testing" - - "github.com/alecthomas/assert" -) - -func TestColourRGB(t *testing.T) { - colour := ParseColour("#8913af") - assert.Equal(t, uint8(0x89), colour.Red()) - assert.Equal(t, uint8(0x13), colour.Green()) - assert.Equal(t, uint8(0xaf), colour.Blue()) -} - -func TestColourString(t *testing.T) { - assert.Equal(t, "#8913af", ParseColour("#8913af").String()) -} - -func distance(a, b uint8) uint8 { - if a < b { - return b - a - } - return a - b -} - -func TestColourBrighten(t *testing.T) { - actual := NewColour(128, 128, 128).Brighten(0.5) - // Closeish to what we expect is fine. - assert.True(t, distance(192, actual.Red()) <= 2) - assert.True(t, distance(192, actual.Blue()) <= 2) - assert.True(t, distance(192, actual.Green()) <= 2) - actual = NewColour(128, 128, 128).Brighten(-0.5) - assert.True(t, distance(65, actual.Red()) <= 2) - assert.True(t, distance(65, actual.Blue()) <= 2) - assert.True(t, distance(65, actual.Green()) <= 2) -} - -func TestColourBrightess(t *testing.T) { - actual := NewColour(128, 128, 128).Brightness() - assert.True(t, distance(128, uint8(actual*255.0)) <= 2) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/delegate.go b/workhorse-vendor/github.com/alecthomas/chroma/delegate.go deleted file mode 100644 index 5cef01bd78..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/delegate.go +++ /dev/null @@ -1,137 +0,0 @@ -package chroma - -import ( - "bytes" -) - -type delegatingLexer struct { - root Lexer - language Lexer -} - -// DelegatingLexer combines two lexers to handle the common case of a language embedded inside another, such as PHP -// inside HTML or PHP inside plain text. -// -// It takes two lexer as arguments: a root lexer and a language lexer. First everything is scanned using the language -// lexer, which must return "Other" for unrecognised tokens. Then all "Other" tokens are lexed using the root lexer. -// Finally, these two sets of tokens are merged. -// -// The lexers from the template lexer package use this base lexer. -func DelegatingLexer(root Lexer, language Lexer) Lexer { - return &delegatingLexer{ - root: root, - language: language, - } -} - -func (d *delegatingLexer) Config() *Config { - return d.language.Config() -} - -// An insertion is the character range where language tokens should be inserted. -type insertion struct { - start, end int - tokens []Token -} - -func (d *delegatingLexer) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { // nolint: gocognit - tokens, err := Tokenise(Coalesce(d.language), options, text) - if err != nil { - return nil, err - } - // Compute insertions and gather "Other" tokens. - others := &bytes.Buffer{} - insertions := []*insertion{} - var insert *insertion - offset := 0 - var last Token - for _, t := range tokens { - if t.Type == Other { - if last != EOF && insert != nil && last.Type != Other { - insert.end = offset - } - others.WriteString(t.Value) - } else { - if last == EOF || last.Type == Other { - insert = &insertion{start: offset} - insertions = append(insertions, insert) - } - insert.tokens = append(insert.tokens, t) - } - last = t - offset += len(t.Value) - } - - if len(insertions) == 0 { - return d.root.Tokenise(options, text) - } - - // Lex the other tokens. - rootTokens, err := Tokenise(Coalesce(d.root), options, others.String()) - if err != nil { - return nil, err - } - - // Interleave the two sets of tokens. - var out []Token - offset = 0 // Offset into text. - tokenIndex := 0 - nextToken := func() Token { - if tokenIndex >= len(rootTokens) { - return EOF - } - t := rootTokens[tokenIndex] - tokenIndex++ - return t - } - insertionIndex := 0 - nextInsertion := func() *insertion { - if insertionIndex >= len(insertions) { - return nil - } - i := insertions[insertionIndex] - insertionIndex++ - return i - } - t := nextToken() - i := nextInsertion() - for t != EOF || i != nil { - // fmt.Printf("%d->%d:%q %d->%d:%q\n", offset, offset+len(t.Value), t.Value, i.start, i.end, Stringify(i.tokens...)) - if t == EOF || (i != nil && i.start < offset+len(t.Value)) { - var l Token - l, t = splitToken(t, i.start-offset) - if l != EOF { - out = append(out, l) - offset += len(l.Value) - } - out = append(out, i.tokens...) - offset += i.end - i.start - if t == EOF { - t = nextToken() - } - i = nextInsertion() - } else { - out = append(out, t) - offset += len(t.Value) - t = nextToken() - } - } - return Literator(out...), nil -} - -func splitToken(t Token, offset int) (l Token, r Token) { - if t == EOF { - return EOF, EOF - } - if offset == 0 { - return EOF, t - } - if offset == len(t.Value) { - return t, EOF - } - l = t.Clone() - r = t.Clone() - l.Value = l.Value[:offset] - r.Value = r.Value[offset:] - return -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/delegate_test.go b/workhorse-vendor/github.com/alecthomas/chroma/delegate_test.go deleted file mode 100644 index ba13e39b75..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/delegate_test.go +++ /dev/null @@ -1,111 +0,0 @@ -package chroma - -import ( - "testing" - - "github.com/alecthomas/assert" -) - -func makeDelegationTestLexers() (lang Lexer, root Lexer) { - return MustNewLexer(nil, Rules{ - "root": { - {`\<\?`, CommentPreproc, Push("inside")}, - {`.`, Other, nil}, - }, - "inside": { - {`\?\>`, CommentPreproc, Pop(1)}, - {`\bwhat\b`, Keyword, nil}, - {`\s+`, Whitespace, nil}, - }, - }), - MustNewLexer(nil, Rules{ - "root": { - {`\bhello\b`, Keyword, nil}, - {`\b(world|there)\b`, Name, nil}, - {`\s+`, Whitespace, nil}, - }, - }) -} - -func TestDelegate(t *testing.T) { - testdata := []struct { - name string - source string - expected []Token - }{ - {"SourceInMiddle", `hello world there`, []Token{ - {Keyword, "hello"}, - {TextWhitespace, " "}, - {Name, "world"}, - {TextWhitespace, " "}, - // lang - {CommentPreproc, ""}, - // /lang - {TextWhitespace, " "}, - {Name, "there"}, - }}, - {"SourceBeginning", ` hello world there`, []Token{ - {CommentPreproc, ""}, - {TextWhitespace, " "}, - {Keyword, "hello"}, - {TextWhitespace, " "}, - {Name, "world"}, - {TextWhitespace, " "}, - {Name, "there"}, - }}, - {"SourceEnd", `hello world hello there hello", []Token{ - {Keyword, "hello"}, - {TextWhitespace, " "}, - {Name, "world"}, - {TextWhitespace, " "}, - {CommentPreproc, ""}, - {TextWhitespace, " "}, - {Keyword, "hello"}, - {TextWhitespace, " "}, - {Name, "there"}, - {TextWhitespace, " "}, - {CommentPreproc, ""}, - {TextWhitespace, " "}, - {Keyword, "hello"}, - }}, - } - lang, root := makeDelegationTestLexers() - delegate := DelegatingLexer(root, lang) - for _, test := range testdata { - // nolint: scopelint - t.Run(test.name, func(t *testing.T) { - it, err := delegate.Tokenise(nil, test.source) - assert.NoError(t, err) - actual := it.Tokens() - assert.Equal(t, test.expected, actual) - }) - } -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/doc.go b/workhorse-vendor/github.com/alecthomas/chroma/doc.go deleted file mode 100644 index 4dde77c818..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// Package chroma takes source code and other structured text and converts it into syntax highlighted HTML, ANSI- -// coloured text, etc. -// -// Chroma is based heavily on Pygments, and includes translators for Pygments lexers and styles. -// -// For more information, go here: https://github.com/alecthomas/chroma -package chroma diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatter.go b/workhorse-vendor/github.com/alecthomas/chroma/formatter.go deleted file mode 100644 index 00dd5d8df8..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatter.go +++ /dev/null @@ -1,43 +0,0 @@ -package chroma - -import ( - "io" -) - -// A Formatter for Chroma lexers. -type Formatter interface { - // Format returns a formatting function for tokens. - // - // If the iterator panics, the Formatter should recover. - Format(w io.Writer, style *Style, iterator Iterator) error -} - -// A FormatterFunc is a Formatter implemented as a function. -// -// Guards against iterator panics. -type FormatterFunc func(w io.Writer, style *Style, iterator Iterator) error - -func (f FormatterFunc) Format(w io.Writer, s *Style, it Iterator) (err error) { // nolint - defer func() { - if perr := recover(); perr != nil { - err = perr.(error) - } - }() - return f(w, s, it) -} - -type recoveringFormatter struct { - Formatter -} - -func (r recoveringFormatter) Format(w io.Writer, s *Style, it Iterator) (err error) { - defer func() { - if perr := recover(); perr != nil { - err = perr.(error) - } - }() - return r.Formatter.Format(w, s, it) -} - -// RecoveringFormatter wraps a formatter with panic recovery. -func RecoveringFormatter(formatter Formatter) Formatter { return recoveringFormatter{formatter} } diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/api.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/api.go deleted file mode 100644 index 6da0a24cc1..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/api.go +++ /dev/null @@ -1,57 +0,0 @@ -package formatters - -import ( - "io" - "sort" - - "github.com/alecthomas/chroma" - "github.com/alecthomas/chroma/formatters/html" - "github.com/alecthomas/chroma/formatters/svg" -) - -var ( - // NoOp formatter. - NoOp = Register("noop", chroma.FormatterFunc(func(w io.Writer, s *chroma.Style, iterator chroma.Iterator) error { - for t := iterator(); t != chroma.EOF; t = iterator() { - if _, err := io.WriteString(w, t.Value); err != nil { - return err - } - } - return nil - })) - // Default HTML formatter outputs self-contained HTML. - htmlFull = Register("html", html.New(html.Standalone(true), html.WithClasses(true))) // nolint - SVG = Register("svg", svg.New(svg.EmbedFont("Liberation Mono", svg.FontLiberationMono, svg.WOFF))) -) - -// Fallback formatter. -var Fallback = NoOp - -// Registry of Formatters. -var Registry = map[string]chroma.Formatter{} - -// Names of registered formatters. -func Names() []string { - out := []string{} - for name := range Registry { - out = append(out, name) - } - sort.Strings(out) - return out -} - -// Get formatter by name. -// -// If the given formatter is not found, the Fallback formatter will be returned. -func Get(name string) chroma.Formatter { - if f, ok := Registry[name]; ok { - return f - } - return Fallback -} - -// Register a named formatter. -func Register(name string, formatter chroma.Formatter) chroma.Formatter { - Registry[name] = formatter - return formatter -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/html/html.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/html/html.go deleted file mode 100644 index ad48da1a45..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/html/html.go +++ /dev/null @@ -1,443 +0,0 @@ -package html - -import ( - "fmt" - "html" - "io" - "sort" - "strings" - - "github.com/alecthomas/chroma" -) - -// Option sets an option of the HTML formatter. -type Option func(f *Formatter) - -// Standalone configures the HTML formatter for generating a standalone HTML document. -func Standalone(b bool) Option { return func(f *Formatter) { f.standalone = b } } - -// ClassPrefix sets the CSS class prefix. -func ClassPrefix(prefix string) Option { return func(f *Formatter) { f.prefix = prefix } } - -// WithClasses emits HTML using CSS classes, rather than inline styles. -func WithClasses(b bool) Option { return func(f *Formatter) { f.Classes = b } } - -// WithAllClasses disables an optimisation that omits redundant CSS classes. -func WithAllClasses(b bool) Option { return func(f *Formatter) { f.allClasses = b } } - -// TabWidth sets the number of characters for a tab. Defaults to 8. -func TabWidth(width int) Option { return func(f *Formatter) { f.tabWidth = width } } - -// PreventSurroundingPre prevents the surrounding pre tags around the generated code. -func PreventSurroundingPre(b bool) Option { - return func(f *Formatter) { - if b { - f.preWrapper = nopPreWrapper - } else { - f.preWrapper = defaultPreWrapper - } - } -} - -// WithPreWrapper allows control of the surrounding pre tags. -func WithPreWrapper(wrapper PreWrapper) Option { - return func(f *Formatter) { - f.preWrapper = wrapper - } -} - -// WithLineNumbers formats output with line numbers. -func WithLineNumbers(b bool) Option { - return func(f *Formatter) { - f.lineNumbers = b - } -} - -// LineNumbersInTable will, when combined with WithLineNumbers, separate the line numbers -// and code in table td's, which make them copy-and-paste friendly. -func LineNumbersInTable(b bool) Option { - return func(f *Formatter) { - f.lineNumbersInTable = b - } -} - -// LinkableLineNumbers decorates the line numbers HTML elements with an "id" -// attribute so they can be linked. -func LinkableLineNumbers(b bool, prefix string) Option { - return func(f *Formatter) { - f.linkableLineNumbers = b - f.lineNumbersIDPrefix = prefix - } -} - -// HighlightLines higlights the given line ranges with the Highlight style. -// -// A range is the beginning and ending of a range as 1-based line numbers, inclusive. -func HighlightLines(ranges [][2]int) Option { - return func(f *Formatter) { - f.highlightRanges = ranges - sort.Sort(f.highlightRanges) - } -} - -// BaseLineNumber sets the initial number to start line numbering at. Defaults to 1. -func BaseLineNumber(n int) Option { - return func(f *Formatter) { - f.baseLineNumber = n - } -} - -// New HTML formatter. -func New(options ...Option) *Formatter { - f := &Formatter{ - baseLineNumber: 1, - preWrapper: defaultPreWrapper, - } - for _, option := range options { - option(f) - } - return f -} - -// PreWrapper defines the operations supported in WithPreWrapper. -type PreWrapper interface { - // Start is called to write a start
 element.
-	// The code flag tells whether this block surrounds
-	// highlighted code. This will be false when surrounding
-	// line numbers.
-	Start(code bool, styleAttr string) string
-
-	// End is called to write the end 
element. - End(code bool) string -} - -type preWrapper struct { - start func(code bool, styleAttr string) string - end func(code bool) string -} - -func (p preWrapper) Start(code bool, styleAttr string) string { - return p.start(code, styleAttr) -} - -func (p preWrapper) End(code bool) string { - return p.end(code) -} - -var ( - nopPreWrapper = preWrapper{ - start: func(code bool, styleAttr string) string { return "" }, - end: func(code bool) string { return "" }, - } - defaultPreWrapper = preWrapper{ - start: func(code bool, styleAttr string) string { - return fmt.Sprintf("", styleAttr) - }, - end: func(code bool) string { - return "" - }, - } -) - -// Formatter that generates HTML. -type Formatter struct { - standalone bool - prefix string - Classes bool // Exported field to detect when classes are being used - allClasses bool - preWrapper PreWrapper - tabWidth int - lineNumbers bool - lineNumbersInTable bool - linkableLineNumbers bool - lineNumbersIDPrefix string - highlightRanges highlightRanges - baseLineNumber int -} - -type highlightRanges [][2]int - -func (h highlightRanges) Len() int { return len(h) } -func (h highlightRanges) Swap(i, j int) { h[i], h[j] = h[j], h[i] } -func (h highlightRanges) Less(i, j int) bool { return h[i][0] < h[j][0] } - -func (f *Formatter) Format(w io.Writer, style *chroma.Style, iterator chroma.Iterator) (err error) { - return f.writeHTML(w, style, iterator.Tokens()) -} - -// We deliberately don't use html/template here because it is two orders of magnitude slower (benchmarked). -// -// OTOH we need to be super careful about correct escaping... -func (f *Formatter) writeHTML(w io.Writer, style *chroma.Style, tokens []chroma.Token) (err error) { // nolint: gocyclo - css := f.styleToCSS(style) - if !f.Classes { - for t, style := range css { - css[t] = compressStyle(style) - } - } - if f.standalone { - fmt.Fprint(w, "\n") - if f.Classes { - fmt.Fprint(w, "") - } - fmt.Fprintf(w, "\n", f.styleAttr(css, chroma.Background)) - } - - wrapInTable := f.lineNumbers && f.lineNumbersInTable - - lines := chroma.SplitTokensIntoLines(tokens) - lineDigits := len(fmt.Sprintf("%d", f.baseLineNumber+len(lines)-1)) - highlightIndex := 0 - - if wrapInTable { - // List line numbers in its own - fmt.Fprintf(w, "\n", f.styleAttr(css, chroma.Background)) - fmt.Fprintf(w, "", f.styleAttr(css, chroma.LineTable)) - fmt.Fprintf(w, "\n", f.styleAttr(css, chroma.LineTableTD)) - fmt.Fprintf(w, f.preWrapper.Start(false, f.styleAttr(css, chroma.Background))) - for index := range lines { - line := f.baseLineNumber + index - highlight, next := f.shouldHighlight(highlightIndex, line) - if next { - highlightIndex++ - } - if highlight { - fmt.Fprintf(w, "", f.styleAttr(css, chroma.LineHighlight)) - } - - fmt.Fprintf(w, "%*d\n", f.styleAttr(css, chroma.LineNumbersTable), f.lineIDAttribute(line), lineDigits, line) - - if highlight { - fmt.Fprintf(w, "") - } - } - fmt.Fprint(w, f.preWrapper.End(false)) - fmt.Fprint(w, "\n") - fmt.Fprintf(w, "\n", f.styleAttr(css, chroma.LineTableTD, "width:100%")) - } - - fmt.Fprintf(w, f.preWrapper.Start(true, f.styleAttr(css, chroma.Background))) - - highlightIndex = 0 - for index, tokens := range lines { - // 1-based line number. - line := f.baseLineNumber + index - highlight, next := f.shouldHighlight(highlightIndex, line) - if next { - highlightIndex++ - } - if highlight { - fmt.Fprintf(w, "", f.styleAttr(css, chroma.LineHighlight)) - } - - if f.lineNumbers && !wrapInTable { - fmt.Fprintf(w, "%*d", f.styleAttr(css, chroma.LineNumbers), f.lineIDAttribute(line), lineDigits, line) - } - - for _, token := range tokens { - html := html.EscapeString(token.String()) - attr := f.styleAttr(css, token.Type) - if attr != "" { - html = fmt.Sprintf("%s", attr, html) - } - fmt.Fprint(w, html) - } - if highlight { - fmt.Fprintf(w, "") - } - } - - fmt.Fprintf(w, f.preWrapper.End(true)) - - if wrapInTable { - fmt.Fprint(w, "\n") - fmt.Fprint(w, "\n") - } - - if f.standalone { - fmt.Fprint(w, "\n\n") - fmt.Fprint(w, "\n") - } - - return nil -} - -func (f *Formatter) lineIDAttribute(line int) string { - if !f.linkableLineNumbers { - return "" - } - return fmt.Sprintf(" id=\"%s%d\"", f.lineNumbersIDPrefix, line) -} - -func (f *Formatter) shouldHighlight(highlightIndex, line int) (bool, bool) { - next := false - for highlightIndex < len(f.highlightRanges) && line > f.highlightRanges[highlightIndex][1] { - highlightIndex++ - next = true - } - if highlightIndex < len(f.highlightRanges) { - hrange := f.highlightRanges[highlightIndex] - if line >= hrange[0] && line <= hrange[1] { - return true, next - } - } - return false, next -} - -func (f *Formatter) class(t chroma.TokenType) string { - for t != 0 { - if cls, ok := chroma.StandardTypes[t]; ok { - if cls != "" { - return f.prefix + cls - } - return "" - } - t = t.Parent() - } - if cls := chroma.StandardTypes[t]; cls != "" { - return f.prefix + cls - } - return "" -} - -func (f *Formatter) styleAttr(styles map[chroma.TokenType]string, tt chroma.TokenType, extraCSS ...string) string { - if f.Classes { - cls := f.class(tt) - if cls == "" { - return "" - } - return fmt.Sprintf(` class="%s"`, cls) - } - if _, ok := styles[tt]; !ok { - tt = tt.SubCategory() - if _, ok := styles[tt]; !ok { - tt = tt.Category() - if _, ok := styles[tt]; !ok { - return "" - } - } - } - css := []string{styles[tt]} - css = append(css, extraCSS...) - return fmt.Sprintf(` style="%s"`, strings.Join(css, ";")) -} - -func (f *Formatter) tabWidthStyle() string { - if f.tabWidth != 0 && f.tabWidth != 8 { - return fmt.Sprintf("; -moz-tab-size: %[1]d; -o-tab-size: %[1]d; tab-size: %[1]d", f.tabWidth) - } - return "" -} - -// WriteCSS writes CSS style definitions (without any surrounding HTML). -func (f *Formatter) WriteCSS(w io.Writer, style *chroma.Style) error { - css := f.styleToCSS(style) - // Special-case background as it is mapped to the outer ".chroma" class. - if _, err := fmt.Fprintf(w, "/* %s */ .%schroma { %s }\n", chroma.Background, f.prefix, css[chroma.Background]); err != nil { - return err - } - // Special-case code column of table to expand width. - if f.lineNumbers && f.lineNumbersInTable { - if _, err := fmt.Fprintf(w, "/* %s */ .%schroma .%s:last-child { width: 100%%; }", - chroma.LineTableTD, f.prefix, f.class(chroma.LineTableTD)); err != nil { - return err - } - } - // Special-case line number highlighting when targeted. - if f.lineNumbers || f.lineNumbersInTable { - targetedLineCSS := StyleEntryToCSS(style.Get(chroma.LineHighlight)) - for _, tt := range []chroma.TokenType{chroma.LineNumbers, chroma.LineNumbersTable} { - fmt.Fprintf(w, "/* %s targeted by URL anchor */ .%schroma .%s:target { %s }\n", tt, f.prefix, f.class(tt), targetedLineCSS) - } - } - tts := []int{} - for tt := range css { - tts = append(tts, int(tt)) - } - sort.Ints(tts) - for _, ti := range tts { - tt := chroma.TokenType(ti) - if tt == chroma.Background { - continue - } - class := f.class(tt) - if class == "" { - continue - } - styles := css[tt] - if _, err := fmt.Fprintf(w, "/* %s */ .%schroma .%s { %s }\n", tt, f.prefix, class, styles); err != nil { - return err - } - } - return nil -} - -func (f *Formatter) styleToCSS(style *chroma.Style) map[chroma.TokenType]string { - classes := map[chroma.TokenType]string{} - bg := style.Get(chroma.Background) - // Convert the style. - for t := range chroma.StandardTypes { - entry := style.Get(t) - if t != chroma.Background { - entry = entry.Sub(bg) - } - if !f.allClasses && entry.IsZero() { - continue - } - classes[t] = StyleEntryToCSS(entry) - } - classes[chroma.Background] += f.tabWidthStyle() - lineNumbersStyle := "margin-right: 0.4em; padding: 0 0.4em 0 0.4em;" - // All rules begin with default rules followed by user provided rules - classes[chroma.LineNumbers] = lineNumbersStyle + classes[chroma.LineNumbers] - classes[chroma.LineNumbersTable] = lineNumbersStyle + classes[chroma.LineNumbersTable] - classes[chroma.LineHighlight] = "display: block; width: 100%;" + classes[chroma.LineHighlight] - classes[chroma.LineTable] = "border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block;" + classes[chroma.LineTable] - classes[chroma.LineTableTD] = "vertical-align: top; padding: 0; margin: 0; border: 0;" + classes[chroma.LineTableTD] - return classes -} - -// StyleEntryToCSS converts a chroma.StyleEntry to CSS attributes. -func StyleEntryToCSS(e chroma.StyleEntry) string { - styles := []string{} - if e.Colour.IsSet() { - styles = append(styles, "color: "+e.Colour.String()) - } - if e.Background.IsSet() { - styles = append(styles, "background-color: "+e.Background.String()) - } - if e.Bold == chroma.Yes { - styles = append(styles, "font-weight: bold") - } - if e.Italic == chroma.Yes { - styles = append(styles, "font-style: italic") - } - if e.Underline == chroma.Yes { - styles = append(styles, "text-decoration: underline") - } - return strings.Join(styles, "; ") -} - -// Compress CSS attributes - remove spaces, transform 6-digit colours to 3. -func compressStyle(s string) string { - parts := strings.Split(s, ";") - out := []string{} - for _, p := range parts { - p = strings.Join(strings.Fields(p), " ") - p = strings.Replace(p, ": ", ":", 1) - if strings.Contains(p, "#") { - c := p[len(p)-6:] - if c[0] == c[1] && c[2] == c[3] && c[4] == c[5] { - p = p[:len(p)-6] + c[0:1] + c[2:3] + c[4:5] - } - } - out = append(out, p) - } - return strings.Join(out, ";") -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/html/html_test.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/html/html_test.go deleted file mode 100644 index b056f19a41..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/html/html_test.go +++ /dev/null @@ -1,235 +0,0 @@ -package html - -import ( - "bytes" - "fmt" - "io/ioutil" - "strings" - "testing" - - "github.com/alecthomas/assert" - - "github.com/alecthomas/chroma" - "github.com/alecthomas/chroma/lexers" - "github.com/alecthomas/chroma/styles" -) - -func TestCompressStyle(t *testing.T) { - style := "color: #888888; background-color: #faffff" - actual := compressStyle(style) - expected := "color:#888;background-color:#faffff" - assert.Equal(t, expected, actual) -} - -func BenchmarkHTMLFormatter(b *testing.B) { - formatter := New() - b.ResetTimer() - for i := 0; i < b.N; i++ { - it, err := lexers.Get("go").Tokenise(nil, "package main\nfunc main()\n{\nprintln(`hello world`)\n}\n") - assert.NoError(b, err) - err = formatter.Format(ioutil.Discard, styles.Fallback, it) - assert.NoError(b, err) - } -} - -func TestSplitTokensIntoLines(t *testing.T) { - in := []chroma.Token{ - {Value: "hello", Type: chroma.NameKeyword}, - {Value: " world\nwhat?\n", Type: chroma.NameKeyword}, - } - expected := [][]chroma.Token{ - { - {Type: chroma.NameKeyword, Value: "hello"}, - {Type: chroma.NameKeyword, Value: " world\n"}, - }, - { - {Type: chroma.NameKeyword, Value: "what?\n"}, - }, - } - actual := chroma.SplitTokensIntoLines(in) - assert.Equal(t, expected, actual) -} - -func TestFormatterStyleToCSS(t *testing.T) { - builder := styles.Get("github").Builder() - builder.Add(chroma.LineHighlight, "bg:#ffffcc") - builder.Add(chroma.LineNumbers, "bold") - style, err := builder.Build() - if err != nil { - t.Error(err) - } - formatter := New(WithClasses(true)) - css := formatter.styleToCSS(style) - for _, s := range css { - if strings.HasPrefix(strings.TrimSpace(s), ";") { - t.Errorf("rule starts with semicolon - expected valid css rule without semicolon: %v", s) - } - } -} - -func TestClassPrefix(t *testing.T) { - wantPrefix := "some-prefix-" - withPrefix := New(WithClasses(true), ClassPrefix(wantPrefix)) - noPrefix := New(WithClasses(true)) - for st := range chroma.StandardTypes { - if noPrefix.class(st) == "" { - if got := withPrefix.class(st); got != "" { - t.Errorf("Formatter.class(%v): prefix shouldn't be added to empty classes", st) - } - } else if got := withPrefix.class(st); !strings.HasPrefix(got, wantPrefix) { - t.Errorf("Formatter.class(%v): %q should have a class prefix", st, got) - } - } - - var styleBuf bytes.Buffer - err := withPrefix.WriteCSS(&styleBuf, styles.Fallback) - assert.NoError(t, err) - if !strings.Contains(styleBuf.String(), ".some-prefix-chroma ") { - t.Error("Stylesheets should have a class prefix") - } -} - -func TestTableLineNumberNewlines(t *testing.T) { - f := New(WithClasses(true), WithLineNumbers(true), LineNumbersInTable(true)) - it, err := lexers.Get("go").Tokenise(nil, "package main\nfunc main()\n{\nprintln(`hello world`)\n}\n") - assert.NoError(t, err) - - var buf bytes.Buffer - err = f.Format(&buf, styles.Fallback, it) - assert.NoError(t, err) - - // Don't bother testing the whole output, just verify it's got line numbers - // in a
-friendly format.
-	// Note: placing the newlines inside the  lets browser selections look
-	// better, instead of "skipping" over the span margin.
-	assert.Contains(t, buf.String(), `2
-3
-4
-`)
-}
-
-func TestTableLineNumberSpacing(t *testing.T) {
-	testCases := []struct {
-		baseLineNumber int
-		expectedBuf    string
-	}{{
-		7,
-		` 7
- 8
- 9
-10
-11
-`,
-	}, {
-		6,
-		` 6
- 7
- 8
- 9
-10
-`,
-	}, {
-		5,
-		`5
-6
-7
-8
-9
-`,
-	}}
-	for i, testCase := range testCases {
-		f := New(
-			WithClasses(true),
-			WithLineNumbers(true),
-			LineNumbersInTable(true),
-			BaseLineNumber(testCase.baseLineNumber),
-		)
-		it, err := lexers.Get("go").Tokenise(nil, "package main\nfunc main()\n{\nprintln(`hello world`)\n}\n")
-		assert.NoError(t, err)
-		var buf bytes.Buffer
-		err = f.Format(&buf, styles.Fallback, it)
-		assert.NoError(t, err, "Test Case %d", i)
-		assert.Contains(t, buf.String(), testCase.expectedBuf, "Test Case %d", i)
-	}
-}
-
-func TestWithPreWrapper(t *testing.T) {
-	wrapper := preWrapper{
-		start: func(code bool, styleAttr string) string {
-			return fmt.Sprintf("", styleAttr, code)
-		},
-		end: func(code bool) string {
-			return fmt.Sprintf("")
-		},
-	}
-
-	format := func(f *Formatter) string {
-		it, err := lexers.Get("bash").Tokenise(nil, "echo FOO")
-		assert.NoError(t, err)
-
-		var buf bytes.Buffer
-		err = f.Format(&buf, styles.Fallback, it)
-		assert.NoError(t, err)
-
-		return buf.String()
-	}
-
-	t.Run("Regular", func(t *testing.T) {
-		s := format(New(WithClasses(true)))
-		assert.Equal(t, s, `
echo FOO
`) - }) - - t.Run("PreventSurroundingPre", func(t *testing.T) { - s := format(New(PreventSurroundingPre(true), WithClasses(true))) - assert.Equal(t, s, `echo FOO`) - }) - - t.Run("Wrapper", func(t *testing.T) { - s := format(New(WithPreWrapper(wrapper), WithClasses(true))) - assert.Equal(t, s, `echo FOO`) - }) - - t.Run("Wrapper, LineNumbersInTable", func(t *testing.T) { - s := format(New(WithPreWrapper(wrapper), WithClasses(true), WithLineNumbers(true), LineNumbersInTable(true))) - - assert.Equal(t, s, `
- -
-1 - -echo FOO
-
-`) - }) -} - -func TestReconfigureOptions(t *testing.T) { - options := []Option{ - WithClasses(true), - WithLineNumbers(true), - } - - options = append(options, WithLineNumbers(false)) - - f := New(options...) - - it, err := lexers.Get("bash").Tokenise(nil, "echo FOO") - assert.NoError(t, err) - - var buf bytes.Buffer - err = f.Format(&buf, styles.Fallback, it) - - assert.NoError(t, err) - assert.Equal(t, `
echo FOO
`, buf.String()) -} - -func TestWriteCssWithAllClasses(t *testing.T) { - formatter := New() - formatter.allClasses = true - - var buf bytes.Buffer - err := formatter.WriteCSS(&buf, styles.Fallback) - - assert.NoError(t, err) - assert.NotContains(t, buf.String(), ".chroma . {", "Generated css doesn't contain invalid css") -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/json.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/json.go deleted file mode 100644 index 95df4bb676..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/json.go +++ /dev/null @@ -1,31 +0,0 @@ -package formatters - -import ( - "encoding/json" - "fmt" - "io" - - "github.com/alecthomas/chroma" -) - -// JSON formatter outputs the raw token structures as JSON. -var JSON = Register("json", chroma.FormatterFunc(func(w io.Writer, s *chroma.Style, it chroma.Iterator) error { - fmt.Fprintln(w, "[") - i := 0 - for t := it(); t != chroma.EOF; t = it() { - if i > 0 { - fmt.Fprintln(w, ",") - } - i++ - bytes, err := json.Marshal(t) - if err != nil { - return err - } - if _, err := fmt.Fprint(w, " "+string(bytes)); err != nil { - return err - } - } - fmt.Fprintln(w) - fmt.Fprintln(w, "]") - return nil -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/svg/font_liberation_mono.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/svg/font_liberation_mono.go deleted file mode 100644 index 70d692ec45..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/svg/font_liberation_mono.go +++ /dev/null @@ -1,51 +0,0 @@ -// Digitized data copyright (c) 2010 Google Corporation -// with Reserved Font Arimo, Tinos and Cousine. -// Copyright (c) 2012 Red Hat, Inc. -// with Reserved Font Name Liberation. -// -// This Font Software is licensed under the SIL Open Font License, Version 1.1. -// This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL -// -// ----------------------------------------------------------- -// SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 -// ----------------------------------------------------------- -// -// PREAMBLE -// The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. -// -// The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. -// -// DEFINITIONS -// "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. -// -// "Reserved Font Name" refers to any names specified as such after the copyright statement(s). -// -// "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). -// -// "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. -// -// "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. -// -// PERMISSION & CONDITIONS -// Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: -// -// 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. -// -// 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. -// -// 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. -// -// 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. -// -// 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. -// -// TERMINATION -// This license becomes null and void if any of the above conditions are not met. -// -// DISCLAIMER -// THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. - -package svg - -// Liberation Mono as base64 encoded woff (SIL Open Font License)[https://en.wikipedia.org/wiki/Liberation_fonts] -var FontLiberationMono = `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` diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/svg/svg.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/svg/svg.go deleted file mode 100644 index 631fa1484e..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/svg/svg.go +++ /dev/null @@ -1,222 +0,0 @@ -// Package svg contains an SVG formatter. -package svg - -import ( - "encoding/base64" - "errors" - "fmt" - "io" - "io/ioutil" - "path" - "strings" - - "github.com/alecthomas/chroma" -) - -// Option sets an option of the SVG formatter. -type Option func(f *Formatter) - -// FontFamily sets the font-family. -func FontFamily(fontFamily string) Option { return func(f *Formatter) { f.fontFamily = fontFamily } } - -// EmbedFontFile embeds given font file -func EmbedFontFile(fontFamily string, fileName string) (option Option, err error) { - var format FontFormat - switch path.Ext(fileName) { - case ".woff": - format = WOFF - case ".woff2": - format = WOFF2 - case ".ttf": - format = TRUETYPE - default: - return nil, errors.New("unexpected font file suffix") - } - - var content []byte - if content, err = ioutil.ReadFile(fileName); err == nil { - option = EmbedFont(fontFamily, base64.StdEncoding.EncodeToString(content), format) - } - return -} - -// EmbedFont embeds given base64 encoded font -func EmbedFont(fontFamily string, font string, format FontFormat) Option { - return func(f *Formatter) { f.fontFamily = fontFamily; f.embeddedFont = font; f.fontFormat = format } -} - -// New SVG formatter. -func New(options ...Option) *Formatter { - f := &Formatter{fontFamily: "Consolas, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace"} - for _, option := range options { - option(f) - } - return f -} - -// Formatter that generates SVG. -type Formatter struct { - fontFamily string - embeddedFont string - fontFormat FontFormat -} - -func (f *Formatter) Format(w io.Writer, style *chroma.Style, iterator chroma.Iterator) (err error) { - f.writeSVG(w, style, iterator.Tokens()) - return err -} - -var svgEscaper = strings.NewReplacer( - `&`, "&", - `<`, "<", - `>`, ">", - `"`, """, - ` `, " ", - ` `, "    ", -) - -// EscapeString escapes special characters. -func escapeString(s string) string { - return svgEscaper.Replace(s) -} - -func (f *Formatter) writeSVG(w io.Writer, style *chroma.Style, tokens []chroma.Token) { // nolint: gocyclo - svgStyles := f.styleToSVG(style) - lines := chroma.SplitTokensIntoLines(tokens) - - fmt.Fprint(w, "\n") - fmt.Fprint(w, "\n") - fmt.Fprintf(w, "\n", 8*maxLineWidth(lines), 10+int(16.8*float64(len(lines)+1))) - - if f.embeddedFont != "" { - f.writeFontStyle(w) - } - - fmt.Fprintf(w, "\n", style.Get(chroma.Background).Background.String()) - fmt.Fprintf(w, "\n", f.fontFamily, style.Get(chroma.Text).Colour.String()) - - f.writeTokenBackgrounds(w, lines, style) - - for index, tokens := range lines { - fmt.Fprintf(w, "", 1.2*float64(index+1)) - - for _, token := range tokens { - text := escapeString(token.String()) - attr := f.styleAttr(svgStyles, token.Type) - if attr != "" { - text = fmt.Sprintf("%s", attr, text) - } - fmt.Fprint(w, text) - } - fmt.Fprint(w, "") - } - - fmt.Fprint(w, "\n\n") - fmt.Fprint(w, "\n") -} - -func maxLineWidth(lines [][]chroma.Token) int { - maxWidth := 0 - for _, tokens := range lines { - length := 0 - for _, token := range tokens { - length += len(strings.Replace(token.String(), ` `, " ", -1)) - } - if length > maxWidth { - maxWidth = length - } - } - return maxWidth -} - -// There is no background attribute for text in SVG so simply calculate the position and text -// of tokens with a background color that differs from the default and add a rectangle for each before -// adding the token. -func (f *Formatter) writeTokenBackgrounds(w io.Writer, lines [][]chroma.Token, style *chroma.Style) { - for index, tokens := range lines { - lineLength := 0 - for _, token := range tokens { - length := len(strings.Replace(token.String(), ` `, " ", -1)) - tokenBackground := style.Get(token.Type).Background - if tokenBackground.IsSet() && tokenBackground != style.Get(chroma.Background).Background { - fmt.Fprintf(w, "\n", escapeString(token.String()), lineLength, 1.2*float64(index)+0.25, length, style.Get(token.Type).Background.String()) - } - lineLength += length - } - } -} - -type FontFormat int - -// https://transfonter.org/formats -const ( - WOFF FontFormat = iota - WOFF2 - TRUETYPE -) - -var fontFormats = [...]string{ - "woff", - "woff2", - "truetype", -} - -func (f *Formatter) writeFontStyle(w io.Writer) { - fmt.Fprintf(w, ``, f.fontFamily, fontFormats[f.fontFormat], f.embeddedFont, fontFormats[f.fontFormat]) -} - -func (f *Formatter) styleAttr(styles map[chroma.TokenType]string, tt chroma.TokenType) string { - if _, ok := styles[tt]; !ok { - tt = tt.SubCategory() - if _, ok := styles[tt]; !ok { - tt = tt.Category() - if _, ok := styles[tt]; !ok { - return "" - } - } - } - return styles[tt] -} - -func (f *Formatter) styleToSVG(style *chroma.Style) map[chroma.TokenType]string { - converted := map[chroma.TokenType]string{} - bg := style.Get(chroma.Background) - // Convert the style. - for t := range chroma.StandardTypes { - entry := style.Get(t) - if t != chroma.Background { - entry = entry.Sub(bg) - } - if entry.IsZero() { - continue - } - converted[t] = StyleEntryToSVG(entry) - } - return converted -} - -// StyleEntryToSVG converts a chroma.StyleEntry to SVG attributes. -func StyleEntryToSVG(e chroma.StyleEntry) string { - var styles []string - - if e.Colour.IsSet() { - styles = append(styles, "fill=\""+e.Colour.String()+"\"") - } - if e.Bold == chroma.Yes { - styles = append(styles, "font-weight=\"bold\"") - } - if e.Italic == chroma.Yes { - styles = append(styles, "font-style=\"italic\"") - } - if e.Underline == chroma.Yes { - styles = append(styles, "text-decoration=\"underline\"") - } - return strings.Join(styles, " ") -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/tokens.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/tokens.go deleted file mode 100644 index 91d80d146c..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/tokens.go +++ /dev/null @@ -1,18 +0,0 @@ -package formatters - -import ( - "fmt" - "io" - - "github.com/alecthomas/chroma" -) - -// Tokens formatter outputs the raw token structures. -var Tokens = Register("tokens", chroma.FormatterFunc(func(w io.Writer, s *chroma.Style, it chroma.Iterator) error { - for t := it(); t != chroma.EOF; t = it() { - if _, err := fmt.Fprintln(w, t.GoString()); err != nil { - return err - } - } - return nil -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_indexed.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_indexed.go deleted file mode 100644 index eb90ea7c02..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_indexed.go +++ /dev/null @@ -1,260 +0,0 @@ -package formatters - -import ( - "fmt" - "io" - "math" - - "github.com/alecthomas/chroma" -) - -type ttyTable struct { - foreground map[chroma.Colour]string - background map[chroma.Colour]string -} - -var c = chroma.MustParseColour - -var ttyTables = map[int]*ttyTable{ - 8: { - foreground: map[chroma.Colour]string{ - c("#000000"): "\033[30m", c("#7f0000"): "\033[31m", c("#007f00"): "\033[32m", c("#7f7fe0"): "\033[33m", - c("#00007f"): "\033[34m", c("#7f007f"): "\033[35m", c("#007f7f"): "\033[36m", c("#e5e5e5"): "\033[37m", - c("#555555"): "\033[90m", c("#ff0000"): "\033[91m", c("#00ff00"): "\033[92m", c("#ffff00"): "\033[93m", - c("#0000ff"): "\033[94m", c("#ff00ff"): "\033[95m", c("#00ffff"): "\033[96m", c("#ffffff"): "\033[97m", - }, - background: map[chroma.Colour]string{ - c("#000000"): "\033[40m", c("#7f0000"): "\033[41m", c("#007f00"): "\033[42m", c("#7f7fe0"): "\033[43m", - c("#00007f"): "\033[44m", c("#7f007f"): "\033[45m", c("#007f7f"): "\033[46m", c("#e5e5e5"): "\033[47m", - c("#555555"): "\033[100m", c("#ff0000"): "\033[101m", c("#00ff00"): "\033[102m", c("#ffff00"): "\033[103m", - c("#0000ff"): "\033[104m", c("#ff00ff"): "\033[105m", c("#00ffff"): "\033[106m", c("#ffffff"): "\033[107m", - }, - }, - 256: { - foreground: map[chroma.Colour]string{ - c("#000000"): "\033[38;5;0m", c("#800000"): "\033[38;5;1m", c("#008000"): "\033[38;5;2m", c("#808000"): "\033[38;5;3m", - c("#000080"): "\033[38;5;4m", c("#800080"): "\033[38;5;5m", c("#008080"): "\033[38;5;6m", c("#c0c0c0"): "\033[38;5;7m", - c("#808080"): "\033[38;5;8m", c("#ff0000"): "\033[38;5;9m", c("#00ff00"): "\033[38;5;10m", c("#ffff00"): "\033[38;5;11m", - c("#0000ff"): "\033[38;5;12m", c("#ff00ff"): "\033[38;5;13m", c("#00ffff"): "\033[38;5;14m", c("#ffffff"): "\033[38;5;15m", - c("#000000"): "\033[38;5;16m", c("#00005f"): "\033[38;5;17m", c("#000087"): "\033[38;5;18m", c("#0000af"): "\033[38;5;19m", - c("#0000d7"): "\033[38;5;20m", c("#0000ff"): "\033[38;5;21m", c("#005f00"): "\033[38;5;22m", c("#005f5f"): "\033[38;5;23m", - c("#005f87"): "\033[38;5;24m", c("#005faf"): "\033[38;5;25m", c("#005fd7"): "\033[38;5;26m", c("#005fff"): "\033[38;5;27m", - c("#008700"): "\033[38;5;28m", c("#00875f"): "\033[38;5;29m", c("#008787"): "\033[38;5;30m", c("#0087af"): "\033[38;5;31m", - c("#0087d7"): "\033[38;5;32m", c("#0087ff"): "\033[38;5;33m", c("#00af00"): "\033[38;5;34m", c("#00af5f"): "\033[38;5;35m", - c("#00af87"): "\033[38;5;36m", c("#00afaf"): "\033[38;5;37m", c("#00afd7"): "\033[38;5;38m", c("#00afff"): "\033[38;5;39m", - c("#00d700"): "\033[38;5;40m", c("#00d75f"): "\033[38;5;41m", c("#00d787"): "\033[38;5;42m", c("#00d7af"): "\033[38;5;43m", - c("#00d7d7"): "\033[38;5;44m", c("#00d7ff"): "\033[38;5;45m", c("#00ff00"): "\033[38;5;46m", c("#00ff5f"): "\033[38;5;47m", - c("#00ff87"): "\033[38;5;48m", c("#00ffaf"): "\033[38;5;49m", c("#00ffd7"): "\033[38;5;50m", c("#00ffff"): "\033[38;5;51m", - c("#5f0000"): "\033[38;5;52m", c("#5f005f"): "\033[38;5;53m", c("#5f0087"): "\033[38;5;54m", c("#5f00af"): "\033[38;5;55m", - c("#5f00d7"): "\033[38;5;56m", c("#5f00ff"): "\033[38;5;57m", c("#5f5f00"): "\033[38;5;58m", c("#5f5f5f"): "\033[38;5;59m", - c("#5f5f87"): "\033[38;5;60m", c("#5f5faf"): "\033[38;5;61m", c("#5f5fd7"): "\033[38;5;62m", c("#5f5fff"): "\033[38;5;63m", - c("#5f8700"): "\033[38;5;64m", c("#5f875f"): "\033[38;5;65m", c("#5f8787"): "\033[38;5;66m", c("#5f87af"): "\033[38;5;67m", - c("#5f87d7"): "\033[38;5;68m", c("#5f87ff"): "\033[38;5;69m", c("#5faf00"): "\033[38;5;70m", c("#5faf5f"): "\033[38;5;71m", - c("#5faf87"): "\033[38;5;72m", c("#5fafaf"): "\033[38;5;73m", c("#5fafd7"): "\033[38;5;74m", c("#5fafff"): "\033[38;5;75m", - c("#5fd700"): "\033[38;5;76m", c("#5fd75f"): "\033[38;5;77m", c("#5fd787"): "\033[38;5;78m", c("#5fd7af"): "\033[38;5;79m", - c("#5fd7d7"): "\033[38;5;80m", c("#5fd7ff"): "\033[38;5;81m", c("#5fff00"): "\033[38;5;82m", c("#5fff5f"): "\033[38;5;83m", - c("#5fff87"): "\033[38;5;84m", c("#5fffaf"): "\033[38;5;85m", c("#5fffd7"): "\033[38;5;86m", c("#5fffff"): "\033[38;5;87m", - c("#870000"): "\033[38;5;88m", c("#87005f"): "\033[38;5;89m", c("#870087"): "\033[38;5;90m", c("#8700af"): "\033[38;5;91m", - c("#8700d7"): "\033[38;5;92m", c("#8700ff"): "\033[38;5;93m", c("#875f00"): "\033[38;5;94m", c("#875f5f"): "\033[38;5;95m", - c("#875f87"): "\033[38;5;96m", c("#875faf"): "\033[38;5;97m", c("#875fd7"): "\033[38;5;98m", c("#875fff"): "\033[38;5;99m", - c("#878700"): "\033[38;5;100m", c("#87875f"): "\033[38;5;101m", c("#878787"): "\033[38;5;102m", c("#8787af"): "\033[38;5;103m", - c("#8787d7"): "\033[38;5;104m", c("#8787ff"): "\033[38;5;105m", c("#87af00"): "\033[38;5;106m", c("#87af5f"): "\033[38;5;107m", - c("#87af87"): "\033[38;5;108m", c("#87afaf"): "\033[38;5;109m", c("#87afd7"): "\033[38;5;110m", c("#87afff"): "\033[38;5;111m", - c("#87d700"): "\033[38;5;112m", c("#87d75f"): "\033[38;5;113m", c("#87d787"): "\033[38;5;114m", c("#87d7af"): "\033[38;5;115m", - c("#87d7d7"): "\033[38;5;116m", c("#87d7ff"): "\033[38;5;117m", c("#87ff00"): "\033[38;5;118m", c("#87ff5f"): "\033[38;5;119m", - c("#87ff87"): "\033[38;5;120m", c("#87ffaf"): "\033[38;5;121m", c("#87ffd7"): "\033[38;5;122m", c("#87ffff"): "\033[38;5;123m", - c("#af0000"): "\033[38;5;124m", c("#af005f"): "\033[38;5;125m", c("#af0087"): "\033[38;5;126m", c("#af00af"): "\033[38;5;127m", - c("#af00d7"): "\033[38;5;128m", c("#af00ff"): "\033[38;5;129m", c("#af5f00"): "\033[38;5;130m", c("#af5f5f"): "\033[38;5;131m", - c("#af5f87"): "\033[38;5;132m", c("#af5faf"): "\033[38;5;133m", c("#af5fd7"): "\033[38;5;134m", c("#af5fff"): "\033[38;5;135m", - c("#af8700"): "\033[38;5;136m", c("#af875f"): "\033[38;5;137m", c("#af8787"): "\033[38;5;138m", c("#af87af"): "\033[38;5;139m", - c("#af87d7"): "\033[38;5;140m", c("#af87ff"): "\033[38;5;141m", c("#afaf00"): "\033[38;5;142m", c("#afaf5f"): "\033[38;5;143m", - c("#afaf87"): "\033[38;5;144m", c("#afafaf"): "\033[38;5;145m", c("#afafd7"): "\033[38;5;146m", c("#afafff"): "\033[38;5;147m", - c("#afd700"): "\033[38;5;148m", c("#afd75f"): "\033[38;5;149m", c("#afd787"): "\033[38;5;150m", c("#afd7af"): "\033[38;5;151m", - c("#afd7d7"): "\033[38;5;152m", c("#afd7ff"): "\033[38;5;153m", c("#afff00"): "\033[38;5;154m", c("#afff5f"): "\033[38;5;155m", - c("#afff87"): "\033[38;5;156m", c("#afffaf"): "\033[38;5;157m", c("#afffd7"): "\033[38;5;158m", c("#afffff"): "\033[38;5;159m", - c("#d70000"): "\033[38;5;160m", c("#d7005f"): "\033[38;5;161m", c("#d70087"): "\033[38;5;162m", c("#d700af"): "\033[38;5;163m", - c("#d700d7"): "\033[38;5;164m", c("#d700ff"): "\033[38;5;165m", c("#d75f00"): "\033[38;5;166m", c("#d75f5f"): "\033[38;5;167m", - c("#d75f87"): "\033[38;5;168m", c("#d75faf"): "\033[38;5;169m", c("#d75fd7"): "\033[38;5;170m", c("#d75fff"): "\033[38;5;171m", - c("#d78700"): "\033[38;5;172m", c("#d7875f"): "\033[38;5;173m", c("#d78787"): "\033[38;5;174m", c("#d787af"): "\033[38;5;175m", - c("#d787d7"): "\033[38;5;176m", c("#d787ff"): "\033[38;5;177m", c("#d7af00"): "\033[38;5;178m", c("#d7af5f"): "\033[38;5;179m", - c("#d7af87"): "\033[38;5;180m", c("#d7afaf"): "\033[38;5;181m", c("#d7afd7"): "\033[38;5;182m", c("#d7afff"): "\033[38;5;183m", - c("#d7d700"): "\033[38;5;184m", c("#d7d75f"): "\033[38;5;185m", c("#d7d787"): "\033[38;5;186m", c("#d7d7af"): "\033[38;5;187m", - c("#d7d7d7"): "\033[38;5;188m", c("#d7d7ff"): "\033[38;5;189m", c("#d7ff00"): "\033[38;5;190m", c("#d7ff5f"): "\033[38;5;191m", - c("#d7ff87"): "\033[38;5;192m", c("#d7ffaf"): "\033[38;5;193m", c("#d7ffd7"): "\033[38;5;194m", c("#d7ffff"): "\033[38;5;195m", - c("#ff0000"): "\033[38;5;196m", c("#ff005f"): "\033[38;5;197m", c("#ff0087"): "\033[38;5;198m", c("#ff00af"): "\033[38;5;199m", - c("#ff00d7"): "\033[38;5;200m", c("#ff00ff"): "\033[38;5;201m", c("#ff5f00"): "\033[38;5;202m", c("#ff5f5f"): "\033[38;5;203m", - c("#ff5f87"): "\033[38;5;204m", c("#ff5faf"): "\033[38;5;205m", c("#ff5fd7"): "\033[38;5;206m", c("#ff5fff"): "\033[38;5;207m", - c("#ff8700"): "\033[38;5;208m", c("#ff875f"): "\033[38;5;209m", c("#ff8787"): "\033[38;5;210m", c("#ff87af"): "\033[38;5;211m", - c("#ff87d7"): "\033[38;5;212m", c("#ff87ff"): "\033[38;5;213m", c("#ffaf00"): "\033[38;5;214m", c("#ffaf5f"): "\033[38;5;215m", - c("#ffaf87"): "\033[38;5;216m", c("#ffafaf"): "\033[38;5;217m", c("#ffafd7"): "\033[38;5;218m", c("#ffafff"): "\033[38;5;219m", - c("#ffd700"): "\033[38;5;220m", c("#ffd75f"): "\033[38;5;221m", c("#ffd787"): "\033[38;5;222m", c("#ffd7af"): "\033[38;5;223m", - c("#ffd7d7"): "\033[38;5;224m", c("#ffd7ff"): "\033[38;5;225m", c("#ffff00"): "\033[38;5;226m", c("#ffff5f"): "\033[38;5;227m", - c("#ffff87"): "\033[38;5;228m", c("#ffffaf"): "\033[38;5;229m", c("#ffffd7"): "\033[38;5;230m", c("#ffffff"): "\033[38;5;231m", - c("#080808"): "\033[38;5;232m", c("#121212"): "\033[38;5;233m", c("#1c1c1c"): "\033[38;5;234m", c("#262626"): "\033[38;5;235m", - c("#303030"): "\033[38;5;236m", c("#3a3a3a"): "\033[38;5;237m", c("#444444"): "\033[38;5;238m", c("#4e4e4e"): "\033[38;5;239m", - c("#585858"): "\033[38;5;240m", c("#626262"): "\033[38;5;241m", c("#6c6c6c"): "\033[38;5;242m", c("#767676"): "\033[38;5;243m", - c("#808080"): "\033[38;5;244m", c("#8a8a8a"): "\033[38;5;245m", c("#949494"): "\033[38;5;246m", c("#9e9e9e"): "\033[38;5;247m", - c("#a8a8a8"): "\033[38;5;248m", c("#b2b2b2"): "\033[38;5;249m", c("#bcbcbc"): "\033[38;5;250m", c("#c6c6c6"): "\033[38;5;251m", - c("#d0d0d0"): "\033[38;5;252m", c("#dadada"): "\033[38;5;253m", c("#e4e4e4"): "\033[38;5;254m", c("#eeeeee"): "\033[38;5;255m", - }, - background: map[chroma.Colour]string{ - c("#000000"): "\033[48;5;0m", c("#800000"): "\033[48;5;1m", c("#008000"): "\033[48;5;2m", c("#808000"): "\033[48;5;3m", - c("#000080"): "\033[48;5;4m", c("#800080"): "\033[48;5;5m", c("#008080"): "\033[48;5;6m", c("#c0c0c0"): "\033[48;5;7m", - c("#808080"): "\033[48;5;8m", c("#ff0000"): "\033[48;5;9m", c("#00ff00"): "\033[48;5;10m", c("#ffff00"): "\033[48;5;11m", - c("#0000ff"): "\033[48;5;12m", c("#ff00ff"): "\033[48;5;13m", c("#00ffff"): "\033[48;5;14m", c("#ffffff"): "\033[48;5;15m", - c("#000000"): "\033[48;5;16m", c("#00005f"): "\033[48;5;17m", c("#000087"): "\033[48;5;18m", c("#0000af"): "\033[48;5;19m", - c("#0000d7"): "\033[48;5;20m", c("#0000ff"): "\033[48;5;21m", c("#005f00"): "\033[48;5;22m", c("#005f5f"): "\033[48;5;23m", - c("#005f87"): "\033[48;5;24m", c("#005faf"): "\033[48;5;25m", c("#005fd7"): "\033[48;5;26m", c("#005fff"): "\033[48;5;27m", - c("#008700"): "\033[48;5;28m", c("#00875f"): "\033[48;5;29m", c("#008787"): "\033[48;5;30m", c("#0087af"): "\033[48;5;31m", - c("#0087d7"): "\033[48;5;32m", c("#0087ff"): "\033[48;5;33m", c("#00af00"): "\033[48;5;34m", c("#00af5f"): "\033[48;5;35m", - c("#00af87"): "\033[48;5;36m", c("#00afaf"): "\033[48;5;37m", c("#00afd7"): "\033[48;5;38m", c("#00afff"): "\033[48;5;39m", - c("#00d700"): "\033[48;5;40m", c("#00d75f"): "\033[48;5;41m", c("#00d787"): "\033[48;5;42m", c("#00d7af"): "\033[48;5;43m", - c("#00d7d7"): "\033[48;5;44m", c("#00d7ff"): "\033[48;5;45m", c("#00ff00"): "\033[48;5;46m", c("#00ff5f"): "\033[48;5;47m", - c("#00ff87"): "\033[48;5;48m", c("#00ffaf"): "\033[48;5;49m", c("#00ffd7"): "\033[48;5;50m", c("#00ffff"): "\033[48;5;51m", - c("#5f0000"): "\033[48;5;52m", c("#5f005f"): "\033[48;5;53m", c("#5f0087"): "\033[48;5;54m", c("#5f00af"): "\033[48;5;55m", - c("#5f00d7"): "\033[48;5;56m", c("#5f00ff"): "\033[48;5;57m", c("#5f5f00"): "\033[48;5;58m", c("#5f5f5f"): "\033[48;5;59m", - c("#5f5f87"): "\033[48;5;60m", c("#5f5faf"): "\033[48;5;61m", c("#5f5fd7"): "\033[48;5;62m", c("#5f5fff"): "\033[48;5;63m", - c("#5f8700"): "\033[48;5;64m", c("#5f875f"): "\033[48;5;65m", c("#5f8787"): "\033[48;5;66m", c("#5f87af"): "\033[48;5;67m", - c("#5f87d7"): "\033[48;5;68m", c("#5f87ff"): "\033[48;5;69m", c("#5faf00"): "\033[48;5;70m", c("#5faf5f"): "\033[48;5;71m", - c("#5faf87"): "\033[48;5;72m", c("#5fafaf"): "\033[48;5;73m", c("#5fafd7"): "\033[48;5;74m", c("#5fafff"): "\033[48;5;75m", - c("#5fd700"): "\033[48;5;76m", c("#5fd75f"): "\033[48;5;77m", c("#5fd787"): "\033[48;5;78m", c("#5fd7af"): "\033[48;5;79m", - c("#5fd7d7"): "\033[48;5;80m", c("#5fd7ff"): "\033[48;5;81m", c("#5fff00"): "\033[48;5;82m", c("#5fff5f"): "\033[48;5;83m", - c("#5fff87"): "\033[48;5;84m", c("#5fffaf"): "\033[48;5;85m", c("#5fffd7"): "\033[48;5;86m", c("#5fffff"): "\033[48;5;87m", - c("#870000"): "\033[48;5;88m", c("#87005f"): "\033[48;5;89m", c("#870087"): "\033[48;5;90m", c("#8700af"): "\033[48;5;91m", - c("#8700d7"): "\033[48;5;92m", c("#8700ff"): "\033[48;5;93m", c("#875f00"): "\033[48;5;94m", c("#875f5f"): "\033[48;5;95m", - c("#875f87"): "\033[48;5;96m", c("#875faf"): "\033[48;5;97m", c("#875fd7"): "\033[48;5;98m", c("#875fff"): "\033[48;5;99m", - c("#878700"): "\033[48;5;100m", c("#87875f"): "\033[48;5;101m", c("#878787"): "\033[48;5;102m", c("#8787af"): "\033[48;5;103m", - c("#8787d7"): "\033[48;5;104m", c("#8787ff"): "\033[48;5;105m", c("#87af00"): "\033[48;5;106m", c("#87af5f"): "\033[48;5;107m", - c("#87af87"): "\033[48;5;108m", c("#87afaf"): "\033[48;5;109m", c("#87afd7"): "\033[48;5;110m", c("#87afff"): "\033[48;5;111m", - c("#87d700"): "\033[48;5;112m", c("#87d75f"): "\033[48;5;113m", c("#87d787"): "\033[48;5;114m", c("#87d7af"): "\033[48;5;115m", - c("#87d7d7"): "\033[48;5;116m", c("#87d7ff"): "\033[48;5;117m", c("#87ff00"): "\033[48;5;118m", c("#87ff5f"): "\033[48;5;119m", - c("#87ff87"): "\033[48;5;120m", c("#87ffaf"): "\033[48;5;121m", c("#87ffd7"): "\033[48;5;122m", c("#87ffff"): "\033[48;5;123m", - c("#af0000"): "\033[48;5;124m", c("#af005f"): "\033[48;5;125m", c("#af0087"): "\033[48;5;126m", c("#af00af"): "\033[48;5;127m", - c("#af00d7"): "\033[48;5;128m", c("#af00ff"): "\033[48;5;129m", c("#af5f00"): "\033[48;5;130m", c("#af5f5f"): "\033[48;5;131m", - c("#af5f87"): "\033[48;5;132m", c("#af5faf"): "\033[48;5;133m", c("#af5fd7"): "\033[48;5;134m", c("#af5fff"): "\033[48;5;135m", - c("#af8700"): "\033[48;5;136m", c("#af875f"): "\033[48;5;137m", c("#af8787"): "\033[48;5;138m", c("#af87af"): "\033[48;5;139m", - c("#af87d7"): "\033[48;5;140m", c("#af87ff"): "\033[48;5;141m", c("#afaf00"): "\033[48;5;142m", c("#afaf5f"): "\033[48;5;143m", - c("#afaf87"): "\033[48;5;144m", c("#afafaf"): "\033[48;5;145m", c("#afafd7"): "\033[48;5;146m", c("#afafff"): "\033[48;5;147m", - c("#afd700"): "\033[48;5;148m", c("#afd75f"): "\033[48;5;149m", c("#afd787"): "\033[48;5;150m", c("#afd7af"): "\033[48;5;151m", - c("#afd7d7"): "\033[48;5;152m", c("#afd7ff"): "\033[48;5;153m", c("#afff00"): "\033[48;5;154m", c("#afff5f"): "\033[48;5;155m", - c("#afff87"): "\033[48;5;156m", c("#afffaf"): "\033[48;5;157m", c("#afffd7"): "\033[48;5;158m", c("#afffff"): "\033[48;5;159m", - c("#d70000"): "\033[48;5;160m", c("#d7005f"): "\033[48;5;161m", c("#d70087"): "\033[48;5;162m", c("#d700af"): "\033[48;5;163m", - c("#d700d7"): "\033[48;5;164m", c("#d700ff"): "\033[48;5;165m", c("#d75f00"): "\033[48;5;166m", c("#d75f5f"): "\033[48;5;167m", - c("#d75f87"): "\033[48;5;168m", c("#d75faf"): "\033[48;5;169m", c("#d75fd7"): "\033[48;5;170m", c("#d75fff"): "\033[48;5;171m", - c("#d78700"): "\033[48;5;172m", c("#d7875f"): "\033[48;5;173m", c("#d78787"): "\033[48;5;174m", c("#d787af"): "\033[48;5;175m", - c("#d787d7"): "\033[48;5;176m", c("#d787ff"): "\033[48;5;177m", c("#d7af00"): "\033[48;5;178m", c("#d7af5f"): "\033[48;5;179m", - c("#d7af87"): "\033[48;5;180m", c("#d7afaf"): "\033[48;5;181m", c("#d7afd7"): "\033[48;5;182m", c("#d7afff"): "\033[48;5;183m", - c("#d7d700"): "\033[48;5;184m", c("#d7d75f"): "\033[48;5;185m", c("#d7d787"): "\033[48;5;186m", c("#d7d7af"): "\033[48;5;187m", - c("#d7d7d7"): "\033[48;5;188m", c("#d7d7ff"): "\033[48;5;189m", c("#d7ff00"): "\033[48;5;190m", c("#d7ff5f"): "\033[48;5;191m", - c("#d7ff87"): "\033[48;5;192m", c("#d7ffaf"): "\033[48;5;193m", c("#d7ffd7"): "\033[48;5;194m", c("#d7ffff"): "\033[48;5;195m", - c("#ff0000"): "\033[48;5;196m", c("#ff005f"): "\033[48;5;197m", c("#ff0087"): "\033[48;5;198m", c("#ff00af"): "\033[48;5;199m", - c("#ff00d7"): "\033[48;5;200m", c("#ff00ff"): "\033[48;5;201m", c("#ff5f00"): "\033[48;5;202m", c("#ff5f5f"): "\033[48;5;203m", - c("#ff5f87"): "\033[48;5;204m", c("#ff5faf"): "\033[48;5;205m", c("#ff5fd7"): "\033[48;5;206m", c("#ff5fff"): "\033[48;5;207m", - c("#ff8700"): "\033[48;5;208m", c("#ff875f"): "\033[48;5;209m", c("#ff8787"): "\033[48;5;210m", c("#ff87af"): "\033[48;5;211m", - c("#ff87d7"): "\033[48;5;212m", c("#ff87ff"): "\033[48;5;213m", c("#ffaf00"): "\033[48;5;214m", c("#ffaf5f"): "\033[48;5;215m", - c("#ffaf87"): "\033[48;5;216m", c("#ffafaf"): "\033[48;5;217m", c("#ffafd7"): "\033[48;5;218m", c("#ffafff"): "\033[48;5;219m", - c("#ffd700"): "\033[48;5;220m", c("#ffd75f"): "\033[48;5;221m", c("#ffd787"): "\033[48;5;222m", c("#ffd7af"): "\033[48;5;223m", - c("#ffd7d7"): "\033[48;5;224m", c("#ffd7ff"): "\033[48;5;225m", c("#ffff00"): "\033[48;5;226m", c("#ffff5f"): "\033[48;5;227m", - c("#ffff87"): "\033[48;5;228m", c("#ffffaf"): "\033[48;5;229m", c("#ffffd7"): "\033[48;5;230m", c("#ffffff"): "\033[48;5;231m", - c("#080808"): "\033[48;5;232m", c("#121212"): "\033[48;5;233m", c("#1c1c1c"): "\033[48;5;234m", c("#262626"): "\033[48;5;235m", - c("#303030"): "\033[48;5;236m", c("#3a3a3a"): "\033[48;5;237m", c("#444444"): "\033[48;5;238m", c("#4e4e4e"): "\033[48;5;239m", - c("#585858"): "\033[48;5;240m", c("#626262"): "\033[48;5;241m", c("#6c6c6c"): "\033[48;5;242m", c("#767676"): "\033[48;5;243m", - c("#808080"): "\033[48;5;244m", c("#8a8a8a"): "\033[48;5;245m", c("#949494"): "\033[48;5;246m", c("#9e9e9e"): "\033[48;5;247m", - c("#a8a8a8"): "\033[48;5;248m", c("#b2b2b2"): "\033[48;5;249m", c("#bcbcbc"): "\033[48;5;250m", c("#c6c6c6"): "\033[48;5;251m", - c("#d0d0d0"): "\033[48;5;252m", c("#dadada"): "\033[48;5;253m", c("#e4e4e4"): "\033[48;5;254m", c("#eeeeee"): "\033[48;5;255m", - }, - }, -} - -func entryToEscapeSequence(table *ttyTable, entry chroma.StyleEntry) string { - out := "" - if entry.Bold == chroma.Yes { - out += "\033[1m" - } - if entry.Underline == chroma.Yes { - out += "\033[4m" - } - if entry.Italic == chroma.Yes { - out += "\033[3m" - } - if entry.Colour.IsSet() { - out += table.foreground[findClosest(table, entry.Colour)] - } - if entry.Background.IsSet() { - out += table.background[findClosest(table, entry.Background)] - } - return out -} - -func findClosest(table *ttyTable, seeking chroma.Colour) chroma.Colour { - closestColour := chroma.Colour(0) - closest := float64(math.MaxFloat64) - for colour := range table.foreground { - distance := colour.Distance(seeking) - if distance < closest { - closest = distance - closestColour = colour - } - } - return closestColour -} - -func styleToEscapeSequence(table *ttyTable, style *chroma.Style) map[chroma.TokenType]string { - style = clearBackground(style) - out := map[chroma.TokenType]string{} - for _, ttype := range style.Types() { - entry := style.Get(ttype) - out[ttype] = entryToEscapeSequence(table, entry) - } - return out -} - -// Clear the background colour. -func clearBackground(style *chroma.Style) *chroma.Style { - builder := style.Builder() - bg := builder.Get(chroma.Background) - bg.Background = 0 - bg.NoInherit = true - builder.AddEntry(chroma.Background, bg) - style, _ = builder.Build() - return style -} - -type indexedTTYFormatter struct { - table *ttyTable -} - -func (c *indexedTTYFormatter) Format(w io.Writer, style *chroma.Style, it chroma.Iterator) (err error) { - theme := styleToEscapeSequence(c.table, style) - for token := it(); token != chroma.EOF; token = it() { - // TODO: Cache token lookups? - clr, ok := theme[token.Type] - if !ok { - clr, ok = theme[token.Type.SubCategory()] - if !ok { - clr = theme[token.Type.Category()] - // if !ok { - // clr = theme[chroma.InheritStyle] - // } - } - } - if clr != "" { - fmt.Fprint(w, clr) - } - fmt.Fprint(w, token.Value) - if clr != "" { - fmt.Fprintf(w, "\033[0m") - } - } - return nil -} - -// TTY8 is an 8-colour terminal formatter. -// -// The Lab colour space is used to map RGB values to the most appropriate index colour. -var TTY8 = Register("terminal", &indexedTTYFormatter{ttyTables[8]}) - -// TTY256 is a 256-colour terminal formatter. -// -// The Lab colour space is used to map RGB values to the most appropriate index colour. -var TTY256 = Register("terminal256", &indexedTTYFormatter{ttyTables[256]}) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_indexed_test.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_indexed_test.go deleted file mode 100644 index fdc0db11e5..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_indexed_test.go +++ /dev/null @@ -1,13 +0,0 @@ -package formatters - -import ( - "testing" - - "github.com/alecthomas/assert" - "github.com/alecthomas/chroma" -) - -func TestClosestColour(t *testing.T) { - actual := findClosest(ttyTables[256], chroma.MustParseColour("#e06c75")) - assert.Equal(t, chroma.MustParseColour("#d75f87"), actual) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_truecolour.go b/workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_truecolour.go deleted file mode 100644 index b02e6360e4..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/formatters/tty_truecolour.go +++ /dev/null @@ -1,42 +0,0 @@ -package formatters - -import ( - "fmt" - "io" - - "github.com/alecthomas/chroma" -) - -// TTY16m is a true-colour terminal formatter. -var TTY16m = Register("terminal16m", chroma.FormatterFunc(trueColourFormatter)) - -func trueColourFormatter(w io.Writer, style *chroma.Style, it chroma.Iterator) error { - style = clearBackground(style) - for token := it(); token != chroma.EOF; token = it() { - entry := style.Get(token.Type) - if !entry.IsZero() { - out := "" - if entry.Bold == chroma.Yes { - out += "\033[1m" - } - if entry.Underline == chroma.Yes { - out += "\033[4m" - } - if entry.Italic == chroma.Yes { - out += "\033[3m" - } - if entry.Colour.IsSet() { - out += fmt.Sprintf("\033[38;2;%d;%d;%dm", entry.Colour.Red(), entry.Colour.Green(), entry.Colour.Blue()) - } - if entry.Background.IsSet() { - out += fmt.Sprintf("\033[48;2;%d;%d;%dm", entry.Background.Red(), entry.Background.Green(), entry.Background.Blue()) - } - fmt.Fprint(w, out) - } - fmt.Fprint(w, token.Value) - if !entry.IsZero() { - fmt.Fprint(w, "\033[0m") - } - } - return nil -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/go.mod b/workhorse-vendor/github.com/alecthomas/chroma/go.mod deleted file mode 100644 index 10e6d6ead0..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/go.mod +++ /dev/null @@ -1,18 +0,0 @@ -module github.com/alecthomas/chroma - -go 1.13 - -require ( - github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 - github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 // indirect - github.com/alecthomas/kong v0.2.4 - github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897 // indirect - github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 - github.com/dlclark/regexp2 v1.2.0 - github.com/mattn/go-colorable v0.1.6 - github.com/mattn/go-isatty v0.0.12 - github.com/pkg/errors v0.9.1 // indirect - github.com/sergi/go-diff v1.0.0 // indirect - github.com/stretchr/testify v1.3.0 // indirect - golang.org/x/sys v0.0.0-20200413165638-669c56c373c4 // indirect -) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/go.sum b/workhorse-vendor/github.com/alecthomas/chroma/go.sum deleted file mode 100644 index fb943fcafe..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/go.sum +++ /dev/null @@ -1,36 +0,0 @@ -github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm+0dGI2AIUHY+w0BUc+4tn40djz7+6U= -github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI= -github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo= -github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0= -github.com/alecthomas/kong v0.2.4 h1:Y0ZBCHAvHhTHw7FFJ2FzCAAG4pkbTgA45nc7BpMhDNk= -github.com/alecthomas/kong v0.2.4/go.mod h1:kQOmtJgV+Lb4aj+I2LEn40cbtawdWJ9Y8QLq+lElKxE= -github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897 h1:p9Sln00KOTlrYkxI1zYWl1QLnEqAqEARBEYa8FQnQcY= -github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= -github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ= -github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dlclark/regexp2 v1.2.0 h1:8sAhBGEM0dRWogWqWyQeIJnxjWO6oIjl8FKqREDsGfk= -github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200413165638-669c56c373c4 h1:opSr2sbRXk5X5/givKrrKj9HXxFpW2sdCiP8MJSKLQY= -golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/workhorse-vendor/github.com/alecthomas/chroma/iterator.go b/workhorse-vendor/github.com/alecthomas/chroma/iterator.go deleted file mode 100644 index c8845a1f5f..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/iterator.go +++ /dev/null @@ -1,76 +0,0 @@ -package chroma - -import "strings" - -// An Iterator across tokens. -// -// nil will be returned at the end of the Token stream. -// -// If an error occurs within an Iterator, it may propagate this in a panic. Formatters should recover. -type Iterator func() Token - -// Tokens consumes all tokens from the iterator and returns them as a slice. -func (i Iterator) Tokens() []Token { - var out []Token - for t := i(); t != EOF; t = i() { - out = append(out, t) - } - return out -} - -// Concaterator concatenates tokens from a series of iterators. -func Concaterator(iterators ...Iterator) Iterator { - return func() Token { - for len(iterators) > 0 { - t := iterators[0]() - if t != EOF { - return t - } - iterators = iterators[1:] - } - return EOF - } -} - -// Literator converts a sequence of literal Tokens into an Iterator. -func Literator(tokens ...Token) Iterator { - return func() Token { - if len(tokens) == 0 { - return EOF - } - token := tokens[0] - tokens = tokens[1:] - return token - } -} - -// SplitTokensIntoLines splits tokens containing newlines in two. -func SplitTokensIntoLines(tokens []Token) (out [][]Token) { - var line []Token // nolint: prealloc - for _, token := range tokens { - for strings.Contains(token.Value, "\n") { - parts := strings.SplitAfterN(token.Value, "\n", 2) - // Token becomes the tail. - token.Value = parts[1] - - // Append the head to the line and flush the line. - clone := token.Clone() - clone.Value = parts[0] - line = append(line, clone) - out = append(out, line) - line = nil - } - line = append(line, token) - } - if len(line) > 0 { - out = append(out, line) - } - // Strip empty trailing token line. - if len(out) > 0 { - last := out[len(out)-1] - if len(last) == 1 && last[0].Value == "" { - out = out[:len(out)-1] - } - } - return -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexer.go b/workhorse-vendor/github.com/alecthomas/chroma/lexer.go deleted file mode 100644 index 1269d338b1..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexer.go +++ /dev/null @@ -1,125 +0,0 @@ -package chroma - -import ( - "fmt" -) - -var ( - defaultOptions = &TokeniseOptions{ - State: "root", - EnsureLF: true, - } -) - -// Config for a lexer. -type Config struct { - // Name of the lexer. - Name string - - // Shortcuts for the lexer - Aliases []string - - // File name globs - Filenames []string - - // Secondary file name globs - AliasFilenames []string - - // MIME types - MimeTypes []string - - // Regex matching is case-insensitive. - CaseInsensitive bool - - // Regex matches all characters. - DotAll bool - - // Regex does not match across lines ($ matches EOL). - // - // Defaults to multiline. - NotMultiline bool - - // Don't strip leading and trailing newlines from the input. - // DontStripNL bool - - // Strip all leading and trailing whitespace from the input - // StripAll bool - - // Make sure that the input ends with a newline. This - // is required for some lexers that consume input linewise. - EnsureNL bool - - // If given and greater than 0, expand tabs in the input. - // TabSize int - - // Priority of lexer. - // - // If this is 0 it will be treated as a default of 1. - Priority float32 -} - -// Token output to formatter. -type Token struct { - Type TokenType `json:"type"` - Value string `json:"value"` -} - -func (t *Token) String() string { return t.Value } -func (t *Token) GoString() string { return fmt.Sprintf("&Token{%s, %q}", t.Type, t.Value) } - -// Clone returns a clone of the Token. -func (t *Token) Clone() Token { - return *t -} - -// EOF is returned by lexers at the end of input. -var EOF Token - -// TokeniseOptions contains options for tokenisers. -type TokeniseOptions struct { - // State to start tokenisation in. Defaults to "root". - State string - // Nested tokenisation. - Nested bool - - // If true, all EOLs are converted into LF - // by replacing CRLF and CR - EnsureLF bool -} - -// A Lexer for tokenising source code. -type Lexer interface { - // Config describing the features of the Lexer. - Config() *Config - // Tokenise returns an Iterator over tokens in text. - Tokenise(options *TokeniseOptions, text string) (Iterator, error) -} - -// Lexers is a slice of lexers sortable by name. -type Lexers []Lexer - -func (l Lexers) Len() int { return len(l) } -func (l Lexers) Swap(i, j int) { l[i], l[j] = l[j], l[i] } -func (l Lexers) Less(i, j int) bool { return l[i].Config().Name < l[j].Config().Name } - -// PrioritisedLexers is a slice of lexers sortable by priority. -type PrioritisedLexers []Lexer - -func (l PrioritisedLexers) Len() int { return len(l) } -func (l PrioritisedLexers) Swap(i, j int) { l[i], l[j] = l[j], l[i] } -func (l PrioritisedLexers) Less(i, j int) bool { - ip := l[i].Config().Priority - if ip == 0 { - ip = 1 - } - jp := l[j].Config().Priority - if jp == 0 { - jp = 1 - } - return ip > jp -} - -// Analyser determines how appropriate this lexer is for the given text. -type Analyser interface { - AnalyseText(text string) float32 -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexer_test.go b/workhorse-vendor/github.com/alecthomas/chroma/lexer_test.go deleted file mode 100644 index ea228b34e2..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexer_test.go +++ /dev/null @@ -1,52 +0,0 @@ -package chroma - -import ( - "testing" - - "github.com/alecthomas/assert" -) - -func TestTokenTypeClassifiers(t *testing.T) { - assert.True(t, GenericDeleted.InCategory(Generic)) - assert.True(t, LiteralStringBacktick.InSubCategory(String)) - assert.Equal(t, LiteralStringBacktick.String(), "LiteralStringBacktick") -} - -func TestSimpleLexer(t *testing.T) { - lexer, err := NewLexer( - &Config{ - Name: "INI", - Aliases: []string{"ini", "cfg"}, - Filenames: []string{"*.ini", "*.cfg"}, - }, - map[string][]Rule{ - "root": { - {`\s+`, Whitespace, nil}, - {`;.*?$`, Comment, nil}, - {`\[.*?\]$`, Keyword, nil}, - {`(.*?)(\s*)(=)(\s*)(.*?)$`, ByGroups(Name, Whitespace, Operator, Whitespace, String), nil}, - }, - }, - ) - assert.NoError(t, err) - actual, err := Tokenise(lexer, nil, ` - ; this is a comment - [section] - a = 10 -`) - assert.NoError(t, err) - expected := []Token{ - {Whitespace, "\n\t"}, - {Comment, "; this is a comment"}, - {Whitespace, "\n\t"}, - {Keyword, "[section]"}, - {Whitespace, "\n\t"}, - {Name, "a"}, - {Whitespace, " "}, - {Operator, "="}, - {Whitespace, " "}, - {LiteralString, "10"}, - {Whitespace, "\n"}, - } - assert.Equal(t, expected, actual) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/README.md b/workhorse-vendor/github.com/alecthomas/chroma/lexers/README.md deleted file mode 100644 index 2421710ef5..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Lexer tests - -The tests in this directory feed a known input `testdata/.actual` into the parser for `` and check -that its output matches `.exported`. - -## Running the tests - -Run the tests as normal: -```go -go test ./lexers -``` - -## Update existing tests -When you add a new test data file (`*.actual`), you need to regenerate all tests. That's how Chroma creates the `*.expected` test file based on the corresponding lexer. - -To regenerate all tests, type in your terminal: - -```go -RECORD=true go test ./lexers -``` - -This first sets the `RECORD` environment variable to `true`. Then it runs `go test` on the `./lexers` directory of the Chroma project. - -(That environment variable tells Chroma it needs to output test data. After running `go test ./lexers` you can remove or reset that variable.) - -### Windows users -Windows users will find that the `RECORD=true go test ./lexers` command fails in both the standard command prompt terminal and in PowerShell. - -Instead we have to perform both steps separately: - -- Set the `RECORD` environment variable to `true`. - + In the regular command prompt window, the `set` command sets an environment variable for the current session: `set RECORD=true`. See [this page](https://superuser.com/questions/212150/how-to-set-env-variable-in-windows-cmd-line) for more. - + In PowerShell, you can use the `$env:RECORD = 'true'` command for that. See [this article](https://mcpmag.com/articles/2019/03/28/environment-variables-in-powershell.aspx) for more. - + You can also make a persistent environment variable by hand in the Windows computer settings. See [this article](https://www.computerhope.com/issues/ch000549.htm) for how. -- When the environment variable is set, run `go tests ./lexers`. - -Chroma will now regenerate the test files and print its results to the console window. diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/abap.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/abap.go deleted file mode 100644 index 61c294e040..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/abap.go +++ /dev/null @@ -1,56 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// ABAP lexer. -var Abap = internal.Register(MustNewLexer( - &Config{ - Name: "ABAP", - Aliases: []string{"abap"}, - Filenames: []string{"*.abap", "*.ABAP"}, - MimeTypes: []string{"text/x-abap"}, - CaseInsensitive: true, - }, - Rules{ - "common": { - {`\s+`, Text, nil}, - {`^\*.*$`, CommentSingle, nil}, - {`\".*?\n`, CommentSingle, nil}, - {`##\w+`, CommentSpecial, nil}, - }, - "variable-names": { - {`<\S+>`, NameVariable, nil}, - {`\w[\w~]*(?:(\[\])|->\*)?`, NameVariable, nil}, - }, - "root": { - Include("common"), - {`CALL\s+(?:BADI|CUSTOMER-FUNCTION|FUNCTION)`, Keyword, nil}, - {`(CALL\s+(?:DIALOG|SCREEN|SUBSCREEN|SELECTION-SCREEN|TRANSACTION|TRANSFORMATION))\b`, Keyword, nil}, - {`(FORM|PERFORM)(\s+)(\w+)`, ByGroups(Keyword, Text, NameFunction), nil}, - {`(PERFORM)(\s+)(\()(\w+)(\))`, ByGroups(Keyword, Text, Punctuation, NameVariable, Punctuation), nil}, - {`(MODULE)(\s+)(\S+)(\s+)(INPUT|OUTPUT)`, ByGroups(Keyword, Text, NameFunction, Text, Keyword), nil}, - {`(METHOD)(\s+)([\w~]+)`, ByGroups(Keyword, Text, NameFunction), nil}, - {`(\s+)([\w\-]+)([=\-]>)([\w\-~]+)`, ByGroups(Text, NameVariable, Operator, NameFunction), nil}, - {`(?<=(=|-)>)([\w\-~]+)(?=\()`, NameFunction, nil}, - {`(TEXT)(-)(\d{3})`, ByGroups(Keyword, Punctuation, LiteralNumberInteger), nil}, - {`(TEXT)(-)(\w{3})`, ByGroups(Keyword, Punctuation, NameVariable), nil}, - {`(ADD-CORRESPONDING|AUTHORITY-CHECK|CLASS-DATA|CLASS-EVENTS|CLASS-METHODS|CLASS-POOL|DELETE-ADJACENT|DIVIDE-CORRESPONDING|EDITOR-CALL|ENHANCEMENT-POINT|ENHANCEMENT-SECTION|EXIT-COMMAND|FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|INTERFACE-POOL|INVERTED-DATE|LOAD-OF-PROGRAM|LOG-POINT|MESSAGE-ID|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|NEW-PAGE|NEW-SECTION|NO-EXTENSION|OUTPUT-LENGTH|PRINT-CONTROL|SELECT-OPTIONS|START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYSTEM-EXCEPTIONS|TYPE-POOL|TYPE-POOLS|NO-DISPLAY)\b`, Keyword, nil}, - {`(?])(CREATE\s+(PUBLIC|PRIVATE|DATA|OBJECT)|(PUBLIC|PRIVATE|PROTECTED)\s+SECTION|(TYPE|LIKE)\s+((LINE\s+OF|REF\s+TO|(SORTED|STANDARD|HASHED)\s+TABLE\s+OF))?|FROM\s+(DATABASE|MEMORY)|CALL\s+METHOD|(GROUP|ORDER) BY|HAVING|SEPARATED BY|GET\s+(BADI|BIT|CURSOR|DATASET|LOCALE|PARAMETER|PF-STATUS|(PROPERTY|REFERENCE)\s+OF|RUN\s+TIME|TIME\s+(STAMP)?)?|SET\s+(BIT|BLANK\s+LINES|COUNTRY|CURSOR|DATASET|EXTENDED\s+CHECK|HANDLER|HOLD\s+DATA|LANGUAGE|LEFT\s+SCROLL-BOUNDARY|LOCALE|MARGIN|PARAMETER|PF-STATUS|PROPERTY\s+OF|RUN\s+TIME\s+(ANALYZER|CLOCK\s+RESOLUTION)|SCREEN|TITLEBAR|UPADTE\s+TASK\s+LOCAL|USER-COMMAND)|CONVERT\s+((INVERTED-)?DATE|TIME|TIME\s+STAMP|TEXT)|(CLOSE|OPEN)\s+(DATASET|CURSOR)|(TO|FROM)\s+(DATA BUFFER|INTERNAL TABLE|MEMORY ID|DATABASE|SHARED\s+(MEMORY|BUFFER))|DESCRIBE\s+(DISTANCE\s+BETWEEN|FIELD|LIST|TABLE)|FREE\s(MEMORY|OBJECT)?|PROCESS\s+(BEFORE\s+OUTPUT|AFTER\s+INPUT|ON\s+(VALUE-REQUEST|HELP-REQUEST))|AT\s+(LINE-SELECTION|USER-COMMAND|END\s+OF|NEW)|AT\s+SELECTION-SCREEN(\s+(ON(\s+(BLOCK|(HELP|VALUE)-REQUEST\s+FOR|END\s+OF|RADIOBUTTON\s+GROUP))?|OUTPUT))?|SELECTION-SCREEN:?\s+((BEGIN|END)\s+OF\s+((TABBED\s+)?BLOCK|LINE|SCREEN)|COMMENT|FUNCTION\s+KEY|INCLUDE\s+BLOCKS|POSITION|PUSHBUTTON|SKIP|ULINE)|LEAVE\s+(LIST-PROCESSING|PROGRAM|SCREEN|TO LIST-PROCESSING|TO TRANSACTION)(ENDING|STARTING)\s+AT|FORMAT\s+(COLOR|INTENSIFIED|INVERSE|HOTSPOT|INPUT|FRAMES|RESET)|AS\s+(CHECKBOX|SUBSCREEN|WINDOW)|WITH\s+(((NON-)?UNIQUE)?\s+KEY|FRAME)|(BEGIN|END)\s+OF|DELETE(\s+ADJACENT\s+DUPLICATES\sFROM)?|COMPARING(\s+ALL\s+FIELDS)?|(INSERT|APPEND)(\s+INITIAL\s+LINE\s+(IN)?TO|\s+LINES\s+OF)?|IN\s+((BYTE|CHARACTER)\s+MODE|PROGRAM)|END-OF-(DEFINITION|PAGE|SELECTION)|WITH\s+FRAME(\s+TITLE)|(REPLACE|FIND)\s+((FIRST|ALL)\s+OCCURRENCES?\s+OF\s+)?(SUBSTRING|REGEX)?|MATCH\s+(LENGTH|COUNT|LINE|OFFSET)|(RESPECTING|IGNORING)\s+CASE|IN\s+UPDATE\s+TASK|(SOURCE|RESULT)\s+(XML)?|REFERENCE\s+INTO|AND\s+(MARK|RETURN)|CLIENT\s+SPECIFIED|CORRESPONDING\s+FIELDS\s+OF|IF\s+FOUND|FOR\s+EVENT|INHERITING\s+FROM|LEAVE\s+TO\s+SCREEN|LOOP\s+AT\s+(SCREEN)?|LOWER\s+CASE|MATCHCODE\s+OBJECT|MODIF\s+ID|MODIFY\s+SCREEN|NESTING\s+LEVEL|NO\s+INTERVALS|OF\s+STRUCTURE|RADIOBUTTON\s+GROUP|RANGE\s+OF|REF\s+TO|SUPPRESS DIALOG|TABLE\s+OF|UPPER\s+CASE|TRANSPORTING\s+NO\s+FIELDS|VALUE\s+CHECK|VISIBLE\s+LENGTH|HEADER\s+LINE|COMMON\s+PART)\b`, Keyword, nil}, - {`(^|(?<=(\s|\.)))(ABBREVIATED|ABSTRACT|ADD|ALIASES|ALIGN|ALPHA|ASSERT|AS|ASSIGN(ING)?|AT(\s+FIRST)?|BACK|BLOCK|BREAK-POINT|CASE|CATCH|CHANGING|CHECK|CLASS|CLEAR|COLLECT|COLOR|COMMIT|CREATE|COMMUNICATION|COMPONENTS?|COMPUTE|CONCATENATE|CONDENSE|CONSTANTS|CONTEXTS|CONTINUE|CONTROLS|COUNTRY|CURRENCY|DATA|DATE|DECIMALS|DEFAULT|DEFINE|DEFINITION|DEFERRED|DEMAND|DETAIL|DIRECTORY|DIVIDE|DO|DUMMY|ELSE(IF)?|ENDAT|ENDCASE|ENDCATCH|ENDCLASS|ENDDO|ENDFORM|ENDFUNCTION|ENDIF|ENDINTERFACE|ENDLOOP|ENDMETHOD|ENDMODULE|ENDSELECT|ENDTRY|ENDWHILE|ENHANCEMENT|EVENTS|EXACT|EXCEPTIONS?|EXIT|EXPONENT|EXPORT|EXPORTING|EXTRACT|FETCH|FIELDS?|FOR|FORM|FORMAT|FREE|FROM|FUNCTION|HIDE|ID|IF|IMPORT|IMPLEMENTATION|IMPORTING|IN|INCLUDE|INCLUDING|INDEX|INFOTYPES|INITIALIZATION|INTERFACE|INTERFACES|INTO|LANGUAGE|LEAVE|LENGTH|LINES|LOAD|LOCAL|JOIN|KEY|NEXT|MAXIMUM|MESSAGE|METHOD[S]?|MINIMUM|MODULE|MODIFIER|MODIFY|MOVE|MULTIPLY|NODES|NUMBER|OBLIGATORY|OBJECT|OF|OFF|ON|OTHERS|OVERLAY|PACK|PAD|PARAMETERS|PERCENTAGE|POSITION|PROGRAM|PROVIDE|PUBLIC|PUT|PF\d\d|RAISE|RAISING|RANGES?|READ|RECEIVE|REDEFINITION|REFRESH|REJECT|REPORT|RESERVE|RESUME|RETRY|RETURN|RETURNING|RIGHT|ROLLBACK|REPLACE|SCROLL|SEARCH|SELECT|SHIFT|SIGN|SINGLE|SIZE|SKIP|SORT|SPLIT|STATICS|STOP|STYLE|SUBMATCHES|SUBMIT|SUBTRACT|SUM(?!\()|SUMMARY|SUMMING|SUPPLY|TABLE|TABLES|TIMESTAMP|TIMES?|TIMEZONE|TITLE|\??TO|TOP-OF-PAGE|TRANSFER|TRANSLATE|TRY|TYPES|ULINE|UNDER|UNPACK|UPDATE|USING|VALUE|VALUES|VIA|VARYING|VARY|WAIT|WHEN|WHERE|WIDTH|WHILE|WITH|WINDOW|WRITE|XSD|ZERO)\b`, Keyword, nil}, - {`(abs|acos|asin|atan|boolc|boolx|bit_set|char_off|charlen|ceil|cmax|cmin|condense|contains|contains_any_of|contains_any_not_of|concat_lines_of|cos|cosh|count|count_any_of|count_any_not_of|dbmaxlen|distance|escape|exp|find|find_end|find_any_of|find_any_not_of|floor|frac|from_mixed|insert|lines|log|log10|match|matches|nmax|nmin|numofchar|repeat|replace|rescale|reverse|round|segment|shift_left|shift_right|sign|sin|sinh|sqrt|strlen|substring|substring_after|substring_from|substring_before|substring_to|tan|tanh|to_upper|to_lower|to_mixed|translate|trunc|xstrlen)(\()\b`, ByGroups(NameBuiltin, Punctuation), nil}, - {`&[0-9]`, Name, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`(?<=(\s|.))(AND|OR|EQ|NE|GT|LT|GE|LE|CO|CN|CA|NA|CS|NOT|NS|CP|NP|BYTE-CO|BYTE-CN|BYTE-CA|BYTE-NA|BYTE-CS|BYTE-NS|IS\s+(NOT\s+)?(INITIAL|ASSIGNED|REQUESTED|BOUND))\b`, OperatorWord, nil}, - Include("variable-names"), - {`[?*<>=\-+&]`, Operator, nil}, - {`'(''|[^'])*'`, LiteralStringSingle, nil}, - {"`([^`])*`", LiteralStringSingle, nil}, - {`([|}])([^{}|]*?)([|{])`, ByGroups(Punctuation, LiteralStringSingle, Punctuation), nil}, - {`[/;:()\[\],.]`, Punctuation, nil}, - {`(!)(\w+)`, ByGroups(Operator, Name), nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/abnf.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/abnf.go deleted file mode 100644 index ff29aed24e..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/abnf.go +++ /dev/null @@ -1,38 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Abnf lexer. -var Abnf = internal.Register(MustNewLexer( - &Config{ - Name: "ABNF", - Aliases: []string{"abnf"}, - Filenames: []string{"*.abnf"}, - MimeTypes: []string{"text/x-abnf"}, - }, - Rules{ - "root": { - {`;.*$`, CommentSingle, nil}, - {`(%[si])?"[^"]*"`, Literal, nil}, - {`%b[01]+\-[01]+\b`, Literal, nil}, - {`%b[01]+(\.[01]+)*\b`, Literal, nil}, - {`%d[0-9]+\-[0-9]+\b`, Literal, nil}, - {`%d[0-9]+(\.[0-9]+)*\b`, Literal, nil}, - {`%x[0-9a-fA-F]+\-[0-9a-fA-F]+\b`, Literal, nil}, - {`%x[0-9a-fA-F]+(\.[0-9a-fA-F]+)*\b`, Literal, nil}, - {`\b[0-9]+\*[0-9]+`, Operator, nil}, - {`\b[0-9]+\*`, Operator, nil}, - {`\b[0-9]+`, Operator, nil}, - {`\*`, Operator, nil}, - {Words(``, `\b`, `ALPHA`, `BIT`, `CHAR`, `CR`, `CRLF`, `CTL`, `DIGIT`, `DQUOTE`, `HEXDIG`, `HTAB`, `LF`, `LWSP`, `OCTET`, `SP`, `VCHAR`, `WSP`), Keyword, nil}, - {`[a-zA-Z][a-zA-Z0-9-]+\b`, NameClass, nil}, - {`(=/|=|/)`, Operator, nil}, - {`[\[\]()]`, Punctuation, nil}, - {`\s+`, Text, nil}, - {`.`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/actionscript.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/actionscript.go deleted file mode 100644 index 43d38521e7..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/actionscript.go +++ /dev/null @@ -1,39 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Actionscript lexer. -var Actionscript = internal.Register(MustNewLexer( - &Config{ - Name: "ActionScript", - Aliases: []string{"as", "actionscript"}, - Filenames: []string{"*.as"}, - MimeTypes: []string{"application/x-actionscript", "text/x-actionscript", "text/actionscript"}, - NotMultiline: true, - DotAll: true, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/\*.*?\*/`, CommentMultiline, nil}, - {`/(\\\\|\\/|[^/\n])*/[gim]*`, LiteralStringRegex, nil}, - {`[~^*!%&<>|+=:;,/?\\-]+`, Operator, nil}, - {`[{}\[\]();.]+`, Punctuation, nil}, - {Words(``, `\b`, `case`, `default`, `for`, `each`, `in`, `while`, `do`, `break`, `return`, `continue`, `if`, `else`, `throw`, `try`, `catch`, `var`, `with`, `new`, `typeof`, `arguments`, `instanceof`, `this`, `switch`), Keyword, nil}, - {Words(``, `\b`, `class`, `public`, `final`, `internal`, `native`, `override`, `private`, `protected`, `static`, `import`, `extends`, `implements`, `interface`, `intrinsic`, `return`, `super`, `dynamic`, `function`, `const`, `get`, `namespace`, `package`, `set`), KeywordDeclaration, nil}, - {`(true|false|null|NaN|Infinity|-Infinity|undefined|Void)\b`, KeywordConstant, nil}, - {Words(``, `\b`, `Accessibility`, `AccessibilityProperties`, `ActionScriptVersion`, `ActivityEvent`, `AntiAliasType`, `ApplicationDomain`, `AsBroadcaster`, `Array`, `AsyncErrorEvent`, `AVM1Movie`, `BevelFilter`, `Bitmap`, `BitmapData`, `BitmapDataChannel`, `BitmapFilter`, `BitmapFilterQuality`, `BitmapFilterType`, `BlendMode`, `BlurFilter`, `Boolean`, `ByteArray`, `Camera`, `Capabilities`, `CapsStyle`, `Class`, `Color`, `ColorMatrixFilter`, `ColorTransform`, `ContextMenu`, `ContextMenuBuiltInItems`, `ContextMenuEvent`, `ContextMenuItem`, `ConvultionFilter`, `CSMSettings`, `DataEvent`, `Date`, `DefinitionError`, `DeleteObjectSample`, `Dictionary`, `DisplacmentMapFilter`, `DisplayObject`, `DisplacmentMapFilterMode`, `DisplayObjectContainer`, `DropShadowFilter`, `Endian`, `EOFError`, `Error`, `ErrorEvent`, `EvalError`, `Event`, `EventDispatcher`, `EventPhase`, `ExternalInterface`, `FileFilter`, `FileReference`, `FileReferenceList`, `FocusDirection`, `FocusEvent`, `Font`, `FontStyle`, `FontType`, `FrameLabel`, `FullScreenEvent`, `Function`, `GlowFilter`, `GradientBevelFilter`, `GradientGlowFilter`, `GradientType`, `Graphics`, `GridFitType`, `HTTPStatusEvent`, `IBitmapDrawable`, `ID3Info`, `IDataInput`, `IDataOutput`, `IDynamicPropertyOutputIDynamicPropertyWriter`, `IEventDispatcher`, `IExternalizable`, `IllegalOperationError`, `IME`, `IMEConversionMode`, `IMEEvent`, `int`, `InteractiveObject`, `InterpolationMethod`, `InvalidSWFError`, `InvokeEvent`, `IOError`, `IOErrorEvent`, `JointStyle`, `Key`, `Keyboard`, `KeyboardEvent`, `KeyLocation`, `LineScaleMode`, `Loader`, `LoaderContext`, `LoaderInfo`, `LoadVars`, `LocalConnection`, `Locale`, `Math`, `Matrix`, `MemoryError`, `Microphone`, `MorphShape`, `Mouse`, `MouseEvent`, `MovieClip`, `MovieClipLoader`, `Namespace`, `NetConnection`, `NetStatusEvent`, `NetStream`, `NewObjectSample`, `Number`, `Object`, `ObjectEncoding`, `PixelSnapping`, `Point`, `PrintJob`, `PrintJobOptions`, `PrintJobOrientation`, `ProgressEvent`, `Proxy`, `QName`, `RangeError`, `Rectangle`, `ReferenceError`, `RegExp`, `Responder`, `Sample`, `Scene`, `ScriptTimeoutError`, `Security`, `SecurityDomain`, `SecurityError`, `SecurityErrorEvent`, `SecurityPanel`, `Selection`, `Shape`, `SharedObject`, `SharedObjectFlushStatus`, `SimpleButton`, `Socket`, `Sound`, `SoundChannel`, `SoundLoaderContext`, `SoundMixer`, `SoundTransform`, `SpreadMethod`, `Sprite`, `StackFrame`, `StackOverflowError`, `Stage`, `StageAlign`, `StageDisplayState`, `StageQuality`, `StageScaleMode`, `StaticText`, `StatusEvent`, `String`, `StyleSheet`, `SWFVersion`, `SyncEvent`, `SyntaxError`, `System`, `TextColorType`, `TextField`, `TextFieldAutoSize`, `TextFieldType`, `TextFormat`, `TextFormatAlign`, `TextLineMetrics`, `TextRenderer`, `TextSnapshot`, `Timer`, `TimerEvent`, `Transform`, `TypeError`, `uint`, `URIError`, `URLLoader`, `URLLoaderDataFormat`, `URLRequest`, `URLRequestHeader`, `URLRequestMethod`, `URLStream`, `URLVariabeles`, `VerifyError`, `Video`, `XML`, `XMLDocument`, `XMLList`, `XMLNode`, `XMLNodeType`, `XMLSocket`, `XMLUI`), NameBuiltin, nil}, - {Words(``, `\b`, `decodeURI`, `decodeURIComponent`, `encodeURI`, `escape`, `eval`, `isFinite`, `isNaN`, `isXMLName`, `clearInterval`, `fscommand`, `getTimer`, `getURL`, `getVersion`, `parseFloat`, `parseInt`, `setInterval`, `trace`, `updateAfterEvent`, `unescape`), NameFunction, nil}, - {`[$a-zA-Z_]\w*`, NameOther, nil}, - {`[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-f]+`, LiteralNumberHex, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/actionscript3.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/actionscript3.go deleted file mode 100644 index 3404bd5556..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/actionscript3.go +++ /dev/null @@ -1,56 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Actionscript 3 lexer. -var Actionscript3 = internal.Register(MustNewLexer( - &Config{ - Name: "ActionScript 3", - Aliases: []string{"as3", "actionscript3"}, - Filenames: []string{"*.as"}, - MimeTypes: []string{"application/x-actionscript3", "text/x-actionscript3", "text/actionscript3"}, - DotAll: true, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`(function\s+)([$a-zA-Z_]\w*)(\s*)(\()`, ByGroups(KeywordDeclaration, NameFunction, Text, Operator), Push("funcparams")}, - {`(var|const)(\s+)([$a-zA-Z_]\w*)(\s*)(:)(\s*)([$a-zA-Z_]\w*(?:\.<\w+>)?)`, ByGroups(KeywordDeclaration, Text, Name, Text, Punctuation, Text, KeywordType), nil}, - {`(import|package)(\s+)((?:[$a-zA-Z_]\w*|\.)+)(\s*)`, ByGroups(Keyword, Text, NameNamespace, Text), nil}, - {`(new)(\s+)([$a-zA-Z_]\w*(?:\.<\w+>)?)(\s*)(\()`, ByGroups(Keyword, Text, KeywordType, Text, Operator), nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/\*.*?\*/`, CommentMultiline, nil}, - {`/(\\\\|\\/|[^\n])*/[gisx]*`, LiteralStringRegex, nil}, - {`(\.)([$a-zA-Z_]\w*)`, ByGroups(Operator, NameAttribute), nil}, - {`(case|default|for|each|in|while|do|break|return|continue|if|else|throw|try|catch|with|new|typeof|arguments|instanceof|this|switch|import|include|as|is)\b`, Keyword, nil}, - {`(class|public|final|internal|native|override|private|protected|static|import|extends|implements|interface|intrinsic|return|super|dynamic|function|const|get|namespace|package|set)\b`, KeywordDeclaration, nil}, - {`(true|false|null|NaN|Infinity|-Infinity|undefined|void)\b`, KeywordConstant, nil}, - {`(decodeURI|decodeURIComponent|encodeURI|escape|eval|isFinite|isNaN|isXMLName|clearInterval|fscommand|getTimer|getURL|getVersion|isFinite|parseFloat|parseInt|setInterval|trace|updateAfterEvent|unescape)\b`, NameFunction, nil}, - {`[$a-zA-Z_]\w*`, Name, nil}, - {`[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-f]+`, LiteralNumberHex, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`[~^*!%&<>|+=:;,/?\\{}\[\]().-]+`, Operator, nil}, - }, - "funcparams": { - {`\s+`, Text, nil}, - {`(\s*)(\.\.\.)?([$a-zA-Z_]\w*)(\s*)(:)(\s*)([$a-zA-Z_]\w*(?:\.<\w+>)?|\*)(\s*)`, ByGroups(Text, Punctuation, Name, Text, Operator, Text, KeywordType, Text), Push("defval")}, - {`\)`, Operator, Push("type")}, - }, - "type": { - {`(\s*)(:)(\s*)([$a-zA-Z_]\w*(?:\.<\w+>)?|\*)`, ByGroups(Text, Operator, Text, KeywordType), Pop(2)}, - {`\s+`, Text, Pop(2)}, - Default(Pop(2)), - }, - "defval": { - {`(=)(\s*)([^(),]+)(\s*)(,?)`, ByGroups(Operator, Text, UsingSelf("root"), Text, Operator), Pop(1)}, - {`,`, Operator, Pop(1)}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/ada.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/ada.go deleted file mode 100644 index d9b34e3ca7..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/ada.go +++ /dev/null @@ -1,114 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Ada lexer. -var Ada = internal.Register(MustNewLexer( - &Config{ - Name: "Ada", - Aliases: []string{"ada", "ada95", "ada2005"}, - Filenames: []string{"*.adb", "*.ads", "*.ada"}, - MimeTypes: []string{"text/x-ada"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`[^\S\n]+`, Text, nil}, - {`--.*?\n`, CommentSingle, nil}, - {`[^\S\n]+`, Text, nil}, - {`function|procedure|entry`, KeywordDeclaration, Push("subprogram")}, - {`(subtype|type)(\s+)(\w+)`, ByGroups(KeywordDeclaration, Text, KeywordType), Push("type_def")}, - {`task|protected`, KeywordDeclaration, nil}, - {`(subtype)(\s+)`, ByGroups(KeywordDeclaration, Text), nil}, - {`(end)(\s+)`, ByGroups(KeywordReserved, Text), Push("end")}, - {`(pragma)(\s+)(\w+)`, ByGroups(KeywordReserved, Text, CommentPreproc), nil}, - {`(true|false|null)\b`, KeywordConstant, nil}, - {Words(``, `\b`, `Address`, `Byte`, `Boolean`, `Character`, `Controlled`, `Count`, `Cursor`, `Duration`, `File_Mode`, `File_Type`, `Float`, `Generator`, `Integer`, `Long_Float`, `Long_Integer`, `Long_Long_Float`, `Long_Long_Integer`, `Natural`, `Positive`, `Reference_Type`, `Short_Float`, `Short_Integer`, `Short_Short_Float`, `Short_Short_Integer`, `String`, `Wide_Character`, `Wide_String`), KeywordType, nil}, - {`(and(\s+then)?|in|mod|not|or(\s+else)|rem)\b`, OperatorWord, nil}, - {`generic|private`, KeywordDeclaration, nil}, - {`package`, KeywordDeclaration, Push("package")}, - {`array\b`, KeywordReserved, Push("array_def")}, - {`(with|use)(\s+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - {`(\w+)(\s*)(:)(\s*)(constant)`, ByGroups(NameConstant, Text, Punctuation, Text, KeywordReserved), nil}, - {`<<\w+>>`, NameLabel, nil}, - {`(\w+)(\s*)(:)(\s*)(declare|begin|loop|for|while)`, ByGroups(NameLabel, Text, Punctuation, Text, KeywordReserved), nil}, - {Words(`\b`, `\b`, `abort`, `abs`, `abstract`, `accept`, `access`, `aliased`, `all`, `array`, `at`, `begin`, `body`, `case`, `constant`, `declare`, `delay`, `delta`, `digits`, `do`, `else`, `elsif`, `end`, `entry`, `exception`, `exit`, `interface`, `for`, `goto`, `if`, `is`, `limited`, `loop`, `new`, `null`, `of`, `or`, `others`, `out`, `overriding`, `pragma`, `protected`, `raise`, `range`, `record`, `renames`, `requeue`, `return`, `reverse`, `select`, `separate`, `subtype`, `synchronized`, `task`, `tagged`, `terminate`, `then`, `type`, `until`, `when`, `while`, `xor`), KeywordReserved, nil}, - {`"[^"]*"`, LiteralString, nil}, - Include("attribute"), - Include("numbers"), - {`'[^']'`, LiteralStringChar, nil}, - {`(\w+)(\s*|[(,])`, ByGroups(Name, UsingSelf("root")), nil}, - {`(<>|=>|:=|[()|:;,.'])`, Punctuation, nil}, - {`[*<>+=/&-]`, Operator, nil}, - {`\n+`, Text, nil}, - }, - "numbers": { - {`[0-9_]+#[0-9a-f]+#`, LiteralNumberHex, nil}, - {`[0-9_]+\.[0-9_]*`, LiteralNumberFloat, nil}, - {`[0-9_]+`, LiteralNumberInteger, nil}, - }, - "attribute": { - {`(')(\w+)`, ByGroups(Punctuation, NameAttribute), nil}, - }, - "subprogram": { - {`\(`, Punctuation, Push("#pop", "formal_part")}, - {`;`, Punctuation, Pop(1)}, - {`is\b`, KeywordReserved, Pop(1)}, - {`"[^"]+"|\w+`, NameFunction, nil}, - Include("root"), - }, - "end": { - {`(if|case|record|loop|select)`, KeywordReserved, nil}, - {`"[^"]+"|[\w.]+`, NameFunction, nil}, - {`\s+`, Text, nil}, - {`;`, Punctuation, Pop(1)}, - }, - "type_def": { - {`;`, Punctuation, Pop(1)}, - {`\(`, Punctuation, Push("formal_part")}, - {`with|and|use`, KeywordReserved, nil}, - {`array\b`, KeywordReserved, Push("#pop", "array_def")}, - {`record\b`, KeywordReserved, Push("record_def")}, - {`(null record)(;)`, ByGroups(KeywordReserved, Punctuation), Pop(1)}, - Include("root"), - }, - "array_def": { - {`;`, Punctuation, Pop(1)}, - {`(\w+)(\s+)(range)`, ByGroups(KeywordType, Text, KeywordReserved), nil}, - Include("root"), - }, - "record_def": { - {`end record`, KeywordReserved, Pop(1)}, - Include("root"), - }, - "import": { - {`[\w.]+`, NameNamespace, Pop(1)}, - Default(Pop(1)), - }, - "formal_part": { - {`\)`, Punctuation, Pop(1)}, - {`\w+`, NameVariable, nil}, - {`,|:[^=]`, Punctuation, nil}, - {`(in|not|null|out|access)\b`, KeywordReserved, nil}, - Include("root"), - }, - "package": { - {`body`, KeywordDeclaration, nil}, - {`is\s+new|renames`, KeywordReserved, nil}, - {`is`, KeywordReserved, Pop(1)}, - {`;`, Punctuation, Pop(1)}, - {`\(`, Punctuation, Push("package_instantiation")}, - {`([\w.]+)`, NameClass, nil}, - Include("root"), - }, - "package_instantiation": { - {`("[^"]+"|\w+)(\s+)(=>)`, ByGroups(NameVariable, Text, Punctuation), nil}, - {`[\w.\'"]`, Text, nil}, - {`\)`, Punctuation, Pop(1)}, - Include("root"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/angular2.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/angular2.go deleted file mode 100644 index 5258c928b8..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/angular2.go +++ /dev/null @@ -1,42 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Angular2 lexer. -var Angular2 = internal.Register(MustNewLexer( - &Config{ - Name: "Angular2", - Aliases: []string{"ng2"}, - Filenames: []string{}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`[^{([*#]+`, Other, nil}, - {`(\{\{)(\s*)`, ByGroups(CommentPreproc, Text), Push("ngExpression")}, - {`([([]+)([\w:.-]+)([\])]+)(\s*)(=)(\s*)`, ByGroups(Punctuation, NameAttribute, Punctuation, Text, Operator, Text), Push("attr")}, - {`([([]+)([\w:.-]+)([\])]+)(\s*)`, ByGroups(Punctuation, NameAttribute, Punctuation, Text), nil}, - {`([*#])([\w:.-]+)(\s*)(=)(\s*)`, ByGroups(Punctuation, NameAttribute, Punctuation, Operator), Push("attr")}, - {`([*#])([\w:.-]+)(\s*)`, ByGroups(Punctuation, NameAttribute, Punctuation), nil}, - }, - "ngExpression": { - {`\s+(\|\s+)?`, Text, nil}, - {`\}\}`, CommentPreproc, Pop(1)}, - {`:?(true|false)`, LiteralStringBoolean, nil}, - {`:?"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`:?'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil}, - {`[a-zA-Z][\w-]*(\(.*\))?`, NameVariable, nil}, - {`\.[\w-]+(\(.*\))?`, NameVariable, nil}, - {`(\?)(\s*)([^}\s]+)(\s*)(:)(\s*)([^}\s]+)(\s*)`, ByGroups(Operator, Text, LiteralString, Text, Operator, Text, LiteralString, Text), nil}, - }, - "attr": { - {`".*?"`, LiteralString, Pop(1)}, - {`'.*?'`, LiteralString, Pop(1)}, - {`[^\s>]+`, LiteralString, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/antlr.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/antlr.go deleted file mode 100644 index d7649d4a4a..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/antlr.go +++ /dev/null @@ -1,101 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// ANTLR lexer. -var ANTLR = internal.Register(MustNewLexer( - &Config{ - Name: "ANTLR", - Aliases: []string{"antlr"}, - Filenames: []string{}, - MimeTypes: []string{}, - }, - Rules{ - "whitespace": { - {`\s+`, TextWhitespace, nil}, - }, - "comments": { - {`//.*$`, Comment, nil}, - {`/\*(.|\n)*?\*/`, Comment, nil}, - }, - "root": { - Include("whitespace"), - Include("comments"), - {`(lexer|parser|tree)?(\s*)(grammar\b)(\s*)([A-Za-z]\w*)(;)`, ByGroups(Keyword, TextWhitespace, Keyword, TextWhitespace, NameClass, Punctuation), nil}, - {`options\b`, Keyword, Push("options")}, - {`tokens\b`, Keyword, Push("tokens")}, - {`(scope)(\s*)([A-Za-z]\w*)(\s*)(\{)`, ByGroups(Keyword, TextWhitespace, NameVariable, TextWhitespace, Punctuation), Push("action")}, - {`(catch|finally)\b`, Keyword, Push("exception")}, - {`(@[A-Za-z]\w*)(\s*)(::)?(\s*)([A-Za-z]\w*)(\s*)(\{)`, ByGroups(NameLabel, TextWhitespace, Punctuation, TextWhitespace, NameLabel, TextWhitespace, Punctuation), Push("action")}, - {`((?:protected|private|public|fragment)\b)?(\s*)([A-Za-z]\w*)(!)?`, ByGroups(Keyword, TextWhitespace, NameLabel, Punctuation), Push("rule-alts", "rule-prelims")}, - }, - "exception": { - {`\n`, TextWhitespace, Pop(1)}, - {`\s`, TextWhitespace, nil}, - Include("comments"), - {`\[`, Punctuation, Push("nested-arg-action")}, - {`\{`, Punctuation, Push("action")}, - }, - "rule-prelims": { - Include("whitespace"), - Include("comments"), - {`returns\b`, Keyword, nil}, - {`\[`, Punctuation, Push("nested-arg-action")}, - {`\{`, Punctuation, Push("action")}, - {`(throws)(\s+)([A-Za-z]\w*)`, ByGroups(Keyword, TextWhitespace, NameLabel), nil}, - {`(,)(\s*)([A-Za-z]\w*)`, ByGroups(Punctuation, TextWhitespace, NameLabel), nil}, - {`options\b`, Keyword, Push("options")}, - {`(scope)(\s+)(\{)`, ByGroups(Keyword, TextWhitespace, Punctuation), Push("action")}, - {`(scope)(\s+)([A-Za-z]\w*)(\s*)(;)`, ByGroups(Keyword, TextWhitespace, NameLabel, TextWhitespace, Punctuation), nil}, - {`(@[A-Za-z]\w*)(\s*)(\{)`, ByGroups(NameLabel, TextWhitespace, Punctuation), Push("action")}, - {`:`, Punctuation, Pop(1)}, - }, - "rule-alts": { - Include("whitespace"), - Include("comments"), - {`options\b`, Keyword, Push("options")}, - {`:`, Punctuation, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralString, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`<<([^>]|>[^>])>>`, LiteralString, nil}, - {`\$?[A-Z_]\w*`, NameConstant, nil}, - {`\$?[a-z_]\w*`, NameVariable, nil}, - {`(\+|\||->|=>|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)`, Operator, nil}, - {`,`, Punctuation, nil}, - {`\[`, Punctuation, Push("nested-arg-action")}, - {`\{`, Punctuation, Push("action")}, - {`;`, Punctuation, Pop(1)}, - }, - "tokens": { - Include("whitespace"), - Include("comments"), - {`\{`, Punctuation, nil}, - {`([A-Z]\w*)(\s*)(=)?(\s*)(\'(?:\\\\|\\\'|[^\']*)\')?(\s*)(;)`, ByGroups(NameLabel, TextWhitespace, Punctuation, TextWhitespace, LiteralString, TextWhitespace, Punctuation), nil}, - {`\}`, Punctuation, Pop(1)}, - }, - "options": { - Include("whitespace"), - Include("comments"), - {`\{`, Punctuation, nil}, - {`([A-Za-z]\w*)(\s*)(=)(\s*)([A-Za-z]\w*|\'(?:\\\\|\\\'|[^\']*)\'|[0-9]+|\*)(\s*)(;)`, ByGroups(NameVariable, TextWhitespace, Punctuation, TextWhitespace, Text, TextWhitespace, Punctuation), nil}, - {`\}`, Punctuation, Pop(1)}, - }, - "action": { - {`([^${}\'"/\\]+|"(\\\\|\\"|[^"])*"|'(\\\\|\\'|[^'])*'|//.*$\n?|/\*(.|\n)*?\*/|/(?!\*)(\\\\|\\/|[^/])*/|\\(?!%)|/)+`, Other, nil}, - {`(\\)(%)`, ByGroups(Punctuation, Other), nil}, - {`(\$[a-zA-Z]+)(\.?)(text|value)?`, ByGroups(NameVariable, Punctuation, NameProperty), nil}, - {`\{`, Punctuation, Push()}, - {`\}`, Punctuation, Pop(1)}, - }, - "nested-arg-action": { - {`([^$\[\]\'"/]+|"(\\\\|\\"|[^"])*"|'(\\\\|\\'|[^'])*'|//.*$\n?|/\*(.|\n)*?\*/|/(?!\*)(\\\\|\\/|[^/])*/|/)+`, Other, nil}, - {`\[`, Punctuation, Push()}, - {`\]`, Punctuation, Pop(1)}, - {`(\$[a-zA-Z]+)(\.?)(text|value)?`, ByGroups(NameVariable, Punctuation, NameProperty), nil}, - {`(\\\\|\\\]|\\\[|[^\[\]])+`, Other, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/apache.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/apache.go deleted file mode 100644 index 6c56a1db87..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/apache.go +++ /dev/null @@ -1,38 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Apacheconf lexer. -var Apacheconf = internal.Register(MustNewLexer( - &Config{ - Name: "ApacheConf", - Aliases: []string{"apacheconf", "aconf", "apache"}, - Filenames: []string{".htaccess", "apache.conf", "apache2.conf"}, - MimeTypes: []string{"text/x-apacheconf"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`(#.*?)$`, Comment, nil}, - {`(<[^\s>]+)(?:(\s+)(.*?))?(>)`, ByGroups(NameTag, Text, LiteralString, NameTag), nil}, - {`([a-z]\w*)(\s+)`, ByGroups(NameBuiltin, Text), Push("value")}, - {`\.+`, Text, nil}, - }, - "value": { - {`\\\n`, Text, nil}, - {`$`, Text, Pop(1)}, - {`\\`, Text, nil}, - {`[^\S\n]+`, Text, nil}, - {`\d+\.\d+\.\d+\.\d+(?:/\d+)?`, LiteralNumber, nil}, - {`\d+`, LiteralNumber, nil}, - {`/([a-z0-9][\w./-]+)`, LiteralStringOther, nil}, - {`(on|off|none|any|all|double|email|dns|min|minimal|os|productonly|full|emerg|alert|crit|error|warn|notice|info|debug|registry|script|inetd|standalone|user|group)\b`, Keyword, nil}, - {`"([^"\\]*(?:\\.[^"\\]*)*)"`, LiteralStringDouble, nil}, - {`[^\s"\\]+`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/apl.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/apl.go deleted file mode 100644 index 820e13b6cb..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/apl.go +++ /dev/null @@ -1,36 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Apl lexer. -var Apl = internal.Register(MustNewLexer( - &Config{ - Name: "APL", - Aliases: []string{"apl"}, - Filenames: []string{"*.apl"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`[⍝#].*$`, CommentSingle, nil}, - {`\'((\'\')|[^\'])*\'`, LiteralStringSingle, nil}, - {`"(("")|[^"])*"`, LiteralStringDouble, nil}, - {`[⋄◇()]`, Punctuation, nil}, - {`[\[\];]`, LiteralStringRegex, nil}, - {`⎕[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*`, NameFunction, nil}, - {`[A-Za-zΔ∆⍙][A-Za-zΔ∆⍙_¯0-9]*`, NameVariable, nil}, - {`¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞)([Jj]¯?(0[Xx][0-9A-Fa-f]+|[0-9]*\.?[0-9]+([Ee][+¯]?[0-9]+)?|¯|∞))?`, LiteralNumber, nil}, - {`[\.\\/⌿⍀¨⍣⍨⍠⍤∘]`, NameAttribute, nil}, - {`[+\-×÷⌈⌊∣|⍳?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⌸⍯↗]`, Operator, nil}, - {`⍬`, NameConstant, nil}, - {`[⎕⍞]`, NameVariableGlobal, nil}, - {`[←→]`, KeywordDeclaration, nil}, - {`[⍺⍵⍶⍹∇:]`, NameBuiltinPseudo, nil}, - {`[{}]`, KeywordType, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/applescript.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/applescript.go deleted file mode 100644 index db83ed0e01..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/applescript.go +++ /dev/null @@ -1,55 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Applescript lexer. -var Applescript = internal.Register(MustNewLexer( - &Config{ - Name: "AppleScript", - Aliases: []string{"applescript"}, - Filenames: []string{"*.applescript"}, - MimeTypes: []string{}, - DotAll: true, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`¬\n`, LiteralStringEscape, nil}, - {`'s\s+`, Text, nil}, - {`(--|#).*?$`, Comment, nil}, - {`\(\*`, CommentMultiline, Push("comment")}, - {`[(){}!,.:]`, Punctuation, nil}, - {`(«)([^»]+)(»)`, ByGroups(Text, NameBuiltin, Text), nil}, - {`\b((?:considering|ignoring)\s*)(application responses|case|diacriticals|hyphens|numeric strings|punctuation|white space)`, ByGroups(Keyword, NameBuiltin), nil}, - {`(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|/|÷|\^)`, Operator, nil}, - {`\b(and|or|is equal|equals|(is )?equal to|is not|isn't|isn't equal( to)?|is not equal( to)?|doesn't equal|does not equal|(is )?greater than|comes after|is not less than or equal( to)?|isn't less than or equal( to)?|(is )?less than|comes before|is not greater than or equal( to)?|isn't greater than or equal( to)?|(is )?greater than or equal( to)?|is not less than|isn't less than|does not come before|doesn't come before|(is )?less than or equal( to)?|is not greater than|isn't greater than|does not come after|doesn't come after|starts? with|begins? with|ends? with|contains?|does not contain|doesn't contain|is in|is contained by|is not in|is not contained by|isn't contained by|div|mod|not|(a )?(ref( to)?|reference to)|is|does)\b`, OperatorWord, nil}, - {`^(\s*(?:on|end)\s+)(zoomed|write to file|will zoom|will show|will select tab view item|will resize( sub views)?|will resign active|will quit|will pop up|will open|will move|will miniaturize|will hide|will finish launching|will display outline cell|will display item cell|will display cell|will display browser cell|will dismiss|will close|will become active|was miniaturized|was hidden|update toolbar item|update parameters|update menu item|shown|should zoom|should selection change|should select tab view item|should select row|should select item|should select column|should quit( after last window closed)?|should open( untitled)?|should expand item|should end editing|should collapse item|should close|should begin editing|selection changing|selection changed|selected tab view item|scroll wheel|rows changed|right mouse up|right mouse dragged|right mouse down|resized( sub views)?|resigned main|resigned key|resigned active|read from file|prepare table drop|prepare table drag|prepare outline drop|prepare outline drag|prepare drop|plugin loaded|parameters updated|panel ended|opened|open untitled|number of rows|number of items|number of browser rows|moved|mouse up|mouse moved|mouse exited|mouse entered|mouse dragged|mouse down|miniaturized|load data representation|launched|keyboard up|keyboard down|items changed|item value changed|item value|item expandable|idle|exposed|end editing|drop|drag( (entered|exited|updated))?|double clicked|document nib name|dialog ended|deminiaturized|data representation|conclude drop|column resized|column moved|column clicked|closed|clicked toolbar item|clicked|choose menu item|child of item|changed|change item value|change cell value|cell value changed|cell value|bounds changed|begin editing|became main|became key|awake from nib|alert ended|activated|action|accept table drop|accept outline drop)`, ByGroups(Keyword, NameFunction), nil}, - {`^(\s*)(in|on|script|to)(\s+)`, ByGroups(Text, Keyword, Text), nil}, - {`\b(as )(alias |application |boolean |class |constant |date |file |integer |list |number |POSIX file |real |record |reference |RGB color |script |text |unit types|(?:Unicode )?text|string)\b`, ByGroups(Keyword, NameClass), nil}, - {`\b(AppleScript|current application|false|linefeed|missing value|pi|quote|result|return|space|tab|text item delimiters|true|version)\b`, NameConstant, nil}, - {`\b(ASCII (character|number)|activate|beep|choose URL|choose application|choose color|choose file( name)?|choose folder|choose from list|choose remote application|clipboard info|close( access)?|copy|count|current date|delay|delete|display (alert|dialog)|do shell script|duplicate|exists|get eof|get volume settings|info for|launch|list (disks|folder)|load script|log|make|mount volume|new|offset|open( (for access|location))?|path to|print|quit|random number|read|round|run( script)?|say|scripting components|set (eof|the clipboard to|volume)|store script|summarize|system attribute|system info|the clipboard|time to GMT|write|quoted form)\b`, NameBuiltin, nil}, - {`\b(considering|else|error|exit|from|if|ignoring|in|repeat|tell|then|times|to|try|until|using terms from|while|with|with timeout( of)?|with transaction|by|continue|end|its?|me|my|return|of|as)\b`, Keyword, nil}, - {`\b(global|local|prop(erty)?|set|get)\b`, Keyword, nil}, - {`\b(but|put|returning|the)\b`, NameBuiltin, nil}, - {`\b(attachment|attribute run|character|day|month|paragraph|word|year)s?\b`, NameBuiltin, nil}, - {`\b(about|above|against|apart from|around|aside from|at|below|beneath|beside|between|for|given|instead of|on|onto|out of|over|since)\b`, NameBuiltin, nil}, - {`\b(accepts arrow key|action method|active|alignment|allowed identifiers|allows branch selection|allows column reordering|allows column resizing|allows column selection|allows customization|allows editing text attributes|allows empty selection|allows mixed state|allows multiple selection|allows reordering|allows undo|alpha( value)?|alternate image|alternate increment value|alternate title|animation delay|associated file name|associated object|auto completes|auto display|auto enables items|auto repeat|auto resizes( outline column)?|auto save expanded items|auto save name|auto save table columns|auto saves configuration|auto scroll|auto sizes all columns to fit|auto sizes cells|background color|bezel state|bezel style|bezeled|border rect|border type|bordered|bounds( rotation)?|box type|button returned|button type|can choose directories|can choose files|can draw|can hide|cell( (background color|size|type))?|characters|class|click count|clicked( data)? column|clicked data item|clicked( data)? row|closeable|collating|color( (mode|panel))|command key down|configuration|content(s| (size|view( margins)?))?|context|continuous|control key down|control size|control tint|control view|controller visible|coordinate system|copies( on scroll)?|corner view|current cell|current column|current( field)? editor|current( menu)? item|current row|current tab view item|data source|default identifiers|delta (x|y|z)|destination window|directory|display mode|displayed cell|document( (edited|rect|view))?|double value|dragged column|dragged distance|dragged items|draws( cell)? background|draws grid|dynamically scrolls|echos bullets|edge|editable|edited( data)? column|edited data item|edited( data)? row|enabled|enclosing scroll view|ending page|error handling|event number|event type|excluded from windows menu|executable path|expanded|fax number|field editor|file kind|file name|file type|first responder|first visible column|flipped|floating|font( panel)?|formatter|frameworks path|frontmost|gave up|grid color|has data items|has horizontal ruler|has horizontal scroller|has parent data item|has resize indicator|has shadow|has sub menu|has vertical ruler|has vertical scroller|header cell|header view|hidden|hides when deactivated|highlights by|horizontal line scroll|horizontal page scroll|horizontal ruler view|horizontally resizable|icon image|id|identifier|ignores multiple clicks|image( (alignment|dims when disabled|frame style|scaling))?|imports graphics|increment value|indentation per level|indeterminate|index|integer value|intercell spacing|item height|key( (code|equivalent( modifier)?|window))?|knob thickness|label|last( visible)? column|leading offset|leaf|level|line scroll|loaded|localized sort|location|loop mode|main( (bunde|menu|window))?|marker follows cell|matrix mode|maximum( content)? size|maximum visible columns|menu( form representation)?|miniaturizable|miniaturized|minimized image|minimized title|minimum column width|minimum( content)? size|modal|modified|mouse down state|movie( (controller|file|rect))?|muted|name|needs display|next state|next text|number of tick marks|only tick mark values|opaque|open panel|option key down|outline table column|page scroll|pages across|pages down|palette label|pane splitter|parent data item|parent window|pasteboard|path( (names|separator))?|playing|plays every frame|plays selection only|position|preferred edge|preferred type|pressure|previous text|prompt|properties|prototype cell|pulls down|rate|released when closed|repeated|requested print time|required file type|resizable|resized column|resource path|returns records|reuses columns|rich text|roll over|row height|rulers visible|save panel|scripts path|scrollable|selectable( identifiers)?|selected cell|selected( data)? columns?|selected data items?|selected( data)? rows?|selected item identifier|selection by rect|send action on arrow key|sends action when done editing|separates columns|separator item|sequence number|services menu|shared frameworks path|shared support path|sheet|shift key down|shows alpha|shows state by|size( mode)?|smart insert delete enabled|sort case sensitivity|sort column|sort order|sort type|sorted( data rows)?|sound|source( mask)?|spell checking enabled|starting page|state|string value|sub menu|super menu|super view|tab key traverses cells|tab state|tab type|tab view|table view|tag|target( printer)?|text color|text container insert|text container origin|text returned|tick mark position|time stamp|title(d| (cell|font|height|position|rect))?|tool tip|toolbar|trailing offset|transparent|treat packages as directories|truncated labels|types|unmodified characters|update views|use sort indicator|user defaults|uses data source|uses ruler|uses threaded animation|uses title from previous column|value wraps|version|vertical( (line scroll|page scroll|ruler view))?|vertically resizable|view|visible( document rect)?|volume|width|window|windows menu|wraps|zoomable|zoomed)\b`, NameAttribute, nil}, - {`\b(action cell|alert reply|application|box|browser( cell)?|bundle|button( cell)?|cell|clip view|color well|color-panel|combo box( item)?|control|data( (cell|column|item|row|source))?|default entry|dialog reply|document|drag info|drawer|event|font(-panel)?|formatter|image( (cell|view))?|matrix|menu( item)?|item|movie( view)?|open-panel|outline view|panel|pasteboard|plugin|popup button|progress indicator|responder|save-panel|scroll view|secure text field( cell)?|slider|sound|split view|stepper|tab view( item)?|table( (column|header cell|header view|view))|text( (field( cell)?|view))?|toolbar( item)?|user-defaults|view|window)s?\b`, NameBuiltin, nil}, - {`\b(animate|append|call method|center|close drawer|close panel|display|display alert|display dialog|display panel|go|hide|highlight|increment|item for|load image|load movie|load nib|load panel|load sound|localized string|lock focus|log|open drawer|path for|pause|perform action|play|register|resume|scroll|select( all)?|show|size to fit|start|step back|step forward|stop|synchronize|unlock focus|update)\b`, NameBuiltin, nil}, - {`\b((in )?back of|(in )?front of|[0-9]+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|after|back|before|behind|every|front|index|last|middle|some|that|through|thru|where|whose)\b`, NameBuiltin, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`\b([a-zA-Z]\w*)\b`, NameVariable, nil}, - {`[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?`, LiteralNumberFloat, nil}, - {`[-+]?\d+`, LiteralNumberInteger, nil}, - }, - "comment": { - {`\(\*`, CommentMultiline, Push()}, - {`\*\)`, CommentMultiline, Pop(1)}, - {`[^*(]+`, CommentMultiline, nil}, - {`[*(]`, CommentMultiline, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/arduino.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/arduino.go deleted file mode 100644 index b0cd8c95d4..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/a/arduino.go +++ /dev/null @@ -1,110 +0,0 @@ -package a - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Arduino lexer. -var Arduino = internal.Register(MustNewLexer( - &Config{ - Name: "Arduino", - Aliases: []string{"arduino"}, - Filenames: []string{"*.ino"}, - MimeTypes: []string{"text/x-arduino"}, - EnsureNL: true, - }, - Rules{ - "statements": { - {Words(``, `\b`, `catch`, `const_cast`, `delete`, `dynamic_cast`, `explicit`, `export`, `friend`, `mutable`, `namespace`, `new`, `operator`, `private`, `protected`, `public`, `reinterpret_cast`, `restrict`, `static_cast`, `template`, `this`, `throw`, `throws`, `try`, `typeid`, `typename`, `using`, `virtual`, `constexpr`, `nullptr`, `decltype`, `thread_local`, `alignas`, `alignof`, `static_assert`, `noexcept`, `override`, `final`), Keyword, nil}, - {`char(16_t|32_t)\b`, KeywordType, nil}, - {`(class)\b`, ByGroups(Keyword, Text), Push("classname")}, - {`(R)(")([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(")`, ByGroups(LiteralStringAffix, LiteralString, LiteralStringDelimiter, LiteralStringDelimiter, LiteralString, LiteralStringDelimiter, LiteralString), nil}, - {`(u8|u|U)(")`, ByGroups(LiteralStringAffix, LiteralString), Push("string")}, - {`(L?)(")`, ByGroups(LiteralStringAffix, LiteralString), Push("string")}, - {`(L?)(')(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])(')`, ByGroups(LiteralStringAffix, LiteralStringChar, LiteralStringChar, LiteralStringChar), nil}, - {`(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*`, LiteralNumberFloat, nil}, - {`(\d+\.\d*|\.\d+|\d+[fF])[fF]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-fA-F]+[LlUu]*`, LiteralNumberHex, nil}, - {`0[0-7]+[LlUu]*`, LiteralNumberOct, nil}, - {`\d+[LlUu]*`, LiteralNumberInteger, nil}, - {`\*/`, Error, nil}, - {`[~!%^&*+=|?:<>/-]`, Operator, nil}, - {`[()\[\],.]`, Punctuation, nil}, - {Words(``, `\b`, `asm`, `auto`, `break`, `case`, `const`, `continue`, `default`, `do`, `else`, `enum`, `extern`, `for`, `goto`, `if`, `register`, `restricted`, `return`, `sizeof`, `static`, `struct`, `switch`, `typedef`, `union`, `volatile`, `while`), Keyword, nil}, - {`(_Bool|_Complex|_Imaginary|array|atomic_bool|atomic_char|atomic_int|atomic_llong|atomic_long|atomic_schar|atomic_short|atomic_uchar|atomic_uint|atomic_ullong|atomic_ulong|atomic_ushort|auto|bool|boolean|BooleanVariables|Byte|byte|Char|char|char16_t|char32_t|class|complex|Const|const|const_cast|delete|double|dynamic_cast|enum|explicit|extern|Float|float|friend|inline|Int|int|int16_t|int32_t|int64_t|int8_t|Long|long|new|NULL|null|operator|private|PROGMEM|protected|public|register|reinterpret_cast|short|signed|sizeof|Static|static|static_cast|String|struct|typedef|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|virtual|Void|void|Volatile|volatile|word)\b`, KeywordType, nil}, - // Start of: Arduino-specific syntax - {`(and|final|If|Loop|loop|not|or|override|setup|Setup|throw|try|xor)\b`, Keyword, nil}, // Addition to keywords already defined by C++ - {`(ANALOG_MESSAGE|BIN|CHANGE|DEC|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FALLING|FIRMATA_STRING|HALF_PI|HEX|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL1V1|INTERNAL2V56|INTERNAL2V56|LED_BUILTIN|LED_BUILTIN_RX|LED_BUILTIN_TX|LOW|LSBFIRST|MSBFIRST|OCT|OUTPUT|PI|REPORT_ANALOG|REPORT_DIGITAL|RISING|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET|TWO_PI)\b`, KeywordConstant, nil}, - {`(boolean|const|byte|word|string|String|array)\b`, NameVariable, nil}, - {`(Keyboard|KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD)\b`, NameClass, nil}, - {`(abs|Abs|accept|ACos|acos|acosf|addParameter|analogRead|AnalogRead|analogReadResolution|AnalogReadResolution|analogReference|AnalogReference|analogWrite|AnalogWrite|analogWriteResolution|AnalogWriteResolution|answerCall|asin|ASin|asinf|atan|ATan|atan2|ATan2|atan2f|atanf|attach|attached|attachGPRS|attachInterrupt|AttachInterrupt|autoscroll|available|availableForWrite|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|Bit|BitClear|bitClear|bitRead|BitRead|bitSet|BitSet|BitWrite|bitWrite|blink|blinkVersion|BSSID|buffer|byte|cbrt|cbrtf|Ceil|ceil|ceilf|changePIN|char|charAt|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compareTo|compassRead|concat|config|connect|connected|constrain|Constrain|copysign|copysignf|cos|Cos|cosf|cosh|coshf|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|degrees|Delay|delay|DelayMicroseconds|delayMicroseconds|detach|DetachInterrupt|detachInterrupt|DigitalPinToInterrupt|digitalPinToInterrupt|DigitalRead|digitalRead|DigitalWrite|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endsWith|endTransmission|endWrite|equals|equalsIgnoreCase|exists|exitValue|Exp|exp|expf|fabs|fabsf|fdim|fdimf|fill|find|findUntil|float|floor|Floor|floorf|flush|fma|fmaf|fmax|fmaxf|fmin|fminf|fmod|fmodf|gatewayIP|get|getAsynchronously|getBand|getButton|getBytes|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|HighByte|home|hypot|hypotf|image|indexOf|int|interrupts|IPAddress|IRread|isActionDone|isAlpha|isAlphaNumeric|isAscii|isControl|isDigit|isDirectory|isfinite|isGraph|isHexadecimalDigit|isinf|isListening|isLowerCase|isnan|isPIN|isPressed|isPrintable|isPunct|isSpace|isUpperCase|isValid|isWhitespace|keyboardRead|keyPressed|keyReleased|knobRead|lastIndexOf|ldexp|ldexpf|leftToRight|length|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|log|Log|log10|log10f|logf|long|lowByte|LowByte|lrint|lrintf|lround|lroundf|macAddress|maintain|map|Map|Max|max|messageAvailable|Micros|micros|millis|Millis|Min|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|NoInterrupts|noListenOnLocalhost|noStroke|noTone|NoTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|PinMode|pinMode|playFile|playMelody|point|pointTo|position|Pow|pow|powf|prepare|press|print|printFirmwareVersion|println|printVersion|process|processInput|PulseIn|pulseIn|pulseInLong|PulseInLong|put|radians|random|Random|randomSeed|RandomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|replace|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|round|roundf|RSSI|run|runAsynchronously|running|runShellCommand|runShellCommandAsynchronously|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|Serial_Available|Serial_Begin|Serial_End|Serial_Flush|Serial_Peek|Serial_Print|Serial_Println|Serial_Read|serialEvent|setBand|setBitOrder|setCharAt|setClockDivider|setCursor|setDataMode|setDNS|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|ShiftIn|shiftIn|ShiftOut|shiftOut|shutdown|signbit|sin|Sin|sinf|sinh|sinhf|size|sizeof|Sq|sq|Sqrt|sqrt|sqrtf|SSID|startLoop|startsWith|step|stop|stroke|subnetMask|substring|switchPIN|tan|Tan|tanf|tanh|tanhf|tempoWrite|text|toCharArray|toInt|toLowerCase|tone|Tone|toUpperCase|transfer|trim|trunc|truncf|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|WiFiServer|word|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRed|writeRGB|yield|Yield)\b`, NameFunction, nil}, - // End of: Arduino-specific syntax - {Words(``, `\b`, `inline`, `_inline`, `__inline`, `naked`, `restrict`, `thread`, `typename`), KeywordReserved, nil}, - {`(__m(128i|128d|128|64))\b`, KeywordReserved, nil}, - {Words(`__`, `\b`, `asm`, `int8`, `based`, `except`, `int16`, `stdcall`, `cdecl`, `fastcall`, `int32`, `declspec`, `finally`, `int64`, `try`, `leave`, `wchar_t`, `w64`, `unaligned`, `raise`, `noop`, `identifier`, `forceinline`, `assume`), KeywordReserved, nil}, - {`(true|false|NULL)\b`, NameBuiltin, nil}, - {`([a-zA-Z_]\w*)(\s*)(:)(?!:)`, ByGroups(NameLabel, Text, Punctuation), nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - "root": { - Include("whitespace"), - {`((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)`, ByGroups(UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), Push("function")}, - {`((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)`, ByGroups(UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), nil}, - Default(Push("statement")), - {Words(`__`, `\b`, `virtual_inheritance`, `uuidof`, `super`, `single_inheritance`, `multiple_inheritance`, `interface`, `event`), KeywordReserved, nil}, - {`__(offload|blockingoffload|outer)\b`, KeywordPseudo, nil}, - }, - "classname": { - {`[a-zA-Z_]\w*`, NameClass, Pop(1)}, - {`\s*(?=>)`, Text, Pop(1)}, - }, - "whitespace": { - {`^#if\s+0`, CommentPreproc, Push("if0")}, - {`^#`, CommentPreproc, Push("macro")}, - {`^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("if0")}, - {`^(\s*(?:/[*].*?[*]/\s*)?)(#)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("macro")}, - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`\\\n`, Text, nil}, - {`//(\n|[\w\W]*?[^\\]\n)`, CommentSingle, nil}, - {`/(\\\n)?[*][\w\W]*?[*](\\\n)?/`, CommentMultiline, nil}, - {`/(\\\n)?[*][\w\W]*`, CommentMultiline, nil}, - }, - "statement": { - Include("whitespace"), - Include("statements"), - {`[{}]`, Punctuation, nil}, - {`;`, Punctuation, Pop(1)}, - }, - "function": { - Include("whitespace"), - Include("statements"), - {`;`, Punctuation, nil}, - {`\{`, Punctuation, Push()}, - {`\}`, Punctuation, Pop(1)}, - }, - "string": { - {`"`, LiteralString, Pop(1)}, - {`\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})`, LiteralStringEscape, nil}, - {`[^\\"\n]+`, LiteralString, nil}, - {`\\\n`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - }, - "macro": { - {`(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)`, ByGroups(CommentPreproc, Text, CommentPreprocFile), nil}, - {`[^/\n]+`, CommentPreproc, nil}, - {`/[*](.|\n)*?[*]/`, CommentMultiline, nil}, - {`//.*?\n`, CommentSingle, Pop(1)}, - {`/`, CommentPreproc, nil}, - {`(?<=\\)\n`, CommentPreproc, nil}, - {`\n`, CommentPreproc, Pop(1)}, - }, - "if0": { - {`^\s*#if.*?(?+*%\^/!=|])=?`, Operator, Push("slashstartsregex")}, - {`[{(\[;,]`, Punctuation, Push("slashstartsregex")}, - {`[})\].]`, Punctuation, nil}, - {`(break|continue|do|while|exit|for|if|else|return)\b`, Keyword, Push("slashstartsregex")}, - {`function\b`, KeywordDeclaration, Push("slashstartsregex")}, - {`(atan2|cos|exp|int|log|rand|sin|sqrt|srand|gensub|gsub|index|length|match|split|sprintf|sub|substr|tolower|toupper|close|fflush|getline|next|nextfile|print|printf|strftime|systime|delete|system)\b`, KeywordReserved, nil}, - {`(ARGC|ARGIND|ARGV|BEGIN|CONVFMT|ENVIRON|END|ERRNO|FIELDWIDTHS|FILENAME|FNR|FS|IGNORECASE|NF|NR|OFMT|OFS|ORFS|RLENGTH|RS|RSTART|RT|SUBSEP)\b`, NameBuiltin, nil}, - {`[$a-zA-Z_]\w*`, NameOther, nil}, - {`[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/ballerina.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/ballerina.go deleted file mode 100644 index 91dc901796..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/ballerina.go +++ /dev/null @@ -1,46 +0,0 @@ -package b - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Ballerina lexer. -var Ballerina = internal.Register(MustNewLexer( - &Config{ - Name: "Ballerina", - Aliases: []string{"ballerina"}, - Filenames: []string{"*.bal"}, - MimeTypes: []string{"text/x-ballerina"}, - DotAll: true, - }, - Rules{ - "root": { - {`[^\S\n]+`, Text, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/\*.*?\*/`, CommentMultiline, nil}, - {`(break|catch|continue|done|else|finally|foreach|forever|fork|if|lock|match|return|throw|transaction|try|while)\b`, Keyword, nil}, - {`((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()`, ByGroups(UsingSelf("root"), NameFunction, Text, Operator), nil}, - {`@[^\W\d][\w.]*`, NameDecorator, nil}, - {`(annotation|bind|but|endpoint|error|function|object|private|public|returns|service|type|var|with|worker)\b`, KeywordDeclaration, nil}, - {`(boolean|byte|decimal|float|int|json|map|nil|record|string|table|xml)\b`, KeywordType, nil}, - {`(true|false|null)\b`, KeywordConstant, nil}, - {`(import)(\s+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'`, LiteralStringChar, nil}, - {`(\.)((?:[^\W\d]|\$)[\w$]*)`, ByGroups(Operator, NameAttribute), nil}, - {`^\s*([^\W\d]|\$)[\w$]*:`, NameLabel, nil}, - {`([^\W\d]|\$)[\w$]*`, Name, nil}, - {`([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?`, LiteralNumberFloat, nil}, - {`0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?`, LiteralNumberHex, nil}, - {`0[bB][01][01_]*[lL]?`, LiteralNumberBin, nil}, - {`0[0-7_]+[lL]?`, LiteralNumberOct, nil}, - {`0|[1-9][0-9_]*[lL]?`, LiteralNumberInteger, nil}, - {`[~^*!%&\[\](){}<>|+=:;,./?-]`, Operator, nil}, - {`\n`, Text, nil}, - }, - "import": { - {`[\w.]+`, NameNamespace, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bash.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bash.go deleted file mode 100644 index 38b3f22491..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bash.go +++ /dev/null @@ -1,95 +0,0 @@ -package b - -import ( - "regexp" - - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var bashAnalyserRe = regexp.MustCompile(`(?m)^#!.*/bin/(?:env |)(?:bash|zsh|sh|ksh)`) - -// Bash lexer. -var Bash = internal.Register(MustNewLexer( - &Config{ - Name: "Bash", - Aliases: []string{"bash", "sh", "ksh", "zsh", "shell"}, - Filenames: []string{"*.sh", "*.ksh", "*.bash", "*.ebuild", "*.eclass", "*.exheres-0", "*.exlib", "*.zsh", "*.zshrc", ".bashrc", "bashrc", ".bash_*", "bash_*", "zshrc", ".zshrc", "PKGBUILD"}, - MimeTypes: []string{"application/x-sh", "application/x-shellscript"}, - }, - Rules{ - "root": { - Include("basic"), - {"`", LiteralStringBacktick, Push("backticks")}, - Include("data"), - Include("interp"), - }, - "interp": { - {`\$\(\(`, Keyword, Push("math")}, - {`\$\(`, Keyword, Push("paren")}, - {`\$\{#?`, LiteralStringInterpol, Push("curly")}, - {`\$[a-zA-Z_]\w*`, NameVariable, nil}, - {`\$(?:\d+|[#$?!_*@-])`, NameVariable, nil}, - {`\$`, Text, nil}, - }, - "basic": { - {`\b(if|fi|else|while|do|done|for|then|return|function|case|select|continue|until|esac|elif)(\s*)\b`, ByGroups(Keyword, Text), nil}, - {"\\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|declare|dirs|disown|echo|enable|eval|exec|exit|export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|time|times|trap|true|type|typeset|ulimit|umask|unalias|unset|wait)(?=[\\s)`])", NameBuiltin, nil}, - {`\A#!.+\n`, CommentPreproc, nil}, - {`#.*\S`, CommentSingle, nil}, - {`\\[\w\W]`, LiteralStringEscape, nil}, - {`(\b\w+)(\s*)(\+?=)`, ByGroups(NameVariable, Text, Operator), nil}, - {`[\[\]{}()=]`, Operator, nil}, - {`<<<`, Operator, nil}, - {`<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2`, LiteralString, nil}, - {`&&|\|\|`, Operator, nil}, - }, - "data": { - {`(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Push("string")}, - {`(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'`, LiteralStringSingle, nil}, - {`(?s)'.*?'`, LiteralStringSingle, nil}, - {`;`, Punctuation, nil}, - {`&`, Punctuation, nil}, - {`\|`, Punctuation, nil}, - {`\s+`, Text, nil}, - {`\d+(?= |$)`, LiteralNumber, nil}, - {"[^=\\s\\[\\]{}()$\"\\'`\\\\<&|;]+", Text, nil}, - {`<`, Text, nil}, - }, - "string": { - {`"`, LiteralStringDouble, Pop(1)}, - {`(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+`, LiteralStringDouble, nil}, - Include("interp"), - }, - "curly": { - {`\}`, LiteralStringInterpol, Pop(1)}, - {`:-`, Keyword, nil}, - {`\w+`, NameVariable, nil}, - {"[^}:\"\\'`$\\\\]+", Punctuation, nil}, - {`:`, Punctuation, nil}, - Include("root"), - }, - "paren": { - {`\)`, Keyword, Pop(1)}, - Include("root"), - }, - "math": { - {`\)\)`, Keyword, Pop(1)}, - {`[-+*/%^|&]|\*\*|\|\|`, Operator, nil}, - {`\d+#\d+`, LiteralNumber, nil}, - {`\d+#(?! )`, LiteralNumber, nil}, - {`\d+`, LiteralNumber, nil}, - Include("root"), - }, - "backticks": { - {"`", LiteralStringBacktick, Pop(1)}, - Include("root"), - }, - }, -).SetAnalyser(func(text string) float32 { - if bashAnalyserRe.FindString(text) != "" { - return 1.0 - } - return 0.0 -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/batch.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/batch.go deleted file mode 100644 index dc6ce524d5..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/batch.go +++ /dev/null @@ -1,194 +0,0 @@ -package b - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Batchfile lexer. -var Batchfile = internal.Register(MustNewLexer( - &Config{ - Name: "Batchfile", - Aliases: []string{"bat", "batch", "dosbatch", "winbatch"}, - Filenames: []string{"*.bat", "*.cmd"}, - MimeTypes: []string{"application/x-dos-batch"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\)((?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?:(?:[^\n\x1a^]|\^[\n\x1a]?[\w\W])*)`, CommentSingle, nil}, - {`(?=((?:(?<=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:))`, Text, Push("follow")}, - {`(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)`, UsingSelf("text"), nil}, - Include("redirect"), - {`[\n\x1a]+`, Text, nil}, - {`\(`, Punctuation, Push("root/compound")}, - {`@+`, Punctuation, nil}, - {`((?:for|if|rem)(?:(?=(?:\^[\n\x1a]?)?/)|(?:(?!\^)|(?<=m))(?:(?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+)?(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?)`, ByGroups(Keyword, UsingSelf("text")), Push("follow")}, - {`(goto(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))((?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"%\n\x1a&<>|])*(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"%\n\x1a&<>|])*)`, ByGroups(Keyword, UsingSelf("text")), Push("follow")}, - {Words(``, `(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])`, `assoc`, `break`, `cd`, `chdir`, `cls`, `color`, `copy`, `date`, `del`, `dir`, `dpath`, `echo`, `endlocal`, `erase`, `exit`, `ftype`, `keys`, `md`, `mkdir`, `mklink`, `move`, `path`, `pause`, `popd`, `prompt`, `pushd`, `rd`, `ren`, `rename`, `rmdir`, `setlocal`, `shift`, `start`, `time`, `title`, `type`, `ver`, `verify`, `vol`), Keyword, Push("follow")}, - {`(call)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:)`, ByGroups(Keyword, UsingSelf("text"), Punctuation), Push("call")}, - {`call(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])`, Keyword, nil}, - {`(for(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/f(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))`, ByGroups(Keyword, UsingSelf("text"), Keyword), Push("for/f", "for")}, - {`(for(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/l(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))`, ByGroups(Keyword, UsingSelf("text"), Keyword), Push("for/l", "for")}, - {`for(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])(?!\^)`, Keyword, Push("for2", "for")}, - {`(goto(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:?)`, ByGroups(Keyword, UsingSelf("text"), Punctuation), Push("label")}, - {`(if(?:(?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:/i(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:not(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)`, ByGroups(Keyword, UsingSelf("text"), Keyword, UsingSelf("text"), Keyword, UsingSelf("text")), Push("(?", "if")}, - {`rem(((?=\()|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+)?.*|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])(?:(?:[^\n\x1a^]|\^[\n\x1a]?[\w\W])*))`, CommentSingle, Push("follow")}, - {`(set(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))((?:(?:\^[\n\x1a]?)?[^\S\n])*)(/a)`, ByGroups(Keyword, UsingSelf("text"), Keyword), Push("arithmetic")}, - {`(set(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:/p)?)((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|^=]|\^[\n\x1a]?[^"=])+)?)((?:(?:\^[\n\x1a]?)?=)?)`, ByGroups(Keyword, UsingSelf("text"), Keyword, UsingSelf("text"), UsingSelf("variable"), Punctuation), Push("follow")}, - Default(Push("follow")), - }, - "follow": { - {`((?:(?<=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:)([\t\v\f\r ,;=\xa0]*)((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*))(.*)`, ByGroups(Text, Punctuation, Text, NameLabel, CommentSingle), nil}, - Include("redirect"), - {`(?=[\n\x1a])`, Text, Pop(1)}, - {`\|\|?|&&?`, Punctuation, Pop(1)}, - Include("text"), - }, - "arithmetic": { - {`0[0-7]+`, LiteralNumberOct, nil}, - {`0x[\da-f]+`, LiteralNumberHex, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`[(),]+`, Punctuation, nil}, - {`([=+\-*/!~]|%|\^\^)+`, Operator, nil}, - {`((?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(\^[\n\x1a]?)?[^()=+\-*/!~%^"\n\x1a&<>|\t\v\f\r ,;=\xa0]|\^[\n\x1a\t\v\f\r ,;=\xa0]?[\w\W])+`, UsingSelf("variable"), nil}, - {`(?=[\x00|&])`, Text, Pop(1)}, - Include("follow"), - }, - "call": { - {`(:?)((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*))`, ByGroups(Punctuation, NameLabel), Pop(1)}, - }, - "label": { - {`((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^]|\^[\n\x1a]?[\w\W])*)?)((?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|\^[\n\x1a]?[\w\W]|[^"%^\n\x1a&<>|])*)`, ByGroups(NameLabel, CommentSingle), Pop(1)}, - }, - "redirect": { - {`((?:(?<=[\n\x1a\t\v\f\r ,;=\xa0])\d)?)(>>?&|<&)([\n\x1a\t\v\f\r ,;=\xa0]*)(\d)`, ByGroups(LiteralNumberInteger, Punctuation, Text, LiteralNumberInteger), nil}, - {`((?:(?<=[\n\x1a\t\v\f\r ,;=\xa0])(?>?|<)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))`, ByGroups(LiteralNumberInteger, Punctuation, UsingSelf("text")), nil}, - }, - "root/compound": { - {`\)`, Punctuation, Pop(1)}, - {`(?=((?:(?<=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:))`, Text, Push("follow/compound")}, - {`(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)`, UsingSelf("text"), nil}, - Include("redirect/compound"), - {`[\n\x1a]+`, Text, nil}, - {`\(`, Punctuation, Push("root/compound")}, - {`@+`, Punctuation, nil}, - {`((?:for|if|rem)(?:(?=(?:\^[\n\x1a]?)?/)|(?:(?!\^)|(?<=m))(?:(?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0)])+)?(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?)`, ByGroups(Keyword, UsingSelf("text")), Push("follow/compound")}, - {`(goto(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])))((?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"%\n\x1a&<>|)])*(?:\^[\n\x1a]?)?/(?:\^[\n\x1a]?)?\?(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"%\n\x1a&<>|)])*)`, ByGroups(Keyword, UsingSelf("text")), Push("follow/compound")}, - {Words(``, `(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))`, `assoc`, `break`, `cd`, `chdir`, `cls`, `color`, `copy`, `date`, `del`, `dir`, `dpath`, `echo`, `endlocal`, `erase`, `exit`, `ftype`, `keys`, `md`, `mkdir`, `mklink`, `move`, `path`, `pause`, `popd`, `prompt`, `pushd`, `rd`, `ren`, `rename`, `rmdir`, `setlocal`, `shift`, `start`, `time`, `title`, `type`, `ver`, `verify`, `vol`), Keyword, Push("follow/compound")}, - {`(call)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:)`, ByGroups(Keyword, UsingSelf("text"), Punctuation), Push("call/compound")}, - {`call(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))`, Keyword, nil}, - {`(for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/f(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))`, ByGroups(Keyword, UsingSelf("text"), Keyword), Push("for/f", "for")}, - {`(for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(/l(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))`, ByGroups(Keyword, UsingSelf("text"), Keyword), Push("for/l", "for")}, - {`for(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?!\^)`, Keyword, Push("for2", "for")}, - {`(goto(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(:?)`, ByGroups(Keyword, UsingSelf("text"), Punctuation), Push("label/compound")}, - {`(if(?:(?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))(?!\^))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:/i(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)((?:not(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))?)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)`, ByGroups(Keyword, UsingSelf("text"), Keyword, UsingSelf("text"), Keyword, UsingSelf("text")), Push("(?", "if")}, - {`rem(((?=\()|(?:(?=\))|(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+)?.*|(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(]))(?:(?:[^\n\x1a^)]|\^[\n\x1a]?[^)])*))`, CommentSingle, Push("follow/compound")}, - {`(set(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])))((?:(?:\^[\n\x1a]?)?[^\S\n])*)(/a)`, ByGroups(Keyword, UsingSelf("text"), Keyword), Push("arithmetic/compound")}, - {`(set(?:(?=\))|(?=(?:\^[\n\x1a]?)?[\t\v\f\r ,;=\xa0+./:[\\\]]|[\n\x1a&<>|(])))((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:/p)?)((?:(?:\^[\n\x1a]?)?[^\S\n])*)((?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|^=)]|\^[\n\x1a]?[^"=])+)?)((?:(?:\^[\n\x1a]?)?=)?)`, ByGroups(Keyword, UsingSelf("text"), Keyword, UsingSelf("text"), UsingSelf("variable"), Punctuation), Push("follow/compound")}, - Default(Push("follow/compound")), - }, - "follow/compound": { - {`(?=\))`, Text, Pop(1)}, - {`((?:(?<=^[^:])|^[^:]?)[\t\v\f\r ,;=\xa0]*)(:)([\t\v\f\r ,;=\xa0]*)((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*))(.*)`, ByGroups(Text, Punctuation, Text, NameLabel, CommentSingle), nil}, - Include("redirect/compound"), - {`(?=[\n\x1a])`, Text, Pop(1)}, - {`\|\|?|&&?`, Punctuation, Pop(1)}, - Include("text"), - }, - "arithmetic/compound": { - {`(?=\))`, Text, Pop(1)}, - {`0[0-7]+`, LiteralNumberOct, nil}, - {`0x[\da-f]+`, LiteralNumberHex, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`[(),]+`, Punctuation, nil}, - {`([=+\-*/!~]|%|\^\^)+`, Operator, nil}, - {`((?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(\^[\n\x1a]?)?[^()=+\-*/!~%^"\n\x1a&<>|\t\v\f\r ,;=\xa0]|\^[\n\x1a\t\v\f\r ,;=\xa0]?[^)])+`, UsingSelf("variable"), nil}, - {`(?=[\x00|&])`, Text, Pop(1)}, - Include("follow"), - }, - "call/compound": { - {`(?=\))`, Text, Pop(1)}, - {`(:?)((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*))`, ByGroups(Punctuation, NameLabel), Pop(1)}, - }, - "label/compound": { - {`(?=\))`, Text, Pop(1)}, - {`((?:(?:[^\n\x1a&<>|\t\v\f\r ,;=\xa0+:^)]|\^[\n\x1a]?[^)])*)?)((?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|\^[\n\x1a]?[^)]|[^"%^\n\x1a&<>|)])*)`, ByGroups(NameLabel, CommentSingle), Pop(1)}, - }, - "redirect/compound": { - {`((?:(?<=[\n\x1a\t\v\f\r ,;=\xa0])\d)?)(>>?&|<&)([\n\x1a\t\v\f\r ,;=\xa0]*)(\d)`, ByGroups(LiteralNumberInteger, Punctuation, Text, LiteralNumberInteger), nil}, - {`((?:(?<=[\n\x1a\t\v\f\r ,;=\xa0])(?>?|<)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0)])+))+))`, ByGroups(LiteralNumberInteger, Punctuation, UsingSelf("text")), nil}, - }, - "variable-or-escape": { - {`(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))`, NameVariable, nil}, - {`%%|\^[\n\x1a]?(\^!|[\w\W])`, LiteralStringEscape, nil}, - }, - "string": { - {`"`, LiteralStringDouble, Pop(1)}, - {`(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))`, NameVariable, nil}, - {`\^!|%%`, LiteralStringEscape, nil}, - {`[^"%^\n\x1a]+|[%^]`, LiteralStringDouble, nil}, - Default(Pop(1)), - }, - "sqstring": { - Include("variable-or-escape"), - {`[^%]+|%`, LiteralStringSingle, nil}, - }, - "bqstring": { - Include("variable-or-escape"), - {`[^%]+|%`, LiteralStringBacktick, nil}, - }, - "text": { - {`"`, LiteralStringDouble, Push("string")}, - Include("variable-or-escape"), - {`[^"%^\n\x1a&<>|\t\v\f\r ,;=\xa0\d)]+|.`, Text, nil}, - }, - "variable": { - {`"`, LiteralStringDouble, Push("string")}, - Include("variable-or-escape"), - {`[^"%^\n\x1a]+|.`, NameVariable, nil}, - }, - "for": { - {`((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(in)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(\()`, ByGroups(UsingSelf("text"), Keyword, UsingSelf("text"), Punctuation), Pop(1)}, - Include("follow"), - }, - "for2": { - {`\)`, Punctuation, nil}, - {`((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(do(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))`, ByGroups(UsingSelf("text"), Keyword), Pop(1)}, - {`[\n\x1a]+`, Text, nil}, - Include("follow"), - }, - "for/f": { - {`(")((?:(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[^"])*?")([\n\x1a\t\v\f\r ,;=\xa0]*)(\))`, ByGroups(LiteralStringDouble, UsingSelf("string"), Text, Punctuation), nil}, - {`"`, LiteralStringDouble, Push("#pop", "for2", "string")}, - {`('(?:%%|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|[\w\W])*?')([\n\x1a\t\v\f\r ,;=\xa0]*)(\))`, ByGroups(UsingSelf("sqstring"), Text, Punctuation), nil}, - {"(`(?:%%|(?:(?:%(?:\\*|(?:~[a-z]*(?:\\$[^:]+:)?)?\\d|[^%:\\n\\x1a]+(?::(?:~(?:-?\\d+)?(?:,(?:-?\\d+)?)?|(?:[^%\\n\\x1a^]|\\^[^%\\n\\x1a])[^=\\n\\x1a]*=(?:[^%\\n\\x1a^]|\\^[^%\\n\\x1a])*)?)?%))|(?:\\^?![^!:\\n\\x1a]+(?::(?:~(?:-?\\d+)?(?:,(?:-?\\d+)?)?|(?:[^!\\n\\x1a^]|\\^[^!\\n\\x1a])[^=\\n\\x1a]*=(?:[^!\\n\\x1a^]|\\^[^!\\n\\x1a])*)?)?\\^?!))|[\\w\\W])*?`)([\\n\\x1a\\t\\v\\f\\r ,;=\\xa0]*)(\\))", ByGroups(UsingSelf("bqstring"), Text, Punctuation), nil}, - Include("for2"), - }, - "for/l": { - {`-?\d+`, LiteralNumberInteger, nil}, - Include("for2"), - }, - "if": { - {`((?:cmdextversion|errorlevel)(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))(\d+)`, ByGroups(Keyword, UsingSelf("text"), LiteralNumberInteger), Pop(1)}, - {`(defined(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))`, ByGroups(Keyword, UsingSelf("text"), UsingSelf("variable")), Pop(1)}, - {`(exist(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))`, ByGroups(Keyword, UsingSelf("text")), Pop(1)}, - {`((?:-?(?:0[0-7]+|0x[\da-f]+|\d+)(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a]))(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:equ|geq|gtr|leq|lss|neq))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])))`, ByGroups(UsingSelf("arithmetic"), OperatorWord, UsingSelf("arithmetic")), Pop(1)}, - {`(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+)`, UsingSelf("text"), Push("#pop", "if2")}, - }, - "if2": { - {`((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?)(==)((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)?(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))`, ByGroups(UsingSelf("text"), Operator, UsingSelf("text")), Pop(1)}, - {`((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+))((?:equ|geq|gtr|leq|lss|neq))((?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)(?:[&<>|]+|(?:(?:"[^\n\x1a"]*(?:"|(?=[\n\x1a])))|(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%\n\x1a^]|\^[^%\n\x1a])[^=\n\x1a]*=(?:[^%\n\x1a^]|\^[^%\n\x1a])*)?)?%))|(?:\^?![^!:\n\x1a]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!\n\x1a^]|\^[^!\n\x1a])[^=\n\x1a]*=(?:[^!\n\x1a^]|\^[^!\n\x1a])*)?)?\^?!))|(?:(?:(?:\^[\n\x1a]?)?[^"\n\x1a&<>|\t\v\f\r ,;=\xa0])+))+))`, ByGroups(UsingSelf("text"), OperatorWord, UsingSelf("text")), Pop(1)}, - }, - "(?": { - {`(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)`, UsingSelf("text"), nil}, - {`\(`, Punctuation, Push("#pop", "else?", "root/compound")}, - Default(Pop(1)), - }, - "else?": { - {`(?:(?:(?:\^[\n\x1a])?[\t\v\f\r ,;=\xa0])+)`, UsingSelf("text"), nil}, - {`else(?=\^?[\t\v\f\r ,;=\xa0]|[&<>|\n\x1a])`, Keyword, Pop(1)}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bibtex.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bibtex.go deleted file mode 100644 index 1d76b1d800..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bibtex.go +++ /dev/null @@ -1,76 +0,0 @@ -package b - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Bibtex lexer. -var Bibtex = internal.Register(MustNewLexer( - &Config{ - Name: "BibTeX", - Aliases: []string{"bib", "bibtex"}, - Filenames: []string{"*.bib"}, - MimeTypes: []string{"text/x-bibtex"}, - NotMultiline: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - Include("whitespace"), - {`@comment`, Comment, nil}, - {`@preamble`, NameClass, Push("closing-brace", "value", "opening-brace")}, - {`@string`, NameClass, Push("closing-brace", "field", "opening-brace")}, - {"@[a-z_@!$&*+\\-./:;<>?\\[\\\\\\]^`|~][\\w@!$&*+\\-./:;<>?\\[\\\\\\]^`|~]*", NameClass, Push("closing-brace", "command-body", "opening-brace")}, - {`.+`, Comment, nil}, - }, - "opening-brace": { - Include("whitespace"), - {`[{(]`, Punctuation, Pop(1)}, - }, - "closing-brace": { - Include("whitespace"), - {`[})]`, Punctuation, Pop(1)}, - }, - "command-body": { - Include("whitespace"), - {`[^\s\,\}]+`, NameLabel, Push("#pop", "fields")}, - }, - "fields": { - Include("whitespace"), - {`,`, Punctuation, Push("field")}, - Default(Pop(1)), - }, - "field": { - Include("whitespace"), - {"[a-z_@!$&*+\\-./:;<>?\\[\\\\\\]^`|~][\\w@!$&*+\\-./:;<>?\\[\\\\\\]^`|~]*", NameAttribute, Push("value", "=")}, - Default(Pop(1)), - }, - "=": { - Include("whitespace"), - {`=`, Punctuation, Pop(1)}, - }, - "value": { - Include("whitespace"), - {"[a-z_@!$&*+\\-./:;<>?\\[\\\\\\]^`|~][\\w@!$&*+\\-./:;<>?\\[\\\\\\]^`|~]*", NameVariable, nil}, - {`"`, LiteralString, Push("quoted-string")}, - {`\{`, LiteralString, Push("braced-string")}, - {`[\d]+`, LiteralNumber, nil}, - {`#`, Punctuation, nil}, - Default(Pop(1)), - }, - "quoted-string": { - {`\{`, LiteralString, Push("braced-string")}, - {`"`, LiteralString, Pop(1)}, - {`[^\{\"]+`, LiteralString, nil}, - }, - "braced-string": { - {`\{`, LiteralString, Push()}, - {`\}`, LiteralString, Pop(1)}, - {`[^\{\}]+`, LiteralString, nil}, - }, - "whitespace": { - {`\s+`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/blitz.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/blitz.go deleted file mode 100644 index 5d5ffc8525..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/blitz.go +++ /dev/null @@ -1,48 +0,0 @@ -package b - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Blitzbasic lexer. -var Blitzbasic = internal.Register(MustNewLexer( - &Config{ - Name: "BlitzBasic", - Aliases: []string{"blitzbasic", "b3d", "bplus"}, - Filenames: []string{"*.bb", "*.decls"}, - MimeTypes: []string{"text/x-bb"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`[ \t]+`, Text, nil}, - {`;.*?\n`, CommentSingle, nil}, - {`"`, LiteralStringDouble, Push("string")}, - {`[0-9]+\.[0-9]*(?!\.)`, LiteralNumberFloat, nil}, - {`\.[0-9]+(?!\.)`, LiteralNumberFloat, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`\$[0-9a-f]+`, LiteralNumberHex, nil}, - {`\%[10]+`, LiteralNumberBin, nil}, - {Words(`\b`, `\b`, `Shl`, `Shr`, `Sar`, `Mod`, `Or`, `And`, `Not`, `Abs`, `Sgn`, `Handle`, `Int`, `Float`, `Str`, `First`, `Last`, `Before`, `After`), Operator, nil}, - {`([+\-*/~=<>^])`, Operator, nil}, - {`[(),:\[\]\\]`, Punctuation, nil}, - {`\.([ \t]*)([a-z]\w*)`, NameLabel, nil}, - {`\b(New)\b([ \t]+)([a-z]\w*)`, ByGroups(KeywordReserved, Text, NameClass), nil}, - {`\b(Gosub|Goto)\b([ \t]+)([a-z]\w*)`, ByGroups(KeywordReserved, Text, NameLabel), nil}, - {`\b(Object)\b([ \t]*)([.])([ \t]*)([a-z]\w*)\b`, ByGroups(Operator, Text, Punctuation, Text, NameClass), nil}, - {`\b([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?\b([ \t]*)(\()`, ByGroups(NameFunction, Text, KeywordType, Text, Punctuation, Text, NameClass, Text, Punctuation), nil}, - {`\b(Function)\b([ \t]+)([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?`, ByGroups(KeywordReserved, Text, NameFunction, Text, KeywordType, Text, Punctuation, Text, NameClass), nil}, - {`\b(Type)([ \t]+)([a-z]\w*)`, ByGroups(KeywordReserved, Text, NameClass), nil}, - {`\b(Pi|True|False|Null)\b`, KeywordConstant, nil}, - {`\b(Local|Global|Const|Field|Dim)\b`, KeywordDeclaration, nil}, - {Words(`\b`, `\b`, `End`, `Return`, `Exit`, `Chr`, `Len`, `Asc`, `New`, `Delete`, `Insert`, `Include`, `Function`, `Type`, `If`, `Then`, `Else`, `ElseIf`, `EndIf`, `For`, `To`, `Next`, `Step`, `Each`, `While`, `Wend`, `Repeat`, `Until`, `Forever`, `Select`, `Case`, `Default`, `Goto`, `Gosub`, `Data`, `Read`, `Restore`), KeywordReserved, nil}, - {`([a-z]\w*)(?:([ \t]*)(@{1,2}|[#$%])|([ \t]*)([.])([ \t]*)(?:([a-z]\w*)))?`, ByGroups(NameVariable, Text, KeywordType, Text, Punctuation, Text, NameClass), nil}, - }, - "string": { - {`""`, LiteralStringDouble, nil}, - {`"C?`, LiteralStringDouble, Pop(1)}, - {`[^"]+`, LiteralStringDouble, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bnf.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bnf.go deleted file mode 100644 index 5123a45aa0..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/bnf.go +++ /dev/null @@ -1,24 +0,0 @@ -package b - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Bnf lexer. -var Bnf = internal.Register(MustNewLexer( - &Config{ - Name: "BNF", - Aliases: []string{"bnf"}, - Filenames: []string{"*.bnf"}, - MimeTypes: []string{"text/x-bnf"}, - }, - Rules{ - "root": { - {`(<)([ -;=?-~]+)(>)`, ByGroups(Punctuation, NameClass, Punctuation), nil}, - {`::=`, Operator, nil}, - {`[^<>:]+`, Text, nil}, - {`.`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/brainfuck.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/brainfuck.go deleted file mode 100644 index 6fac5f5e8c..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/b/brainfuck.go +++ /dev/null @@ -1,34 +0,0 @@ -package b - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Brainfuck lexer. -var Brainfuck = internal.Register(MustNewLexer( - &Config{ - Name: "Brainfuck", - Aliases: []string{"brainfuck", "bf"}, - Filenames: []string{"*.bf", "*.b"}, - MimeTypes: []string{"application/x-brainfuck"}, - }, - Rules{ - "common": { - {`[.,]+`, NameTag, nil}, - {`[+-]+`, NameBuiltin, nil}, - {`[<>]+`, NameVariable, nil}, - {`[^.,+\-<>\[\]]+`, Comment, nil}, - }, - "root": { - {`\[`, Keyword, Push("loop")}, - {`\]`, Error, nil}, - Include("common"), - }, - "loop": { - {`\[`, Keyword, Push()}, - {`\]`, Keyword, Pop(1)}, - Include("common"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/c.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/c.go deleted file mode 100644 index df2c0faac9..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/c.go +++ /dev/null @@ -1,91 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// C lexer. -var C = internal.Register(MustNewLexer( - &Config{ - Name: "C", - Aliases: []string{"c"}, - Filenames: []string{"*.c", "*.h", "*.idc"}, - MimeTypes: []string{"text/x-chdr", "text/x-csrc"}, - }, - Rules{ - "whitespace": { - {`^#if\s+0`, CommentPreproc, Push("if0")}, - {`^#`, CommentPreproc, Push("macro")}, - {`^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("if0")}, - {`^(\s*(?:/[*].*?[*]/\s*)?)(#)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("macro")}, - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`\\\n`, Text, nil}, - {`//(\n|[\w\W]*?[^\\]\n)`, CommentSingle, nil}, - {`/(\\\n)?[*][\w\W]*?[*](\\\n)?/`, CommentMultiline, nil}, - {`/(\\\n)?[*][\w\W]*`, CommentMultiline, nil}, - }, - "statements": { - {`(L?)(")`, ByGroups(LiteralStringAffix, LiteralString), Push("string")}, - {`(L?)(')(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])(')`, ByGroups(LiteralStringAffix, LiteralStringChar, LiteralStringChar, LiteralStringChar), nil}, - {`(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*`, LiteralNumberFloat, nil}, - {`(\d+\.\d*|\.\d+|\d+[fF])[fF]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-fA-F]+[LlUu]*`, LiteralNumberHex, nil}, - {`0[0-7]+[LlUu]*`, LiteralNumberOct, nil}, - {`\d+[LlUu]*`, LiteralNumberInteger, nil}, - {`\*/`, Error, nil}, - {`[~!%^&*+=|?:<>/-]`, Operator, nil}, - {`[()\[\],.]`, Punctuation, nil}, - {Words(``, `\b`, `asm`, `auto`, `break`, `case`, `const`, `continue`, `default`, `do`, `else`, `enum`, `extern`, `for`, `goto`, `if`, `register`, `restricted`, `return`, `sizeof`, `static`, `struct`, `switch`, `typedef`, `union`, `volatile`, `while`), Keyword, nil}, - {`(bool|int|long|float|short|double|char|unsigned|signed|void)\b`, KeywordType, nil}, - {Words(``, `\b`, `inline`, `_inline`, `__inline`, `naked`, `restrict`, `thread`, `typename`), KeywordReserved, nil}, - {`(__m(128i|128d|128|64))\b`, KeywordReserved, nil}, - {Words(`__`, `\b`, `asm`, `int8`, `based`, `except`, `int16`, `stdcall`, `cdecl`, `fastcall`, `int32`, `declspec`, `finally`, `int64`, `try`, `leave`, `wchar_t`, `w64`, `unaligned`, `raise`, `noop`, `identifier`, `forceinline`, `assume`), KeywordReserved, nil}, - {`(true|false|NULL)\b`, NameBuiltin, nil}, - {`([a-zA-Z_]\w*)(\s*)(:)(?!:)`, ByGroups(NameLabel, Text, Punctuation), nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - "root": { - Include("whitespace"), - {`((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)`, ByGroups(UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), Push("function")}, - {`((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)`, ByGroups(UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), nil}, - Default(Push("statement")), - }, - "statement": { - Include("whitespace"), - Include("statements"), - {`[{}]`, Punctuation, nil}, - {`;`, Punctuation, Pop(1)}, - }, - "function": { - Include("whitespace"), - Include("statements"), - {`;`, Punctuation, nil}, - {`\{`, Punctuation, Push()}, - {`\}`, Punctuation, Pop(1)}, - }, - "string": { - {`"`, LiteralString, Pop(1)}, - {`\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})`, LiteralStringEscape, nil}, - {`[^\\"\n]+`, LiteralString, nil}, - {`\\\n`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - }, - "macro": { - {`(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)`, ByGroups(CommentPreproc, Text, CommentPreprocFile), nil}, - {`[^/\n]+`, CommentPreproc, nil}, - {`/[*](.|\n)*?[*]/`, CommentMultiline, nil}, - {`//.*?\n`, CommentSingle, Pop(1)}, - {`/`, CommentPreproc, nil}, - {`(?<=\\)\n`, CommentPreproc, nil}, - {`\n`, CommentPreproc, Pop(1)}, - }, - "if0": { - {`^\s*#if.*?(?|+=:;,./?-]`, Operator, nil}, - {`\d{1,3}(_\d{3})+\.\d{1,3}(_\d{3})+[kMGTPmunpf]?`, LiteralNumberFloat, nil}, - {`\d{1,3}(_\d{3})+\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?`, LiteralNumberFloat, nil}, - {`[0-9][0-9]*\.\d{1,3}(_\d{3})+[kMGTPmunpf]?`, LiteralNumberFloat, nil}, - {`[0-9][0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?`, LiteralNumberFloat, nil}, - {`#([0-9a-fA-F]{4})(_[0-9a-fA-F]{4})+`, LiteralNumberHex, nil}, - {`#[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`\$([01]{4})(_[01]{4})+`, LiteralNumberBin, nil}, - {`\$[01]+`, LiteralNumberBin, nil}, - {`\d{1,3}(_\d{3})+[kMGTP]?`, LiteralNumberInteger, nil}, - {`[0-9]+[kMGTP]?`, LiteralNumberInteger, nil}, - {`\n`, Text, nil}, - }, - "class": { - {`[A-Za-z_]\w*`, NameClass, Pop(1)}, - }, - "import": { - {`[a-z][\w.]*`, NameNamespace, Pop(1)}, - }, - "comment": { - {`[^*/]`, CommentMultiline, nil}, - {`/\*`, CommentMultiline, Push()}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[*/]`, CommentMultiline, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cfengine3.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cfengine3.go deleted file mode 100644 index f96252fa46..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cfengine3.go +++ /dev/null @@ -1,56 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Cfengine3 lexer. -var Cfengine3 = internal.Register(MustNewLexer( - &Config{ - Name: "CFEngine3", - Aliases: []string{"cfengine3", "cf3"}, - Filenames: []string{"*.cf"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`#.*?\n`, Comment, nil}, - {`(body)(\s+)(\S+)(\s+)(control)`, ByGroups(Keyword, Text, Keyword, Text, Keyword), nil}, - {`(body|bundle)(\s+)(\S+)(\s+)(\w+)(\()`, ByGroups(Keyword, Text, Keyword, Text, NameFunction, Punctuation), Push("arglist")}, - {`(body|bundle)(\s+)(\S+)(\s+)(\w+)`, ByGroups(Keyword, Text, Keyword, Text, NameFunction), nil}, - {`(")([^"]+)(")(\s+)(string|slist|int|real)(\s*)(=>)(\s*)`, ByGroups(Punctuation, NameVariable, Punctuation, Text, KeywordType, Text, Operator, Text), nil}, - {`(\S+)(\s*)(=>)(\s*)`, ByGroups(KeywordReserved, Text, Operator, Text), nil}, - {`"`, LiteralString, Push("string")}, - {`(\w+)(\()`, ByGroups(NameFunction, Punctuation), nil}, - {`([\w.!&|()]+)(::)`, ByGroups(NameClass, Punctuation), nil}, - {`(\w+)(:)`, ByGroups(KeywordDeclaration, Punctuation), nil}, - {`@[{(][^)}]+[})]`, NameVariable, nil}, - {`[(){},;]`, Punctuation, nil}, - {`=>`, Operator, nil}, - {`->`, Operator, nil}, - {`\d+\.\d+`, LiteralNumberFloat, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`\w+`, NameFunction, nil}, - {`\s+`, Text, nil}, - }, - "string": { - {`\$[{(]`, LiteralStringInterpol, Push("interpol")}, - {`\\.`, LiteralStringEscape, nil}, - {`"`, LiteralString, Pop(1)}, - {`\n`, LiteralString, nil}, - {`.`, LiteralString, nil}, - }, - "interpol": { - {`\$[{(]`, LiteralStringInterpol, Push()}, - {`[})]`, LiteralStringInterpol, Pop(1)}, - {`[^${()}]+`, LiteralStringInterpol, nil}, - }, - "arglist": { - {`\)`, Punctuation, Pop(1)}, - {`,`, Punctuation, nil}, - {`\w+`, NameVariable, nil}, - {`\s+`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/chaiscript.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/chaiscript.go deleted file mode 100644 index d2aa50db68..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/chaiscript.go +++ /dev/null @@ -1,63 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Chaiscript lexer. -var Chaiscript = internal.Register(MustNewLexer( - &Config{ - Name: "ChaiScript", - Aliases: []string{"chai", "chaiscript"}, - Filenames: []string{"*.chai"}, - MimeTypes: []string{"text/x-chaiscript", "application/x-chaiscript"}, - DotAll: true, - }, - Rules{ - "commentsandwhitespace": { - {`\s+`, Text, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/\*.*?\*/`, CommentMultiline, nil}, - {`^\#.*?\n`, CommentSingle, nil}, - }, - "slashstartsregex": { - Include("commentsandwhitespace"), - {`/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)`, LiteralStringRegex, Pop(1)}, - {`(?=/)`, Text, Push("#pop", "badregex")}, - Default(Pop(1)), - }, - "badregex": { - {`\n`, Text, Pop(1)}, - }, - "root": { - Include("commentsandwhitespace"), - {`\n`, Text, nil}, - {`[^\S\n]+`, Text, nil}, - {`\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|\.\.(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?`, Operator, Push("slashstartsregex")}, - {`[{(\[;,]`, Punctuation, Push("slashstartsregex")}, - {`[})\].]`, Punctuation, nil}, - {`[=+\-*/]`, Operator, nil}, - {`(for|in|while|do|break|return|continue|if|else|throw|try|catch)\b`, Keyword, Push("slashstartsregex")}, - {`(var)\b`, KeywordDeclaration, Push("slashstartsregex")}, - {`(attr|def|fun)\b`, KeywordReserved, nil}, - {`(true|false)\b`, KeywordConstant, nil}, - {`(eval|throw)\b`, NameBuiltin, nil}, - {"`\\S+`", NameBuiltin, nil}, - {`[$a-zA-Z_]\w*`, NameOther, nil}, - {`[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`"`, LiteralStringDouble, Push("dqstring")}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - }, - "dqstring": { - {`\$\{[^"}]+?\}`, LiteralStringInterpol, nil}, - {`\$`, LiteralStringDouble, nil}, - {`\\\\`, LiteralStringDouble, nil}, - {`\\"`, LiteralStringDouble, nil}, - {`[^\\"$]+`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cheetah.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cheetah.go deleted file mode 100644 index b2cb9c4066..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cheetah.go +++ /dev/null @@ -1,37 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" - . "github.com/alecthomas/chroma/lexers/p" // nolint -) - -// Cheetah lexer. -var Cheetah = internal.Register(MustNewLexer( - &Config{ - Name: "Cheetah", - Aliases: []string{"cheetah", "spitfire"}, - Filenames: []string{"*.tmpl", "*.spt"}, - MimeTypes: []string{"application/x-cheetah", "application/x-spitfire"}, - }, - Rules{ - "root": { - {`(##[^\n]*)$`, ByGroups(Comment), nil}, - {`#[*](.|\n)*?[*]#`, Comment, nil}, - {`#end[^#\n]*(?:#|$)`, CommentPreproc, nil}, - {`#slurp$`, CommentPreproc, nil}, - {`(#[a-zA-Z]+)([^#\n]*)(#|$)`, ByGroups(CommentPreproc, Using(Python), CommentPreproc), nil}, - {`(\$)([a-zA-Z_][\w.]*\w)`, ByGroups(CommentPreproc, Using(Python)), nil}, - {`(\$\{!?)(.*?)(\})(?s)`, ByGroups(CommentPreproc, Using(Python), CommentPreproc), nil}, - {`(?sx) - (.+?) # anything, followed by: - (?: - (?=\#[#a-zA-Z]*) | # an eval comment - (?=\$[a-zA-Z_{]) | # a substitution - \Z # end of string - ) - `, Other, nil}, - {`\s+`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cl.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cl.go deleted file mode 100644 index fdc9729764..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cl.go +++ /dev/null @@ -1,306 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var ( - clBuiltinFunctions = []string{ - "<", "<=", "=", ">", ">=", "-", "/", "/=", "*", "+", "1-", "1+", - "abort", "abs", "acons", "acos", "acosh", "add-method", "adjoin", - "adjustable-array-p", "adjust-array", "allocate-instance", - "alpha-char-p", "alphanumericp", "append", "apply", "apropos", - "apropos-list", "aref", "arithmetic-error-operands", - "arithmetic-error-operation", "array-dimension", "array-dimensions", - "array-displacement", "array-element-type", "array-has-fill-pointer-p", - "array-in-bounds-p", "arrayp", "array-rank", "array-row-major-index", - "array-total-size", "ash", "asin", "asinh", "assoc", "assoc-if", - "assoc-if-not", "atan", "atanh", "atom", "bit", "bit-and", "bit-andc1", - "bit-andc2", "bit-eqv", "bit-ior", "bit-nand", "bit-nor", "bit-not", - "bit-orc1", "bit-orc2", "bit-vector-p", "bit-xor", "boole", - "both-case-p", "boundp", "break", "broadcast-stream-streams", - "butlast", "byte", "byte-position", "byte-size", "caaaar", "caaadr", - "caaar", "caadar", "caaddr", "caadr", "caar", "cadaar", "cadadr", - "cadar", "caddar", "cadddr", "caddr", "cadr", "call-next-method", "car", - "cdaaar", "cdaadr", "cdaar", "cdadar", "cdaddr", "cdadr", "cdar", - "cddaar", "cddadr", "cddar", "cdddar", "cddddr", "cdddr", "cddr", "cdr", - "ceiling", "cell-error-name", "cerror", "change-class", "char", "char<", - "char<=", "char=", "char>", "char>=", "char/=", "character", - "characterp", "char-code", "char-downcase", "char-equal", - "char-greaterp", "char-int", "char-lessp", "char-name", - "char-not-equal", "char-not-greaterp", "char-not-lessp", "char-upcase", - "cis", "class-name", "class-of", "clear-input", "clear-output", - "close", "clrhash", "code-char", "coerce", "compile", - "compiled-function-p", "compile-file", "compile-file-pathname", - "compiler-macro-function", "complement", "complex", "complexp", - "compute-applicable-methods", "compute-restarts", "concatenate", - "concatenated-stream-streams", "conjugate", "cons", "consp", - "constantly", "constantp", "continue", "copy-alist", "copy-list", - "copy-pprint-dispatch", "copy-readtable", "copy-seq", "copy-structure", - "copy-symbol", "copy-tree", "cos", "cosh", "count", "count-if", - "count-if-not", "decode-float", "decode-universal-time", "delete", - "delete-duplicates", "delete-file", "delete-if", "delete-if-not", - "delete-package", "denominator", "deposit-field", "describe", - "describe-object", "digit-char", "digit-char-p", "directory", - "directory-namestring", "disassemble", "documentation", "dpb", - "dribble", "echo-stream-input-stream", "echo-stream-output-stream", - "ed", "eighth", "elt", "encode-universal-time", "endp", - "enough-namestring", "ensure-directories-exist", - "ensure-generic-function", "eq", "eql", "equal", "equalp", "error", - "eval", "evenp", "every", "exp", "export", "expt", "fboundp", - "fceiling", "fdefinition", "ffloor", "fifth", "file-author", - "file-error-pathname", "file-length", "file-namestring", - "file-position", "file-string-length", "file-write-date", - "fill", "fill-pointer", "find", "find-all-symbols", "find-class", - "find-if", "find-if-not", "find-method", "find-package", "find-restart", - "find-symbol", "finish-output", "first", "float", "float-digits", - "floatp", "float-precision", "float-radix", "float-sign", "floor", - "fmakunbound", "force-output", "format", "fourth", "fresh-line", - "fround", "ftruncate", "funcall", "function-keywords", - "function-lambda-expression", "functionp", "gcd", "gensym", "gentemp", - "get", "get-decoded-time", "get-dispatch-macro-character", "getf", - "gethash", "get-internal-real-time", "get-internal-run-time", - "get-macro-character", "get-output-stream-string", "get-properties", - "get-setf-expansion", "get-universal-time", "graphic-char-p", - "hash-table-count", "hash-table-p", "hash-table-rehash-size", - "hash-table-rehash-threshold", "hash-table-size", "hash-table-test", - "host-namestring", "identity", "imagpart", "import", - "initialize-instance", "input-stream-p", "inspect", - "integer-decode-float", "integer-length", "integerp", - "interactive-stream-p", "intern", "intersection", - "invalid-method-error", "invoke-debugger", "invoke-restart", - "invoke-restart-interactively", "isqrt", "keywordp", "last", "lcm", - "ldb", "ldb-test", "ldiff", "length", "lisp-implementation-type", - "lisp-implementation-version", "list", "list*", "list-all-packages", - "listen", "list-length", "listp", "load", - "load-logical-pathname-translations", "log", "logand", "logandc1", - "logandc2", "logbitp", "logcount", "logeqv", "logical-pathname", - "logical-pathname-translations", "logior", "lognand", "lognor", - "lognot", "logorc1", "logorc2", "logtest", "logxor", "long-site-name", - "lower-case-p", "machine-instance", "machine-type", "machine-version", - "macroexpand", "macroexpand-1", "macro-function", "make-array", - "make-broadcast-stream", "make-concatenated-stream", "make-condition", - "make-dispatch-macro-character", "make-echo-stream", "make-hash-table", - "make-instance", "make-instances-obsolete", "make-list", - "make-load-form", "make-load-form-saving-slots", "make-package", - "make-pathname", "make-random-state", "make-sequence", "make-string", - "make-string-input-stream", "make-string-output-stream", "make-symbol", - "make-synonym-stream", "make-two-way-stream", "makunbound", "map", - "mapc", "mapcan", "mapcar", "mapcon", "maphash", "map-into", "mapl", - "maplist", "mask-field", "max", "member", "member-if", "member-if-not", - "merge", "merge-pathnames", "method-combination-error", - "method-qualifiers", "min", "minusp", "mismatch", "mod", - "muffle-warning", "name-char", "namestring", "nbutlast", "nconc", - "next-method-p", "nintersection", "ninth", "no-applicable-method", - "no-next-method", "not", "notany", "notevery", "nreconc", "nreverse", - "nset-difference", "nset-exclusive-or", "nstring-capitalize", - "nstring-downcase", "nstring-upcase", "nsublis", "nsubst", "nsubst-if", - "nsubst-if-not", "nsubstitute", "nsubstitute-if", "nsubstitute-if-not", - "nth", "nthcdr", "null", "numberp", "numerator", "nunion", "oddp", - "open", "open-stream-p", "output-stream-p", "package-error-package", - "package-name", "package-nicknames", "packagep", - "package-shadowing-symbols", "package-used-by-list", "package-use-list", - "pairlis", "parse-integer", "parse-namestring", "pathname", - "pathname-device", "pathname-directory", "pathname-host", - "pathname-match-p", "pathname-name", "pathnamep", "pathname-type", - "pathname-version", "peek-char", "phase", "plusp", "position", - "position-if", "position-if-not", "pprint", "pprint-dispatch", - "pprint-fill", "pprint-indent", "pprint-linear", "pprint-newline", - "pprint-tab", "pprint-tabular", "prin1", "prin1-to-string", "princ", - "princ-to-string", "print", "print-object", "probe-file", "proclaim", - "provide", "random", "random-state-p", "rassoc", "rassoc-if", - "rassoc-if-not", "rational", "rationalize", "rationalp", "read", - "read-byte", "read-char", "read-char-no-hang", "read-delimited-list", - "read-from-string", "read-line", "read-preserving-whitespace", - "read-sequence", "readtable-case", "readtablep", "realp", "realpart", - "reduce", "reinitialize-instance", "rem", "remhash", "remove", - "remove-duplicates", "remove-if", "remove-if-not", "remove-method", - "remprop", "rename-file", "rename-package", "replace", "require", - "rest", "restart-name", "revappend", "reverse", "room", "round", - "row-major-aref", "rplaca", "rplacd", "sbit", "scale-float", "schar", - "search", "second", "set", "set-difference", - "set-dispatch-macro-character", "set-exclusive-or", - "set-macro-character", "set-pprint-dispatch", "set-syntax-from-char", - "seventh", "shadow", "shadowing-import", "shared-initialize", - "short-site-name", "signal", "signum", "simple-bit-vector-p", - "simple-condition-format-arguments", "simple-condition-format-control", - "simple-string-p", "simple-vector-p", "sin", "sinh", "sixth", "sleep", - "slot-boundp", "slot-exists-p", "slot-makunbound", "slot-missing", - "slot-unbound", "slot-value", "software-type", "software-version", - "some", "sort", "special-operator-p", "sqrt", "stable-sort", - "standard-char-p", "store-value", "stream-element-type", - "stream-error-stream", "stream-external-format", "streamp", "string", - "string<", "string<=", "string=", "string>", "string>=", "string/=", - "string-capitalize", "string-downcase", "string-equal", - "string-greaterp", "string-left-trim", "string-lessp", - "string-not-equal", "string-not-greaterp", "string-not-lessp", - "stringp", "string-right-trim", "string-trim", "string-upcase", - "sublis", "subseq", "subsetp", "subst", "subst-if", "subst-if-not", - "substitute", "substitute-if", "substitute-if-not", "subtypep", "svref", - "sxhash", "symbol-function", "symbol-name", "symbolp", "symbol-package", - "symbol-plist", "symbol-value", "synonym-stream-symbol", "syntax:", - "tailp", "tan", "tanh", "tenth", "terpri", "third", - "translate-logical-pathname", "translate-pathname", "tree-equal", - "truename", "truncate", "two-way-stream-input-stream", - "two-way-stream-output-stream", "type-error-datum", - "type-error-expected-type", "type-of", "typep", "unbound-slot-instance", - "unexport", "unintern", "union", "unread-char", "unuse-package", - "update-instance-for-different-class", - "update-instance-for-redefined-class", "upgraded-array-element-type", - "upgraded-complex-part-type", "upper-case-p", "use-package", - "user-homedir-pathname", "use-value", "values", "values-list", "vector", - "vectorp", "vector-pop", "vector-push", "vector-push-extend", "warn", - "wild-pathname-p", "write", "write-byte", "write-char", "write-line", - "write-sequence", "write-string", "write-to-string", "yes-or-no-p", - "y-or-n-p", "zerop", - } - - clSpecialForms = []string{ - "block", "catch", "declare", "eval-when", "flet", "function", "go", "if", - "labels", "lambda", "let", "let*", "load-time-value", "locally", "macrolet", - "multiple-value-call", "multiple-value-prog1", "progn", "progv", "quote", - "return-from", "setq", "symbol-macrolet", "tagbody", "the", "throw", - "unwind-protect", - } - - clMacros = []string{ - "and", "assert", "call-method", "case", "ccase", "check-type", "cond", - "ctypecase", "decf", "declaim", "defclass", "defconstant", "defgeneric", - "define-compiler-macro", "define-condition", "define-method-combination", - "define-modify-macro", "define-setf-expander", "define-symbol-macro", - "defmacro", "defmethod", "defpackage", "defparameter", "defsetf", - "defstruct", "deftype", "defun", "defvar", "destructuring-bind", "do", - "do*", "do-all-symbols", "do-external-symbols", "dolist", "do-symbols", - "dotimes", "ecase", "etypecase", "formatter", "handler-bind", - "handler-case", "ignore-errors", "incf", "in-package", "lambda", "loop", - "loop-finish", "make-method", "multiple-value-bind", "multiple-value-list", - "multiple-value-setq", "nth-value", "or", "pop", - "pprint-exit-if-list-exhausted", "pprint-logical-block", "pprint-pop", - "print-unreadable-object", "prog", "prog*", "prog1", "prog2", "psetf", - "psetq", "push", "pushnew", "remf", "restart-bind", "restart-case", - "return", "rotatef", "setf", "shiftf", "step", "time", "trace", "typecase", - "unless", "untrace", "when", "with-accessors", "with-compilation-unit", - "with-condition-restarts", "with-hash-table-iterator", - "with-input-from-string", "with-open-file", "with-open-stream", - "with-output-to-string", "with-package-iterator", "with-simple-restart", - "with-slots", "with-standard-io-syntax", - } - - clLambdaListKeywords = []string{ - "&allow-other-keys", "&aux", "&body", "&environment", "&key", "&optional", - "&rest", "&whole", - } - - clDeclarations = []string{ - "dynamic-extent", "ignore", "optimize", "ftype", "inline", "special", - "ignorable", "notinline", "type", - } - - clBuiltinTypes = []string{ - "atom", "boolean", "base-char", "base-string", "bignum", "bit", - "compiled-function", "extended-char", "fixnum", "keyword", "nil", - "signed-byte", "short-float", "single-float", "double-float", "long-float", - "simple-array", "simple-base-string", "simple-bit-vector", "simple-string", - "simple-vector", "standard-char", "unsigned-byte", - - // Condition Types - "arithmetic-error", "cell-error", "condition", "control-error", - "division-by-zero", "end-of-file", "error", "file-error", - "floating-point-inexact", "floating-point-overflow", - "floating-point-underflow", "floating-point-invalid-operation", - "parse-error", "package-error", "print-not-readable", "program-error", - "reader-error", "serious-condition", "simple-condition", "simple-error", - "simple-type-error", "simple-warning", "stream-error", "storage-condition", - "style-warning", "type-error", "unbound-variable", "unbound-slot", - "undefined-function", "warning", - } - - clBuiltinClasses = []string{ - "array", "broadcast-stream", "bit-vector", "built-in-class", "character", - "class", "complex", "concatenated-stream", "cons", "echo-stream", - "file-stream", "float", "function", "generic-function", "hash-table", - "integer", "list", "logical-pathname", "method-combination", "method", - "null", "number", "package", "pathname", "ratio", "rational", "readtable", - "real", "random-state", "restart", "sequence", "standard-class", - "standard-generic-function", "standard-method", "standard-object", - "string-stream", "stream", "string", "structure-class", "structure-object", - "symbol", "synonym-stream", "t", "two-way-stream", "vector", - } -) - -// Common Lisp lexer. -var CommonLisp = internal.Register(TypeRemappingLexer(MustNewLexer( - &Config{ - Name: "Common Lisp", - Aliases: []string{"common-lisp", "cl", "lisp"}, - Filenames: []string{"*.cl", "*.lisp"}, - MimeTypes: []string{"text/x-common-lisp"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - Default(Push("body")), - }, - "multiline-comment": { - {`#\|`, CommentMultiline, Push()}, - {`\|#`, CommentMultiline, Pop(1)}, - {`[^|#]+`, CommentMultiline, nil}, - {`[|#]`, CommentMultiline, nil}, - }, - "commented-form": { - {`\(`, CommentPreproc, Push()}, - {`\)`, CommentPreproc, Pop(1)}, - {`[^()]+`, CommentPreproc, nil}, - }, - "body": { - {`\s+`, Text, nil}, - {`;.*$`, CommentSingle, nil}, - {`#\|`, CommentMultiline, Push("multiline-comment")}, - {`#\d*Y.*$`, CommentSpecial, nil}, - {`"(\\.|\\\n|[^"\\])*"`, LiteralString, nil}, - {`:(\|[^|]+\||(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~])(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~]|[#.:])*)`, LiteralStringSymbol, nil}, - {`::(\|[^|]+\||(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~])(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~]|[#.:])*)`, LiteralStringSymbol, nil}, - {`:#(\|[^|]+\||(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~])(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~]|[#.:])*)`, LiteralStringSymbol, nil}, - {`'(\|[^|]+\||(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~])(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~]|[#.:])*)`, LiteralStringSymbol, nil}, - {`'`, Operator, nil}, - {"`", Operator, nil}, - {"[-+]?\\d+\\.?(?=[ \"()\\'\\n,;`])", LiteralNumberInteger, nil}, - {"[-+]?\\d+/\\d+(?=[ \"()\\'\\n,;`])", LiteralNumber, nil}, - {"[-+]?(\\d*\\.\\d+([defls][-+]?\\d+)?|\\d+(\\.\\d*)?[defls][-+]?\\d+)(?=[ \"()\\'\\n,;`])", LiteralNumberFloat, nil}, - {"#\\\\.(?=[ \"()\\'\\n,;`])", LiteralStringChar, nil}, - {`#\\(\|[^|]+\||(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~])(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~]|[#.:])*)`, LiteralStringChar, nil}, - {`#\(`, Operator, Push("body")}, - {`#\d*\*[01]*`, LiteralOther, nil}, - {`#:(\|[^|]+\||(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~])(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~]|[#.:])*)`, LiteralStringSymbol, nil}, - {`#[.,]`, Operator, nil}, - {`#\'`, NameFunction, nil}, - {`#b[+-]?[01]+(/[01]+)?`, LiteralNumberBin, nil}, - {`#o[+-]?[0-7]+(/[0-7]+)?`, LiteralNumberOct, nil}, - {`#x[+-]?[0-9a-f]+(/[0-9a-f]+)?`, LiteralNumberHex, nil}, - {`#\d+r[+-]?[0-9a-z]+(/[0-9a-z]+)?`, LiteralNumber, nil}, - {`(#c)(\()`, ByGroups(LiteralNumber, Punctuation), Push("body")}, - {`(#\d+a)(\()`, ByGroups(LiteralOther, Punctuation), Push("body")}, - {`(#s)(\()`, ByGroups(LiteralOther, Punctuation), Push("body")}, - {`#p?"(\\.|[^"])*"`, LiteralOther, nil}, - {`#\d+=`, Operator, nil}, - {`#\d+#`, Operator, nil}, - {"#+nil(?=[ \"()\\'\\n,;`])\\s*\\(", CommentPreproc, Push("commented-form")}, - {`#[+-]`, Operator, nil}, - {`(,@|,|\.)`, Operator, nil}, - {"(t|nil)(?=[ \"()\\'\\n,;`])", NameConstant, nil}, - {`\*(\|[^|]+\||(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~])(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~]|[#.:])*)\*`, NameVariableGlobal, nil}, - {`(\|[^|]+\||(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~])(?:\\.|[\w!$%&*+-/<=>?@\[\]^{}~]|[#.:])*)`, NameVariable, nil}, - {`\(`, Punctuation, Push("body")}, - {`\)`, Punctuation, Pop(1)}, - }, - }, -), TypeMapping{ - {NameVariable, NameFunction, clBuiltinFunctions}, - {NameVariable, Keyword, clSpecialForms}, - {NameVariable, NameBuiltin, clMacros}, - {NameVariable, Keyword, clLambdaListKeywords}, - {NameVariable, Keyword, clDeclarations}, - {NameVariable, KeywordType, clBuiltinTypes}, - {NameVariable, NameClass, clBuiltinClasses}, -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/clojure.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/clojure.go deleted file mode 100644 index e63752a5dd..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/clojure.go +++ /dev/null @@ -1,38 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Clojure lexer. -var Clojure = internal.Register(MustNewLexer( - &Config{ - Name: "Clojure", - Aliases: []string{"clojure", "clj"}, - Filenames: []string{"*.clj"}, - MimeTypes: []string{"text/x-clojure", "application/x-clojure"}, - }, - Rules{ - "root": { - {`;.*$`, CommentSingle, nil}, - {`[,\s]+`, Text, nil}, - {`-?\d+\.\d+`, LiteralNumberFloat, nil}, - {`-?\d+`, LiteralNumberInteger, nil}, - {`0x-?[abcdef\d]+`, LiteralNumberHex, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`'(?!#)[\w!$%*+<=>?/.#-]+`, LiteralStringSymbol, nil}, - {`\\(.|[a-z]+)`, LiteralStringChar, nil}, - {`::?#?(?!#)[\w!$%*+<=>?/.#-]+`, LiteralStringSymbol, nil}, - {"~@|[`\\'#^~&@]", Operator, nil}, - {Words(``, ` `, `.`, `def`, `do`, `fn`, `if`, `let`, `new`, `quote`, `var`, `loop`), Keyword, nil}, - {Words(``, ` `, `def-`, `defn`, `defn-`, `defmacro`, `defmulti`, `defmethod`, `defstruct`, `defonce`, `declare`, `definline`, `definterface`, `defprotocol`, `defrecord`, `deftype`, `defproject`, `ns`), KeywordDeclaration, nil}, - {Words(``, ` `, `*`, `+`, `-`, `->`, `/`, `<`, `<=`, `=`, `==`, `>`, `>=`, `..`, `accessor`, `agent`, `agent-errors`, `aget`, `alength`, `all-ns`, `alter`, `and`, `append-child`, `apply`, `array-map`, `aset`, `aset-boolean`, `aset-byte`, `aset-char`, `aset-double`, `aset-float`, `aset-int`, `aset-long`, `aset-short`, `assert`, `assoc`, `await`, `await-for`, `bean`, `binding`, `bit-and`, `bit-not`, `bit-or`, `bit-shift-left`, `bit-shift-right`, `bit-xor`, `boolean`, `branch?`, `butlast`, `byte`, `cast`, `char`, `children`, `class`, `clear-agent-errors`, `comment`, `commute`, `comp`, `comparator`, `complement`, `concat`, `conj`, `cons`, `constantly`, `cond`, `if-not`, `construct-proxy`, `contains?`, `count`, `create-ns`, `create-struct`, `cycle`, `dec`, `deref`, `difference`, `disj`, `dissoc`, `distinct`, `doall`, `doc`, `dorun`, `doseq`, `dosync`, `dotimes`, `doto`, `double`, `down`, `drop`, `drop-while`, `edit`, `end?`, `ensure`, `eval`, `every?`, `false?`, `ffirst`, `file-seq`, `filter`, `find`, `find-doc`, `find-ns`, `find-var`, `first`, `float`, `flush`, `for`, `fnseq`, `frest`, `gensym`, `get-proxy-class`, `get`, `hash-map`, `hash-set`, `identical?`, `identity`, `if-let`, `import`, `in-ns`, `inc`, `index`, `insert-child`, `insert-left`, `insert-right`, `inspect-table`, `inspect-tree`, `instance?`, `int`, `interleave`, `intersection`, `into`, `into-array`, `iterate`, `join`, `key`, `keys`, `keyword`, `keyword?`, `last`, `lazy-cat`, `lazy-cons`, `left`, `lefts`, `line-seq`, `list*`, `list`, `load`, `load-file`, `locking`, `long`, `loop`, `macroexpand`, `macroexpand-1`, `make-array`, `make-node`, `map`, `map-invert`, `map?`, `mapcat`, `max`, `max-key`, `memfn`, `merge`, `merge-with`, `meta`, `min`, `min-key`, `name`, `namespace`, `neg?`, `new`, `newline`, `next`, `nil?`, `node`, `not`, `not-any?`, `not-every?`, `not=`, `ns-imports`, `ns-interns`, `ns-map`, `ns-name`, `ns-publics`, `ns-refers`, `ns-resolve`, `ns-unmap`, `nth`, `nthrest`, `or`, `parse`, `partial`, `path`, `peek`, `pop`, `pos?`, `pr`, `pr-str`, `print`, `print-str`, `println`, `println-str`, `prn`, `prn-str`, `project`, `proxy`, `proxy-mappings`, `quot`, `rand`, `rand-int`, `range`, `re-find`, `re-groups`, `re-matcher`, `re-matches`, `re-pattern`, `re-seq`, `read`, `read-line`, `reduce`, `ref`, `ref-set`, `refer`, `rem`, `remove`, `remove-method`, `remove-ns`, `rename`, `rename-keys`, `repeat`, `replace`, `replicate`, `resolve`, `rest`, `resultset-seq`, `reverse`, `rfirst`, `right`, `rights`, `root`, `rrest`, `rseq`, `second`, `select`, `select-keys`, `send`, `send-off`, `seq`, `seq-zip`, `seq?`, `set`, `short`, `slurp`, `some`, `sort`, `sort-by`, `sorted-map`, `sorted-map-by`, `sorted-set`, `special-symbol?`, `split-at`, `split-with`, `str`, `string?`, `struct`, `struct-map`, `subs`, `subvec`, `symbol`, `symbol?`, `sync`, `take`, `take-nth`, `take-while`, `test`, `time`, `to-array`, `to-array-2d`, `tree-seq`, `true?`, `union`, `up`, `update-proxy`, `val`, `vals`, `var-get`, `var-set`, `var?`, `vector`, `vector-zip`, `vector?`, `when`, `when-first`, `when-let`, `when-not`, `with-local-vars`, `with-meta`, `with-open`, `with-out-str`, `xml-seq`, `xml-zip`, `zero?`, `zipmap`, `zipper`), NameBuiltin, nil}, - {`(?<=\()(?!#)[\w!$%*+<=>?/.#-]+`, NameFunction, nil}, - {`(?!#)[\w!$%*+<=>?/.#-]+`, NameVariable, nil}, - {`(\[|\])`, Punctuation, nil}, - {`(\{|\})`, Punctuation, nil}, - {`(\(|\))`, Punctuation, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cmake.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cmake.go deleted file mode 100644 index 163f17d9af..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cmake.go +++ /dev/null @@ -1,44 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Cmake lexer. -var Cmake = internal.Register(MustNewLexer( - &Config{ - Name: "CMake", - Aliases: []string{"cmake"}, - Filenames: []string{"*.cmake", "CMakeLists.txt"}, - MimeTypes: []string{"text/x-cmake"}, - }, - Rules{ - "root": { - {`\b(\w+)([ \t]*)(\()`, ByGroups(NameBuiltin, Text, Punctuation), Push("args")}, - Include("keywords"), - Include("ws"), - }, - "args": { - {`\(`, Punctuation, Push()}, - {`\)`, Punctuation, Pop(1)}, - {`(\$\{)(.+?)(\})`, ByGroups(Operator, NameVariable, Operator), nil}, - {`(\$ENV\{)(.+?)(\})`, ByGroups(Operator, NameVariable, Operator), nil}, - {`(\$<)(.+?)(>)`, ByGroups(Operator, NameVariable, Operator), nil}, - {`(?s)".*?"`, LiteralStringDouble, nil}, - {`\\\S+`, LiteralString, nil}, - {`[^)$"# \t\n]+`, LiteralString, nil}, - {`\n`, Text, nil}, - Include("keywords"), - Include("ws"), - }, - "string": {}, - "keywords": { - {`\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\b`, Keyword, nil}, - }, - "ws": { - {`[ \t]+`, Text, nil}, - {`#.*\n`, Comment, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cobol.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cobol.go deleted file mode 100644 index e9ae0bb7fb..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cobol.go +++ /dev/null @@ -1,51 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Cobol lexer. -var Cobol = internal.Register(MustNewLexer( - &Config{ - Name: "COBOL", - Aliases: []string{"cobol"}, - Filenames: []string{"*.cob", "*.COB", "*.cpy", "*.CPY"}, - MimeTypes: []string{"text/x-cobol"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - Include("comment"), - Include("strings"), - Include("core"), - Include("nums"), - {`[a-z0-9]([\w\-]*[a-z0-9]+)?`, NameVariable, nil}, - {`[ \t]+`, Text, nil}, - }, - "comment": { - {`(^.{6}[*/].*\n|^.{6}|\*>.*\n)`, Comment, nil}, - }, - "core": { - {`(^|(?<=[^\w\-]))(ALL\s+)?((ZEROES)|(HIGH-VALUE|LOW-VALUE|QUOTE|SPACE|ZERO)(S)?)\s*($|(?=[^\w\-]))`, NameConstant, nil}, - {Words(`(^|(?<=[^\w\-]))`, `\s*($|(?=[^\w\-]))`, `ACCEPT`, `ADD`, `ALLOCATE`, `CALL`, `CANCEL`, `CLOSE`, `COMPUTE`, `CONFIGURATION`, `CONTINUE`, `DATA`, `DELETE`, `DISPLAY`, `DIVIDE`, `DIVISION`, `ELSE`, `END`, `END-ACCEPT`, `END-ADD`, `END-CALL`, `END-COMPUTE`, `END-DELETE`, `END-DISPLAY`, `END-DIVIDE`, `END-EVALUATE`, `END-IF`, `END-MULTIPLY`, `END-OF-PAGE`, `END-PERFORM`, `END-READ`, `END-RETURN`, `END-REWRITE`, `END-SEARCH`, `END-START`, `END-STRING`, `END-SUBTRACT`, `END-UNSTRING`, `END-WRITE`, `ENVIRONMENT`, `EVALUATE`, `EXIT`, `FD`, `FILE`, `FILE-CONTROL`, `FOREVER`, `FREE`, `GENERATE`, `GO`, `GOBACK`, `IDENTIFICATION`, `IF`, `INITIALIZE`, `INITIATE`, `INPUT-OUTPUT`, `INSPECT`, `INVOKE`, `I-O-CONTROL`, `LINKAGE`, `LOCAL-STORAGE`, `MERGE`, `MOVE`, `MULTIPLY`, `OPEN`, `PERFORM`, `PROCEDURE`, `PROGRAM-ID`, `RAISE`, `READ`, `RELEASE`, `RESUME`, `RETURN`, `REWRITE`, `SCREEN`, `SD`, `SEARCH`, `SECTION`, `SET`, `SORT`, `START`, `STOP`, `STRING`, `SUBTRACT`, `SUPPRESS`, `TERMINATE`, `THEN`, `UNLOCK`, `UNSTRING`, `USE`, `VALIDATE`, `WORKING-STORAGE`, `WRITE`), KeywordReserved, nil}, - {Words(`(^|(?<=[^\w\-]))`, `\s*($|(?=[^\w\-]))`, `ACCESS`, `ADDRESS`, `ADVANCING`, `AFTER`, `ALL`, `ALPHABET`, `ALPHABETIC`, `ALPHABETIC-LOWER`, `ALPHABETIC-UPPER`, `ALPHANUMERIC`, `ALPHANUMERIC-EDITED`, `ALSO`, `ALTER`, `ALTERNATEANY`, `ARE`, `AREA`, `AREAS`, `ARGUMENT-NUMBER`, `ARGUMENT-VALUE`, `AS`, `ASCENDING`, `ASSIGN`, `AT`, `AUTO`, `AUTO-SKIP`, `AUTOMATIC`, `AUTOTERMINATE`, `BACKGROUND-COLOR`, `BASED`, `BEEP`, `BEFORE`, `BELL`, `BLANK`, `BLINK`, `BLOCK`, `BOTTOM`, `BY`, `BYTE-LENGTH`, `CHAINING`, `CHARACTER`, `CHARACTERS`, `CLASS`, `CODE`, `CODE-SET`, `COL`, `COLLATING`, `COLS`, `COLUMN`, `COLUMNS`, `COMMA`, `COMMAND-LINE`, `COMMIT`, `COMMON`, `CONSTANT`, `CONTAINS`, `CONTENT`, `CONTROL`, `CONTROLS`, `CONVERTING`, `COPY`, `CORR`, `CORRESPONDING`, `COUNT`, `CRT`, `CURRENCY`, `CURSOR`, `CYCLE`, `DATE`, `DAY`, `DAY-OF-WEEK`, `DE`, `DEBUGGING`, `DECIMAL-POINT`, `DECLARATIVES`, `DEFAULT`, `DELIMITED`, `DELIMITER`, `DEPENDING`, `DESCENDING`, `DETAIL`, `DISK`, `DOWN`, `DUPLICATES`, `DYNAMIC`, `EBCDIC`, `ENTRY`, `ENVIRONMENT-NAME`, `ENVIRONMENT-VALUE`, `EOL`, `EOP`, `EOS`, `ERASE`, `ERROR`, `ESCAPE`, `EXCEPTION`, `EXCLUSIVE`, `EXTEND`, `EXTERNAL`, `FILE-ID`, `FILLER`, `FINAL`, `FIRST`, `FIXED`, `FLOAT-LONG`, `FLOAT-SHORT`, `FOOTING`, `FOR`, `FOREGROUND-COLOR`, `FORMAT`, `FROM`, `FULL`, `FUNCTION`, `FUNCTION-ID`, `GIVING`, `GLOBAL`, `GROUP`, `HEADING`, `HIGHLIGHT`, `I-O`, `ID`, `IGNORE`, `IGNORING`, `IN`, `INDEX`, `INDEXED`, `INDICATE`, `INITIAL`, `INITIALIZED`, `INPUT`, `INTO`, `INTRINSIC`, `INVALID`, `IS`, `JUST`, `JUSTIFIED`, `KEY`, `LABEL`, `LAST`, `LEADING`, `LEFT`, `LENGTH`, `LIMIT`, `LIMITS`, `LINAGE`, `LINAGE-COUNTER`, `LINE`, `LINES`, `LOCALE`, `LOCK`, `LOWLIGHT`, `MANUAL`, `MEMORY`, `MINUS`, `MODE`, `MULTIPLE`, `NATIONAL`, `NATIONAL-EDITED`, `NATIVE`, `NEGATIVE`, `NEXT`, `NO`, `NULL`, `NULLS`, `NUMBER`, `NUMBERS`, `NUMERIC`, `NUMERIC-EDITED`, `OBJECT-COMPUTER`, `OCCURS`, `OF`, `OFF`, `OMITTED`, `ON`, `ONLY`, `OPTIONAL`, `ORDER`, `ORGANIZATION`, `OTHER`, `OUTPUT`, `OVERFLOW`, `OVERLINE`, `PACKED-DECIMAL`, `PADDING`, `PAGE`, `PARAGRAPH`, `PLUS`, `POINTER`, `POSITION`, `POSITIVE`, `PRESENT`, `PREVIOUS`, `PRINTER`, `PRINTING`, `PROCEDURE-POINTER`, `PROCEDURES`, `PROCEED`, `PROGRAM`, `PROGRAM-POINTER`, `PROMPT`, `QUOTE`, `QUOTES`, `RANDOM`, `RD`, `RECORD`, `RECORDING`, `RECORDS`, `RECURSIVE`, `REDEFINES`, `REEL`, `REFERENCE`, `RELATIVE`, `REMAINDER`, `REMOVAL`, `RENAMES`, `REPLACING`, `REPORT`, `REPORTING`, `REPORTS`, `REPOSITORY`, `REQUIRED`, `RESERVE`, `RETURNING`, `REVERSE-VIDEO`, `REWIND`, `RIGHT`, `ROLLBACK`, `ROUNDED`, `RUN`, `SAME`, `SCROLL`, `SECURE`, `SEGMENT-LIMIT`, `SELECT`, `SENTENCE`, `SEPARATE`, `SEQUENCE`, `SEQUENTIAL`, `SHARING`, `SIGN`, `SIGNED`, `SIGNED-INT`, `SIGNED-LONG`, `SIGNED-SHORT`, `SIZE`, `SORT-MERGE`, `SOURCE`, `SOURCE-COMPUTER`, `SPECIAL-NAMES`, `STANDARD`, `STANDARD-1`, `STANDARD-2`, `STATUS`, `SUM`, `SYMBOLIC`, `SYNC`, `SYNCHRONIZED`, `TALLYING`, `TAPE`, `TEST`, `THROUGH`, `THRU`, `TIME`, `TIMES`, `TO`, `TOP`, `TRAILING`, `TRANSFORM`, `TYPE`, `UNDERLINE`, `UNIT`, `UNSIGNED`, `UNSIGNED-INT`, `UNSIGNED-LONG`, `UNSIGNED-SHORT`, `UNTIL`, `UP`, `UPDATE`, `UPON`, `USAGE`, `USING`, `VALUE`, `VALUES`, `VARYING`, `WAIT`, `WHEN`, `WITH`, `WORDS`, `YYYYDDD`, `YYYYMMDD`), KeywordPseudo, nil}, - {Words(`(^|(?<=[^\w\-]))`, `\s*($|(?=[^\w\-]))`, `ACTIVE-CLASS`, `ALIGNED`, `ANYCASE`, `ARITHMETIC`, `ATTRIBUTE`, `B-AND`, `B-NOT`, `B-OR`, `B-XOR`, `BIT`, `BOOLEAN`, `CD`, `CENTER`, `CF`, `CH`, `CHAIN`, `CLASS-ID`, `CLASSIFICATION`, `COMMUNICATION`, `CONDITION`, `DATA-POINTER`, `DESTINATION`, `DISABLE`, `EC`, `EGI`, `EMI`, `ENABLE`, `END-RECEIVE`, `ENTRY-CONVENTION`, `EO`, `ESI`, `EXCEPTION-OBJECT`, `EXPANDS`, `FACTORY`, `FLOAT-BINARY-16`, `FLOAT-BINARY-34`, `FLOAT-BINARY-7`, `FLOAT-DECIMAL-16`, `FLOAT-DECIMAL-34`, `FLOAT-EXTENDED`, `FORMAT`, `FUNCTION-POINTER`, `GET`, `GROUP-USAGE`, `IMPLEMENTS`, `INFINITY`, `INHERITS`, `INTERFACE`, `INTERFACE-ID`, `INVOKE`, `LC_ALL`, `LC_COLLATE`, `LC_CTYPE`, `LC_MESSAGES`, `LC_MONETARY`, `LC_NUMERIC`, `LC_TIME`, `LINE-COUNTER`, `MESSAGE`, `METHOD`, `METHOD-ID`, `NESTED`, `NONE`, `NORMAL`, `OBJECT`, `OBJECT-REFERENCE`, `OPTIONS`, `OVERRIDE`, `PAGE-COUNTER`, `PF`, `PH`, `PROPERTY`, `PROTOTYPE`, `PURGE`, `QUEUE`, `RAISE`, `RAISING`, `RECEIVE`, `RELATION`, `REPLACE`, `REPRESENTS-NOT-A-NUMBER`, `RESET`, `RESUME`, `RETRY`, `RF`, `RH`, `SECONDS`, `SEGMENT`, `SELF`, `SEND`, `SOURCES`, `STATEMENT`, `STEP`, `STRONG`, `SUB-QUEUE-1`, `SUB-QUEUE-2`, `SUB-QUEUE-3`, `SUPER`, `SYMBOL`, `SYSTEM-DEFAULT`, `TABLE`, `TERMINAL`, `TEXT`, `TYPEDEF`, `UCS-4`, `UNIVERSAL`, `USER-DEFAULT`, `UTF-16`, `UTF-8`, `VAL-STATUS`, `VALID`, `VALIDATE`, `VALIDATE-STATUS`), Error, nil}, - {`(^|(?<=[^\w\-]))(PIC\s+.+?(?=(\s|\.\s))|PICTURE\s+.+?(?=(\s|\.\s))|(COMPUTATIONAL)(-[1-5X])?|(COMP)(-[1-5X])?|BINARY-C-LONG|BINARY-CHAR|BINARY-DOUBLE|BINARY-LONG|BINARY-SHORT|BINARY)\s*($|(?=[^\w\-]))`, KeywordType, nil}, - {`(\*\*|\*|\+|-|/|<=|>=|<|>|==|/=|=)`, Operator, nil}, - {`([(),;:&%.])`, Punctuation, nil}, - {`(^|(?<=[^\w\-]))(ABS|ACOS|ANNUITY|ASIN|ATAN|BYTE-LENGTH|CHAR|COMBINED-DATETIME|CONCATENATE|COS|CURRENT-DATE|DATE-OF-INTEGER|DATE-TO-YYYYMMDD|DAY-OF-INTEGER|DAY-TO-YYYYDDD|EXCEPTION-(?:FILE|LOCATION|STATEMENT|STATUS)|EXP10|EXP|E|FACTORIAL|FRACTION-PART|INTEGER-OF-(?:DATE|DAY|PART)|INTEGER|LENGTH|LOCALE-(?:DATE|TIME(?:-FROM-SECONDS)?)|LOG(?:10)?|LOWER-CASE|MAX|MEAN|MEDIAN|MIDRANGE|MIN|MOD|NUMVAL(?:-C)?|ORD(?:-MAX|-MIN)?|PI|PRESENT-VALUE|RANDOM|RANGE|REM|REVERSE|SECONDS-FROM-FORMATTED-TIME|SECONDS-PAST-MIDNIGHT|SIGN|SIN|SQRT|STANDARD-DEVIATION|STORED-CHAR-LENGTH|SUBSTITUTE(?:-CASE)?|SUM|TAN|TEST-DATE-YYYYMMDD|TEST-DAY-YYYYDDD|TRIM|UPPER-CASE|VARIANCE|WHEN-COMPILED|YEAR-TO-YYYY)\s*($|(?=[^\w\-]))`, NameFunction, nil}, - {`(^|(?<=[^\w\-]))(true|false)\s*($|(?=[^\w\-]))`, NameBuiltin, nil}, - {`(^|(?<=[^\w\-]))(equal|equals|ne|lt|le|gt|ge|greater|less|than|not|and|or)\s*($|(?=[^\w\-]))`, OperatorWord, nil}, - }, - "strings": { - {`"[^"\n]*("|\n)`, LiteralStringDouble, nil}, - {`'[^'\n]*('|\n)`, LiteralStringSingle, nil}, - }, - "nums": { - {`\d+(\s*|\.$|$)`, LiteralNumberInteger, nil}, - {`[+-]?\d*\.\d+(E[-+]?\d+)?`, LiteralNumberFloat, nil}, - {`[+-]?\d+\.\d*(E[-+]?\d+)?`, LiteralNumberFloat, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/coffee.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/coffee.go deleted file mode 100644 index e402b8f2af..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/coffee.go +++ /dev/null @@ -1,91 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Coffeescript lexer. -var Coffeescript = internal.Register(MustNewLexer( - &Config{ - Name: "CoffeeScript", - Aliases: []string{"coffee-script", "coffeescript", "coffee"}, - Filenames: []string{"*.coffee"}, - MimeTypes: []string{"text/coffeescript"}, - NotMultiline: true, - DotAll: true, - }, - Rules{ - "commentsandwhitespace": { - {`\s+`, Text, nil}, - {`###[^#].*?###`, CommentMultiline, nil}, - {`#(?!##[^#]).*?\n`, CommentSingle, nil}, - }, - "multilineregex": { - {`[^/#]+`, LiteralStringRegex, nil}, - {`///([gim]+\b|\B)`, LiteralStringRegex, Pop(1)}, - {`#\{`, LiteralStringInterpol, Push("interpoling_string")}, - {`[/#]`, LiteralStringRegex, nil}, - }, - "slashstartsregex": { - Include("commentsandwhitespace"), - {`///`, LiteralStringRegex, Push("#pop", "multilineregex")}, - {`/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)`, LiteralStringRegex, Pop(1)}, - {`/`, Operator, nil}, - Default(Pop(1)), - }, - "root": { - Include("commentsandwhitespace"), - {`^(?=\s|/)`, Text, Push("slashstartsregex")}, - {"\\+\\+|~|&&|\\band\\b|\\bor\\b|\\bis\\b|\\bisnt\\b|\\bnot\\b|\\?|:|\\|\\||\\\\(?=\\n)|(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&\\|\\^/])=?", Operator, Push("slashstartsregex")}, - {`(?:\([^()]*\))?\s*[=-]>`, NameFunction, Push("slashstartsregex")}, - {`[{(\[;,]`, Punctuation, Push("slashstartsregex")}, - {`[})\].]`, Punctuation, nil}, - {`(?=|<|>|==`, Operator, nil}, - {`mod\b`, Operator, nil}, - {`(eq|lt|gt|lte|gte|not|is|and|or)\b`, Operator, nil}, - {`\|\||&&`, Operator, nil}, - {`\?`, Operator, nil}, - {`"`, LiteralStringDouble, Push("string")}, - {`'.*?'`, LiteralStringSingle, nil}, - {`\d+`, LiteralNumber, nil}, - {`(if|else|len|var|xml|default|break|switch|component|property|function|do|try|catch|in|continue|for|return|while|required|any|array|binary|boolean|component|date|guid|numeric|query|string|struct|uuid|case)\b`, Keyword, nil}, - {`(true|false|null)\b`, KeywordConstant, nil}, - {`(application|session|client|cookie|super|this|variables|arguments)\b`, NameConstant, nil}, - {`([a-z_$][\w.]*)(\s*)(\()`, ByGroups(NameFunction, Text, Punctuation), nil}, - {`[a-z_$][\w.]*`, NameVariable, nil}, - {`[()\[\]{};:,.\\]`, Punctuation, nil}, - {`\s+`, Text, nil}, - }, - "string": { - {`""`, LiteralStringDouble, nil}, - {`#.+?#`, LiteralStringInterpol, nil}, - {`[^"#]+`, LiteralStringDouble, nil}, - {`#`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/coq.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/coq.go deleted file mode 100644 index e69a5c16ce..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/coq.go +++ /dev/null @@ -1,63 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Coq lexer. -var Coq = internal.Register(MustNewLexer( - &Config{ - Name: "Coq", - Aliases: []string{"coq"}, - Filenames: []string{"*.v"}, - MimeTypes: []string{"text/x-coq"}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`false|true|\(\)|\[\]`, NameBuiltinPseudo, nil}, - {`\(\*`, Comment, Push("comment")}, - {Words(`\b`, `\b`, `Section`, `Module`, `End`, `Require`, `Import`, `Export`, `Variable`, `Variables`, `Parameter`, `Parameters`, `Axiom`, `Hypothesis`, `Hypotheses`, `Notation`, `Local`, `Tactic`, `Reserved`, `Scope`, `Open`, `Close`, `Bind`, `Delimit`, `Definition`, `Let`, `Ltac`, `Fixpoint`, `CoFixpoint`, `Morphism`, `Relation`, `Implicit`, `Arguments`, `Set`, `Unset`, `Contextual`, `Strict`, `Prenex`, `Implicits`, `Inductive`, `CoInductive`, `Record`, `Structure`, `Canonical`, `Coercion`, `Theorem`, `Lemma`, `Corollary`, `Proposition`, `Fact`, `Remark`, `Example`, `Proof`, `Goal`, `Save`, `Qed`, `Defined`, `Hint`, `Resolve`, `Rewrite`, `View`, `Search`, `Show`, `Print`, `Printing`, `All`, `Graph`, `Projections`, `inside`, `outside`, `Check`, `Global`, `Instance`, `Class`, `Existing`, `Universe`, `Polymorphic`, `Monomorphic`, `Context`), KeywordNamespace, nil}, - {Words(`\b`, `\b`, `forall`, `exists`, `exists2`, `fun`, `fix`, `cofix`, `struct`, `match`, `end`, `in`, `return`, `let`, `if`, `is`, `then`, `else`, `for`, `of`, `nosimpl`, `with`, `as`), Keyword, nil}, - {Words(`\b`, `\b`, `Type`, `Prop`), KeywordType, nil}, - {Words(`\b`, `\b`, `pose`, `set`, `move`, `case`, `elim`, `apply`, `clear`, `hnf`, `intro`, `intros`, `generalize`, `rename`, `pattern`, `after`, `destruct`, `induction`, `using`, `refine`, `inversion`, `injection`, `rewrite`, `congr`, `unlock`, `compute`, `ring`, `field`, `replace`, `fold`, `unfold`, `change`, `cutrewrite`, `simpl`, `have`, `suff`, `wlog`, `suffices`, `without`, `loss`, `nat_norm`, `assert`, `cut`, `trivial`, `revert`, `bool_congr`, `nat_congr`, `symmetry`, `transitivity`, `auto`, `split`, `left`, `right`, `autorewrite`, `tauto`, `setoid_rewrite`, `intuition`, `eauto`, `eapply`, `econstructor`, `etransitivity`, `constructor`, `erewrite`, `red`, `cbv`, `lazy`, `vm_compute`, `native_compute`, `subst`), Keyword, nil}, - {Words(`\b`, `\b`, `by`, `done`, `exact`, `reflexivity`, `tauto`, `romega`, `omega`, `assumption`, `solve`, `contradiction`, `discriminate`, `congruence`), KeywordPseudo, nil}, - {Words(`\b`, `\b`, `do`, `last`, `first`, `try`, `idtac`, `repeat`), KeywordReserved, nil}, - {`\b([A-Z][\w\']*)`, Name, nil}, - {"(\u03bb|\u03a0|\\|\\}|\\{\\||\\\\/|/\\\\|=>|~|\\}|\\|]|\\||\\{<|\\{|`|_|]|\\[\\||\\[>|\\[<|\\[|\\?\\?|\\?|>\\}|>]|>|=|<->|<-|<|;;|;|:>|:=|::|:|\\.\\.|\\.|->|-\\.|-|,|\\+|\\*|\\)|\\(|&&|&|#|!=)", Operator, nil}, - {`([=<>@^|&+\*/$%-]|[!?~])?[!$%&*+\./:<=>?@^|~-]`, Operator, nil}, - {`\b(unit|nat|bool|string|ascii|list)\b`, KeywordType, nil}, - {`[^\W\d][\w']*`, Name, nil}, - {`\d[\d_]*`, LiteralNumberInteger, nil}, - {`0[xX][\da-fA-F][\da-fA-F_]*`, LiteralNumberHex, nil}, - {`0[oO][0-7][0-7_]*`, LiteralNumberOct, nil}, - {`0[bB][01][01_]*`, LiteralNumberBin, nil}, - {`-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)`, LiteralNumberFloat, nil}, - {`'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'`, LiteralStringChar, nil}, - {`'.'`, LiteralStringChar, nil}, - {`'`, Keyword, nil}, - {`"`, LiteralStringDouble, Push("string")}, - {`[~?][a-z][\w\']*:`, Name, nil}, - }, - "comment": { - {`[^(*)]+`, Comment, nil}, - {`\(\*`, Comment, Push()}, - {`\*\)`, Comment, Pop(1)}, - {`[(*)]`, Comment, nil}, - }, - "string": { - {`[^"]+`, LiteralStringDouble, nil}, - {`""`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "dotted": { - {`\s+`, Text, nil}, - {`\.`, Punctuation, nil}, - {`[A-Z][\w\']*(?=\s*\.)`, NameNamespace, nil}, - {`[A-Z][\w\']*`, NameClass, Pop(1)}, - {`[a-z][a-z0-9_\']*`, Name, Pop(1)}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cpp.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cpp.go deleted file mode 100644 index 104be24090..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cpp.go +++ /dev/null @@ -1,106 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// CPP lexer. -var CPP = internal.Register(MustNewLexer( - &Config{ - Name: "C++", - Aliases: []string{"cpp", "c++"}, - Filenames: []string{"*.cpp", "*.hpp", "*.c++", "*.h++", "*.cc", "*.hh", "*.cxx", "*.hxx", "*.C", "*.H", "*.cp", "*.CPP"}, - MimeTypes: []string{"text/x-c++hdr", "text/x-c++src"}, - EnsureNL: true, - }, - Rules{ - "statements": { - {Words(``, `\b`, `catch`, `const_cast`, `delete`, `dynamic_cast`, `explicit`, `export`, `friend`, `mutable`, `namespace`, `new`, `operator`, `private`, `protected`, `public`, `reinterpret_cast`, `restrict`, `static_cast`, `template`, `this`, `throw`, `throws`, `try`, `typeid`, `typename`, `using`, `virtual`, `constexpr`, `nullptr`, `decltype`, `thread_local`, `alignas`, `alignof`, `static_assert`, `noexcept`, `override`, `final`, `concept`, `requires`, `consteval`, `co_await`, `co_return`, `co_yield`), Keyword, nil}, - {`(enum)\b(\s+)(class)\b(\s*)`, ByGroups(Keyword, Text, Keyword, Text), Push("classname")}, - {`(class|struct|enum|union)\b(\s*)`, ByGroups(Keyword, Text), Push("classname")}, - {`\[\[.+\]\]`, NameAttribute, nil}, - {`(R)(")([^\\()\s]{,16})(\()((?:.|\n)*?)(\)\3)(")`, ByGroups(LiteralStringAffix, LiteralString, LiteralStringDelimiter, LiteralStringDelimiter, LiteralString, LiteralStringDelimiter, LiteralString), nil}, - {`(u8|u|U)(")`, ByGroups(LiteralStringAffix, LiteralString), Push("string")}, - {`(L?)(")`, ByGroups(LiteralStringAffix, LiteralString), Push("string")}, - {`(L?)(')(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])(')`, ByGroups(LiteralStringAffix, LiteralStringChar, LiteralStringChar, LiteralStringChar), nil}, - {`(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*`, LiteralNumberFloat, nil}, - {`(\d+\.\d*|\.\d+|\d+[fF])[fF]?`, LiteralNumberFloat, nil}, - {`0[xX]([0-9A-Fa-f]('?[0-9A-Fa-f]+)*)[LlUu]*`, LiteralNumberHex, nil}, - {`0('?[0-7]+)+[LlUu]*`, LiteralNumberOct, nil}, - {`0[Bb][01]('?[01]+)*[LlUu]*`, LiteralNumberBin, nil}, - {`[0-9]('?[0-9]+)*[LlUu]*`, LiteralNumberInteger, nil}, - {`\*/`, Error, nil}, - {`[~!%^&*+=|?:<>/-]`, Operator, nil}, - {`[()\[\],.]`, Punctuation, nil}, - {Words(``, `\b`, `asm`, `auto`, `break`, `case`, `const`, `continue`, `default`, `do`, `else`, `enum`, `extern`, `for`, `goto`, `if`, `register`, `restricted`, `return`, `sizeof`, `static`, `struct`, `switch`, `typedef`, `union`, `volatile`, `while`), Keyword, nil}, - {`(bool|int|long|float|short|double|char((8|16|32)_t)?|wchar_t|unsigned|signed|void|u?int(_fast|_least|)(8|16|32|64)_t)\b`, KeywordType, nil}, - {Words(``, `\b`, `inline`, `_inline`, `__inline`, `naked`, `restrict`, `thread`, `typename`), KeywordReserved, nil}, - {`(__m(128i|128d|128|64))\b`, KeywordReserved, nil}, - {Words(`__`, `\b`, `asm`, `int8`, `based`, `except`, `int16`, `stdcall`, `cdecl`, `fastcall`, `int32`, `declspec`, `finally`, `int64`, `try`, `leave`, `w64`, `unaligned`, `raise`, `noop`, `identifier`, `forceinline`, `assume`), KeywordReserved, nil}, - {`(true|false|NULL)\b`, NameBuiltin, nil}, - {`([a-zA-Z_]\w*)(\s*)(:)(?!:)`, ByGroups(NameLabel, Text, Punctuation), nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - "root": { - Include("whitespace"), - {`((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)`, ByGroups(UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), Push("function")}, - {`((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)`, ByGroups(UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), nil}, - Default(Push("statement")), - {Words(`__`, `\b`, `virtual_inheritance`, `uuidof`, `super`, `single_inheritance`, `multiple_inheritance`, `interface`, `event`), KeywordReserved, nil}, - {`__(offload|blockingoffload|outer)\b`, KeywordPseudo, nil}, - }, - "classname": { - {`(\[\[.+\]\])(\s*)`, ByGroups(NameAttribute, Text), nil}, - {`[a-zA-Z_]\w*`, NameClass, Pop(1)}, - {`\s*(?=[>{])`, Text, Pop(1)}, - }, - "whitespace": { - {`^#if\s+0`, CommentPreproc, Push("if0")}, - {`^#`, CommentPreproc, Push("macro")}, - {`^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("if0")}, - {`^(\s*(?:/[*].*?[*]/\s*)?)(#)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("macro")}, - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`\\\n`, Text, nil}, - {`//(\n|[\w\W]*?[^\\]\n)`, CommentSingle, nil}, - {`/(\\\n)?[*][\w\W]*?[*](\\\n)?/`, CommentMultiline, nil}, - {`/(\\\n)?[*][\w\W]*`, CommentMultiline, nil}, - }, - "statement": { - Include("whitespace"), - Include("statements"), - {`[{]`, Punctuation, Push("root")}, - {`[;}]`, Punctuation, Pop(1)}, - }, - "function": { - Include("whitespace"), - Include("statements"), - {`;`, Punctuation, nil}, - {`\{`, Punctuation, Push()}, - {`\}`, Punctuation, Pop(1)}, - }, - "string": { - {`"`, LiteralString, Pop(1)}, - {`\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})`, LiteralStringEscape, nil}, - {`[^\\"\n]+`, LiteralString, nil}, - {`\\\n`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - }, - "macro": { - {`(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)`, ByGroups(CommentPreproc, Text, CommentPreprocFile), nil}, - {`[^/\n]+`, CommentPreproc, nil}, - {`/[*](.|\n)*?[*]/`, CommentMultiline, nil}, - {`//.*?\n`, CommentSingle, Pop(1)}, - {`/`, CommentPreproc, nil}, - {`(?<=\\)\n`, CommentPreproc, nil}, - {`\n`, CommentPreproc, Pop(1)}, - }, - "if0": { - {`^\s*#if.*?(?=~!@#%^&|`?-]+", Operator, nil}, - {`(?s)(java|javascript)(\s+)(AS)(\s+)('|\$\$)(.*?)(\5)`, - UsingByGroup( - internal.Get, - 1, 6, - NameBuiltin, TextWhitespace, Keyword, TextWhitespace, - LiteralStringHeredoc, LiteralStringHeredoc, LiteralStringHeredoc, - ), - nil, - }, - {`(true|false|null)\b`, KeywordConstant, nil}, - {`0x[0-9a-f]+`, LiteralNumberHex, nil}, - {`[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}`, LiteralNumberHex, nil}, - {`\.[0-9]+(e[+-]?[0-9]+)?`, Error, nil}, - {`-?[0-9]+(\.[0-9])?(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`'`, LiteralStringSingle, Push("string")}, - {`"`, LiteralStringName, Push("quoted-ident")}, - {`\$\$`, LiteralStringHeredoc, Push("dollar-string")}, - {`[a-z_]\w*`, Name, nil}, - {`:(['"]?)[a-z]\w*\b\1`, NameVariable, nil}, - {`[;:()\[\]\{\},.]`, Punctuation, nil}, - }, - "multiline-comments": { - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[^/*]+`, CommentMultiline, nil}, - {`[/*]`, CommentMultiline, nil}, - }, - "string": { - {`[^']+`, LiteralStringSingle, nil}, - {`''`, LiteralStringSingle, nil}, - {`'`, LiteralStringSingle, Pop(1)}, - }, - "quoted-ident": { - {`[^"]+`, LiteralStringName, nil}, - {`""`, LiteralStringName, nil}, - {`"`, LiteralStringName, Pop(1)}, - }, - "dollar-string": { - {`[^\$]+`, LiteralStringHeredoc, nil}, - {`\$\$`, LiteralStringHeredoc, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/crystal.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/crystal.go deleted file mode 100644 index 69e053c737..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/crystal.go +++ /dev/null @@ -1,262 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Crystal lexer. -var Crystal = internal.Register(MustNewLexer( - &Config{ - Name: "Crystal", - Aliases: []string{"cr", "crystal"}, - Filenames: []string{"*.cr"}, - MimeTypes: []string{"text/x-crystal"}, - DotAll: true, - }, - Rules{ - "root": { - {`#.*?$`, CommentSingle, nil}, - {Words(``, `\b`, `abstract`, `asm`, `as`, `begin`, `break`, `case`, `do`, `else`, `elsif`, `end`, `ensure`, `extend`, `ifdef`, `if`, `include`, `instance_sizeof`, `next`, `of`, `pointerof`, `private`, `protected`, `rescue`, `return`, `require`, `sizeof`, `super`, `then`, `typeof`, `unless`, `until`, `when`, `while`, `with`, `yield`), Keyword, nil}, - {Words(``, `\b`, `true`, `false`, `nil`), KeywordConstant, nil}, - {`(module|lib)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)`, ByGroups(Keyword, Text, NameNamespace), nil}, - {`(def|fun|macro)(\s+)((?:[a-zA-Z_]\w*::)*)`, ByGroups(Keyword, Text, NameNamespace), Push("funcname")}, - {"def(?=[*%&^`~+-/\\[<>=])", Keyword, Push("funcname")}, - {`(class|struct|union|type|alias|enum)(\s+)((?:[a-zA-Z_]\w*::)*)`, ByGroups(Keyword, Text, NameNamespace), Push("classname")}, - {`(self|out|uninitialized)\b|(is_a|responds_to)\?`, KeywordPseudo, nil}, - {Words(``, `\b`, `debugger`, `record`, `pp`, `assert_responds_to`, `spawn`, `parallel`, `getter`, `setter`, `property`, `delegate`, `def_hash`, `def_equals`, `def_equals_and_hash`, `forward_missing_to`), NameBuiltinPseudo, nil}, - {`getter[!?]|property[!?]|__(DIR|FILE|LINE)__\b`, NameBuiltinPseudo, nil}, - {Words(`(?~!:])|(?<=(?:\s|;)when\s)|(?<=(?:\s|;)or\s)|(?<=(?:\s|;)and\s)|(?<=\.index\s)|(?<=\.scan\s)|(?<=\.sub\s)|(?<=\.sub!\s)|(?<=\.gsub\s)|(?<=\.gsub!\s)|(?<=\.match\s)|(?<=(?:\s|;)if\s)|(?<=(?:\s|;)elsif\s)|(?<=^when\s)|(?<=^index\s)|(?<=^scan\s)|(?<=^sub\s)|(?<=^gsub\s)|(?<=^sub!\s)|(?<=^gsub!\s)|(?<=^match\s)|(?<=^if\s)|(?<=^elsif\s))(\s*)(/)`, ByGroups(Text, LiteralStringRegex), Push("multiline-regex")}, - {`(?<=\(|,|\[)/`, LiteralStringRegex, Push("multiline-regex")}, - {`(\s+)(/)(?![\s=])`, ByGroups(Text, LiteralStringRegex), Push("multiline-regex")}, - {`(0o[0-7]+(?:_[0-7]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?`, ByGroups(LiteralNumberOct, Text, Operator), nil}, - {`(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?`, ByGroups(LiteralNumberHex, Text, Operator), nil}, - {`(0b[01]+(?:_[01]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?`, ByGroups(LiteralNumberBin, Text, Operator), nil}, - {`((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?(?:_?f[0-9]+)?)(\s*)([/?])?`, ByGroups(LiteralNumberFloat, Text, Operator), nil}, - {`((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)(?:_?f[0-9]+)?)(\s*)([/?])?`, ByGroups(LiteralNumberFloat, Text, Operator), nil}, - {`((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?(?:_?f[0-9]+))(\s*)([/?])?`, ByGroups(LiteralNumberFloat, Text, Operator), nil}, - {`(0\b|[1-9][\d]*(?:_\d+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?`, ByGroups(LiteralNumberInteger, Text, Operator), nil}, - {`@@[a-zA-Z_]\w*`, NameVariableClass, nil}, - {`@[a-zA-Z_]\w*`, NameVariableInstance, nil}, - {`\$\w+`, NameVariableGlobal, nil}, - {"\\$[!@&`\\'+~=/\\\\,;.<>_*$?:\"^-]", NameVariableGlobal, nil}, - {`\$-[0adFiIlpvw]`, NameVariableGlobal, nil}, - {`::`, Operator, nil}, - Include("strings"), - {`\?(\\[MC]-)*(\\([\\befnrtv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)`, LiteralStringChar, nil}, - {`[A-Z][A-Z_]+\b`, NameConstant, nil}, - {`\{%`, LiteralStringInterpol, Push("in-macro-control")}, - {`\{\{`, LiteralStringInterpol, Push("in-macro-expr")}, - {`(@\[)(\s*)([A-Z]\w*)`, ByGroups(Operator, Text, NameDecorator), Push("in-attr")}, - {Words(`(\.|::)`, ``, `!=`, `!~`, `!`, `%`, `&&`, `&`, `**`, `*`, `+`, `-`, `/`, `<=>`, `<<`, `<=`, `<`, `===`, `==`, `=~`, `=`, `>=`, `>>`, `>`, `[]=`, `[]?`, `[]`, `^`, `||`, `|`, `~`), ByGroups(Operator, NameOperator), nil}, - {"(\\.|::)([a-zA-Z_]\\w*[!?]?|[*%&^`~+\\-/\\[<>=])", ByGroups(Operator, Name), nil}, - {`[a-zA-Z_]\w*(?:[!?](?!=))?`, Name, nil}, - {`(\[|\]\??|\*\*|<=>?|>=|<>?|=~|===|!~|&&?|\|\||\.{1,3})`, Operator, nil}, - {`[-+/*%=<>&!^|~]=?`, Operator, nil}, - {`[(){};,/?:\\]`, Punctuation, nil}, - {`\s+`, Text, nil}, - }, - "funcname": { - {"(?:([a-zA-Z_]\\w*)(\\.))?([a-zA-Z_]\\w*[!?]?|\\*\\*?|[-+]@?|[/%&|^`~]|\\[\\]=?|<<|>>|<=?>|>=?|===?)", ByGroups(NameClass, Operator, NameFunction), Pop(1)}, - Default(Pop(1)), - }, - "classname": { - {`[A-Z_]\w*`, NameClass, nil}, - {`(\()(\s*)([A-Z_]\w*)(\s*)(\))`, ByGroups(Punctuation, Text, NameClass, Text, Punctuation), nil}, - Default(Pop(1)), - }, - "in-intp": { - {`\{`, LiteralStringInterpol, Push()}, - {`\}`, LiteralStringInterpol, Pop(1)}, - Include("root"), - }, - "string-intp": { - {`#\{`, LiteralStringInterpol, Push("in-intp")}, - }, - "string-escaped": { - {`\\([\\befnstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})`, LiteralStringEscape, nil}, - }, - "string-intp-escaped": { - Include("string-intp"), - Include("string-escaped"), - }, - "interpolated-regex": { - Include("string-intp"), - {`[\\#]`, LiteralStringRegex, nil}, - {`[^\\#]+`, LiteralStringRegex, nil}, - }, - "interpolated-string": { - Include("string-intp"), - {`[\\#]`, LiteralStringOther, nil}, - {`[^\\#]+`, LiteralStringOther, nil}, - }, - "multiline-regex": { - Include("string-intp"), - {`\\\\`, LiteralStringRegex, nil}, - {`\\/`, LiteralStringRegex, nil}, - {`[\\#]`, LiteralStringRegex, nil}, - {`[^\\/#]+`, LiteralStringRegex, nil}, - {`/[imsx]*`, LiteralStringRegex, Pop(1)}, - }, - "end-part": { - {`.+`, CommentPreproc, Pop(1)}, - }, - "in-macro-control": { - {`\{%`, LiteralStringInterpol, Push()}, - {`%\}`, LiteralStringInterpol, Pop(1)}, - {`for\b|in\b`, Keyword, nil}, - Include("root"), - }, - "in-macro-expr": { - {`\{\{`, LiteralStringInterpol, Push()}, - {`\}\}`, LiteralStringInterpol, Pop(1)}, - Include("root"), - }, - "in-attr": { - {`\[`, Operator, Push()}, - {`\]`, Operator, Pop(1)}, - Include("root"), - }, - "strings": { - {`\:@{0,2}[a-zA-Z_]\w*[!?]?`, LiteralStringSymbol, nil}, - {Words(`\:@{0,2}`, ``, `!=`, `!~`, `!`, `%`, `&&`, `&`, `**`, `*`, `+`, `-`, `/`, `<=>`, `<<`, `<=`, `<`, `===`, `==`, `=~`, `=`, `>=`, `>>`, `>`, `[]=`, `[]?`, `[]`, `^`, `||`, `|`, `~`), LiteralStringSymbol, nil}, - {`:'(\\\\|\\'|[^'])*'`, LiteralStringSymbol, nil}, - {`'(\\\\|\\'|[^']|\\[^'\\]+)'`, LiteralStringChar, nil}, - {`:"`, LiteralStringSymbol, Push("simple-sym")}, - {`([a-zA-Z_]\w*)(:)(?!:)`, ByGroups(LiteralStringSymbol, Punctuation), nil}, - {`"`, LiteralStringDouble, Push("simple-string")}, - {"(?&!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)`, ByGroups(Text, LiteralStringOther, None), nil}, - {`^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)`, ByGroups(Text, LiteralStringOther, None), nil}, - {`(%([\[{(<]))((?:\\\2|(?!\2).)*)(\2)`, String, nil}, - }, - "simple-string": { - Include("string-intp-escaped"), - {`[^\\"#]+`, LiteralStringDouble, nil}, - {`[\\#]`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "simple-sym": { - Include("string-escaped"), - {`[^\\"#]+`, LiteralStringSymbol, nil}, - {`[\\#]`, LiteralStringSymbol, nil}, - {`"`, LiteralStringSymbol, Pop(1)}, - }, - "simple-backtick": { - Include("string-intp-escaped"), - {"[^\\\\`#]+", LiteralStringBacktick, nil}, - {`[\\#]`, LiteralStringBacktick, nil}, - {"`", LiteralStringBacktick, Pop(1)}, - }, - "cb-intp-string": { - {`\\[\{]`, LiteralStringOther, nil}, - {`\{`, LiteralStringOther, Push()}, - {`\}`, LiteralStringOther, Pop(1)}, - Include("string-intp-escaped"), - {`[\\#{}]`, LiteralStringOther, nil}, - {`[^\\#{}]+`, LiteralStringOther, nil}, - }, - "cb-string": { - {`\\[\\{}]`, LiteralStringOther, nil}, - {`\{`, LiteralStringOther, Push()}, - {`\}`, LiteralStringOther, Pop(1)}, - {`[\\#{}]`, LiteralStringOther, nil}, - {`[^\\#{}]+`, LiteralStringOther, nil}, - }, - "cb-regex": { - {`\\[\\{}]`, LiteralStringRegex, nil}, - {`\{`, LiteralStringRegex, Push()}, - {`\}[imsx]*`, LiteralStringRegex, Pop(1)}, - Include("string-intp"), - {`[\\#{}]`, LiteralStringRegex, nil}, - {`[^\\#{}]+`, LiteralStringRegex, nil}, - }, - "sb-intp-string": { - {`\\[\[]`, LiteralStringOther, nil}, - {`\[`, LiteralStringOther, Push()}, - {`\]`, LiteralStringOther, Pop(1)}, - Include("string-intp-escaped"), - {`[\\#\[\]]`, LiteralStringOther, nil}, - {`[^\\#\[\]]+`, LiteralStringOther, nil}, - }, - "sb-string": { - {`\\[\\\[\]]`, LiteralStringOther, nil}, - {`\[`, LiteralStringOther, Push()}, - {`\]`, LiteralStringOther, Pop(1)}, - {`[\\#\[\]]`, LiteralStringOther, nil}, - {`[^\\#\[\]]+`, LiteralStringOther, nil}, - }, - "sb-regex": { - {`\\[\\\[\]]`, LiteralStringRegex, nil}, - {`\[`, LiteralStringRegex, Push()}, - {`\][imsx]*`, LiteralStringRegex, Pop(1)}, - Include("string-intp"), - {`[\\#\[\]]`, LiteralStringRegex, nil}, - {`[^\\#\[\]]+`, LiteralStringRegex, nil}, - }, - "pa-intp-string": { - {`\\[\(]`, LiteralStringOther, nil}, - {`\(`, LiteralStringOther, Push()}, - {`\)`, LiteralStringOther, Pop(1)}, - Include("string-intp-escaped"), - {`[\\#()]`, LiteralStringOther, nil}, - {`[^\\#()]+`, LiteralStringOther, nil}, - }, - "pa-string": { - {`\\[\\()]`, LiteralStringOther, nil}, - {`\(`, LiteralStringOther, Push()}, - {`\)`, LiteralStringOther, Pop(1)}, - {`[\\#()]`, LiteralStringOther, nil}, - {`[^\\#()]+`, LiteralStringOther, nil}, - }, - "pa-regex": { - {`\\[\\()]`, LiteralStringRegex, nil}, - {`\(`, LiteralStringRegex, Push()}, - {`\)[imsx]*`, LiteralStringRegex, Pop(1)}, - Include("string-intp"), - {`[\\#()]`, LiteralStringRegex, nil}, - {`[^\\#()]+`, LiteralStringRegex, nil}, - }, - "ab-intp-string": { - {`\\[<]`, LiteralStringOther, nil}, - {`<`, LiteralStringOther, Push()}, - {`>`, LiteralStringOther, Pop(1)}, - Include("string-intp-escaped"), - {`[\\#<>]`, LiteralStringOther, nil}, - {`[^\\#<>]+`, LiteralStringOther, nil}, - }, - "ab-string": { - {`\\[\\<>]`, LiteralStringOther, nil}, - {`<`, LiteralStringOther, Push()}, - {`>`, LiteralStringOther, Pop(1)}, - {`[\\#<>]`, LiteralStringOther, nil}, - {`[^\\#<>]+`, LiteralStringOther, nil}, - }, - "ab-regex": { - {`\\[\\<>]`, LiteralStringRegex, nil}, - {`<`, LiteralStringRegex, Push()}, - {`>[imsx]*`, LiteralStringRegex, Pop(1)}, - Include("string-intp"), - {`[\\#<>]`, LiteralStringRegex, nil}, - {`[^\\#<>]+`, LiteralStringRegex, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/csharp.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/csharp.go deleted file mode 100644 index c6a5f468ac..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/csharp.go +++ /dev/null @@ -1,51 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// CSharp lexer. -var CSharp = internal.Register(MustNewLexer( - &Config{ - Name: "C#", - Aliases: []string{"csharp", "c#"}, - Filenames: []string{"*.cs"}, - MimeTypes: []string{"text/x-csharp"}, - DotAll: true, - EnsureNL: true, - }, - Rules{ - "root": { - {`^\s*\[.*?\]`, NameAttribute, nil}, - {`[^\S\n]+`, Text, nil}, - {`\\\n`, Text, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/[*].*?[*]/`, CommentMultiline, nil}, - {`\n`, Text, nil}, - {`[~!%^&*()+=|\[\]:;,.<>/?-]`, Punctuation, nil}, - {`[{}]`, Punctuation, nil}, - {`@"(""|[^"])*"`, LiteralString, nil}, - {`\$@?"(""|[^"])*"`, LiteralString, nil}, - {`"(\\\\|\\"|[^"\n])*["\n]`, LiteralString, nil}, - {`'\\.'|'[^\\]'`, LiteralStringChar, nil}, - {`[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil}, - {`#[ \t]*(if|endif|else|elif|define|undef|line|error|warning|region|endregion|pragma)\b.*?\n`, CommentPreproc, nil}, - {`\b(extern)(\s+)(alias)\b`, ByGroups(Keyword, Text, Keyword), nil}, - {`(abstract|as|async|await|base|break|by|case|catch|checked|const|continue|default|delegate|do|else|enum|event|explicit|extern|false|finally|fixed|for|foreach|goto|if|implicit|in|interface|internal|is|let|lock|new|null|on|operator|out|override|params|private|protected|public|readonly|ref|return|sealed|sizeof|stackalloc|static|switch|this|throw|true|try|typeof|unchecked|unsafe|virtual|void|while|get|set|new|partial|yield|add|remove|value|alias|ascending|descending|from|group|into|orderby|select|thenby|where|join|equals)\b`, Keyword, nil}, - {`(global)(::)`, ByGroups(Keyword, Punctuation), nil}, - {`(bool|byte|char|decimal|double|dynamic|float|int|long|object|sbyte|short|string|uint|ulong|ushort|var)\b\??`, KeywordType, nil}, - {`(class|struct)(\s+)`, ByGroups(Keyword, Text), Push("class")}, - {`(namespace|using)(\s+)`, ByGroups(Keyword, Text), Push("namespace")}, - {`@?[_a-zA-Z]\w*`, Name, nil}, - }, - "class": { - {`@?[_a-zA-Z]\w*`, NameClass, Pop(1)}, - Default(Pop(1)), - }, - "namespace": { - {`(?=\()`, Text, Pop(1)}, - {`(@?[_a-zA-Z]\w*|\.)+`, NameNamespace, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/css.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/css.go deleted file mode 100644 index fedc809bfc..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/css.go +++ /dev/null @@ -1,104 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// CSS lexer. -var CSS = internal.Register(MustNewLexer( - &Config{ - Name: "CSS", - Aliases: []string{"css"}, - Filenames: []string{"*.css"}, - MimeTypes: []string{"text/css"}, - }, - Rules{ - "root": { - Include("basics"), - }, - "basics": { - {`\s+`, Text, nil}, - {`/\*(?:.|\n)*?\*/`, Comment, nil}, - {`\{`, Punctuation, Push("content")}, - {`(\:{1,2})([\w-]+)`, ByGroups(Punctuation, NameDecorator), nil}, - {`(\.)([\w-]+)`, ByGroups(Punctuation, NameClass), nil}, - {`(\#)([\w-]+)`, ByGroups(Punctuation, NameNamespace), nil}, - {`(@)([\w-]+)`, ByGroups(Punctuation, Keyword), Push("atrule")}, - {`[\w-]+`, NameTag, nil}, - {`[~^*!%&$\[\]()<>|+=@:;,./?-]`, Operator, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - }, - "atrule": { - {`\{`, Punctuation, Push("atcontent")}, - {`;`, Punctuation, Pop(1)}, - Include("basics"), - }, - "atcontent": { - Include("basics"), - {`\}`, Punctuation, Pop(2)}, - }, - "content": { - {`\s+`, Text, nil}, - {`\}`, Punctuation, Pop(1)}, - {`;`, Punctuation, nil}, - {`^@.*?$`, CommentPreproc, nil}, - {Words(``, ``, `-ms-`, `mso-`, `-moz-`, `-o-`, `-xv-`, `-atsc-`, `-wap-`, `-khtml-`, `-webkit-`, `prince-`, `-ah-`, `-hp-`, `-ro-`, `-rim-`, `-tc-`), KeywordPseudo, nil}, - {`(align-content|align-items|align-self|alignment-baseline|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|appearance|azimuth|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|baseline-shift|bookmark-label|bookmark-level|bookmark-state|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-boundary|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|box-snap|box-suppress|break-after|break-before|break-inside|caption-side|caret|caret-animation|caret-color|caret-shape|chains|clear|clip|clip-path|clip-rule|color|color-interpolation-filters|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|counter-set|crop|cue|cue-after|cue-before|cursor|direction|display|dominant-baseline|elevation|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|float-defer|float-offset|float-reference|flood-color|flood-opacity|flow|flow-from|flow-into|font|font-family|font-feature-settings|font-kerning|font-language-override|font-size|font-size-adjust|font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-weight|footnote-display|footnote-policy|glyph-orientation-vertical|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|hanging-punctuation|height|hyphenate-character|hyphenate-limit-chars|hyphenate-limit-last|hyphenate-limit-lines|hyphenate-limit-zone|hyphens|image-orientation|image-resolution|initial-letter|initial-letter-align|initial-letter-wrap|isolation|justify-content|justify-items|justify-self|left|letter-spacing|lighting-color|line-break|line-grid|line-height|line-snap|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|marker-side|marquee-direction|marquee-loop|marquee-speed|marquee-style|mask|mask-border|mask-border-mode|mask-border-outset|mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-height|max-lines|max-width|min-height|min-width|mix-blend-mode|motion|motion-offset|motion-path|motion-rotation|move-to|nav-down|nav-left|nav-right|nav-up|object-fit|object-position|offset-after|offset-before|offset-end|offset-start|opacity|order|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-style|overflow-wrap|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page|page-break-after|page-break-before|page-break-inside|page-policy|pause|pause-after|pause-before|perspective|perspective-origin|pitch|pitch-range|play-during|polar-angle|polar-distance|position|presentation-level|quotes|region-fragment|resize|rest|rest-after|rest-before|richness|right|rotation|rotation-point|ruby-align|ruby-merge|ruby-position|running|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-points-x|scroll-snap-points-y|scroll-snap-type|shape-image-threshold|shape-inside|shape-margin|shape-outside|size|speak|speak-as|speak-header|speak-numeral|speak-punctuation|speech-rate|stress|string-set|tab-size|table-layout|text-align|text-align-last|text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-style|text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation|text-overflow|text-shadow|text-space-collapse|text-space-trim|text-spacing|text-transform|text-underline-position|text-wrap|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch|voice-range|voice-rate|voice-stress|voice-volume|volume|white-space|widows|width|will-change|word-break|word-spacing|word-wrap|wrap-after|wrap-before|wrap-flow|wrap-inside|wrap-through|writing-mode|z-index)(\s*)(\:)`, ByGroups(Keyword, Text, Punctuation), Push("value-start")}, - {`(--[a-zA-Z_][\w-]*)(\s*)(\:)`, ByGroups(NameVariable, Text, Punctuation), Push("value-start")}, - {`([a-zA-Z_][\w-]*)(\s*)(\:)`, ByGroups(Name, Text, Punctuation), Push("value-start")}, - {`/\*(?:.|\n)*?\*/`, Comment, nil}, - }, - "value-start": { - Include("common-values"), - {Words(``, `\b`, `align-content`, `align-items`, `align-self`, `alignment-baseline`, `all`, `animation`, `animation-delay`, `animation-direction`, `animation-duration`, `animation-fill-mode`, `animation-iteration-count`, `animation-name`, `animation-play-state`, `animation-timing-function`, `appearance`, `azimuth`, `backface-visibility`, `background`, `background-attachment`, `background-blend-mode`, `background-clip`, `background-color`, `background-image`, `background-origin`, `background-position`, `background-repeat`, `background-size`, `baseline-shift`, `bookmark-label`, `bookmark-level`, `bookmark-state`, `border`, `border-bottom`, `border-bottom-color`, `border-bottom-left-radius`, `border-bottom-right-radius`, `border-bottom-style`, `border-bottom-width`, `border-boundary`, `border-collapse`, `border-color`, `border-image`, `border-image-outset`, `border-image-repeat`, `border-image-slice`, `border-image-source`, `border-image-width`, `border-left`, `border-left-color`, `border-left-style`, `border-left-width`, `border-radius`, `border-right`, `border-right-color`, `border-right-style`, `border-right-width`, `border-spacing`, `border-style`, `border-top`, `border-top-color`, `border-top-left-radius`, `border-top-right-radius`, `border-top-style`, `border-top-width`, `border-width`, `bottom`, `box-decoration-break`, `box-shadow`, `box-sizing`, `box-snap`, `box-suppress`, `break-after`, `break-before`, `break-inside`, `caption-side`, `caret`, `caret-animation`, `caret-color`, `caret-shape`, `chains`, `clear`, `clip`, `clip-path`, `clip-rule`, `color`, `color-interpolation-filters`, `column-count`, `column-fill`, `column-gap`, `column-rule`, `column-rule-color`, `column-rule-style`, `column-rule-width`, `column-span`, `column-width`, `columns`, `content`, `counter-increment`, `counter-reset`, `counter-set`, `crop`, `cue`, `cue-after`, `cue-before`, `cursor`, `direction`, `display`, `dominant-baseline`, `elevation`, `empty-cells`, `filter`, `flex`, `flex-basis`, `flex-direction`, `flex-flow`, `flex-grow`, `flex-shrink`, `flex-wrap`, `float`, `float-defer`, `float-offset`, `float-reference`, `flood-color`, `flood-opacity`, `flow`, `flow-from`, `flow-into`, `font`, `font-family`, `font-feature-settings`, `font-kerning`, `font-language-override`, `font-size`, `font-size-adjust`, `font-stretch`, `font-style`, `font-synthesis`, `font-variant`, `font-variant-alternates`, `font-variant-caps`, `font-variant-east-asian`, `font-variant-ligatures`, `font-variant-numeric`, `font-variant-position`, `font-weight`, `footnote-display`, `footnote-policy`, `glyph-orientation-vertical`, `grid`, `grid-area`, `grid-auto-columns`, `grid-auto-flow`, `grid-auto-rows`, `grid-column`, `grid-column-end`, `grid-column-gap`, `grid-column-start`, `grid-gap`, `grid-row`, `grid-row-end`, `grid-row-gap`, `grid-row-start`, `grid-template`, `grid-template-areas`, `grid-template-columns`, `grid-template-rows`, `hanging-punctuation`, `height`, `hyphenate-character`, `hyphenate-limit-chars`, `hyphenate-limit-last`, `hyphenate-limit-lines`, `hyphenate-limit-zone`, `hyphens`, `image-orientation`, `image-resolution`, `initial-letter`, `initial-letter-align`, `initial-letter-wrap`, `isolation`, `justify-content`, `justify-items`, `justify-self`, `left`, `letter-spacing`, `lighting-color`, `line-break`, `line-grid`, `line-height`, `line-snap`, `list-style`, `list-style-image`, `list-style-position`, `list-style-type`, `margin`, `margin-bottom`, `margin-left`, `margin-right`, `margin-top`, `marker-side`, `marquee-direction`, `marquee-loop`, `marquee-speed`, `marquee-style`, `mask`, `mask-border`, `mask-border-mode`, `mask-border-outset`, `mask-border-repeat`, `mask-border-slice`, `mask-border-source`, `mask-border-width`, `mask-clip`, `mask-composite`, `mask-image`, `mask-mode`, `mask-origin`, `mask-position`, `mask-repeat`, `mask-size`, `mask-type`, `max-height`, `max-lines`, `max-width`, `min-height`, `min-width`, `mix-blend-mode`, `motion`, `motion-offset`, `motion-path`, `motion-rotation`, `move-to`, `nav-down`, `nav-left`, `nav-right`, `nav-up`, `object-fit`, `object-position`, `offset-after`, `offset-before`, `offset-end`, `offset-start`, `opacity`, `order`, `orphans`, `outline`, `outline-color`, `outline-offset`, `outline-style`, `outline-width`, `overflow`, `overflow-style`, `overflow-wrap`, `overflow-x`, `overflow-y`, `padding`, `padding-bottom`, `padding-left`, `padding-right`, `padding-top`, `page`, `page-break-after`, `page-break-before`, `page-break-inside`, `page-policy`, `pause`, `pause-after`, `pause-before`, `perspective`, `perspective-origin`, `pitch`, `pitch-range`, `play-during`, `polar-angle`, `polar-distance`, `position`, `presentation-level`, `quotes`, `region-fragment`, `resize`, `rest`, `rest-after`, `rest-before`, `richness`, `right`, `rotation`, `rotation-point`, `ruby-align`, `ruby-merge`, `ruby-position`, `running`, `scroll-snap-coordinate`, `scroll-snap-destination`, `scroll-snap-points-x`, `scroll-snap-points-y`, `scroll-snap-type`, `shape-image-threshold`, `shape-inside`, `shape-margin`, `shape-outside`, `size`, `speak`, `speak-as`, `speak-header`, `speak-numeral`, `speak-punctuation`, `speech-rate`, `stress`, `string-set`, `tab-size`, `table-layout`, `text-align`, `text-align-last`, `text-combine-upright`, `text-decoration`, `text-decoration-color`, `text-decoration-line`, `text-decoration-skip`, `text-decoration-style`, `text-emphasis`, `text-emphasis-color`, `text-emphasis-position`, `text-emphasis-style`, `text-indent`, `text-justify`, `text-orientation`, `text-overflow`, `text-shadow`, `text-space-collapse`, `text-space-trim`, `text-spacing`, `text-transform`, `text-underline-position`, `text-wrap`, `top`, `transform`, `transform-origin`, `transform-style`, `transition`, `transition-delay`, `transition-duration`, `transition-property`, `transition-timing-function`, `unicode-bidi`, `user-select`, `vertical-align`, `visibility`, `voice-balance`, `voice-duration`, `voice-family`, `voice-pitch`, `voice-range`, `voice-rate`, `voice-stress`, `voice-volume`, `volume`, `white-space`, `widows`, `width`, `will-change`, `word-break`, `word-spacing`, `word-wrap`, `wrap-after`, `wrap-before`, `wrap-flow`, `wrap-inside`, `wrap-through`, `writing-mode`, `z-index`), Keyword, nil}, - {`\!important`, CommentPreproc, nil}, - {`/\*(?:.|\n)*?\*/`, Comment, nil}, - Include("numeric-values"), - {`[~^*!%&<>|+=@:./?-]+`, Operator, nil}, - {`[\[\](),]+`, Punctuation, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`[a-zA-Z_][\w-]*`, Name, nil}, - {`;`, Punctuation, Pop(1)}, - {`\}`, Punctuation, Pop(2)}, - }, - "function-start": { - Include("common-values"), - {`/\*(?:.|\n)*?\*/`, Comment, nil}, - Include("numeric-values"), - {`[*+/-]`, Operator, nil}, - {`[,]`, Punctuation, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`[a-zA-Z_-]\w*`, Name, nil}, - {`\)`, Punctuation, Pop(1)}, - }, - "common-values": { - {`\s+`, Text, nil}, - {Words(``, ``, `-ms-`, `mso-`, `-moz-`, `-o-`, `-xv-`, `-atsc-`, `-wap-`, `-khtml-`, `-webkit-`, `prince-`, `-ah-`, `-hp-`, `-ro-`, `-rim-`, `-tc-`), KeywordPseudo, nil}, - Include("urls"), - {`(attr|blackness|blend|blenda|blur|brightness|calc|circle|color-mod|contrast|counter|cubic-bezier|device-cmyk|drop-shadow|ellipse|gray|grayscale|hsl|hsla|hue|hue-rotate|hwb|image|inset|invert|lightness|linear-gradient|matrix|matrix3d|opacity|perspective|polygon|radial-gradient|rect|repeating-linear-gradient|repeating-radial-gradient|rgb|rgba|rotate|rotate3d|rotateX|rotateY|rotateZ|saturate|saturation|scale|scale3d|scaleX|scaleY|scaleZ|sepia|shade|skewX|skewY|steps|tint|toggle|translate|translate3d|translateX|translateY|translateZ|whiteness)(\()`, ByGroups(NameBuiltin, Punctuation), Push("function-start")}, - {`([a-zA-Z_][\w-]+)(\()`, ByGroups(NameFunction, Punctuation), Push("function-start")}, - {Words(``, `\b`, `absolute`, `alias`, `all`, `all-petite-caps`, `all-scroll`, `all-small-caps`, `allow-end`, `alpha`, `alternate`, `alternate-reverse`, `always`, `armenian`, `auto`, `avoid`, `avoid-column`, `avoid-page`, `backwards`, `balance`, `baseline`, `below`, `blink`, `block`, `bold`, `bolder`, `border-box`, `both`, `bottom`, `box-decoration`, `break-word`, `capitalize`, `cell`, `center`, `circle`, `clip`, `clone`, `close-quote`, `col-resize`, `collapse`, `color`, `color-burn`, `color-dodge`, `column`, `column-reverse`, `compact`, `condensed`, `contain`, `container`, `content-box`, `context-menu`, `copy`, `cover`, `crisp-edges`, `crosshair`, `currentColor`, `cursive`, `darken`, `dashed`, `decimal`, `decimal-leading-zero`, `default`, `descendants`, `difference`, `digits`, `disc`, `distribute`, `dot`, `dotted`, `double`, `double-circle`, `e-resize`, `each-line`, `ease`, `ease-in`, `ease-in-out`, `ease-out`, `edges`, `ellipsis`, `end`, `ew-resize`, `exclusion`, `expanded`, `extra-condensed`, `extra-expanded`, `fantasy`, `fill`, `fill-box`, `filled`, `first`, `fixed`, `flat`, `flex`, `flex-end`, `flex-start`, `flip`, `force-end`, `forwards`, `from-image`, `full-width`, `geometricPrecision`, `georgian`, `groove`, `hanging`, `hard-light`, `help`, `hidden`, `hide`, `horizontal`, `hue`, `icon`, `infinite`, `inherit`, `initial`, `ink`, `inline`, `inline-block`, `inline-flex`, `inline-table`, `inset`, `inside`, `inter-word`, `invert`, `isolate`, `italic`, `justify`, `large`, `larger`, `last`, `left`, `lighten`, `lighter`, `line-through`, `linear`, `list-item`, `local`, `loose`, `lower-alpha`, `lower-greek`, `lower-latin`, `lower-roman`, `lowercase`, `ltr`, `luminance`, `luminosity`, `mandatory`, `manipulation`, `manual`, `margin-box`, `match-parent`, `medium`, `mixed`, `monospace`, `move`, `multiply`, `n-resize`, `ne-resize`, `nesw-resize`, `no-close-quote`, `no-drop`, `no-open-quote`, `no-repeat`, `none`, `normal`, `not-allowed`, `nowrap`, `ns-resize`, `nw-resize`, `nwse-resize`, `objects`, `oblique`, `off`, `on`, `open`, `open-quote`, `optimizeLegibility`, `optimizeSpeed`, `outset`, `outside`, `over`, `overlay`, `overline`, `padding-box`, `page`, `pan-down`, `pan-left`, `pan-right`, `pan-up`, `pan-x`, `pan-y`, `paused`, `petite-caps`, `pixelated`, `pointer`, `preserve-3d`, `progress`, `proximity`, `relative`, `repeat`, `repeat no-repeat`, `repeat-x`, `repeat-y`, `reverse`, `ridge`, `right`, `round`, `row`, `row-resize`, `row-reverse`, `rtl`, `ruby`, `ruby-base`, `ruby-base-container`, `ruby-text`, `ruby-text-container`, `run-in`, `running`, `s-resize`, `sans-serif`, `saturation`, `scale-down`, `screen`, `scroll`, `se-resize`, `semi-condensed`, `semi-expanded`, `separate`, `serif`, `sesame`, `show`, `sideways`, `sideways-left`, `sideways-right`, `slice`, `small`, `small-caps`, `smaller`, `smooth`, `snap`, `soft-light`, `solid`, `space`, `space-around`, `space-between`, `spaces`, `square`, `start`, `static`, `step-end`, `step-start`, `sticky`, `stretch`, `strict`, `stroke-box`, `style`, `sw-resize`, `table`, `table-caption`, `table-cell`, `table-column`, `table-column-group`, `table-footer-group`, `table-header-group`, `table-row`, `table-row-group`, `text`, `thick`, `thin`, `titling-caps`, `to`, `top`, `triangle`, `ultra-condensed`, `ultra-expanded`, `under`, `underline`, `unicase`, `unset`, `upper-alpha`, `upper-latin`, `upper-roman`, `uppercase`, `upright`, `use-glyph-orientation`, `vertical`, `vertical-text`, `view-box`, `visible`, `w-resize`, `wait`, `wavy`, `weight`, `weight style`, `wrap`, `wrap-reverse`, `x-large`, `x-small`, `xx-large`, `xx-small`, `zoom-in`, `zoom-out`), KeywordConstant, nil}, - {Words(``, `\b`, `above`, `aural`, `behind`, `bidi-override`, `center-left`, `center-right`, `cjk-ideographic`, `continuous`, `crop`, `cross`, `embed`, `far-left`, `far-right`, `fast`, `faster`, `hebrew`, `high`, `higher`, `hiragana`, `hiragana-iroha`, `katakana`, `katakana-iroha`, `landscape`, `left-side`, `leftwards`, `level`, `loud`, `low`, `lower`, `message-box`, `middle`, `mix`, `narrower`, `once`, `portrait`, `right-side`, `rightwards`, `silent`, `slow`, `slower`, `small-caption`, `soft`, `spell-out`, `status-bar`, `super`, `text-bottom`, `text-top`, `wider`, `x-fast`, `x-high`, `x-loud`, `x-low`, `x-soft`, `yes`, `pre`, `pre-wrap`, `pre-line`), KeywordConstant, nil}, - {Words(``, `\b`, `aliceblue`, `antiquewhite`, `aqua`, `aquamarine`, `azure`, `beige`, `bisque`, `black`, `blanchedalmond`, `blue`, `blueviolet`, `brown`, `burlywood`, `cadetblue`, `chartreuse`, `chocolate`, `coral`, `cornflowerblue`, `cornsilk`, `crimson`, `cyan`, `darkblue`, `darkcyan`, `darkgoldenrod`, `darkgray`, `darkgreen`, `darkgrey`, `darkkhaki`, `darkmagenta`, `darkolivegreen`, `darkorange`, `darkorchid`, `darkred`, `darksalmon`, `darkseagreen`, `darkslateblue`, `darkslategray`, `darkslategrey`, `darkturquoise`, `darkviolet`, `deeppink`, `deepskyblue`, `dimgray`, `dimgrey`, `dodgerblue`, `firebrick`, `floralwhite`, `forestgreen`, `fuchsia`, `gainsboro`, `ghostwhite`, `gold`, `goldenrod`, `gray`, `green`, `greenyellow`, `grey`, `honeydew`, `hotpink`, `indianred`, `indigo`, `ivory`, `khaki`, `lavender`, `lavenderblush`, `lawngreen`, `lemonchiffon`, `lightblue`, `lightcoral`, `lightcyan`, `lightgoldenrodyellow`, `lightgray`, `lightgreen`, `lightgrey`, `lightpink`, `lightsalmon`, `lightseagreen`, `lightskyblue`, `lightslategray`, `lightslategrey`, `lightsteelblue`, `lightyellow`, `lime`, `limegreen`, `linen`, `magenta`, `maroon`, `mediumaquamarine`, `mediumblue`, `mediumorchid`, `mediumpurple`, `mediumseagreen`, `mediumslateblue`, `mediumspringgreen`, `mediumturquoise`, `mediumvioletred`, `midnightblue`, `mintcream`, `mistyrose`, `moccasin`, `navajowhite`, `navy`, `oldlace`, `olive`, `olivedrab`, `orange`, `orangered`, `orchid`, `palegoldenrod`, `palegreen`, `paleturquoise`, `palevioletred`, `papayawhip`, `peachpuff`, `peru`, `pink`, `plum`, `powderblue`, `purple`, `rebeccapurple`, `red`, `rosybrown`, `royalblue`, `saddlebrown`, `salmon`, `sandybrown`, `seagreen`, `seashell`, `sienna`, `silver`, `skyblue`, `slateblue`, `slategray`, `slategrey`, `snow`, `springgreen`, `steelblue`, `tan`, `teal`, `thistle`, `tomato`, `turquoise`, `violet`, `wheat`, `white`, `whitesmoke`, `yellow`, `yellowgreen`, `transparent`), KeywordConstant, nil}, - }, - "urls": { - {`(url)(\()(".*?")(\))`, ByGroups(NameBuiltin, Punctuation, LiteralStringDouble, Punctuation), nil}, - {`(url)(\()('.*?')(\))`, ByGroups(NameBuiltin, Punctuation, LiteralStringSingle, Punctuation), nil}, - {`(url)(\()(.*?)(\))`, ByGroups(NameBuiltin, Punctuation, LiteralStringOther, Punctuation), nil}, - }, - "numeric-values": { - {`\#[a-zA-Z0-9]{1,6}`, LiteralNumberHex, nil}, - {`[+\-]?[0-9]*[.][0-9]+`, LiteralNumberFloat, Push("numeric-end")}, - {`[+\-]?[0-9]+`, LiteralNumberInteger, Push("numeric-end")}, - }, - "numeric-end": { - {Words(``, `\b`, `deg`, `grad`, `rad`, `turn`, `Hz`, `kHz`, `em`, `ex`, `ch`, `rem`, `vh`, `vw`, `vmin`, `vmax`, `px`, `mm`, `cm`, `in`, `pt`, `pc`, `q`, `dpi`, `dpcm`, `dppx`, `s`, `ms`), KeywordType, nil}, - {`%`, KeywordType, nil}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cython.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cython.go deleted file mode 100644 index 701e2b7912..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/c/cython.go +++ /dev/null @@ -1,135 +0,0 @@ -package c - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Cython lexer. -var Cython = internal.Register(MustNewLexer( - &Config{ - Name: "Cython", - Aliases: []string{"cython", "pyx", "pyrex"}, - Filenames: []string{"*.pyx", "*.pxd", "*.pxi"}, - MimeTypes: []string{"text/x-cython", "application/x-cython"}, - }, - Rules{ - "root": { - {`\n`, Text, nil}, - {`^(\s*)("""(?:.|\n)*?""")`, ByGroups(Text, LiteralStringDoc), nil}, - {`^(\s*)('''(?:.|\n)*?''')`, ByGroups(Text, LiteralStringDoc), nil}, - {`[^\S\n]+`, Text, nil}, - {`#.*$`, Comment, nil}, - {`[]{}:(),;[]`, Punctuation, nil}, - {`\\\n`, Text, nil}, - {`\\`, Text, nil}, - {`(in|is|and|or|not)\b`, OperatorWord, nil}, - {`(<)([a-zA-Z0-9.?]+)(>)`, ByGroups(Punctuation, KeywordType, Punctuation), nil}, - {`!=|==|<<|>>|[-~+/*%=<>&^|.?]`, Operator, nil}, - {`(from)(\d+)(<=)(\s+)(<)(\d+)(:)`, ByGroups(Keyword, LiteralNumberInteger, Operator, Name, Operator, Name, Punctuation), nil}, - Include("keywords"), - {`(def|property)(\s+)`, ByGroups(Keyword, Text), Push("funcname")}, - {`(cp?def)(\s+)`, ByGroups(Keyword, Text), Push("cdef")}, - {`(cdef)(:)`, ByGroups(Keyword, Punctuation), nil}, - {`(class|struct)(\s+)`, ByGroups(Keyword, Text), Push("classname")}, - {`(from)(\s+)`, ByGroups(Keyword, Text), Push("fromimport")}, - {`(c?import)(\s+)`, ByGroups(Keyword, Text), Push("import")}, - Include("builtins"), - Include("backtick"), - {`(?:[rR]|[uU][rR]|[rR][uU])"""`, LiteralString, Push("tdqs")}, - {`(?:[rR]|[uU][rR]|[rR][uU])'''`, LiteralString, Push("tsqs")}, - {`(?:[rR]|[uU][rR]|[rR][uU])"`, LiteralString, Push("dqs")}, - {`(?:[rR]|[uU][rR]|[rR][uU])'`, LiteralString, Push("sqs")}, - {`[uU]?"""`, LiteralString, Combined("stringescape", "tdqs")}, - {`[uU]?'''`, LiteralString, Combined("stringescape", "tsqs")}, - {`[uU]?"`, LiteralString, Combined("stringescape", "dqs")}, - {`[uU]?'`, LiteralString, Combined("stringescape", "sqs")}, - Include("name"), - Include("numbers"), - }, - "keywords": { - {Words(``, `\b`, `assert`, `break`, `by`, `continue`, `ctypedef`, `del`, `elif`, `else`, `except`, `except?`, `exec`, `finally`, `for`, `fused`, `gil`, `global`, `if`, `include`, `lambda`, `nogil`, `pass`, `print`, `raise`, `return`, `try`, `while`, `yield`, `as`, `with`), Keyword, nil}, - {`(DEF|IF|ELIF|ELSE)\b`, CommentPreproc, nil}, - }, - "builtins": { - {Words(`(?`, CommentPreproc, Pop(1)}, - {`(<<<)([\'"]?)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)(\2\n.*?\n\s*)(\3)(;?)(\n)`, ByGroups(LiteralString, LiteralString, LiteralStringDelimiter, LiteralString, LiteralStringDelimiter, Punctuation, Text), nil}, - {`\s+`, Text, nil}, - {`#.*?\n`, CommentSingle, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/\*\*/`, CommentMultiline, nil}, - {`/\*\*.*?\*/`, LiteralStringDoc, nil}, - {`/\*.*?\*/`, CommentMultiline, nil}, - {`(->|::)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)`, ByGroups(Operator, Text, NameAttribute), nil}, - {`[~!%^&*+=|:.<>/@-]+`, Operator, nil}, - {`\?`, Operator, nil}, - {`[\[\]{}();,]+`, Punctuation, nil}, - {`(class)(\s+)`, ByGroups(Keyword, Text), Push("classname")}, - {`(function)(\s*)(?=\()`, ByGroups(Keyword, Text), nil}, - {`(function)(\s+)(&?)(\s*)`, ByGroups(Keyword, Text, Operator, Text), Push("functionname")}, - {`(const)(\s+)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)`, ByGroups(Keyword, Text, NameConstant), nil}, - {`(and|E_PARSE|old_function|E_ERROR|or|as|E_WARNING|parent|eval|PHP_OS|break|exit|case|extends|PHP_VERSION|cfunction|FALSE|print|for|require|continue|foreach|require_once|declare|return|default|static|do|switch|die|stdClass|echo|else|TRUE|elseif|var|empty|if|xor|enddeclare|include|virtual|endfor|include_once|while|endforeach|global|endif|list|endswitch|new|endwhile|not|array|E_ALL|NULL|final|php_user_filter|interface|implements|public|private|protected|abstract|clone|try|catch|throw|this|use|namespace|trait|yield|finally)\b`, Keyword, nil}, - {`(true|false|null)\b`, KeywordConstant, nil}, - Include("magicconstants"), - {`\$\{\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*\}`, NameVariable, nil}, - {`\$+(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*`, NameVariable, nil}, - {`(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*`, NameOther, nil}, - {`(\d+\.\d*|\d*\.\d+)(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`\d+e[+-]?[0-9]+`, LiteralNumberFloat, nil}, - {`0[0-7]+`, LiteralNumberOct, nil}, - {`0x[a-f0-9]+`, LiteralNumberHex, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`0b[01]+`, LiteralNumberBin, nil}, - {`'([^'\\]*(?:\\.[^'\\]*)*)'`, LiteralStringSingle, nil}, - {"`([^`\\\\]*(?:\\\\.[^`\\\\]*)*)`", LiteralStringBacktick, nil}, - {`"`, LiteralStringDouble, Push("string")}, - }, - "magicfuncs": { - {Words(``, `\b`, `__construct`, `__destruct`, `__call`, `__callStatic`, `__get`, `__set`, `__isset`, `__unset`, `__sleep`, `__wakeup`, `__toString`, `__invoke`, `__set_state`, `__clone`, `__debugInfo`), NameFunctionMagic, nil}, - }, - "magicconstants": { - {Words(``, `\b`, `__LINE__`, `__FILE__`, `__DIR__`, `__FUNCTION__`, `__CLASS__`, `__TRAIT__`, `__METHOD__`, `__NAMESPACE__`), NameConstant, nil}, - }, - "classname": { - {`(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*`, NameClass, Pop(1)}, - }, - "functionname": { - Include("magicfuncs"), - {`(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*`, NameFunction, Pop(1)}, - Default(Pop(1)), - }, - "string": { - {`"`, LiteralStringDouble, Pop(1)}, - {`[^{$"\\]+`, LiteralStringDouble, nil}, - {`\\([nrt"$\\]|[0-7]{1,3}|x[0-9a-f]{1,2})`, LiteralStringEscape, nil}, - {`\$(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*(\[\S+?\]|->(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w]|[^\x00-\x7f])*)?`, LiteralStringInterpol, nil}, - {`(\{\$\{)(.*?)(\}\})`, ByGroups(LiteralStringInterpol, UsingSelf("root"), LiteralStringInterpol), nil}, - {`(\{)(\$.*?)(\})`, ByGroups(LiteralStringInterpol, UsingSelf("root"), LiteralStringInterpol), nil}, - {`(\$\{)(\S+)(\})`, ByGroups(LiteralStringInterpol, NameVariable, LiteralStringInterpol), nil}, - {`[${\\]`, LiteralStringDouble, nil}, - }, - }, -).SetAnalyser(func(text string) float32 { - if strings.Contains(text, "]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()`, ByGroups(UsingSelf("root"), NameFunction, Text, Operator), nil}, - - // https://dlang.org/spec/attribute.html#uda - {`@[\w.]*`, NameDecorator, nil}, - {`(abstract|auto|alias|align|const|delegate|enum|export|final|function|inout|lazy|nothrow|override|package|private|protected|public|pure|static|synchronized|template|volatile|__gshared)\b`, KeywordDeclaration, nil}, - - // https://dlang.org/spec/type.html#basic-data-types - {`(void|bool|byte|ubyte|short|ushort|int|uint|long|ulong|cent|ucent|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|char|wchar|dchar|string|wstring|dstring)\b`, KeywordType, nil}, - {`(module)(\s+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - {`(true|false|null)\b`, KeywordConstant, nil}, - {`(class|interface|struct|template|union)(\s+)`, ByGroups(KeywordDeclaration, Text), Push("class")}, - {`(import)(\s+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - - // https://dlang.org/spec/lex.html#string_literals - // TODO support delimited strings - {`[qr]?"(\\\\|\\"|[^"])*"[cwd]?`, LiteralString, nil}, - {"(`)([^`]*)(`)[cwd]?", LiteralString, nil}, - {`'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'`, LiteralStringChar, nil}, - {`(\.)((?:[^\W\d]|\$)[\w$]*)`, ByGroups(Operator, NameAttribute), nil}, - {`^\s*([^\W\d]|\$)[\w$]*:`, NameLabel, nil}, - - // https://dlang.org/spec/lex.html#floatliteral - {`([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFL]?i?|[0-9][eE][+\-]?[0-9][0-9_]*[fFL]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFL]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFL]?`, LiteralNumberFloat, nil}, - // https://dlang.org/spec/lex.html#integerliteral - {`0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?`, LiteralNumberHex, nil}, - {`0[bB][01][01_]*[lL]?`, LiteralNumberBin, nil}, - {`0[0-7_]+[lL]?`, LiteralNumberOct, nil}, - {`0|[1-9][0-9_]*[lL]?`, LiteralNumberInteger, nil}, - {`([~^*!%&\[\](){}<>|+=:;,./?-]|q{)`, Operator, nil}, - {`([^\W\d]|\$)[\w$]*`, Name, nil}, - {`\n`, Text, nil}, - }, - "class": { - {`([^\W\d]|\$)[\w$]*`, NameClass, Pop(1)}, - }, - "import": { - {`[\w.]+\*?`, NameNamespace, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/dart.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/dart.go deleted file mode 100644 index 6dab3b4204..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/dart.go +++ /dev/null @@ -1,91 +0,0 @@ -package d - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Dart lexer. -var Dart = internal.Register(MustNewLexer( - &Config{ - Name: "Dart", - Aliases: []string{"dart"}, - Filenames: []string{"*.dart"}, - MimeTypes: []string{"text/x-dart"}, - DotAll: true, - }, - Rules{ - "root": { - Include("string_literal"), - {`#!(.*?)$`, CommentPreproc, nil}, - {`\b(import|export)\b`, Keyword, Push("import_decl")}, - {`\b(library|source|part of|part)\b`, Keyword, nil}, - {`[^\S\n]+`, Text, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/\*.*?\*/`, CommentMultiline, nil}, - {`\b(class)\b(\s+)`, ByGroups(KeywordDeclaration, Text), Push("class")}, - {`\b(assert|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|this|throw|try|while)\b`, Keyword, nil}, - {`\b(abstract|async|await|const|extends|factory|final|get|implements|native|operator|set|static|sync|typedef|var|with|yield)\b`, KeywordDeclaration, nil}, - {`\b(bool|double|dynamic|int|num|Object|String|void)\b`, KeywordType, nil}, - {`\b(false|null|true)\b`, KeywordConstant, nil}, - {`[~!%^&*+=|?:<>/-]|as\b`, Operator, nil}, - {`[a-zA-Z_$]\w*:`, NameLabel, nil}, - {`[a-zA-Z_$]\w*`, Name, nil}, - {`[(){}\[\],.;]`, Punctuation, nil}, - {`0[xX][0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`\d+(\.\d*)?([eE][+-]?\d+)?`, LiteralNumber, nil}, - {`\.\d+([eE][+-]?\d+)?`, LiteralNumber, nil}, - {`\n`, Text, nil}, - }, - "class": { - {`[a-zA-Z_$]\w*`, NameClass, Pop(1)}, - }, - "import_decl": { - Include("string_literal"), - {`\s+`, Text, nil}, - {`\b(as|show|hide)\b`, Keyword, nil}, - {`[a-zA-Z_$]\w*`, Name, nil}, - {`\,`, Punctuation, nil}, - {`\;`, Punctuation, Pop(1)}, - }, - "string_literal": { - {`r"""([\w\W]*?)"""`, LiteralStringDouble, nil}, - {`r'''([\w\W]*?)'''`, LiteralStringSingle, nil}, - {`r"(.*?)"`, LiteralStringDouble, nil}, - {`r'(.*?)'`, LiteralStringSingle, nil}, - {`"""`, LiteralStringDouble, Push("string_double_multiline")}, - {`'''`, LiteralStringSingle, Push("string_single_multiline")}, - {`"`, LiteralStringDouble, Push("string_double")}, - {`'`, LiteralStringSingle, Push("string_single")}, - }, - "string_common": { - {`\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\{[0-9A-Fa-f]*\}|[a-z'\"$\\])`, LiteralStringEscape, nil}, - {`(\$)([a-zA-Z_]\w*)`, ByGroups(LiteralStringInterpol, Name), nil}, - {`(\$\{)(.*?)(\})`, ByGroups(LiteralStringInterpol, UsingSelf("root"), LiteralStringInterpol), nil}, - }, - "string_double": { - {`"`, LiteralStringDouble, Pop(1)}, - {`[^"$\\\n]+`, LiteralStringDouble, nil}, - Include("string_common"), - {`\$+`, LiteralStringDouble, nil}, - }, - "string_double_multiline": { - {`"""`, LiteralStringDouble, Pop(1)}, - {`[^"$\\]+`, LiteralStringDouble, nil}, - Include("string_common"), - {`(\$|\")+`, LiteralStringDouble, nil}, - }, - "string_single": { - {`'`, LiteralStringSingle, Pop(1)}, - {`[^'$\\\n]+`, LiteralStringSingle, nil}, - Include("string_common"), - {`\$+`, LiteralStringSingle, nil}, - }, - "string_single_multiline": { - {`'''`, LiteralStringSingle, Pop(1)}, - {`[^\'$\\]+`, LiteralStringSingle, nil}, - Include("string_common"), - {`(\$|\')+`, LiteralStringSingle, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/diff.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/diff.go deleted file mode 100644 index 264ed45ce4..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/diff.go +++ /dev/null @@ -1,29 +0,0 @@ -package d - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Diff lexer. -var Diff = internal.Register(MustNewLexer( - &Config{ - Name: "Diff", - Aliases: []string{"diff", "udiff"}, - EnsureNL: true, - Filenames: []string{"*.diff", "*.patch"}, - MimeTypes: []string{"text/x-diff", "text/x-patch"}, - }, - Rules{ - "root": { - {` .*\n`, Text, nil}, - {`\+.*\n`, GenericInserted, nil}, - {`-.*\n`, GenericDeleted, nil}, - {`!.*\n`, GenericStrong, nil}, - {`@.*\n`, GenericSubheading, nil}, - {`([Ii]ndex|diff).*\n`, GenericHeading, nil}, - {`=.*\n`, GenericHeading, nil}, - {`.*\n`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/django.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/django.go deleted file mode 100644 index d72d99a321..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/django.go +++ /dev/null @@ -1,53 +0,0 @@ -package d - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Django/Jinja lexer. -var DjangoJinja = internal.Register(MustNewLexer( - &Config{ - Name: "Django/Jinja", - Aliases: []string{"django", "jinja"}, - Filenames: []string{}, - MimeTypes: []string{"application/x-django-templating", "application/x-jinja"}, - DotAll: true, - }, - Rules{ - "root": { - {`[^{]+`, Other, nil}, - {`\{\{`, CommentPreproc, Push("var")}, - {`\{[*#].*?[*#]\}`, Comment, nil}, - {`(\{%)(-?\s*)(comment)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endcomment)(\s*-?)(%\})`, ByGroups(CommentPreproc, Text, Keyword, Text, CommentPreproc, Comment, CommentPreproc, Text, Keyword, Text, CommentPreproc), nil}, - {`(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endraw)(\s*-?)(%\})`, ByGroups(CommentPreproc, Text, Keyword, Text, CommentPreproc, Text, CommentPreproc, Text, Keyword, Text, CommentPreproc), nil}, - {`(\{%)(-?\s*)(filter)(\s+)([a-zA-Z_]\w*)`, ByGroups(CommentPreproc, Text, Keyword, Text, NameFunction), Push("block")}, - {`(\{%)(-?\s*)([a-zA-Z_]\w*)`, ByGroups(CommentPreproc, Text, Keyword), Push("block")}, - {`\{`, Other, nil}, - }, - "varnames": { - {`(\|)(\s*)([a-zA-Z_]\w*)`, ByGroups(Operator, Text, NameFunction), nil}, - {`(is)(\s+)(not)?(\s+)?([a-zA-Z_]\w*)`, ByGroups(Keyword, Text, Keyword, Text, NameFunction), nil}, - {`(_|true|false|none|True|False|None)\b`, KeywordPseudo, nil}, - {`(in|as|reversed|recursive|not|and|or|is|if|else|import|with(?:(?:out)?\s*context)?|scoped|ignore\s+missing)\b`, Keyword, nil}, - {`(loop|block|super|forloop)\b`, NameBuiltin, nil}, - {`[a-zA-Z_][\w-]*`, NameVariable, nil}, - {`\.\w+`, NameVariable, nil}, - {`:?"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`:?'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`([{}()\[\]+\-*/,:~]|[><=]=?)`, Operator, nil}, - {`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil}, - }, - "var": { - {`\s+`, Text, nil}, - {`(-?)(\}\})`, ByGroups(Text, CommentPreproc), Pop(1)}, - Include("varnames"), - }, - "block": { - {`\s+`, Text, nil}, - {`(-?)(%\})`, ByGroups(Text, CommentPreproc), Pop(1)}, - Include("varnames"), - {`.`, Punctuation, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/docker.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/docker.go deleted file mode 100644 index a650eba5f4..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/docker.go +++ /dev/null @@ -1,31 +0,0 @@ -package d - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/b" - "github.com/alecthomas/chroma/lexers/internal" - "github.com/alecthomas/chroma/lexers/j" -) - -// Docker lexer. -var Docker = internal.Register(MustNewLexer( - &Config{ - Name: "Docker", - Aliases: []string{"docker", "dockerfile"}, - Filenames: []string{"Dockerfile", "*.docker"}, - MimeTypes: []string{"text/x-dockerfile-config"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`#.*`, Comment, nil}, - {`(ONBUILD)((?:\s*\\?\s*))`, ByGroups(Keyword, Using(b.Bash)), nil}, - {`(HEALTHCHECK)(((?:\s*\\?\s*)--\w+=\w+(?:\s*\\?\s*))*)`, ByGroups(Keyword, Using(b.Bash)), nil}, - {`(VOLUME|ENTRYPOINT|CMD|SHELL)((?:\s*\\?\s*))(\[.*?\])`, ByGroups(Keyword, Using(b.Bash), Using(j.JSON)), nil}, - {`(LABEL|ENV|ARG)((?:(?:\s*\\?\s*)\w+=\w+(?:\s*\\?\s*))*)`, ByGroups(Keyword, Using(b.Bash)), nil}, - {`((?:FROM|MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)|VOLUME)\b(.*)`, ByGroups(Keyword, LiteralString), nil}, - {`((?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY))`, Keyword, nil}, - {`(.*\\\n)*.+`, Using(b.Bash), nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/dtd.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/dtd.go deleted file mode 100644 index 99bf5d3748..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/d/dtd.go +++ /dev/null @@ -1,69 +0,0 @@ -package d - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Dtd lexer. -var Dtd = internal.Register(MustNewLexer( - &Config{ - Name: "DTD", - Aliases: []string{"dtd"}, - Filenames: []string{"*.dtd"}, - MimeTypes: []string{"application/xml-dtd"}, - DotAll: true, - }, - Rules{ - "root": { - Include("common"), - {`(\s]+)`, ByGroups(Keyword, Text, NameTag), nil}, - {`PUBLIC|SYSTEM`, KeywordConstant, nil}, - {`[\[\]>]`, Keyword, nil}, - }, - "common": { - {`\s+`, Text, nil}, - {`(%|&)[^;]*;`, NameEntity, nil}, - {``, Comment, Pop(1)}, - {`-`, Comment, nil}, - }, - "element": { - Include("common"), - {`EMPTY|ANY|#PCDATA`, KeywordConstant, nil}, - {`[^>\s|()?+*,]+`, NameTag, nil}, - {`>`, Keyword, Pop(1)}, - }, - "attlist": { - Include("common"), - {`CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATION`, KeywordConstant, nil}, - {`#REQUIRED|#IMPLIED|#FIXED`, KeywordConstant, nil}, - {`xml:space|xml:lang`, KeywordReserved, nil}, - {`[^>\s|()?+*,]+`, NameAttribute, nil}, - {`>`, Keyword, Pop(1)}, - }, - "entity": { - Include("common"), - {`SYSTEM|PUBLIC|NDATA`, KeywordConstant, nil}, - {`[^>\s|()?+*,]+`, NameEntity, nil}, - {`>`, Keyword, Pop(1)}, - }, - "notation": { - Include("common"), - {`SYSTEM|PUBLIC`, KeywordConstant, nil}, - {`[^>\s|()?+*,]+`, NameAttribute, nil}, - {`>`, Keyword, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/ebnf.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/ebnf.go deleted file mode 100644 index 42a3a37933..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/ebnf.go +++ /dev/null @@ -1,51 +0,0 @@ -package e - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Ebnf lexer. -var Ebnf = internal.Register(MustNewLexer( - &Config{ - Name: "EBNF", - Aliases: []string{"ebnf"}, - Filenames: []string{"*.ebnf"}, - MimeTypes: []string{"text/x-ebnf"}, - }, - Rules{ - "root": { - Include("whitespace"), - Include("comment_start"), - Include("identifier"), - {`=`, Operator, Push("production")}, - }, - "production": { - Include("whitespace"), - Include("comment_start"), - Include("identifier"), - {`"[^"]*"`, LiteralStringDouble, nil}, - {`'[^']*'`, LiteralStringSingle, nil}, - {`(\?[^?]*\?)`, NameEntity, nil}, - {`[\[\]{}(),|]`, Punctuation, nil}, - {`-`, Operator, nil}, - {`;`, Punctuation, Pop(1)}, - {`\.`, Punctuation, Pop(1)}, - }, - "whitespace": { - {`\s+`, Text, nil}, - }, - "comment_start": { - {`\(\*`, CommentMultiline, Push("comment")}, - }, - "comment": { - {`[^*)]`, CommentMultiline, nil}, - Include("comment_start"), - {`\*\)`, CommentMultiline, Pop(1)}, - {`[*)]`, CommentMultiline, nil}, - }, - "identifier": { - {`([a-zA-Z][\w \-]*)`, Keyword, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/elixir.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/elixir.go deleted file mode 100644 index 40730290bc..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/elixir.go +++ /dev/null @@ -1,270 +0,0 @@ -package e - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Elixir lexer. -var Elixir = internal.Register(MustNewLexer( - &Config{ - Name: "Elixir", - Aliases: []string{"elixir", "ex", "exs"}, - Filenames: []string{"*.ex", "*.exs"}, - MimeTypes: []string{"text/x-elixir"}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`#.*$`, CommentSingle, nil}, - {`(\?)(\\x\{)([\da-fA-F]+)(\})`, ByGroups(LiteralStringChar, LiteralStringEscape, LiteralNumberHex, LiteralStringEscape), nil}, - {`(\?)(\\x[\da-fA-F]{1,2})`, ByGroups(LiteralStringChar, LiteralStringEscape), nil}, - {`(\?)(\\[abdefnrstv])`, ByGroups(LiteralStringChar, LiteralStringEscape), nil}, - {`\?\\?.`, LiteralStringChar, nil}, - {`:::`, LiteralStringSymbol, nil}, - {`::`, Operator, nil}, - {`:(?:\.\.\.|<<>>|%\{\}|%|\{\})`, LiteralStringSymbol, nil}, - {`:(?:(?:\.\.\.|[a-z_]\w*[!?]?)|[A-Z]\w*(?:\.[A-Z]\w*)*|(?:\<\<\<|\>\>\>|\|\|\||\&\&\&|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\>\>|\<\~\>|\|\~\>|\<\|\>|\=\=|\!\=|\<\=|\>\=|\&\&|\|\||\<\>|\+\+|\-\-|\|\>|\=\~|\-\>|\<\-|\||\.|\=|\~\>|\<\~|\<|\>|\+|\-|\*|\/|\!|\^|\&))`, LiteralStringSymbol, nil}, - {`:"`, LiteralStringSymbol, Push("string_double_atom")}, - {`:'`, LiteralStringSymbol, Push("string_single_atom")}, - {`((?:\.\.\.|<<>>|%\{\}|%|\{\})|(?:(?:\.\.\.|[a-z_]\w*[!?]?)|[A-Z]\w*(?:\.[A-Z]\w*)*|(?:\<\<\<|\>\>\>|\|\|\||\&\&\&|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\>\>|\<\~\>|\|\~\>|\<\|\>|\=\=|\!\=|\<\=|\>\=|\&\&|\|\||\<\>|\+\+|\-\-|\|\>|\=\~|\-\>|\<\-|\||\.|\=|\~\>|\<\~|\<|\>|\+|\-|\*|\/|\!|\^|\&)))(:)(?=\s|\n)`, ByGroups(LiteralStringSymbol, Punctuation), nil}, - {`@(?:\.\.\.|[a-z_]\w*[!?]?)`, NameAttribute, nil}, - {`(?:\.\.\.|[a-z_]\w*[!?]?)`, Name, nil}, - {`(%?)([A-Z]\w*(?:\.[A-Z]\w*)*)`, ByGroups(Punctuation, NameClass), nil}, - {`\<\<\<|\>\>\>|\|\|\||\&\&\&|\^\^\^|\~\~\~|\=\=\=|\!\=\=|\~\>\>|\<\~\>|\|\~\>|\<\|\>`, Operator, nil}, - {`\=\=|\!\=|\<\=|\>\=|\&\&|\|\||\<\>|\+\+|\-\-|\|\>|\=\~|\-\>|\<\-|\||\.|\=|\~\>|\<\~`, Operator, nil}, - {`\\\\|\<\<|\>\>|\=\>|\(|\)|\:|\;|\,|\[|\]`, Punctuation, nil}, - {`&\d`, NameEntity, nil}, - {`\<|\>|\+|\-|\*|\/|\!|\^|\&`, Operator, nil}, - {`0b[01](_?[01])*`, LiteralNumberBin, nil}, - {`0o[0-7](_?[0-7])*`, LiteralNumberOct, nil}, - {`0x[\da-fA-F](_?[\dA-Fa-f])*`, LiteralNumberHex, nil}, - {`\d(_?\d)*\.\d(_?\d)*([eE][-+]?\d(_?\d)*)?`, LiteralNumberFloat, nil}, - {`\d(_?\d)*`, LiteralNumberInteger, nil}, - {`"""\s*`, LiteralStringHeredoc, Push("heredoc_double")}, - {`'''\s*$`, LiteralStringHeredoc, Push("heredoc_single")}, - {`"`, LiteralStringDouble, Push("string_double")}, - {`'`, LiteralStringSingle, Push("string_single")}, - Include("sigils"), - {`%\{`, Punctuation, Push("map_key")}, - {`\{`, Punctuation, Push("tuple")}, - }, - "heredoc_double": { - {`^\s*"""`, LiteralStringHeredoc, Pop(1)}, - Include("heredoc_interpol"), - }, - "heredoc_single": { - {`^\s*'''`, LiteralStringHeredoc, Pop(1)}, - Include("heredoc_interpol"), - }, - "heredoc_interpol": { - {`[^#\\\n]+`, LiteralStringHeredoc, nil}, - Include("escapes"), - {`\\.`, LiteralStringHeredoc, nil}, - {`\n+`, LiteralStringHeredoc, nil}, - Include("interpol"), - }, - "heredoc_no_interpol": { - {`[^\\\n]+`, LiteralStringHeredoc, nil}, - {`\\.`, LiteralStringHeredoc, nil}, - {`\n+`, LiteralStringHeredoc, nil}, - }, - "escapes": { - {`(\\x\{)([\da-fA-F]+)(\})`, ByGroups(LiteralStringEscape, LiteralNumberHex, LiteralStringEscape), nil}, - {`(\\x[\da-fA-F]{1,2})`, LiteralStringEscape, nil}, - {`(\\[abdefnrstv])`, LiteralStringEscape, nil}, - }, - "interpol": { - {`#\{`, LiteralStringInterpol, Push("interpol_string")}, - }, - "interpol_string": { - {`\}`, LiteralStringInterpol, Pop(1)}, - Include("root"), - }, - "map_key": { - Include("root"), - {`:`, Punctuation, Push("map_val")}, - {`=>`, Punctuation, Push("map_val")}, - {`\}`, Punctuation, Pop(1)}, - }, - "map_val": { - Include("root"), - {`,`, Punctuation, Pop(1)}, - {`(?=\})`, Punctuation, Pop(1)}, - }, - "tuple": { - Include("root"), - {`\}`, Punctuation, Pop(1)}, - }, - "string_double": { - {`[^#"\\]+`, LiteralStringDouble, nil}, - Include("escapes"), - {`\\.`, LiteralStringDouble, nil}, - {`(")`, ByGroups(LiteralStringDouble), Pop(1)}, - Include("interpol"), - }, - "string_single": { - {`[^#'\\]+`, LiteralStringSingle, nil}, - Include("escapes"), - {`\\.`, LiteralStringSingle, nil}, - {`(')`, ByGroups(LiteralStringSingle), Pop(1)}, - Include("interpol"), - }, - "string_double_atom": { - {`[^#"\\]+`, LiteralStringSymbol, nil}, - Include("escapes"), - {`\\.`, LiteralStringSymbol, nil}, - {`(")`, ByGroups(LiteralStringSymbol), Pop(1)}, - Include("interpol"), - }, - "string_single_atom": { - {`[^#'\\]+`, LiteralStringSymbol, nil}, - Include("escapes"), - {`\\.`, LiteralStringSymbol, nil}, - {`(')`, ByGroups(LiteralStringSymbol), Pop(1)}, - Include("interpol"), - }, - "sigils": { - {`(~[a-z])(""")`, ByGroups(LiteralStringOther, LiteralStringHeredoc), Push("triquot-end", "triquot-intp")}, - {`(~[A-Z])(""")`, ByGroups(LiteralStringOther, LiteralStringHeredoc), Push("triquot-end", "triquot-no-intp")}, - {`(~[a-z])(''')`, ByGroups(LiteralStringOther, LiteralStringHeredoc), Push("triapos-end", "triapos-intp")}, - {`(~[A-Z])(''')`, ByGroups(LiteralStringOther, LiteralStringHeredoc), Push("triapos-end", "triapos-no-intp")}, - {`~[a-z]\{`, LiteralStringOther, Push("cb-intp")}, - {`~[A-Z]\{`, LiteralStringOther, Push("cb-no-intp")}, - {`~[a-z]\[`, LiteralStringOther, Push("sb-intp")}, - {`~[A-Z]\[`, LiteralStringOther, Push("sb-no-intp")}, - {`~[a-z]\(`, LiteralStringOther, Push("pa-intp")}, - {`~[A-Z]\(`, LiteralStringOther, Push("pa-no-intp")}, - {`~[a-z]<`, LiteralStringOther, Push("ab-intp")}, - {`~[A-Z]<`, LiteralStringOther, Push("ab-no-intp")}, - {`~[a-z]/`, LiteralStringOther, Push("slas-intp")}, - {`~[A-Z]/`, LiteralStringOther, Push("slas-no-intp")}, - {`~[a-z]\|`, LiteralStringOther, Push("pipe-intp")}, - {`~[A-Z]\|`, LiteralStringOther, Push("pipe-no-intp")}, - {`~[a-z]"`, LiteralStringOther, Push("quot-intp")}, - {`~[A-Z]"`, LiteralStringOther, Push("quot-no-intp")}, - {`~[a-z]'`, LiteralStringOther, Push("apos-intp")}, - {`~[A-Z]'`, LiteralStringOther, Push("apos-no-intp")}, - }, - "triquot-end": { - {`[a-zA-Z]+`, LiteralStringOther, Pop(1)}, - Default(Pop(1)), - }, - "triquot-intp": { - {`^\s*"""`, LiteralStringHeredoc, Pop(1)}, - Include("heredoc_interpol"), - }, - "triquot-no-intp": { - {`^\s*"""`, LiteralStringHeredoc, Pop(1)}, - Include("heredoc_no_interpol"), - }, - "triapos-end": { - {`[a-zA-Z]+`, LiteralStringOther, Pop(1)}, - Default(Pop(1)), - }, - "triapos-intp": { - {`^\s*'''`, LiteralStringHeredoc, Pop(1)}, - Include("heredoc_interpol"), - }, - "triapos-no-intp": { - {`^\s*'''`, LiteralStringHeredoc, Pop(1)}, - Include("heredoc_no_interpol"), - }, - "cb-intp": { - {`[^#\}\\]+`, LiteralStringOther, nil}, - Include("escapes"), - {`\\.`, LiteralStringOther, nil}, - {`\}[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - Include("interpol"), - }, - "cb-no-intp": { - {`[^\}\\]+`, LiteralStringOther, nil}, - {`\\.`, LiteralStringOther, nil}, - {`\}[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - }, - "sb-intp": { - {`[^#\]\\]+`, LiteralStringOther, nil}, - Include("escapes"), - {`\\.`, LiteralStringOther, nil}, - {`\][a-zA-Z]*`, LiteralStringOther, Pop(1)}, - Include("interpol"), - }, - "sb-no-intp": { - {`[^\]\\]+`, LiteralStringOther, nil}, - {`\\.`, LiteralStringOther, nil}, - {`\][a-zA-Z]*`, LiteralStringOther, Pop(1)}, - }, - "pa-intp": { - {`[^#\)\\]+`, LiteralStringOther, nil}, - Include("escapes"), - {`\\.`, LiteralStringOther, nil}, - {`\)[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - Include("interpol"), - }, - "pa-no-intp": { - {`[^\)\\]+`, LiteralStringOther, nil}, - {`\\.`, LiteralStringOther, nil}, - {`\)[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - }, - "ab-intp": { - {`[^#>\\]+`, LiteralStringOther, nil}, - Include("escapes"), - {`\\.`, LiteralStringOther, nil}, - {`>[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - Include("interpol"), - }, - "ab-no-intp": { - {`[^>\\]+`, LiteralStringOther, nil}, - {`\\.`, LiteralStringOther, nil}, - {`>[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - }, - "slas-intp": { - {`[^#/\\]+`, LiteralStringOther, nil}, - Include("escapes"), - {`\\.`, LiteralStringOther, nil}, - {`/[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - Include("interpol"), - }, - "slas-no-intp": { - {`[^/\\]+`, LiteralStringOther, nil}, - {`\\.`, LiteralStringOther, nil}, - {`/[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - }, - "pipe-intp": { - {`[^#\|\\]+`, LiteralStringOther, nil}, - Include("escapes"), - {`\\.`, LiteralStringOther, nil}, - {`\|[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - Include("interpol"), - }, - "pipe-no-intp": { - {`[^\|\\]+`, LiteralStringOther, nil}, - {`\\.`, LiteralStringOther, nil}, - {`\|[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - }, - "quot-intp": { - {`[^#"\\]+`, LiteralStringOther, nil}, - Include("escapes"), - {`\\.`, LiteralStringOther, nil}, - {`"[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - Include("interpol"), - }, - "quot-no-intp": { - {`[^"\\]+`, LiteralStringOther, nil}, - {`\\.`, LiteralStringOther, nil}, - {`"[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - }, - "apos-intp": { - {`[^#'\\]+`, LiteralStringOther, nil}, - Include("escapes"), - {`\\.`, LiteralStringOther, nil}, - {`'[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - Include("interpol"), - }, - "apos-no-intp": { - {`[^'\\]+`, LiteralStringOther, nil}, - {`\\.`, LiteralStringOther, nil}, - {`'[a-zA-Z]*`, LiteralStringOther, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/elm.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/elm.go deleted file mode 100644 index a71c6270e8..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/elm.go +++ /dev/null @@ -1,59 +0,0 @@ -package e - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Elm lexer. -var Elm = internal.Register(MustNewLexer( - &Config{ - Name: "Elm", - Aliases: []string{"elm"}, - Filenames: []string{"*.elm"}, - MimeTypes: []string{"text/x-elm"}, - }, - Rules{ - "root": { - {`\{-`, CommentMultiline, Push("comment")}, - {`--.*`, CommentSingle, nil}, - {`\s+`, Text, nil}, - {`"`, LiteralString, Push("doublequote")}, - {`^\s*module\s*`, KeywordNamespace, Push("imports")}, - {`^\s*import\s*`, KeywordNamespace, Push("imports")}, - {`\[glsl\|.*`, NameEntity, Push("shader")}, - {Words(``, `\b`, `alias`, `as`, `case`, `else`, `if`, `import`, `in`, `let`, `module`, `of`, `port`, `then`, `type`, `where`), KeywordReserved, nil}, - {`[A-Z]\w*`, KeywordType, nil}, - {`^main `, KeywordReserved, nil}, - {Words(`\(`, `\)`, `~`, `||`, `|>`, `|`, "`", `^`, `\`, `'`, `>>`, `>=`, `>`, `==`, `=`, `<~`, `<|`, `<=`, `<<`, `<-`, `<`, `::`, `:`, `/=`, `//`, `/`, `..`, `.`, `->`, `-`, `++`, `+`, `*`, `&&`, `%`), NameFunction, nil}, - {Words(``, ``, `~`, `||`, `|>`, `|`, "`", `^`, `\`, `'`, `>>`, `>=`, `>`, `==`, `=`, `<~`, `<|`, `<=`, `<<`, `<-`, `<`, `::`, `:`, `/=`, `//`, `/`, `..`, `.`, `->`, `-`, `++`, `+`, `*`, `&&`, `%`), NameFunction, nil}, - Include("numbers"), - {`[a-z_][a-zA-Z_\']*`, NameVariable, nil}, - {`[,()\[\]{}]`, Punctuation, nil}, - }, - "comment": { - {`-(?!\})`, CommentMultiline, nil}, - {`\{-`, CommentMultiline, Push("comment")}, - {`[^-}]`, CommentMultiline, nil}, - {`-\}`, CommentMultiline, Pop(1)}, - }, - "doublequote": { - {`\\u[0-9a-fA-F]{4}`, LiteralStringEscape, nil}, - {`\\[nrfvb\\"]`, LiteralStringEscape, nil}, - {`[^"]`, LiteralString, nil}, - {`"`, LiteralString, Pop(1)}, - }, - "imports": { - {`\w+(\.\w+)*`, NameClass, Pop(1)}, - }, - "numbers": { - {`_?\d+\.(?=\d+)`, LiteralNumberFloat, nil}, - {`_?\d+`, LiteralNumberInteger, nil}, - }, - "shader": { - {`\|(?!\])`, NameEntity, nil}, - {`\|\]`, NameEntity, Pop(1)}, - {`.*\n`, NameEntity, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/emacs.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/emacs.go deleted file mode 100644 index 78ffda1229..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/emacs.go +++ /dev/null @@ -1,582 +0,0 @@ -package e - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var ( - emacsMacros = []string{ - "atomic-change-group", "case", "block", "cl-block", "cl-callf", "cl-callf2", - "cl-case", "cl-decf", "cl-declaim", "cl-declare", - "cl-define-compiler-macro", "cl-defmacro", "cl-defstruct", - "cl-defsubst", "cl-deftype", "cl-defun", "cl-destructuring-bind", - "cl-do", "cl-do*", "cl-do-all-symbols", "cl-do-symbols", "cl-dolist", - "cl-dotimes", "cl-ecase", "cl-etypecase", "eval-when", "cl-eval-when", "cl-flet", - "cl-flet*", "cl-function", "cl-incf", "cl-labels", "cl-letf", - "cl-letf*", "cl-load-time-value", "cl-locally", "cl-loop", - "cl-macrolet", "cl-multiple-value-bind", "cl-multiple-value-setq", - "cl-progv", "cl-psetf", "cl-psetq", "cl-pushnew", "cl-remf", - "cl-return", "cl-return-from", "cl-rotatef", "cl-shiftf", - "cl-symbol-macrolet", "cl-tagbody", "cl-the", "cl-typecase", - "combine-after-change-calls", "condition-case-unless-debug", "decf", - "declaim", "declare", "declare-function", "def-edebug-spec", - "defadvice", "defclass", "defcustom", "defface", "defgeneric", - "defgroup", "define-advice", "define-alternatives", - "define-compiler-macro", "define-derived-mode", "define-generic-mode", - "define-global-minor-mode", "define-globalized-minor-mode", - "define-minor-mode", "define-modify-macro", - "define-obsolete-face-alias", "define-obsolete-function-alias", - "define-obsolete-variable-alias", "define-setf-expander", - "define-skeleton", "defmacro", "defmethod", "defsetf", "defstruct", - "defsubst", "deftheme", "deftype", "defun", "defvar-local", - "delay-mode-hooks", "destructuring-bind", "do", "do*", - "do-all-symbols", "do-symbols", "dolist", "dont-compile", "dotimes", - "dotimes-with-progress-reporter", "ecase", "ert-deftest", "etypecase", - "eval-and-compile", "eval-when-compile", "flet", "ignore-errors", - "incf", "labels", "lambda", "letrec", "lexical-let", "lexical-let*", - "loop", "multiple-value-bind", "multiple-value-setq", "noreturn", - "oref", "oref-default", "oset", "oset-default", "pcase", - "pcase-defmacro", "pcase-dolist", "pcase-exhaustive", "pcase-let", - "pcase-let*", "pop", "psetf", "psetq", "push", "pushnew", "remf", - "return", "rotatef", "rx", "save-match-data", "save-selected-window", - "save-window-excursion", "setf", "setq-local", "shiftf", - "track-mouse", "typecase", "unless", "use-package", "when", - "while-no-input", "with-case-table", "with-category-table", - "with-coding-priority", "with-current-buffer", "with-demoted-errors", - "with-eval-after-load", "with-file-modes", "with-local-quit", - "with-output-to-string", "with-output-to-temp-buffer", - "with-parsed-tramp-file-name", "with-selected-frame", - "with-selected-window", "with-silent-modifications", "with-slots", - "with-syntax-table", "with-temp-buffer", "with-temp-file", - "with-temp-message", "with-timeout", "with-tramp-connection-property", - "with-tramp-file-property", "with-tramp-progress-reporter", - "with-wrapper-hook", "load-time-value", "locally", "macrolet", "progv", - "return-from", - } - - emacsSpecialForms = []string{ - "and", "catch", "cond", "condition-case", "defconst", "defvar", - "function", "if", "interactive", "let", "let*", "or", "prog1", - "prog2", "progn", "quote", "save-current-buffer", "save-excursion", - "save-restriction", "setq", "setq-default", "subr-arity", - "unwind-protect", "while", - } - - emacsBuiltinFunction = []string{ - "%", "*", "+", "-", "/", "/=", "1+", "1-", "<", "<=", "=", ">", ">=", - "Snarf-documentation", "abort-recursive-edit", "abs", - "accept-process-output", "access-file", "accessible-keymaps", "acos", - "active-minibuffer-window", "add-face-text-property", - "add-name-to-file", "add-text-properties", "all-completions", - "append", "apply", "apropos-internal", "aref", "arrayp", "aset", - "ash", "asin", "assoc", "assoc-string", "assq", "atan", "atom", - "autoload", "autoload-do-load", "backtrace", "backtrace--locals", - "backtrace-debug", "backtrace-eval", "backtrace-frame", - "backward-char", "backward-prefix-chars", "barf-if-buffer-read-only", - "base64-decode-region", "base64-decode-string", - "base64-encode-region", "base64-encode-string", "beginning-of-line", - "bidi-find-overridden-directionality", "bidi-resolved-levels", - "bitmap-spec-p", "bobp", "bolp", "bool-vector", - "bool-vector-count-consecutive", "bool-vector-count-population", - "bool-vector-exclusive-or", "bool-vector-intersection", - "bool-vector-not", "bool-vector-p", "bool-vector-set-difference", - "bool-vector-subsetp", "bool-vector-union", "boundp", - "buffer-base-buffer", "buffer-chars-modified-tick", - "buffer-enable-undo", "buffer-file-name", "buffer-has-markers-at", - "buffer-list", "buffer-live-p", "buffer-local-value", - "buffer-local-variables", "buffer-modified-p", "buffer-modified-tick", - "buffer-name", "buffer-size", "buffer-string", "buffer-substring", - "buffer-substring-no-properties", "buffer-swap-text", "bufferp", - "bury-buffer-internal", "byte-code", "byte-code-function-p", - "byte-to-position", "byte-to-string", "byteorder", - "call-interactively", "call-last-kbd-macro", "call-process", - "call-process-region", "cancel-kbd-macro-events", "capitalize", - "capitalize-region", "capitalize-word", "car", "car-less-than-car", - "car-safe", "case-table-p", "category-docstring", - "category-set-mnemonics", "category-table", "category-table-p", - "ccl-execute", "ccl-execute-on-string", "ccl-program-p", "cdr", - "cdr-safe", "ceiling", "char-after", "char-before", - "char-category-set", "char-charset", "char-equal", "char-or-string-p", - "char-resolve-modifiers", "char-syntax", "char-table-extra-slot", - "char-table-p", "char-table-parent", "char-table-range", - "char-table-subtype", "char-to-string", "char-width", "characterp", - "charset-after", "charset-id-internal", "charset-plist", - "charset-priority-list", "charsetp", "check-coding-system", - "check-coding-systems-region", "clear-buffer-auto-save-failure", - "clear-charset-maps", "clear-face-cache", "clear-font-cache", - "clear-image-cache", "clear-string", "clear-this-command-keys", - "close-font", "clrhash", "coding-system-aliases", - "coding-system-base", "coding-system-eol-type", "coding-system-p", - "coding-system-plist", "coding-system-priority-list", - "coding-system-put", "color-distance", "color-gray-p", - "color-supported-p", "combine-after-change-execute", - "command-error-default-function", "command-remapping", "commandp", - "compare-buffer-substrings", "compare-strings", - "compare-window-configurations", "completing-read", - "compose-region-internal", "compose-string-internal", - "composition-get-gstring", "compute-motion", "concat", "cons", - "consp", "constrain-to-field", "continue-process", - "controlling-tty-p", "coordinates-in-window-p", "copy-alist", - "copy-category-table", "copy-file", "copy-hash-table", "copy-keymap", - "copy-marker", "copy-sequence", "copy-syntax-table", "copysign", - "cos", "current-active-maps", "current-bidi-paragraph-direction", - "current-buffer", "current-case-table", "current-column", - "current-global-map", "current-idle-time", "current-indentation", - "current-input-mode", "current-local-map", "current-message", - "current-minor-mode-maps", "current-time", "current-time-string", - "current-time-zone", "current-window-configuration", - "cygwin-convert-file-name-from-windows", - "cygwin-convert-file-name-to-windows", "daemon-initialized", - "daemonp", "dbus--init-bus", "dbus-get-unique-name", - "dbus-message-internal", "debug-timer-check", "declare-equiv-charset", - "decode-big5-char", "decode-char", "decode-coding-region", - "decode-coding-string", "decode-sjis-char", "decode-time", - "default-boundp", "default-file-modes", "default-printer-name", - "default-toplevel-value", "default-value", "define-category", - "define-charset-alias", "define-charset-internal", - "define-coding-system-alias", "define-coding-system-internal", - "define-fringe-bitmap", "define-hash-table-test", "define-key", - "define-prefix-command", "delete", - "delete-all-overlays", "delete-and-extract-region", "delete-char", - "delete-directory-internal", "delete-field", "delete-file", - "delete-frame", "delete-other-windows-internal", "delete-overlay", - "delete-process", "delete-region", "delete-terminal", - "delete-window-internal", "delq", "describe-buffer-bindings", - "describe-vector", "destroy-fringe-bitmap", "detect-coding-region", - "detect-coding-string", "ding", "directory-file-name", - "directory-files", "directory-files-and-attributes", "discard-input", - "display-supports-face-attributes-p", "do-auto-save", "documentation", - "documentation-property", "downcase", "downcase-region", - "downcase-word", "draw-string", "dump-colors", "dump-emacs", - "dump-face", "dump-frame-glyph-matrix", "dump-glyph-matrix", - "dump-glyph-row", "dump-redisplay-history", "dump-tool-bar-row", - "elt", "emacs-pid", "encode-big5-char", "encode-char", - "encode-coding-region", "encode-coding-string", "encode-sjis-char", - "encode-time", "end-kbd-macro", "end-of-line", "eobp", "eolp", "eq", - "eql", "equal", "equal-including-properties", "erase-buffer", - "error-message-string", "eval", "eval-buffer", "eval-region", - "event-convert-list", "execute-kbd-macro", "exit-recursive-edit", - "exp", "expand-file-name", "expt", "external-debugging-output", - "face-attribute-relative-p", "face-attributes-as-vector", "face-font", - "fboundp", "fceiling", "fetch-bytecode", "ffloor", - "field-beginning", "field-end", "field-string", - "field-string-no-properties", "file-accessible-directory-p", - "file-acl", "file-attributes", "file-attributes-lessp", - "file-directory-p", "file-executable-p", "file-exists-p", - "file-locked-p", "file-modes", "file-name-absolute-p", - "file-name-all-completions", "file-name-as-directory", - "file-name-completion", "file-name-directory", - "file-name-nondirectory", "file-newer-than-file-p", "file-readable-p", - "file-regular-p", "file-selinux-context", "file-symlink-p", - "file-system-info", "file-system-info", "file-writable-p", - "fillarray", "find-charset-region", "find-charset-string", - "find-coding-systems-region-internal", "find-composition-internal", - "find-file-name-handler", "find-font", "find-operation-coding-system", - "float", "float-time", "floatp", "floor", "fmakunbound", - "following-char", "font-at", "font-drive-otf", "font-face-attributes", - "font-family-list", "font-get", "font-get-glyphs", - "font-get-system-font", "font-get-system-normal-font", "font-info", - "font-match-p", "font-otf-alternates", "font-put", - "font-shape-gstring", "font-spec", "font-variation-glyphs", - "font-xlfd-name", "fontp", "fontset-font", "fontset-info", - "fontset-list", "fontset-list-all", "force-mode-line-update", - "force-window-update", "format", "format-mode-line", - "format-network-address", "format-time-string", "forward-char", - "forward-comment", "forward-line", "forward-word", - "frame-border-width", "frame-bottom-divider-width", - "frame-can-run-window-configuration-change-hook", "frame-char-height", - "frame-char-width", "frame-face-alist", "frame-first-window", - "frame-focus", "frame-font-cache", "frame-fringe-width", "frame-list", - "frame-live-p", "frame-or-buffer-changed-p", "frame-parameter", - "frame-parameters", "frame-pixel-height", "frame-pixel-width", - "frame-pointer-visible-p", "frame-right-divider-width", - "frame-root-window", "frame-scroll-bar-height", - "frame-scroll-bar-width", "frame-selected-window", "frame-terminal", - "frame-text-cols", "frame-text-height", "frame-text-lines", - "frame-text-width", "frame-total-cols", "frame-total-lines", - "frame-visible-p", "framep", "frexp", "fringe-bitmaps-at-pos", - "fround", "fset", "ftruncate", "funcall", "funcall-interactively", - "function-equal", "functionp", "gap-position", "gap-size", - "garbage-collect", "gc-status", "generate-new-buffer-name", "get", - "get-buffer", "get-buffer-create", "get-buffer-process", - "get-buffer-window", "get-byte", "get-char-property", - "get-char-property-and-overlay", "get-file-buffer", "get-file-char", - "get-internal-run-time", "get-load-suffixes", "get-pos-property", - "get-process", "get-screen-color", "get-text-property", - "get-unicode-property-internal", "get-unused-category", - "get-unused-iso-final-char", "getenv-internal", "gethash", - "gfile-add-watch", "gfile-rm-watch", "global-key-binding", - "gnutls-available-p", "gnutls-boot", "gnutls-bye", "gnutls-deinit", - "gnutls-error-fatalp", "gnutls-error-string", "gnutls-errorp", - "gnutls-get-initstage", "gnutls-peer-status", - "gnutls-peer-status-warning-describe", "goto-char", "gpm-mouse-start", - "gpm-mouse-stop", "group-gid", "group-real-gid", - "handle-save-session", "handle-switch-frame", "hash-table-count", - "hash-table-p", "hash-table-rehash-size", - "hash-table-rehash-threshold", "hash-table-size", "hash-table-test", - "hash-table-weakness", "iconify-frame", "identity", "image-flush", - "image-mask-p", "image-metadata", "image-size", "imagemagick-types", - "imagep", "indent-to", "indirect-function", "indirect-variable", - "init-image-library", "inotify-add-watch", "inotify-rm-watch", - "input-pending-p", "insert", "insert-and-inherit", - "insert-before-markers", "insert-before-markers-and-inherit", - "insert-buffer-substring", "insert-byte", "insert-char", - "insert-file-contents", "insert-startup-screen", "int86", - "integer-or-marker-p", "integerp", "interactive-form", "intern", - "intern-soft", "internal--track-mouse", "internal-char-font", - "internal-complete-buffer", "internal-copy-lisp-face", - "internal-default-process-filter", - "internal-default-process-sentinel", "internal-describe-syntax-value", - "internal-event-symbol-parse-modifiers", - "internal-face-x-get-resource", "internal-get-lisp-face-attribute", - "internal-lisp-face-attribute-values", "internal-lisp-face-empty-p", - "internal-lisp-face-equal-p", "internal-lisp-face-p", - "internal-make-lisp-face", "internal-make-var-non-special", - "internal-merge-in-global-face", - "internal-set-alternative-font-family-alist", - "internal-set-alternative-font-registry-alist", - "internal-set-font-selection-order", - "internal-set-lisp-face-attribute", - "internal-set-lisp-face-attribute-from-resource", - "internal-show-cursor", "internal-show-cursor-p", "interrupt-process", - "invisible-p", "invocation-directory", "invocation-name", "isnan", - "iso-charset", "key-binding", "key-description", - "keyboard-coding-system", "keymap-parent", "keymap-prompt", "keymapp", - "keywordp", "kill-all-local-variables", "kill-buffer", "kill-emacs", - "kill-local-variable", "kill-process", "last-nonminibuffer-frame", - "lax-plist-get", "lax-plist-put", "ldexp", "length", - "libxml-parse-html-region", "libxml-parse-xml-region", - "line-beginning-position", "line-end-position", "line-pixel-height", - "list", "list-fonts", "list-system-processes", "listp", "load", - "load-average", "local-key-binding", "local-variable-if-set-p", - "local-variable-p", "locale-info", "locate-file-internal", - "lock-buffer", "log", "logand", "logb", "logior", "lognot", "logxor", - "looking-at", "lookup-image", "lookup-image-map", "lookup-key", - "lower-frame", "lsh", "macroexpand", "make-bool-vector", - "make-byte-code", "make-category-set", "make-category-table", - "make-char", "make-char-table", "make-directory-internal", - "make-frame-invisible", "make-frame-visible", "make-hash-table", - "make-indirect-buffer", "make-keymap", "make-list", - "make-local-variable", "make-marker", "make-network-process", - "make-overlay", "make-serial-process", "make-sparse-keymap", - "make-string", "make-symbol", "make-symbolic-link", "make-temp-name", - "make-terminal-frame", "make-variable-buffer-local", - "make-variable-frame-local", "make-vector", "makunbound", - "map-char-table", "map-charset-chars", "map-keymap", - "map-keymap-internal", "mapatoms", "mapc", "mapcar", "mapconcat", - "maphash", "mark-marker", "marker-buffer", "marker-insertion-type", - "marker-position", "markerp", "match-beginning", "match-data", - "match-end", "matching-paren", "max", "max-char", "md5", "member", - "memory-info", "memory-limit", "memory-use-counts", "memq", "memql", - "menu-bar-menu-at-x-y", "menu-or-popup-active-p", - "menu-or-popup-active-p", "merge-face-attribute", "message", - "message-box", "message-or-box", "min", - "minibuffer-completion-contents", "minibuffer-contents", - "minibuffer-contents-no-properties", "minibuffer-depth", - "minibuffer-prompt", "minibuffer-prompt-end", - "minibuffer-selected-window", "minibuffer-window", "minibufferp", - "minor-mode-key-binding", "mod", "modify-category-entry", - "modify-frame-parameters", "modify-syntax-entry", - "mouse-pixel-position", "mouse-position", "move-overlay", - "move-point-visually", "move-to-column", "move-to-window-line", - "msdos-downcase-filename", "msdos-long-file-names", "msdos-memget", - "msdos-memput", "msdos-mouse-disable", "msdos-mouse-enable", - "msdos-mouse-init", "msdos-mouse-p", "msdos-remember-default-colors", - "msdos-set-keyboard", "msdos-set-mouse-buttons", - "multibyte-char-to-unibyte", "multibyte-string-p", "narrow-to-region", - "natnump", "nconc", "network-interface-info", - "network-interface-list", "new-fontset", "newline-cache-check", - "next-char-property-change", "next-frame", "next-overlay-change", - "next-property-change", "next-read-file-uses-dialog-p", - "next-single-char-property-change", "next-single-property-change", - "next-window", "nlistp", "nreverse", "nth", "nthcdr", "null", - "number-or-marker-p", "number-to-string", "numberp", - "open-dribble-file", "open-font", "open-termscript", - "optimize-char-table", "other-buffer", "other-window-for-scrolling", - "overlay-buffer", "overlay-end", "overlay-get", "overlay-lists", - "overlay-properties", "overlay-put", "overlay-recenter", - "overlay-start", "overlayp", "overlays-at", "overlays-in", - "parse-partial-sexp", "play-sound-internal", "plist-get", - "plist-member", "plist-put", "point", "point-marker", "point-max", - "point-max-marker", "point-min", "point-min-marker", - "pos-visible-in-window-p", "position-bytes", "posix-looking-at", - "posix-search-backward", "posix-search-forward", "posix-string-match", - "posn-at-point", "posn-at-x-y", "preceding-char", - "prefix-numeric-value", "previous-char-property-change", - "previous-frame", "previous-overlay-change", - "previous-property-change", "previous-single-char-property-change", - "previous-single-property-change", "previous-window", "prin1", - "prin1-to-string", "princ", "print", "process-attributes", - "process-buffer", "process-coding-system", "process-command", - "process-connection", "process-contact", "process-datagram-address", - "process-exit-status", "process-filter", "process-filter-multibyte-p", - "process-id", "process-inherit-coding-system-flag", "process-list", - "process-mark", "process-name", "process-plist", - "process-query-on-exit-flag", "process-running-child-p", - "process-send-eof", "process-send-region", "process-send-string", - "process-sentinel", "process-status", "process-tty-name", - "process-type", "processp", "profiler-cpu-log", - "profiler-cpu-running-p", "profiler-cpu-start", "profiler-cpu-stop", - "profiler-memory-log", "profiler-memory-running-p", - "profiler-memory-start", "profiler-memory-stop", "propertize", - "purecopy", "put", "put-text-property", - "put-unicode-property-internal", "puthash", "query-font", - "query-fontset", "quit-process", "raise-frame", "random", "rassoc", - "rassq", "re-search-backward", "re-search-forward", "read", - "read-buffer", "read-char", "read-char-exclusive", - "read-coding-system", "read-command", "read-event", - "read-from-minibuffer", "read-from-string", "read-function", - "read-key-sequence", "read-key-sequence-vector", - "read-no-blanks-input", "read-non-nil-coding-system", "read-string", - "read-variable", "recent-auto-save-p", "recent-doskeys", - "recent-keys", "recenter", "recursion-depth", "recursive-edit", - "redirect-debugging-output", "redirect-frame-focus", "redisplay", - "redraw-display", "redraw-frame", "regexp-quote", "region-beginning", - "region-end", "register-ccl-program", "register-code-conversion-map", - "remhash", "remove-list-of-text-properties", "remove-text-properties", - "rename-buffer", "rename-file", "replace-match", - "reset-this-command-lengths", "resize-mini-window-internal", - "restore-buffer-modified-p", "resume-tty", "reverse", "round", - "run-hook-with-args", "run-hook-with-args-until-failure", - "run-hook-with-args-until-success", "run-hook-wrapped", "run-hooks", - "run-window-configuration-change-hook", "run-window-scroll-functions", - "safe-length", "scan-lists", "scan-sexps", "scroll-down", - "scroll-left", "scroll-other-window", "scroll-right", "scroll-up", - "search-backward", "search-forward", "secure-hash", "select-frame", - "select-window", "selected-frame", "selected-window", - "self-insert-command", "send-string-to-terminal", "sequencep", - "serial-process-configure", "set", "set-buffer", - "set-buffer-auto-saved", "set-buffer-major-mode", - "set-buffer-modified-p", "set-buffer-multibyte", "set-case-table", - "set-category-table", "set-char-table-extra-slot", - "set-char-table-parent", "set-char-table-range", "set-charset-plist", - "set-charset-priority", "set-coding-system-priority", - "set-cursor-size", "set-default", "set-default-file-modes", - "set-default-toplevel-value", "set-file-acl", "set-file-modes", - "set-file-selinux-context", "set-file-times", "set-fontset-font", - "set-frame-height", "set-frame-position", "set-frame-selected-window", - "set-frame-size", "set-frame-width", "set-fringe-bitmap-face", - "set-input-interrupt-mode", "set-input-meta-mode", "set-input-mode", - "set-keyboard-coding-system-internal", "set-keymap-parent", - "set-marker", "set-marker-insertion-type", "set-match-data", - "set-message-beep", "set-minibuffer-window", - "set-mouse-pixel-position", "set-mouse-position", - "set-network-process-option", "set-output-flow-control", - "set-process-buffer", "set-process-coding-system", - "set-process-datagram-address", "set-process-filter", - "set-process-filter-multibyte", - "set-process-inherit-coding-system-flag", "set-process-plist", - "set-process-query-on-exit-flag", "set-process-sentinel", - "set-process-window-size", "set-quit-char", - "set-safe-terminal-coding-system-internal", "set-screen-color", - "set-standard-case-table", "set-syntax-table", - "set-terminal-coding-system-internal", "set-terminal-local-value", - "set-terminal-parameter", "set-text-properties", "set-time-zone-rule", - "set-visited-file-modtime", "set-window-buffer", - "set-window-combination-limit", "set-window-configuration", - "set-window-dedicated-p", "set-window-display-table", - "set-window-fringes", "set-window-hscroll", "set-window-margins", - "set-window-new-normal", "set-window-new-pixel", - "set-window-new-total", "set-window-next-buffers", - "set-window-parameter", "set-window-point", "set-window-prev-buffers", - "set-window-redisplay-end-trigger", "set-window-scroll-bars", - "set-window-start", "set-window-vscroll", "setcar", "setcdr", - "setplist", "show-face-resources", "signal", "signal-process", "sin", - "single-key-description", "skip-chars-backward", "skip-chars-forward", - "skip-syntax-backward", "skip-syntax-forward", "sleep-for", "sort", - "sort-charsets", "special-variable-p", "split-char", - "split-window-internal", "sqrt", "standard-case-table", - "standard-category-table", "standard-syntax-table", "start-kbd-macro", - "start-process", "stop-process", "store-kbd-macro-event", "string", - "string-as-multibyte", "string-as-unibyte", "string-bytes", - "string-collate-equalp", "string-collate-lessp", "string-equal", - "string-lessp", "string-make-multibyte", "string-make-unibyte", - "string-match", "string-to-char", "string-to-multibyte", - "string-to-number", "string-to-syntax", "string-to-unibyte", - "string-width", "stringp", "subr-name", "subrp", - "subst-char-in-region", "substitute-command-keys", - "substitute-in-file-name", "substring", "substring-no-properties", - "suspend-emacs", "suspend-tty", "suspicious-object", "sxhash", - "symbol-function", "symbol-name", "symbol-plist", "symbol-value", - "symbolp", "syntax-table", "syntax-table-p", "system-groups", - "system-move-file-to-trash", "system-name", "system-users", "tan", - "terminal-coding-system", "terminal-list", "terminal-live-p", - "terminal-local-value", "terminal-name", "terminal-parameter", - "terminal-parameters", "terpri", "test-completion", - "text-char-description", "text-properties-at", "text-property-any", - "text-property-not-all", "this-command-keys", - "this-command-keys-vector", "this-single-command-keys", - "this-single-command-raw-keys", "time-add", "time-less-p", - "time-subtract", "tool-bar-get-system-style", "tool-bar-height", - "tool-bar-pixel-width", "top-level", "trace-redisplay", - "trace-to-stderr", "translate-region-internal", "transpose-regions", - "truncate", "try-completion", "tty-display-color-cells", - "tty-display-color-p", "tty-no-underline", - "tty-suppress-bold-inverse-default-colors", "tty-top-frame", - "tty-type", "type-of", "undo-boundary", "unencodable-char-position", - "unhandled-file-name-directory", "unibyte-char-to-multibyte", - "unibyte-string", "unicode-property-table-internal", "unify-charset", - "unintern", "unix-sync", "unlock-buffer", "upcase", "upcase-initials", - "upcase-initials-region", "upcase-region", "upcase-word", - "use-global-map", "use-local-map", "user-full-name", - "user-login-name", "user-real-login-name", "user-real-uid", - "user-uid", "variable-binding-locus", "vconcat", "vector", - "vector-or-char-table-p", "vectorp", "verify-visited-file-modtime", - "vertical-motion", "visible-frame-list", "visited-file-modtime", - "w16-get-clipboard-data", "w16-selection-exists-p", - "w16-set-clipboard-data", "w32-battery-status", - "w32-default-color-map", "w32-define-rgb-color", - "w32-display-monitor-attributes-list", "w32-frame-menu-bar-size", - "w32-frame-rect", "w32-get-clipboard-data", - "w32-get-codepage-charset", "w32-get-console-codepage", - "w32-get-console-output-codepage", "w32-get-current-locale-id", - "w32-get-default-locale-id", "w32-get-keyboard-layout", - "w32-get-locale-info", "w32-get-valid-codepages", - "w32-get-valid-keyboard-layouts", "w32-get-valid-locale-ids", - "w32-has-winsock", "w32-long-file-name", "w32-reconstruct-hot-key", - "w32-register-hot-key", "w32-registered-hot-keys", - "w32-selection-exists-p", "w32-send-sys-command", - "w32-set-clipboard-data", "w32-set-console-codepage", - "w32-set-console-output-codepage", "w32-set-current-locale", - "w32-set-keyboard-layout", "w32-set-process-priority", - "w32-shell-execute", "w32-short-file-name", "w32-toggle-lock-key", - "w32-unload-winsock", "w32-unregister-hot-key", "w32-window-exists-p", - "w32notify-add-watch", "w32notify-rm-watch", - "waiting-for-user-input-p", "where-is-internal", "widen", - "widget-apply", "widget-get", "widget-put", - "window-absolute-pixel-edges", "window-at", "window-body-height", - "window-body-width", "window-bottom-divider-width", "window-buffer", - "window-combination-limit", "window-configuration-frame", - "window-configuration-p", "window-dedicated-p", - "window-display-table", "window-edges", "window-end", "window-frame", - "window-fringes", "window-header-line-height", "window-hscroll", - "window-inside-absolute-pixel-edges", "window-inside-edges", - "window-inside-pixel-edges", "window-left-child", - "window-left-column", "window-line-height", "window-list", - "window-list-1", "window-live-p", "window-margins", - "window-minibuffer-p", "window-mode-line-height", "window-new-normal", - "window-new-pixel", "window-new-total", "window-next-buffers", - "window-next-sibling", "window-normal-size", "window-old-point", - "window-parameter", "window-parameters", "window-parent", - "window-pixel-edges", "window-pixel-height", "window-pixel-left", - "window-pixel-top", "window-pixel-width", "window-point", - "window-prev-buffers", "window-prev-sibling", - "window-redisplay-end-trigger", "window-resize-apply", - "window-resize-apply-total", "window-right-divider-width", - "window-scroll-bar-height", "window-scroll-bar-width", - "window-scroll-bars", "window-start", "window-system", - "window-text-height", "window-text-pixel-size", "window-text-width", - "window-top-child", "window-top-line", "window-total-height", - "window-total-width", "window-use-time", "window-valid-p", - "window-vscroll", "windowp", "write-char", "write-region", - "x-backspace-delete-keys-p", "x-change-window-property", - "x-change-window-property", "x-close-connection", - "x-close-connection", "x-create-frame", "x-create-frame", - "x-delete-window-property", "x-delete-window-property", - "x-disown-selection-internal", "x-display-backing-store", - "x-display-backing-store", "x-display-color-cells", - "x-display-color-cells", "x-display-grayscale-p", - "x-display-grayscale-p", "x-display-list", "x-display-list", - "x-display-mm-height", "x-display-mm-height", "x-display-mm-width", - "x-display-mm-width", "x-display-monitor-attributes-list", - "x-display-pixel-height", "x-display-pixel-height", - "x-display-pixel-width", "x-display-pixel-width", "x-display-planes", - "x-display-planes", "x-display-save-under", "x-display-save-under", - "x-display-screens", "x-display-screens", "x-display-visual-class", - "x-display-visual-class", "x-family-fonts", "x-file-dialog", - "x-file-dialog", "x-file-dialog", "x-focus-frame", "x-frame-geometry", - "x-frame-geometry", "x-get-atom-name", "x-get-resource", - "x-get-selection-internal", "x-hide-tip", "x-hide-tip", - "x-list-fonts", "x-load-color-file", "x-menu-bar-open-internal", - "x-menu-bar-open-internal", "x-open-connection", "x-open-connection", - "x-own-selection-internal", "x-parse-geometry", "x-popup-dialog", - "x-popup-menu", "x-register-dnd-atom", "x-select-font", - "x-select-font", "x-selection-exists-p", "x-selection-owner-p", - "x-send-client-message", "x-server-max-request-size", - "x-server-max-request-size", "x-server-vendor", "x-server-vendor", - "x-server-version", "x-server-version", "x-show-tip", "x-show-tip", - "x-synchronize", "x-synchronize", "x-uses-old-gtk-dialog", - "x-window-property", "x-window-property", "x-wm-set-size-hint", - "xw-color-defined-p", "xw-color-defined-p", "xw-color-values", - "xw-color-values", "xw-display-color-p", "xw-display-color-p", - "yes-or-no-p", "zlib-available-p", "zlib-decompress-region", - "forward-point", - } - - emacsBuiltinFunctionHighlighted = []string{ - "defvaralias", "provide", "require", - "with-no-warnings", "define-widget", "with-electric-help", - "throw", "defalias", "featurep", - } - - emacsLambdaListKeywords = []string{ - "&allow-other-keys", "&aux", "&body", "&environment", "&key", "&optional", - "&rest", "&whole", - } - - emacsErrorKeywords = []string{ - "cl-assert", "cl-check-type", "error", "signal", - "user-error", "warn", - } -) - -// EmacsLisp lexer. -var EmacsLisp = internal.Register(TypeRemappingLexer(MustNewLexer( - &Config{ - Name: "EmacsLisp", - Aliases: []string{"emacs", "elisp", "emacs-lisp"}, - Filenames: []string{"*.el"}, - MimeTypes: []string{"text/x-elisp", "application/x-elisp"}, - }, - Rules{ - "root": { - Default(Push("body")), - }, - "body": { - {`\s+`, Text, nil}, - {`;.*$`, CommentSingle, nil}, - {`"`, LiteralString, Push("string")}, - {`\?([^\\]|\\.)`, LiteralStringChar, nil}, - {`:((?:\\.|[\w!$%&*+-/<=>?@^{}~|])(?:\\.|[\w!$%&*+-/<=>?@^{}~|]|[#.:])*)`, NameBuiltin, nil}, - {`::((?:\\.|[\w!$%&*+-/<=>?@^{}~|])(?:\\.|[\w!$%&*+-/<=>?@^{}~|]|[#.:])*)`, LiteralStringSymbol, nil}, - {`'((?:\\.|[\w!$%&*+-/<=>?@^{}~|])(?:\\.|[\w!$%&*+-/<=>?@^{}~|]|[#.:])*)`, LiteralStringSymbol, nil}, - {`'`, Operator, nil}, - {"`", Operator, nil}, - {"[-+]?\\d+\\.?(?=[ \"()\\]\\'\\n,;`])", LiteralNumberInteger, nil}, - {"[-+]?\\d+/\\d+(?=[ \"()\\]\\'\\n,;`])", LiteralNumber, nil}, - {"[-+]?(\\d*\\.\\d+([defls][-+]?\\d+)?|\\d+(\\.\\d*)?[defls][-+]?\\d+)(?=[ \"()\\]\\'\\n,;`])", LiteralNumberFloat, nil}, - {`\[|\]`, Punctuation, nil}, - {`#:((?:\\.|[\w!$%&*+-/<=>?@^{}~|])(?:\\.|[\w!$%&*+-/<=>?@^{}~|]|[#.:])*)`, LiteralStringSymbol, nil}, - {`#\^\^?`, Operator, nil}, - {`#\'`, NameFunction, nil}, - {`#[bB][+-]?[01]+(/[01]+)?`, LiteralNumberBin, nil}, - {`#[oO][+-]?[0-7]+(/[0-7]+)?`, LiteralNumberOct, nil}, - {`#[xX][+-]?[0-9a-fA-F]+(/[0-9a-fA-F]+)?`, LiteralNumberHex, nil}, - {`#\d+r[+-]?[0-9a-zA-Z]+(/[0-9a-zA-Z]+)?`, LiteralNumber, nil}, - {`#\d+=`, Operator, nil}, - {`#\d+#`, Operator, nil}, - {`(,@|,|\.|:)`, Operator, nil}, - {"(t|nil)(?=[ \"()\\]\\'\\n,;`])", NameConstant, nil}, - {`\*((?:\\.|[\w!$%&*+-/<=>?@^{}~|])(?:\\.|[\w!$%&*+-/<=>?@^{}~|]|[#.:])*)\*`, NameVariableGlobal, nil}, - {`((?:\\.|[\w!$%&*+-/<=>?@^{}~|])(?:\\.|[\w!$%&*+-/<=>?@^{}~|]|[#.:])*)`, NameVariable, nil}, - {`#\(`, Operator, Push("body")}, - {`\(`, Punctuation, Push("body")}, - {`\)`, Punctuation, Pop(1)}, - }, - "string": { - {"[^\"\\\\`]+", LiteralString, nil}, - {"`((?:\\\\.|[\\w!$%&*+-/<=>?@^{}~|])(?:\\\\.|[\\w!$%&*+-/<=>?@^{}~|]|[#.:])*)\\'", LiteralStringSymbol, nil}, - {"`", LiteralString, nil}, - {`\\.`, LiteralString, nil}, - {`\\\n`, LiteralString, nil}, - {`"`, LiteralString, Pop(1)}, - }, - }, -), TypeMapping{ - {NameVariable, NameFunction, emacsBuiltinFunction}, - {NameVariable, NameBuiltin, emacsSpecialForms}, - {NameVariable, NameException, emacsErrorKeywords}, - {NameVariable, NameBuiltin, append(emacsBuiltinFunctionHighlighted, emacsMacros...)}, - {NameVariable, KeywordPseudo, emacsLambdaListKeywords}, -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/erlang.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/erlang.go deleted file mode 100644 index 63cd59a415..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/e/erlang.go +++ /dev/null @@ -1,66 +0,0 @@ -package e - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Erlang lexer. -var Erlang = internal.Register(MustNewLexer( - &Config{ - Name: "Erlang", - Aliases: []string{"erlang"}, - Filenames: []string{"*.erl", "*.hrl", "*.es", "*.escript"}, - MimeTypes: []string{"text/x-erlang"}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`%.*\n`, Comment, nil}, - {Words(``, `\b`, `after`, `begin`, `case`, `catch`, `cond`, `end`, `fun`, `if`, `let`, `of`, `query`, `receive`, `try`, `when`), Keyword, nil}, - {Words(``, `\b`, `abs`, `append_element`, `apply`, `atom_to_list`, `binary_to_list`, `bitstring_to_list`, `binary_to_term`, `bit_size`, `bump_reductions`, `byte_size`, `cancel_timer`, `check_process_code`, `delete_module`, `demonitor`, `disconnect_node`, `display`, `element`, `erase`, `exit`, `float`, `float_to_list`, `fun_info`, `fun_to_list`, `function_exported`, `garbage_collect`, `get`, `get_keys`, `group_leader`, `hash`, `hd`, `integer_to_list`, `iolist_to_binary`, `iolist_size`, `is_atom`, `is_binary`, `is_bitstring`, `is_boolean`, `is_builtin`, `is_float`, `is_function`, `is_integer`, `is_list`, `is_number`, `is_pid`, `is_port`, `is_process_alive`, `is_record`, `is_reference`, `is_tuple`, `length`, `link`, `list_to_atom`, `list_to_binary`, `list_to_bitstring`, `list_to_existing_atom`, `list_to_float`, `list_to_integer`, `list_to_pid`, `list_to_tuple`, `load_module`, `localtime_to_universaltime`, `make_tuple`, `md5`, `md5_final`, `md5_update`, `memory`, `module_loaded`, `monitor`, `monitor_node`, `node`, `nodes`, `open_port`, `phash`, `phash2`, `pid_to_list`, `port_close`, `port_command`, `port_connect`, `port_control`, `port_call`, `port_info`, `port_to_list`, `process_display`, `process_flag`, `process_info`, `purge_module`, `put`, `read_timer`, `ref_to_list`, `register`, `resume_process`, `round`, `send`, `send_after`, `send_nosuspend`, `set_cookie`, `setelement`, `size`, `spawn`, `spawn_link`, `spawn_monitor`, `spawn_opt`, `split_binary`, `start_timer`, `statistics`, `suspend_process`, `system_flag`, `system_info`, `system_monitor`, `system_profile`, `term_to_binary`, `tl`, `trace`, `trace_delivered`, `trace_info`, `trace_pattern`, `trunc`, `tuple_size`, `tuple_to_list`, `universaltime_to_localtime`, `unlink`, `unregister`, `whereis`), NameBuiltin, nil}, - {Words(``, `\b`, `and`, `andalso`, `band`, `bnot`, `bor`, `bsl`, `bsr`, `bxor`, `div`, `not`, `or`, `orelse`, `rem`, `xor`), OperatorWord, nil}, - {`^-`, Punctuation, Push("directive")}, - {`(\+\+?|--?|\*|/|<|>|/=|=:=|=/=|=<|>=|==?|<-|!|\?)`, Operator, nil}, - {`"`, LiteralString, Push("string")}, - {`<<`, NameLabel, nil}, - {`>>`, NameLabel, nil}, - {`((?:[a-z]\w*|'[^\n']*[^\\]'))(:)`, ByGroups(NameNamespace, Punctuation), nil}, - {`(?:^|(?<=:))((?:[a-z]\w*|'[^\n']*[^\\]'))(\s*)(\()`, ByGroups(NameFunction, Text, Punctuation), nil}, - {`[+-]?(?:[2-9]|[12][0-9]|3[0-6])#[0-9a-zA-Z]+`, LiteralNumberInteger, nil}, - {`[+-]?\d+`, LiteralNumberInteger, nil}, - {`[+-]?\d+.\d+`, LiteralNumberFloat, nil}, - {`[]\[:_@\".{}()|;,]`, Punctuation, nil}, - {`(?:[A-Z_]\w*)`, NameVariable, nil}, - {`(?:[a-z]\w*|'[^\n']*[^\\]')`, Name, nil}, - {`\?(?:(?:[A-Z_]\w*)|(?:[a-z]\w*|'[^\n']*[^\\]'))`, NameConstant, nil}, - {`\$(?:(?:\\(?:[bdefnrstv\'"\\]|[0-7][0-7]?[0-7]?|(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})|\^[a-zA-Z]))|\\[ %]|[^\\])`, LiteralStringChar, nil}, - {`#(?:[a-z]\w*|'[^\n']*[^\\]')(:?\.(?:[a-z]\w*|'[^\n']*[^\\]'))?`, NameLabel, nil}, - {`\A#!.+\n`, CommentHashbang, nil}, - {`#\{`, Punctuation, Push("map_key")}, - }, - "string": { - {`(?:\\(?:[bdefnrstv\'"\\]|[0-7][0-7]?[0-7]?|(?:x[0-9a-fA-F]{2}|x\{[0-9a-fA-F]+\})|\^[a-zA-Z]))`, LiteralStringEscape, nil}, - {`"`, LiteralString, Pop(1)}, - {`~[0-9.*]*[~#+BPWXb-ginpswx]`, LiteralStringInterpol, nil}, - {`[^"\\~]+`, LiteralString, nil}, - {`~`, LiteralString, nil}, - }, - "directive": { - {`(define)(\s*)(\()((?:(?:[A-Z_]\w*)|(?:[a-z]\w*|'[^\n']*[^\\]')))`, ByGroups(NameEntity, Text, Punctuation, NameConstant), Pop(1)}, - {`(record)(\s*)(\()((?:(?:[A-Z_]\w*)|(?:[a-z]\w*|'[^\n']*[^\\]')))`, ByGroups(NameEntity, Text, Punctuation, NameLabel), Pop(1)}, - {`(?:[a-z]\w*|'[^\n']*[^\\]')`, NameEntity, Pop(1)}, - }, - "map_key": { - Include("root"), - {`=>`, Punctuation, Push("map_val")}, - {`:=`, Punctuation, Push("map_val")}, - {`\}`, Punctuation, Pop(1)}, - }, - "map_val": { - Include("root"), - {`,`, Punctuation, Pop(1)}, - {`(?=\})`, Punctuation, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/factor.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/factor.go deleted file mode 100644 index 26c0d5624c..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/factor.go +++ /dev/null @@ -1,115 +0,0 @@ -package f - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Factor lexer. -var Factor = internal.Register(MustNewLexer( - &Config{ - Name: "Factor", - Aliases: []string{"factor"}, - Filenames: []string{"*.factor"}, - MimeTypes: []string{"text/x-factor"}, - }, - Rules{ - "root": { - {`#!.*$`, CommentPreproc, nil}, - Default(Push("base")), - }, - "base": { - {`\s+`, Text, nil}, - {`((?:MACRO|MEMO|TYPED)?:[:]?)(\s+)(\S+)`, ByGroups(Keyword, Text, NameFunction), nil}, - {`(M:[:]?)(\s+)(\S+)(\s+)(\S+)`, ByGroups(Keyword, Text, NameClass, Text, NameFunction), nil}, - {`(C:)(\s+)(\S+)(\s+)(\S+)`, ByGroups(Keyword, Text, NameFunction, Text, NameClass), nil}, - {`(GENERIC:)(\s+)(\S+)`, ByGroups(Keyword, Text, NameFunction), nil}, - {`(HOOK:|GENERIC#)(\s+)(\S+)(\s+)(\S+)`, ByGroups(Keyword, Text, NameFunction, Text, NameFunction), nil}, - {`\(\s`, NameFunction, Push("stackeffect")}, - {`;\s`, Keyword, nil}, - {`(USING:)(\s+)`, ByGroups(KeywordNamespace, Text), Push("vocabs")}, - {`(USE:|UNUSE:|IN:|QUALIFIED:)(\s+)(\S+)`, ByGroups(KeywordNamespace, Text, NameNamespace), nil}, - {`(QUALIFIED-WITH:)(\s+)(\S+)(\s+)(\S+)`, ByGroups(KeywordNamespace, Text, NameNamespace, Text, NameNamespace), nil}, - {`(FROM:|EXCLUDE:)(\s+)(\S+)(\s+=>\s)`, ByGroups(KeywordNamespace, Text, NameNamespace, Text), Push("words")}, - {`(RENAME:)(\s+)(\S+)(\s+)(\S+)(\s+=>\s+)(\S+)`, ByGroups(KeywordNamespace, Text, NameFunction, Text, NameNamespace, Text, NameFunction), nil}, - {`(ALIAS:|TYPEDEF:)(\s+)(\S+)(\s+)(\S+)`, ByGroups(KeywordNamespace, Text, NameFunction, Text, NameFunction), nil}, - {`(DEFER:|FORGET:|POSTPONE:)(\s+)(\S+)`, ByGroups(KeywordNamespace, Text, NameFunction), nil}, - {`(TUPLE:|ERROR:)(\s+)(\S+)(\s+<\s+)(\S+)`, ByGroups(Keyword, Text, NameClass, Text, NameClass), Push("slots")}, - {`(TUPLE:|ERROR:|BUILTIN:)(\s+)(\S+)`, ByGroups(Keyword, Text, NameClass), Push("slots")}, - {`(MIXIN:|UNION:|INTERSECTION:)(\s+)(\S+)`, ByGroups(Keyword, Text, NameClass), nil}, - {`(PREDICATE:)(\s+)(\S+)(\s+<\s+)(\S+)`, ByGroups(Keyword, Text, NameClass, Text, NameClass), nil}, - {`(C:)(\s+)(\S+)(\s+)(\S+)`, ByGroups(Keyword, Text, NameFunction, Text, NameClass), nil}, - {`(INSTANCE:)(\s+)(\S+)(\s+)(\S+)`, ByGroups(Keyword, Text, NameClass, Text, NameClass), nil}, - {`(SLOT:)(\s+)(\S+)`, ByGroups(Keyword, Text, NameFunction), nil}, - {`(SINGLETON:)(\s+)(\S+)`, ByGroups(Keyword, Text, NameClass), nil}, - {`SINGLETONS:`, Keyword, Push("classes")}, - {`(CONSTANT:|SYMBOL:|MAIN:|HELP:)(\s+)(\S+)`, ByGroups(Keyword, Text, NameFunction), nil}, - {`SYMBOLS:\s`, Keyword, Push("words")}, - {`SYNTAX:\s`, Keyword, nil}, - {`ALIEN:\s`, Keyword, nil}, - {`(STRUCT:)(\s+)(\S+)`, ByGroups(Keyword, Text, NameClass), nil}, - {`(FUNCTION:)(\s+\S+\s+)(\S+)(\s+\(\s+[^)]+\)\s)`, ByGroups(KeywordNamespace, Text, NameFunction, Text), nil}, - {`(FUNCTION-ALIAS:)(\s+)(\S+)(\s+\S+\s+)(\S+)(\s+\(\s+[^)]+\)\s)`, ByGroups(KeywordNamespace, Text, NameFunction, Text, NameFunction, Text), nil}, - {`(?:)\s`, KeywordNamespace, nil}, - {`"""\s+(?:.|\n)*?\s+"""`, LiteralString, nil}, - {`"(?:\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`\S+"\s+(?:\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`CHAR:\s+(?:\\[\\abfnrstv]|[^\\]\S*)\s`, LiteralStringChar, nil}, - {`!\s+.*$`, Comment, nil}, - {`#!\s+.*$`, Comment, nil}, - {`/\*\s+(?:.|\n)*?\s\*/\s`, Comment, nil}, - {`[tf]\s`, NameConstant, nil}, - {`[\\$]\s+\S+`, NameConstant, nil}, - {`M\\\s+\S+\s+\S+`, NameConstant, nil}, - {`[+-]?(?:[\d,]*\d)?\.(?:\d([\d,]*\d)?)?(?:[eE][+-]?\d+)?\s`, LiteralNumber, nil}, - {`[+-]?\d(?:[\d,]*\d)?(?:[eE][+-]?\d+)?\s`, LiteralNumber, nil}, - {`0x[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s`, LiteralNumber, nil}, - {`NAN:\s+[a-fA-F\d](?:[a-fA-F\d,]*[a-fA-F\d])?(?:p\d([\d,]*\d)?)?\s`, LiteralNumber, nil}, - {`0b[01]+\s`, LiteralNumberBin, nil}, - {`0o[0-7]+\s`, LiteralNumberOct, nil}, - {`(?:\d([\d,]*\d)?)?\+\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s`, LiteralNumber, nil}, - {`(?:\-\d([\d,]*\d)?)?\-\d(?:[\d,]*\d)?/\d(?:[\d,]*\d)?\s`, LiteralNumber, nil}, - {`(?:deprecated|final|foldable|flushable|inline|recursive)\s`, Keyword, nil}, - {Words(``, `\s`, `-rot`, `2bi`, `2bi@`, `2bi*`, `2curry`, `2dip`, `2drop`, `2dup`, `2keep`, `2nip`, `2over`, `2tri`, `2tri@`, `2tri*`, `3bi`, `3curry`, `3dip`, `3drop`, `3dup`, `3keep`, `3tri`, `4dip`, `4drop`, `4dup`, `4keep`, ``, `=`, `>boolean`, `clone`, `?`, `?execute`, `?if`, `and`, `assert`, `assert=`, `assert?`, `bi`, `bi-curry`, `bi-curry@`, `bi-curry*`, `bi@`, `bi*`, `boa`, `boolean`, `boolean?`, `both?`, `build`, `call`, `callstack`, `callstack>array`, `callstack?`, `clear`, `(clone)`, `compose`, `compose?`, `curry`, `curry?`, `datastack`, `die`, `dip`, `do`, `drop`, `dup`, `dupd`, `either?`, `eq?`, `equal?`, `execute`, `hashcode`, `hashcode*`, `identity-hashcode`, `identity-tuple`, `identity-tuple?`, `if`, `if*`, `keep`, `loop`, `most`, `new`, `nip`, `not`, `null`, `object`, `or`, `over`, `pick`, `prepose`, `retainstack`, `rot`, `same?`, `swap`, `swapd`, `throw`, `tri`, `tri-curry`, `tri-curry@`, `tri-curry*`, `tri@`, `tri*`, `tuple`, `tuple?`, `unless`, `unless*`, `until`, `when`, `when*`, `while`, `with`, `wrapper`, `wrapper?`, `xor`), NameBuiltin, nil}, - {Words(``, `\s`, `2cache`, ``, `>alist`, `?at`, `?of`, `assoc`, `assoc-all?`, `assoc-any?`, `assoc-clone-like`, `assoc-combine`, `assoc-diff`, `assoc-diff!`, `assoc-differ`, `assoc-each`, `assoc-empty?`, `assoc-filter`, `assoc-filter!`, `assoc-filter-as`, `assoc-find`, `assoc-hashcode`, `assoc-intersect`, `assoc-like`, `assoc-map`, `assoc-map-as`, `assoc-partition`, `assoc-refine`, `assoc-size`, `assoc-stack`, `assoc-subset?`, `assoc-union`, `assoc-union!`, `assoc=`, `assoc>map`, `assoc?`, `at`, `at+`, `at*`, `cache`, `change-at`, `clear-assoc`, `delete-at`, `delete-at*`, `enum`, `enum?`, `extract-keys`, `inc-at`, `key?`, `keys`, `map>assoc`, `maybe-set-at`, `new-assoc`, `of`, `push-at`, `rename-at`, `set-at`, `sift-keys`, `sift-values`, `substitute`, `unzip`, `value-at`, `value-at*`, `value?`, `values`, `zip`), NameBuiltin, nil}, - {Words(``, `\s`, `2cleave`, `2cleave>quot`, `3cleave`, `3cleave>quot`, `4cleave`, `4cleave>quot`, `alist>quot`, `call-effect`, `case`, `case-find`, `case>quot`, `cleave`, `cleave>quot`, `cond`, `cond>quot`, `deep-spread>quot`, `execute-effect`, `linear-case-quot`, `no-case`, `no-case?`, `no-cond`, `no-cond?`, `recursive-hashcode`, `shallow-spread>quot`, `spread`, `to-fixed-point`, `wrong-values`, `wrong-values?`), NameBuiltin, nil}, - {Words(``, `\s`, `-`, `/`, `/f`, `/i`, `/mod`, `2/`, `2^`, `<`, `<=`, ``, `>`, `>=`, `>bignum`, `>fixnum`, `>float`, `>integer`, `(all-integers?)`, `(each-integer)`, `(find-integer)`, `*`, `+`, `?1+`, `abs`, `align`, `all-integers?`, `bignum`, `bignum?`, `bit?`, `bitand`, `bitnot`, `bitor`, `bits>double`, `bits>float`, `bitxor`, `complex`, `complex?`, `denominator`, `double>bits`, `each-integer`, `even?`, `find-integer`, `find-last-integer`, `fixnum`, `fixnum?`, `float`, `float>bits`, `float?`, `fp-bitwise=`, `fp-infinity?`, `fp-nan-payload`, `fp-nan?`, `fp-qnan?`, `fp-sign`, `fp-snan?`, `fp-special?`, `if-zero`, `imaginary-part`, `integer`, `integer>fixnum`, `integer>fixnum-strict`, `integer?`, `log2`, `log2-expects-positive`, `log2-expects-positive?`, `mod`, `neg`, `neg?`, `next-float`, `next-power-of-2`, `number`, `number=`, `number?`, `numerator`, `odd?`, `out-of-fixnum-range`, `out-of-fixnum-range?`, `power-of-2?`, `prev-float`, `ratio`, `ratio?`, `rational`, `rational?`, `real`, `real-part`, `real?`, `recip`, `rem`, `sgn`, `shift`, `sq`, `times`, `u<`, `u<=`, `u>`, `u>=`, `unless-zero`, `unordered?`, `when-zero`, `zero?`), NameBuiltin, nil}, - {Words(``, `\s`, `1sequence`, `2all?`, `2each`, `2map`, `2map-as`, `2map-reduce`, `2reduce`, `2selector`, `2sequence`, `3append`, `3append-as`, `3each`, `3map`, `3map-as`, `3sequence`, `4sequence`, ``, ``, ``, `?first`, `?last`, `?nth`, `?second`, `?set-nth`, `accumulate`, `accumulate!`, `accumulate-as`, `all?`, `any?`, `append`, `append!`, `append-as`, `assert-sequence`, `assert-sequence=`, `assert-sequence?`, `binary-reduce`, `bounds-check`, `bounds-check?`, `bounds-error`, `bounds-error?`, `but-last`, `but-last-slice`, `cartesian-each`, `cartesian-map`, `cartesian-product`, `change-nth`, `check-slice`, `check-slice-error`, `clone-like`, `collapse-slice`, `collector`, `collector-for`, `concat`, `concat-as`, `copy`, `count`, `cut`, `cut-slice`, `cut*`, `delete-all`, `delete-slice`, `drop-prefix`, `each`, `each-from`, `each-index`, `empty?`, `exchange`, `filter`, `filter!`, `filter-as`, `find`, `find-from`, `find-index`, `find-index-from`, `find-last`, `find-last-from`, `first`, `first2`, `first3`, `first4`, `flip`, `follow`, `fourth`, `glue`, `halves`, `harvest`, `head`, `head-slice`, `head-slice*`, `head*`, `head?`, `if-empty`, `immutable`, `immutable-sequence`, `immutable-sequence?`, `immutable?`, `index`, `index-from`, `indices`, `infimum`, `infimum-by`, `insert-nth`, `interleave`, `iota`, `iota-tuple`, `iota-tuple?`, `join`, `join-as`, `last`, `last-index`, `last-index-from`, `length`, `lengthen`, `like`, `longer`, `longer?`, `longest`, `map`, `map!`, `map-as`, `map-find`, `map-find-last`, `map-index`, `map-integers`, `map-reduce`, `map-sum`, `max-length`, `member-eq?`, `member?`, `midpoint@`, `min-length`, `mismatch`, `move`, `new-like`, `new-resizable`, `new-sequence`, `non-negative-integer-expected`, `non-negative-integer-expected?`, `nth`, `nths`, `pad-head`, `pad-tail`, `padding`, `partition`, `pop`, `pop*`, `prefix`, `prepend`, `prepend-as`, `produce`, `produce-as`, `product`, `push`, `push-all`, `push-either`, `push-if`, `reduce`, `reduce-index`, `remove`, `remove!`, `remove-eq`, `remove-eq!`, `remove-nth`, `remove-nth!`, `repetition`, `repetition?`, `replace-slice`, `replicate`, `replicate-as`, `rest`, `rest-slice`, `reverse`, `reverse!`, `reversed`, `reversed?`, `second`, `selector`, `selector-for`, `sequence`, `sequence-hashcode`, `sequence=`, `sequence?`, `set-first`, `set-fourth`, `set-last`, `set-length`, `set-nth`, `set-second`, `set-third`, `short`, `shorten`, `shorter`, `shorter?`, `shortest`, `sift`, `slice`, `slice-error`, `slice-error?`, `slice?`, `snip`, `snip-slice`, `start`, `start*`, `subseq`, `subseq?`, `suffix`, `suffix!`, `sum`, `sum-lengths`, `supremum`, `supremum-by`, `surround`, `tail`, `tail-slice`, `tail-slice*`, `tail*`, `tail?`, `third`, `trim`, `trim-head`, `trim-head-slice`, `trim-slice`, `trim-tail`, `trim-tail-slice`, `unclip`, `unclip-last`, `unclip-last-slice`, `unclip-slice`, `unless-empty`, `virtual-exemplar`, `virtual-sequence`, `virtual-sequence?`, `virtual@`, `when-empty`), NameBuiltin, nil}, - {Words(``, `\s`, `+@`, `change`, `change-global`, `counter`, `dec`, `get`, `get-global`, `global`, `inc`, `init-namespaces`, `initialize`, `is-global`, `make-assoc`, `namespace`, `namestack`, `off`, `on`, `set`, `set-global`, `set-namestack`, `toggle`, `with-global`, `with-scope`, `with-variable`, `with-variables`), NameBuiltin, nil}, - {Words(``, `\s`, `1array`, `2array`, `3array`, `4array`, ``, `>array`, `array`, `array?`, `pair`, `pair?`, `resize-array`), NameBuiltin, nil}, - {Words(``, `\s`, `(each-stream-block-slice)`, `(each-stream-block)`, `(stream-contents-by-block)`, `(stream-contents-by-element)`, `(stream-contents-by-length-or-block)`, `(stream-contents-by-length)`, `+byte+`, `+character+`, `bad-seek-type`, `bad-seek-type?`, `bl`, `contents`, `each-block`, `each-block-size`, `each-block-slice`, `each-line`, `each-morsel`, `each-stream-block`, `each-stream-block-slice`, `each-stream-line`, `error-stream`, `flush`, `input-stream`, `input-stream?`, `invalid-read-buffer`, `invalid-read-buffer?`, `lines`, `nl`, `output-stream`, `output-stream?`, `print`, `read`, `read-into`, `read-partial`, `read-partial-into`, `read-until`, `read1`, `readln`, `seek-absolute`, `seek-absolute?`, `seek-end`, `seek-end?`, `seek-input`, `seek-output`, `seek-relative`, `seek-relative?`, `stream-bl`, `stream-contents`, `stream-contents*`, `stream-copy`, `stream-copy*`, `stream-element-type`, `stream-flush`, `stream-length`, `stream-lines`, `stream-nl`, `stream-print`, `stream-read`, `stream-read-into`, `stream-read-partial`, `stream-read-partial-into`, `stream-read-partial-unsafe`, `stream-read-unsafe`, `stream-read-until`, `stream-read1`, `stream-readln`, `stream-seek`, `stream-seekable?`, `stream-tell`, `stream-write`, `stream-write1`, `tell-input`, `tell-output`, `with-error-stream`, `with-error-stream*`, `with-error>output`, `with-input-output+error-streams`, `with-input-output+error-streams*`, `with-input-stream`, `with-input-stream*`, `with-output-stream`, `with-output-stream*`, `with-output>error`, `with-output+error-stream`, `with-output+error-stream*`, `with-streams`, `with-streams*`, `write`, `write1`), NameBuiltin, nil}, - {Words(``, `\s`, `1string`, ``, `>string`, `resize-string`, `string`, `string?`), NameBuiltin, nil}, - {Words(``, `\s`, `1vector`, ``, `>vector`, `?push`, `vector`, `vector?`), NameBuiltin, nil}, - {Words(``, `\s`, ``, ``, ``, `attempt-all`, `attempt-all-error`, `attempt-all-error?`, `callback-error-hook`, `callcc0`, `callcc1`, `cleanup`, `compute-restarts`, `condition`, `condition?`, `continuation`, `continuation?`, `continue`, `continue-restart`, `continue-with`, `current-continuation`, `error`, `error-continuation`, `error-in-thread`, `error-thread`, `ifcc`, `ignore-errors`, `in-callback?`, `original-error`, `recover`, `restart`, `restart?`, `restarts`, `rethrow`, `rethrow-restarts`, `return`, `return-continuation`, `thread-error-hook`, `throw-continue`, `throw-restarts`, `with-datastack`, `with-return`), NameBuiltin, nil}, - {`\S+`, Text, nil}, - }, - "stackeffect": { - {`\s+`, Text, nil}, - {`\(\s+`, NameFunction, Push("stackeffect")}, - {`\)\s`, NameFunction, Pop(1)}, - {`--\s`, NameFunction, nil}, - {`\S+`, NameVariable, nil}, - }, - "slots": { - {`\s+`, Text, nil}, - {`;\s`, Keyword, Pop(1)}, - {`(\{\s+)(\S+)(\s+[^}]+\s+\}\s)`, ByGroups(Text, NameVariable, Text), nil}, - {`\S+`, NameVariable, nil}, - }, - "vocabs": { - {`\s+`, Text, nil}, - {`;\s`, Keyword, Pop(1)}, - {`\S+`, NameNamespace, nil}, - }, - "classes": { - {`\s+`, Text, nil}, - {`;\s`, Keyword, Pop(1)}, - {`\S+`, NameClass, nil}, - }, - "words": { - {`\s+`, Text, nil}, - {`;\s`, Keyword, Pop(1)}, - {`\S+`, NameFunction, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fish.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fish.go deleted file mode 100644 index 185fc92b52..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fish.go +++ /dev/null @@ -1,65 +0,0 @@ -package f - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Fish lexer. -var Fish = internal.Register(MustNewLexer( - &Config{ - Name: "Fish", - Aliases: []string{"fish", "fishshell"}, - Filenames: []string{"*.fish", "*.load"}, - MimeTypes: []string{"application/x-fish"}, - }, - Rules{ - "root": { - Include("basic"), - Include("data"), - Include("interp"), - }, - "interp": { - {`\$\(\(`, Keyword, Push("math")}, - {`\(`, Keyword, Push("paren")}, - {`\$#?(\w+|.)`, NameVariable, nil}, - }, - "basic": { - {`\b(begin|end|if|else|while|break|for|in|return|function|block|case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|cd|count|test)(\s*)\b`, ByGroups(Keyword, Text), nil}, - {`\b(alias|bg|bind|breakpoint|builtin|command|commandline|complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|fish_indent|fish_pager|fish_prompt|fish_right_prompt|fish_update_completions|fishd|funced|funcsave|functions|help|history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|pushd|random|read|set_color|source|status|trap|type|ulimit|umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)`, NameBuiltin, nil}, - {`#.*\n`, Comment, nil}, - {`\\[\w\W]`, LiteralStringEscape, nil}, - {`(\b\w+)(\s*)(=)`, ByGroups(NameVariable, Text, Operator), nil}, - {`[\[\]()=]`, Operator, nil}, - {`<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2`, LiteralString, nil}, - }, - "data": { - {`(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Push("string")}, - {`(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'`, LiteralStringSingle, nil}, - {`(?s)'.*?'`, LiteralStringSingle, nil}, - {`;`, Punctuation, nil}, - {`&|\||\^|<|>`, Operator, nil}, - {`\s+`, Text, nil}, - {`\d+(?= |\Z)`, LiteralNumber, nil}, - {"[^=\\s\\[\\]{}()$\"\\'`\\\\<&|;]+", Text, nil}, - }, - "string": { - {`"`, LiteralStringDouble, Pop(1)}, - {`(?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+`, LiteralStringDouble, nil}, - Include("interp"), - }, - "paren": { - {`\)`, Keyword, Pop(1)}, - Include("root"), - }, - "math": { - {`\)\)`, Keyword, Pop(1)}, - {`[-+*/%^|&]|\*\*|\|\|`, Operator, nil}, - {`\d+#\d+`, LiteralNumber, nil}, - {`\d+#(?! )`, LiteralNumber, nil}, - {`\d+`, LiteralNumber, nil}, - Include("root"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/forth.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/forth.go deleted file mode 100644 index 47de6365f2..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/forth.go +++ /dev/null @@ -1,40 +0,0 @@ -package f - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Forth lexer. -var Forth = internal.Register(MustNewLexer( - &Config{ - Name: "Forth", - Aliases: []string{"forth"}, - Filenames: []string{"*.frt", "*.fth", "*.fs"}, - MimeTypes: []string{"application/x-forth"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`\\.*?\n`, CommentSingle, nil}, - {`\([\s].*?\)`, CommentSingle, nil}, - {`(:|variable|constant|value|buffer:)(\s+)`, ByGroups(KeywordNamespace, Text), Push("worddef")}, - {`([.sc]")(\s+?)`, ByGroups(LiteralString, Text), Push("stringdef")}, - {`(blk|block|buffer|evaluate|flush|load|save-buffers|update|empty-buffers|list|refill|scr|thru|\#s|\*\/mod|\+loop|\/mod|0<|0=|1\+|1-|2!|2\*|2\/|2@|2drop|2dup|2over|2swap|>body|>in|>number|>r|\?dup|abort|abort\"|abs|accept|align|aligned|allot|and|base|begin|bl|c!|c,|c@|cell\+|cells|char|char\+|chars|constant|count|cr|create|decimal|depth|do|does>|drop|dup|else|emit|environment\?|evaluate|execute|exit|fill|find|fm\/mod|here|hold|i|if|immediate|invert|j|key|leave|literal|loop|lshift|m\*|max|min|mod|move|negate|or|over|postpone|quit|r>|r@|recurse|repeat|rot|rshift|s\"|s>d|sign|sm\/rem|source|space|spaces|state|swap|then|type|u\.|u\<|um\*|um\/mod|unloop|until|variable|while|word|xor|\[char\]|\[\'\]|@|!|\#|<\#|\#>|:|;|\+|-|\*|\/|,|<|>|\|1\+|1-|\.|\.r|0<>|0>|2>r|2r>|2r@|:noname|\?do|again|c\"|case|compile,|endcase|endof|erase|false|hex|marker|nip|of|pad|parse|pick|refill|restore-input|roll|save-input|source-id|to|true|tuck|u\.r|u>|unused|value|within|\[compile\]|\#tib|convert|expect|query|span|tib|2constant|2literal|2variable|d\+|d-|d\.|d\.r|d0<|d0=|d2\*|d2\/|d<|d=|d>s|dabs|dmax|dmin|dnegate|m\*\/|m\+|2rot|du<|catch|throw|abort|abort\"|at-xy|key\?|page|ekey|ekey>char|ekey\?|emit\?|ms|time&date|BIN|CLOSE-FILE|CREATE-FILE|DELETE-FILE|FILE-POSITION|FILE-SIZE|INCLUDE-FILE|INCLUDED|OPEN-FILE|R\/O|R\/W|READ-FILE|READ-LINE|REPOSITION-FILE|RESIZE-FILE|S\"|SOURCE-ID|W/O|WRITE-FILE|WRITE-LINE|FILE-STATUS|FLUSH-FILE|REFILL|RENAME-FILE|>float|d>f|f!|f\*|f\+|f-|f\/|f0<|f0=|f<|f>d|f@|falign|faligned|fconstant|fdepth|fdrop|fdup|fliteral|float\+|floats|floor|fmax|fmin|fnegate|fover|frot|fround|fswap|fvariable|represent|df!|df@|dfalign|dfaligned|dfloat\+|dfloats|f\*\*|f\.|fabs|facos|facosh|falog|fasin|fasinh|fatan|fatan2|fatanh|fcos|fcosh|fe\.|fexp|fexpm1|fln|flnp1|flog|fs\.|fsin|fsincos|fsinh|fsqrt|ftan|ftanh|f~|precision|set-precision|sf!|sf@|sfalign|sfaligned|sfloat\+|sfloats|\(local\)|to|locals\||allocate|free|resize|definitions|find|forth-wordlist|get-current|get-order|search-wordlist|set-current|set-order|wordlist|also|forth|only|order|previous|-trailing|\/string|blank|cmove|cmove>|compare|search|sliteral|.s|dump|see|words|;code|ahead|assembler|bye|code|cs-pick|cs-roll|editor|state|\[else\]|\[if\]|\[then\]|forget|defer|defer@|defer!|action-of|begin-structure|field:|buffer:|parse-name|buffer:|traverse-wordlist|n>r|nr>|2value|fvalue|name>interpret|name>compile|name>string|cfield:|end-structure)\s`, Keyword, nil}, - {`(\$[0-9A-F]+)`, LiteralNumberHex, nil}, - {`(\#|%|&|\-|\+)?[0-9]+`, LiteralNumberInteger, nil}, - {`(\#|%|&|\-|\+)?[0-9.]+`, KeywordType, nil}, - {`(@i|!i|@e|!e|pause|noop|turnkey|sleep|itype|icompare|sp@|sp!|rp@|rp!|up@|up!|>a|a>|a@|a!|a@+|a@-|>b|b>|b@|b!|b@+|b@-|find-name|1ms|sp0|rp0|\(evaluate\)|int-trap|int!)\s`, NameConstant, nil}, - {`(do-recognizer|r:fail|recognizer:|get-recognizers|set-recognizers|r:float|r>comp|r>int|r>post|r:name|r:word|r:dnum|r:num|recognizer|forth-recognizer|rec:num|rec:float|rec:word)\s`, NameDecorator, nil}, - {`(Evalue|Rvalue|Uvalue|Edefer|Rdefer|Udefer)(\s+)`, ByGroups(KeywordNamespace, Text), Push("worddef")}, - {`[^\s]+(?=[\s])`, NameFunction, nil}, - }, - "worddef": { - {`\S+`, NameClass, Pop(1)}, - }, - "stringdef": { - {`[^"]+`, LiteralString, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fortran.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fortran.go deleted file mode 100644 index 6c57afa6e7..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fortran.go +++ /dev/null @@ -1,47 +0,0 @@ -package f - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Fortran lexer. -var Fortran = internal.Register(MustNewLexer( - &Config{ - Name: "Fortran", - Aliases: []string{"fortran"}, - Filenames: []string{"*.f03", "*.f90", "*.F03", "*.F90"}, - MimeTypes: []string{"text/x-fortran"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`^#.*\n`, CommentPreproc, nil}, - {`!.*\n`, Comment, nil}, - Include("strings"), - Include("core"), - {`[a-z][\w$]*`, Name, nil}, - Include("nums"), - {`[\s]+`, Text, nil}, - }, - "core": { - {Words(`\b`, `\s*\b`, `ABSTRACT`, `ACCEPT`, `ALL`, `ALLSTOP`, `ALLOCATABLE`, `ALLOCATE`, `ARRAY`, `ASSIGN`, `ASSOCIATE`, `ASYNCHRONOUS`, `BACKSPACE`, `BIND`, `BLOCK`, `BLOCKDATA`, `BYTE`, `CALL`, `CASE`, `CLASS`, `CLOSE`, `CODIMENSION`, `COMMON`, `CONCURRRENT`, `CONTIGUOUS`, `CONTAINS`, `CONTINUE`, `CRITICAL`, `CYCLE`, `DATA`, `DEALLOCATE`, `DECODE`, `DEFERRED`, `DIMENSION`, `DO`, `ELEMENTAL`, `ELSE`, `ENCODE`, `END`, `ENTRY`, `ENUM`, `ENUMERATOR`, `EQUIVALENCE`, `EXIT`, `EXTENDS`, `EXTERNAL`, `EXTRINSIC`, `FILE`, `FINAL`, `FORALL`, `FORMAT`, `FUNCTION`, `GENERIC`, `GOTO`, `IF`, `IMAGES`, `IMPLICIT`, `IMPORT`, `IMPURE`, `INCLUDE`, `INQUIRE`, `INTENT`, `INTERFACE`, `INTRINSIC`, `IS`, `LOCK`, `MEMORY`, `MODULE`, `NAMELIST`, `NULLIFY`, `NONE`, `NON_INTRINSIC`, `NON_OVERRIDABLE`, `NOPASS`, `OPEN`, `OPTIONAL`, `OPTIONS`, `PARAMETER`, `PASS`, `PAUSE`, `POINTER`, `PRINT`, `PRIVATE`, `PROGRAM`, `PROCEDURE`, `PROTECTED`, `PUBLIC`, `PURE`, `READ`, `RECURSIVE`, `RESULT`, `RETURN`, `REWIND`, `SAVE`, `SELECT`, `SEQUENCE`, `STOP`, `SUBMODULE`, `SUBROUTINE`, `SYNC`, `SYNCALL`, `SYNCIMAGES`, `SYNCMEMORY`, `TARGET`, `THEN`, `TYPE`, `UNLOCK`, `USE`, `VALUE`, `VOLATILE`, `WHERE`, `WRITE`, `WHILE`), Keyword, nil}, - {Words(`\b`, `\s*\b`, `CHARACTER`, `COMPLEX`, `DOUBLE PRECISION`, `DOUBLE COMPLEX`, `INTEGER`, `LOGICAL`, `REAL`, `C_INT`, `C_SHORT`, `C_LONG`, `C_LONG_LONG`, `C_SIGNED_CHAR`, `C_SIZE_T`, `C_INT8_T`, `C_INT16_T`, `C_INT32_T`, `C_INT64_T`, `C_INT_LEAST8_T`, `C_INT_LEAST16_T`, `C_INT_LEAST32_T`, `C_INT_LEAST64_T`, `C_INT_FAST8_T`, `C_INT_FAST16_T`, `C_INT_FAST32_T`, `C_INT_FAST64_T`, `C_INTMAX_T`, `C_INTPTR_T`, `C_FLOAT`, `C_DOUBLE`, `C_LONG_DOUBLE`, `C_FLOAT_COMPLEX`, `C_DOUBLE_COMPLEX`, `C_LONG_DOUBLE_COMPLEX`, `C_BOOL`, `C_CHAR`, `C_PTR`, `C_FUNPTR`), KeywordType, nil}, - {`(\*\*|\*|\+|-|\/|<|>|<=|>=|==|\/=|=)`, Operator, nil}, - {`(::)`, KeywordDeclaration, nil}, - {`[()\[\],:&%;.]`, Punctuation, nil}, - {Words(`\b`, `\s*\b`, `Abort`, `Abs`, `Access`, `AChar`, `ACos`, `ACosH`, `AdjustL`, `AdjustR`, `AImag`, `AInt`, `Alarm`, `All`, `Allocated`, `ALog`, `AMax`, `AMin`, `AMod`, `And`, `ANInt`, `Any`, `ASin`, `ASinH`, `Associated`, `ATan`, `ATanH`, `Atomic_Define`, `Atomic_Ref`, `BesJ`, `BesJN`, `Bessel_J0`, `Bessel_J1`, `Bessel_JN`, `Bessel_Y0`, `Bessel_Y1`, `Bessel_YN`, `BesY`, `BesYN`, `BGE`, `BGT`, `BLE`, `BLT`, `Bit_Size`, `BTest`, `CAbs`, `CCos`, `Ceiling`, `CExp`, `Char`, `ChDir`, `ChMod`, `CLog`, `Cmplx`, `Command_Argument_Count`, `Complex`, `Conjg`, `Cos`, `CosH`, `Count`, `CPU_Time`, `CShift`, `CSin`, `CSqRt`, `CTime`, `C_Loc`, `C_Associated`, `C_Null_Ptr`, `C_Null_Funptr`, `C_F_Pointer`, `C_F_ProcPointer`, `C_Null_Char`, `C_Alert`, `C_Backspace`, `C_Form_Feed`, `C_FunLoc`, `C_Sizeof`, `C_New_Line`, `C_Carriage_Return`, `C_Horizontal_Tab`, `C_Vertical_Tab`, `DAbs`, `DACos`, `DASin`, `DATan`, `Date_and_Time`, `DbesJ`, `DbesJN`, `DbesY`, `DbesYN`, `Dble`, `DCos`, `DCosH`, `DDiM`, `DErF`, `DErFC`, `DExp`, `Digits`, `DiM`, `DInt`, `DLog`, `DMax`, `DMin`, `DMod`, `DNInt`, `Dot_Product`, `DProd`, `DSign`, `DSinH`, `DShiftL`, `DShiftR`, `DSin`, `DSqRt`, `DTanH`, `DTan`, `DTime`, `EOShift`, `Epsilon`, `ErF`, `ErFC`, `ErFC_Scaled`, `ETime`, `Execute_Command_Line`, `Exit`, `Exp`, `Exponent`, `Extends_Type_Of`, `FDate`, `FGet`, `FGetC`, `FindLoc`, `Float`, `Floor`, `Flush`, `FNum`, `FPutC`, `FPut`, `Fraction`, `FSeek`, `FStat`, `FTell`, `Gamma`, `GError`, `GetArg`, `Get_Command`, `Get_Command_Argument`, `Get_Environment_Variable`, `GetCWD`, `GetEnv`, `GetGId`, `GetLog`, `GetPId`, `GetUId`, `GMTime`, `HostNm`, `Huge`, `Hypot`, `IAbs`, `IAChar`, `IAll`, `IAnd`, `IAny`, `IArgC`, `IBClr`, `IBits`, `IBSet`, `IChar`, `IDate`, `IDiM`, `IDInt`, `IDNInt`, `IEOr`, `IErrNo`, `IFix`, `Imag`, `ImagPart`, `Image_Index`, `Index`, `Int`, `IOr`, `IParity`, `IRand`, `IsaTty`, `IShft`, `IShftC`, `ISign`, `Iso_C_Binding`, `Is_Contiguous`, `Is_Iostat_End`, `Is_Iostat_Eor`, `ITime`, `Kill`, `Kind`, `LBound`, `LCoBound`, `Len`, `Len_Trim`, `LGe`, `LGt`, `Link`, `LLe`, `LLt`, `LnBlnk`, `Loc`, `Log`, `Log_Gamma`, `Logical`, `Long`, `LShift`, `LStat`, `LTime`, `MaskL`, `MaskR`, `MatMul`, `Max`, `MaxExponent`, `MaxLoc`, `MaxVal`, `MClock`, `Merge`, `Merge_Bits`, `Move_Alloc`, `Min`, `MinExponent`, `MinLoc`, `MinVal`, `Mod`, `Modulo`, `MvBits`, `Nearest`, `New_Line`, `NInt`, `Norm2`, `Not`, `Null`, `Num_Images`, `Or`, `Pack`, `Parity`, `PError`, `Precision`, `Present`, `Product`, `Radix`, `Rand`, `Random_Number`, `Random_Seed`, `Range`, `Real`, `RealPart`, `Rename`, `Repeat`, `Reshape`, `RRSpacing`, `RShift`, `Same_Type_As`, `Scale`, `Scan`, `Second`, `Selected_Char_Kind`, `Selected_Int_Kind`, `Selected_Real_Kind`, `Set_Exponent`, `Shape`, `ShiftA`, `ShiftL`, `ShiftR`, `Short`, `Sign`, `Signal`, `SinH`, `Sin`, `Sleep`, `Sngl`, `Spacing`, `Spread`, `SqRt`, `SRand`, `Stat`, `Storage_Size`, `Sum`, `SymLnk`, `System`, `System_Clock`, `Tan`, `TanH`, `Time`, `This_Image`, `Tiny`, `TrailZ`, `Transfer`, `Transpose`, `Trim`, `TtyNam`, `UBound`, `UCoBound`, `UMask`, `Unlink`, `Unpack`, `Verify`, `XOr`, `ZAbs`, `ZCos`, `ZExp`, `ZLog`, `ZSin`, `ZSqRt`), NameBuiltin, nil}, - {`\.(true|false)\.`, NameBuiltin, nil}, - {`\.(eq|ne|lt|le|gt|ge|not|and|or|eqv|neqv)\.`, OperatorWord, nil}, - }, - "strings": { - {`(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"`, LiteralStringDouble, nil}, - {`(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'`, LiteralStringSingle, nil}, - }, - "nums": { - {`\d+(?![.e])(_[a-z]\w+)?`, LiteralNumberInteger, nil}, - {`[+-]?\d*\.\d+([ed][-+]?\d+)?(_[a-z]\w+)?`, LiteralNumberFloat, nil}, - {`[+-]?\d+\.\d*([ed][-+]?\d+)?(_[a-z]\w+)?`, LiteralNumberFloat, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fsharp.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fsharp.go deleted file mode 100644 index d00f63dd7d..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/f/fsharp.go +++ /dev/null @@ -1,94 +0,0 @@ -package f - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Fsharp lexer. -var Fsharp = internal.Register(MustNewLexer( - &Config{ - Name: "FSharp", - Aliases: []string{"fsharp"}, - Filenames: []string{"*.fs", "*.fsi"}, - MimeTypes: []string{"text/x-fsharp"}, - }, - Rules{ - "escape-sequence": { - {`\\[\\"\'ntbrafv]`, LiteralStringEscape, nil}, - {`\\[0-9]{3}`, LiteralStringEscape, nil}, - {`\\u[0-9a-fA-F]{4}`, LiteralStringEscape, nil}, - {`\\U[0-9a-fA-F]{8}`, LiteralStringEscape, nil}, - }, - "root": { - {`\s+`, Text, nil}, - {`\(\)|\[\]`, NameBuiltinPseudo, nil}, - {`\b(?|-|\\.\\.|\\.|::|:=|:>|:|;;|;|<-|<\\]|<|>\\]|>|\\?\\?|\\?|\\[<|\\[\\||\\[|\\]|_|`|\\{|\\|\\]|\\||\\}|~|<@@|<@|=|@>|@@>)", Operator, nil}, - {`([=<>@^|&+\*/$%-]|[!?~])?[!$%&*+\./:<=>?@^|~-]`, Operator, nil}, - {`\b(and|or|not)\b`, OperatorWord, nil}, - {`\b(sbyte|byte|char|nativeint|unativeint|float32|single|float|double|int8|uint8|int16|uint16|int32|uint32|int64|uint64|decimal|unit|bool|string|list|exn|obj|enum)\b`, KeywordType, nil}, - {`#[ \t]*(if|endif|else|line|nowarn|light|\d+)\b.*?\n`, CommentPreproc, nil}, - {`[^\W\d][\w']*`, Name, nil}, - {`\d[\d_]*[uU]?[yslLnQRZINGmM]?`, LiteralNumberInteger, nil}, - {`0[xX][\da-fA-F][\da-fA-F_]*[uU]?[yslLn]?[fF]?`, LiteralNumberHex, nil}, - {`0[oO][0-7][0-7_]*[uU]?[yslLn]?`, LiteralNumberOct, nil}, - {`0[bB][01][01_]*[uU]?[yslLn]?`, LiteralNumberBin, nil}, - {`-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)[fFmM]?`, LiteralNumberFloat, nil}, - {`'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'B?`, LiteralStringChar, nil}, - {`'.'`, LiteralStringChar, nil}, - {`'`, Keyword, nil}, - {`@?"`, LiteralStringDouble, Push("string")}, - {`[~?][a-z][\w\']*:`, NameVariable, nil}, - }, - "dotted": { - {`\s+`, Text, nil}, - {`\.`, Punctuation, nil}, - {`[A-Z][\w\']*(?=\s*\.)`, NameNamespace, nil}, - {`[A-Z][\w\']*`, Name, Pop(1)}, - {`[a-z_][\w\']*`, Name, Pop(1)}, - Default(Pop(1)), - }, - "comment": { - {`[^(*)@"]+`, Comment, nil}, - {`\(\*`, Comment, Push()}, - {`\*\)`, Comment, Pop(1)}, - {`@"`, LiteralString, Push("lstring")}, - {`"""`, LiteralString, Push("tqs")}, - {`"`, LiteralString, Push("string")}, - {`[(*)@]`, Comment, nil}, - }, - "string": { - {`[^\\"]+`, LiteralString, nil}, - Include("escape-sequence"), - {`\\\n`, LiteralString, nil}, - {`\n`, LiteralString, nil}, - {`"B?`, LiteralString, Pop(1)}, - }, - "lstring": { - {`[^"]+`, LiteralString, nil}, - {`\n`, LiteralString, nil}, - {`""`, LiteralString, nil}, - {`"B?`, LiteralString, Pop(1)}, - }, - "tqs": { - {`[^"]+`, LiteralString, nil}, - {`\n`, LiteralString, nil}, - {`"""B?`, LiteralString, Pop(1)}, - {`"`, LiteralString, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gas.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gas.go deleted file mode 100644 index a922806857..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gas.go +++ /dev/null @@ -1,55 +0,0 @@ -package g - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Gas lexer. -var Gas = internal.Register(MustNewLexer( - &Config{ - Name: "GAS", - Aliases: []string{"gas", "asm"}, - Filenames: []string{"*.s", "*.S"}, - MimeTypes: []string{"text/x-gas"}, - }, - Rules{ - "root": { - Include("whitespace"), - {`(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+):`, NameLabel, nil}, - {`\.(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)`, NameAttribute, Push("directive-args")}, - {`lock|rep(n?z)?|data\d+`, NameAttribute, nil}, - {`(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)`, NameFunction, Push("instruction-args")}, - {`[\r\n]+`, Text, nil}, - }, - "directive-args": { - {`(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)`, NameConstant, nil}, - {`"(\\"|[^"])*"`, LiteralString, nil}, - {`@(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)`, NameAttribute, nil}, - {`(?:0[xX][a-zA-Z0-9]+|\d+)`, LiteralNumberInteger, nil}, - {`[\r\n]+`, Text, Pop(1)}, - Include("punctuation"), - Include("whitespace"), - }, - "instruction-args": { - {`([a-z0-9]+)( )(<)((?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+))(>)`, ByGroups(LiteralNumberHex, Text, Punctuation, NameConstant, Punctuation), nil}, - {`([a-z0-9]+)( )(<)((?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+))([-+])((?:0[xX][a-zA-Z0-9]+|\d+))(>)`, ByGroups(LiteralNumberHex, Text, Punctuation, NameConstant, Punctuation, LiteralNumberInteger, Punctuation), nil}, - {`(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)`, NameConstant, nil}, - {`(?:0[xX][a-zA-Z0-9]+|\d+)`, LiteralNumberInteger, nil}, - {`%(?:[a-zA-Z$_][\w$.@-]*|\.[\w$.@-]+)`, NameVariable, nil}, - {`$(?:0[xX][a-zA-Z0-9]+|\d+)`, LiteralNumberInteger, nil}, - {`$'(.|\\')'`, LiteralStringChar, nil}, - {`[\r\n]+`, Text, Pop(1)}, - Include("punctuation"), - Include("whitespace"), - }, - "whitespace": { - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`[;#].*?\n`, Comment, nil}, - }, - "punctuation": { - {`[-*,.()\[\]!:]+`, Punctuation, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gdscript.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gdscript.go deleted file mode 100644 index bfe30637cc..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gdscript.go +++ /dev/null @@ -1,124 +0,0 @@ -package g - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// GDScript lexer. -var GDScript = internal.Register(MustNewLexer( - &Config{ - Name: "GDScript", - Aliases: []string{"gdscript", "gd"}, - Filenames: []string{"*.gd"}, - MimeTypes: []string{"text/x-gdscript", "application/x-gdscript"}, - }, - Rules{ - "root": { - {`\n`, Text, nil}, - {`^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")`, ByGroups(Text, LiteralStringAffix, LiteralStringDoc), nil}, - {`^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')`, ByGroups(Text, LiteralStringAffix, LiteralStringDoc), nil}, - {`[^\S\n]+`, Text, nil}, - {`#.*$`, CommentSingle, nil}, - {`[]{}:(),;[]`, Punctuation, nil}, - {`\\\n`, Text, nil}, - {`\\`, Text, nil}, - {`(in|and|or|not)\b`, OperatorWord, nil}, - {`!=|==|<<|>>|&&|\+=|-=|\*=|/=|%=|&=|\|=|\|\||[-~+/*%=<>&^.!|$]`, Operator, nil}, - Include("keywords"), - {`(def)((?:\s|\\\s)+)`, ByGroups(Keyword, Text), Push("funcname")}, - {`(class)((?:\s|\\\s)+)`, ByGroups(Keyword, Text), Push("classname")}, - Include("builtins"), - {`([rR]|[uUbB][rR]|[rR][uUbB])(""")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Push("tdqs")}, - {`([rR]|[uUbB][rR]|[rR][uUbB])(''')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("tsqs")}, - {`([rR]|[uUbB][rR]|[rR][uUbB])(")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Push("dqs")}, - {`([rR]|[uUbB][rR]|[rR][uUbB])(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("sqs")}, - {`([uUbB]?)(""")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Combined("stringescape", "tdqs")}, - {`([uUbB]?)(''')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Combined("stringescape", "tsqs")}, - {`([uUbB]?)(")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Combined("stringescape", "dqs")}, - {`([uUbB]?)(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Combined("stringescape", "sqs")}, - Include("name"), - Include("numbers"), - }, - "keywords": { - {Words(``, `\b`, - `if`, `elif`, `else`, `for`, `do`, - `while`, `switch`, `case`, `break`, `continue`, - `pass`, `return`, `class`, `extends`, `tool`, - `signal`, `func`, `static`, `const`, `enum`, - `var`, `onready`, `export`, `setget`, `breakpoint`), Keyword, nil}, - }, - "builtins": { - {Words(`(?)`, ByGroups(CommentPreproc, Using(Python), CommentPreproc), nil}, - {`<\s*(script|style)\s*.*?>.*?<\s*/\1\s*>`, Other, nil}, - {`<\s*py:[a-zA-Z0-9]+`, NameTag, Push("pytag")}, - {`<\s*[a-zA-Z0-9:.]+`, NameTag, Push("tag")}, - Include("variable"), - {`[<$]`, Other, nil}, - }, - "pytag": { - {`\s+`, Text, nil}, - {`[\w:-]+\s*=`, NameAttribute, Push("pyattr")}, - {`/?\s*>`, NameTag, Pop(1)}, - }, - "pyattr": { - {`(")(.*?)(")`, ByGroups(LiteralString, Using(Python), LiteralString), Pop(1)}, - {`(')(.*?)(')`, ByGroups(LiteralString, Using(Python), LiteralString), Pop(1)}, - {`[^\s>]+`, LiteralString, Pop(1)}, - }, - "tag": { - {`\s+`, Text, nil}, - {`py:[\w-]+\s*=`, NameAttribute, Push("pyattr")}, - {`[\w:-]+\s*=`, NameAttribute, Push("attr")}, - {`/?\s*>`, NameTag, Pop(1)}, - }, - "attr": { - {`"`, LiteralString, Push("attr-dstring")}, - {`'`, LiteralString, Push("attr-sstring")}, - {`[^\s>]*`, LiteralString, Pop(1)}, - }, - "attr-dstring": { - {`"`, LiteralString, Pop(1)}, - Include("strings"), - {`'`, LiteralString, nil}, - }, - "attr-sstring": { - {`'`, LiteralString, Pop(1)}, - Include("strings"), - {`'`, LiteralString, nil}, - }, - "strings": { - {`[^"'$]+`, LiteralString, nil}, - Include("variable"), - }, - "variable": { - {`(?]+>)`, NameVariable, nil}, - }, - "numbers": { - {`(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?`, LiteralString, nil}, - }, - "string": { - Include("tableVars"), - {`(\s|.)`, LiteralString, nil}, - }, - "pyString": { - {`"""`, Keyword, Pop(1)}, - Include("string"), - }, - "stepContentRoot": { - {`$`, Keyword, Pop(1)}, - Include("stepContent"), - }, - "stepContentStack": { - {`$`, Keyword, Pop(2)}, - Include("stepContent"), - }, - "stepContent": { - {`"`, NameFunction, Push("doubleString")}, - Include("tableVars"), - Include("numbers"), - Include("comments"), - {`(\s|.)`, NameFunction, nil}, - }, - "tableContent": { - {`\s+\|\s*$`, Keyword, Pop(1)}, - Include("comments"), - {`\\\|`, LiteralString, nil}, - {`\s*\|`, Keyword, nil}, - {`"`, LiteralString, Push("doubleStringTable")}, - Include("string"), - }, - "doubleString": { - {`"`, NameFunction, Pop(1)}, - Include("string"), - }, - "doubleStringTable": { - {`"`, LiteralString, Pop(1)}, - Include("string"), - }, - "root": { - {`\n`, NameFunction, nil}, - Include("comments"), - {`"""`, Keyword, Push("pyString")}, - {`\s+\|`, Keyword, Push("tableContent")}, - {`"`, NameFunction, Push("doubleString")}, - Include("tableVars"), - Include("numbers"), - {`(\s*)(@[^@\r\n\t ]+)`, ByGroups(NameFunction, NameTag), nil}, - {stepKeywords, ByGroups(NameFunction, Keyword), Push("stepContentRoot")}, - {featureKeywords, ByGroups(Keyword, Keyword, NameFunction), Push("narrative")}, - {featureElementKeywords, ByGroups(NameFunction, Keyword, Keyword, NameFunction), Push("featureElements")}, - {examplesKeywords, ByGroups(NameFunction, Keyword, Keyword, NameFunction), Push("examplesTable")}, - {`(\s|.)`, NameFunction, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/glsl.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/glsl.go deleted file mode 100644 index 9b3a3f5a6c..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/glsl.go +++ /dev/null @@ -1,37 +0,0 @@ -package g - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// GLSL lexer. -var GLSL = internal.Register(MustNewLexer( - &Config{ - Name: "GLSL", - Aliases: []string{"glsl"}, - Filenames: []string{"*.vert", "*.frag", "*.geo"}, - MimeTypes: []string{"text/x-glslsrc"}, - }, - Rules{ - "root": { - {`^#.*`, CommentPreproc, nil}, - {`//.*`, CommentSingle, nil}, - {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil}, - {`\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?`, Operator, nil}, - {`[?:]`, Operator, nil}, - {`\bdefined\b`, Operator, nil}, - {`[;{}(),\[\]]`, Punctuation, nil}, - {`[+-]?\d*\.\d+([eE][-+]?\d+)?`, LiteralNumberFloat, nil}, - {`[+-]?\d+\.\d*([eE][-+]?\d+)?`, LiteralNumberFloat, nil}, - {`0[xX][0-9a-fA-F]*`, LiteralNumberHex, nil}, - {`0[0-7]*`, LiteralNumberOct, nil}, - {`[1-9][0-9]*`, LiteralNumberInteger, nil}, - {Words(`\b`, `\b`, `attribute`, `const`, `uniform`, `varying`, `centroid`, `break`, `continue`, `do`, `for`, `while`, `if`, `else`, `in`, `out`, `inout`, `float`, `int`, `void`, `bool`, `true`, `false`, `invariant`, `discard`, `return`, `mat2`, `mat3mat4`, `mat2x2`, `mat3x2`, `mat4x2`, `mat2x3`, `mat3x3`, `mat4x3`, `mat2x4`, `mat3x4`, `mat4x4`, `vec2`, `vec3`, `vec4`, `ivec2`, `ivec3`, `ivec4`, `bvec2`, `bvec3`, `bvec4`, `sampler1D`, `sampler2D`, `sampler3DsamplerCube`, `sampler1DShadow`, `sampler2DShadow`, `struct`), Keyword, nil}, - {Words(`\b`, `\b`, `asm`, `class`, `union`, `enum`, `typedef`, `template`, `this`, `packed`, `goto`, `switch`, `default`, `inline`, `noinline`, `volatile`, `public`, `static`, `extern`, `external`, `interface`, `long`, `short`, `double`, `half`, `fixed`, `unsigned`, `lowp`, `mediump`, `highp`, `precision`, `input`, `output`, `hvec2`, `hvec3`, `hvec4`, `dvec2`, `dvec3`, `dvec4`, `fvec2`, `fvec3`, `fvec4`, `sampler2DRect`, `sampler3DRect`, `sampler2DRectShadow`, `sizeof`, `cast`, `namespace`, `using`), Keyword, nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - {`\.`, Punctuation, nil}, - {`\s+`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gnuplot.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gnuplot.go deleted file mode 100644 index 77c6363c54..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/gnuplot.go +++ /dev/null @@ -1,117 +0,0 @@ -package g - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Gnuplot lexer. -var Gnuplot = internal.Register(MustNewLexer( - &Config{ - Name: "Gnuplot", - Aliases: []string{"gnuplot"}, - Filenames: []string{"*.plot", "*.plt"}, - MimeTypes: []string{"text/x-gnuplot"}, - }, - Rules{ - "root": { - Include("whitespace"), - {`bind\b|bin\b|bi\b`, Keyword, Push("bind")}, - {`exit\b|exi\b|ex\b|quit\b|qui\b|qu\b|q\b`, Keyword, Push("quit")}, - {`fit\b|fi\b|f\b`, Keyword, Push("fit")}, - {`(if)(\s*)(\()`, ByGroups(Keyword, Text, Punctuation), Push("if")}, - {`else\b`, Keyword, nil}, - {`pause\b|paus\b|pau\b|pa\b`, Keyword, Push("pause")}, - {`plot\b|plo\b|pl\b|p\b|replot\b|replo\b|repl\b|rep\b|splot\b|splo\b|spl\b|sp\b`, Keyword, Push("plot")}, - {`save\b|sav\b|sa\b`, Keyword, Push("save")}, - {`set\b|se\b`, Keyword, Push("genericargs", "optionarg")}, - {`show\b|sho\b|sh\b|unset\b|unse\b|uns\b`, Keyword, Push("noargs", "optionarg")}, - {`lower\b|lowe\b|low\b|raise\b|rais\b|rai\b|ra\b|call\b|cal\b|ca\b|cd\b|clear\b|clea\b|cle\b|cl\b|help\b|hel\b|he\b|h\b|\?\b|history\b|histor\b|histo\b|hist\b|his\b|hi\b|load\b|loa\b|lo\b|l\b|print\b|prin\b|pri\b|pr\b|pwd\b|reread\b|rerea\b|rere\b|rer\b|re\b|reset\b|rese\b|res\b|screendump\b|screendum\b|screendu\b|screend\b|screen\b|scree\b|scre\b|scr\b|shell\b|shel\b|she\b|system\b|syste\b|syst\b|sys\b|sy\b|update\b|updat\b|upda\b|upd\b|up\b`, Keyword, Push("genericargs")}, - {`pwd\b|reread\b|rerea\b|rere\b|rer\b|re\b|reset\b|rese\b|res\b|screendump\b|screendum\b|screendu\b|screend\b|screen\b|scree\b|scre\b|scr\b|shell\b|shel\b|she\b|test\b`, Keyword, Push("noargs")}, - {`([a-zA-Z_]\w*)(\s*)(=)`, ByGroups(NameVariable, Text, Operator), Push("genericargs")}, - {`([a-zA-Z_]\w*)(\s*\(.*?\)\s*)(=)`, ByGroups(NameFunction, Text, Operator), Push("genericargs")}, - {`@[a-zA-Z_]\w*`, NameConstant, nil}, - {`;`, Keyword, nil}, - }, - "comment": { - {`[^\\\n]`, Comment, nil}, - {`\\\n`, Comment, nil}, - {`\\`, Comment, nil}, - Default(Pop(1)), - }, - "whitespace": { - {`#`, Comment, Push("comment")}, - {`[ \t\v\f]+`, Text, nil}, - }, - "noargs": { - Include("whitespace"), - {`;`, Punctuation, Pop(1)}, - {`\n`, Text, Pop(1)}, - }, - "dqstring": { - {`"`, LiteralString, Pop(1)}, - {`\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})`, LiteralStringEscape, nil}, - {`[^\\"\n]+`, LiteralString, nil}, - {`\\\n`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - {`\n`, LiteralString, Pop(1)}, - }, - "sqstring": { - {`''`, LiteralString, nil}, - {`'`, LiteralString, Pop(1)}, - {`[^\\'\n]+`, LiteralString, nil}, - {`\\\n`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - {`\n`, LiteralString, Pop(1)}, - }, - "genericargs": { - Include("noargs"), - {`"`, LiteralString, Push("dqstring")}, - {`'`, LiteralString, Push("sqstring")}, - {`(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+`, LiteralNumberFloat, nil}, - {`(\d+\.\d*|\.\d+)`, LiteralNumberFloat, nil}, - {`-?\d+`, LiteralNumberInteger, nil}, - {`[,.~!%^&*+=|?:<>/-]`, Operator, nil}, - {`[{}()\[\]]`, Punctuation, nil}, - {`(eq|ne)\b`, OperatorWord, nil}, - {`([a-zA-Z_]\w*)(\s*)(\()`, ByGroups(NameFunction, Text, Punctuation), nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - {`@[a-zA-Z_]\w*`, NameConstant, nil}, - {`\\\n`, Text, nil}, - }, - "optionarg": { - Include("whitespace"), - {`all\b|al\b|a\b|angles\b|angle\b|angl\b|ang\b|an\b|arrow\b|arro\b|arr\b|ar\b|autoscale\b|autoscal\b|autosca\b|autosc\b|autos\b|auto\b|aut\b|au\b|bars\b|bar\b|ba\b|b\b|border\b|borde\b|bord\b|bor\b|boxwidth\b|boxwidt\b|boxwid\b|boxwi\b|boxw\b|box\b|clabel\b|clabe\b|clab\b|cla\b|cl\b|clip\b|cli\b|cl\b|c\b|cntrparam\b|cntrpara\b|cntrpar\b|cntrpa\b|cntrp\b|cntr\b|cnt\b|cn\b|contour\b|contou\b|conto\b|cont\b|con\b|co\b|data\b|dat\b|da\b|datafile\b|datafil\b|datafi\b|dataf\b|data\b|dgrid3d\b|dgrid3\b|dgrid\b|dgri\b|dgr\b|dg\b|dummy\b|dumm\b|dum\b|du\b|encoding\b|encodin\b|encodi\b|encod\b|enco\b|enc\b|decimalsign\b|decimalsig\b|decimalsi\b|decimals\b|decimal\b|decima\b|decim\b|deci\b|dec\b|fit\b|fontpath\b|fontpat\b|fontpa\b|fontp\b|font\b|format\b|forma\b|form\b|for\b|fo\b|function\b|functio\b|functi\b|funct\b|func\b|fun\b|fu\b|functions\b|function\b|functio\b|functi\b|funct\b|func\b|fun\b|fu\b|grid\b|gri\b|gr\b|g\b|hidden3d\b|hidden3\b|hidden\b|hidde\b|hidd\b|hid\b|historysize\b|historysiz\b|historysi\b|historys\b|history\b|histor\b|histo\b|hist\b|his\b|isosamples\b|isosample\b|isosampl\b|isosamp\b|isosam\b|isosa\b|isos\b|iso\b|is\b|key\b|ke\b|k\b|keytitle\b|keytitl\b|keytit\b|keyti\b|keyt\b|label\b|labe\b|lab\b|la\b|linestyle\b|linestyl\b|linesty\b|linest\b|lines\b|line\b|lin\b|li\b|ls\b|loadpath\b|loadpat\b|loadpa\b|loadp\b|load\b|loa\b|locale\b|local\b|loca\b|loc\b|logscale\b|logscal\b|logsca\b|logsc\b|logs\b|log\b|macros\b|macro\b|macr\b|mac\b|mapping\b|mappin\b|mappi\b|mapp\b|map\b|mapping3d\b|mapping3\b|mapping\b|mappin\b|mappi\b|mapp\b|map\b|margin\b|margi\b|marg\b|mar\b|lmargin\b|lmargi\b|lmarg\b|lmar\b|rmargin\b|rmargi\b|rmarg\b|rmar\b|tmargin\b|tmargi\b|tmarg\b|tmar\b|bmargin\b|bmargi\b|bmarg\b|bmar\b|mouse\b|mous\b|mou\b|mo\b|multiplot\b|multiplo\b|multipl\b|multip\b|multi\b|mxtics\b|mxtic\b|mxti\b|mxt\b|nomxtics\b|nomxtic\b|nomxti\b|nomxt\b|mx2tics\b|mx2tic\b|mx2ti\b|mx2t\b|nomx2tics\b|nomx2tic\b|nomx2ti\b|nomx2t\b|mytics\b|mytic\b|myti\b|myt\b|nomytics\b|nomytic\b|nomyti\b|nomyt\b|my2tics\b|my2tic\b|my2ti\b|my2t\b|nomy2tics\b|nomy2tic\b|nomy2ti\b|nomy2t\b|mztics\b|mztic\b|mzti\b|mzt\b|nomztics\b|nomztic\b|nomzti\b|nomzt\b|mcbtics\b|mcbtic\b|mcbti\b|mcbt\b|nomcbtics\b|nomcbtic\b|nomcbti\b|nomcbt\b|offsets\b|offset\b|offse\b|offs\b|off\b|of\b|origin\b|origi\b|orig\b|ori\b|or\b|output\b|outpu\b|outp\b|out\b|ou\b|o\b|parametric\b|parametri\b|parametr\b|paramet\b|parame\b|param\b|para\b|par\b|pa\b|pm3d\b|pm3\b|pm\b|palette\b|palett\b|palet\b|pale\b|pal\b|colorbox\b|colorbo\b|colorb\b|plot\b|plo\b|pl\b|p\b|pointsize\b|pointsiz\b|pointsi\b|points\b|point\b|poin\b|poi\b|polar\b|pola\b|pol\b|print\b|prin\b|pri\b|pr\b|object\b|objec\b|obje\b|obj\b|samples\b|sample\b|sampl\b|samp\b|sam\b|sa\b|size\b|siz\b|si\b|style\b|styl\b|sty\b|st\b|surface\b|surfac\b|surfa\b|surf\b|sur\b|su\b|table\b|terminal\b|termina\b|termin\b|termi\b|term\b|ter\b|te\b|t\b|termoptions\b|termoption\b|termoptio\b|termopti\b|termopt\b|termop\b|termo\b|tics\b|tic\b|ti\b|ticscale\b|ticscal\b|ticsca\b|ticsc\b|ticslevel\b|ticsleve\b|ticslev\b|ticsle\b|ticsl\b|timefmt\b|timefm\b|timef\b|timestamp\b|timestam\b|timesta\b|timest\b|times\b|time\b|tim\b|title\b|titl\b|tit\b|variables\b|variable\b|variabl\b|variab\b|varia\b|vari\b|var\b|va\b|v\b|version\b|versio\b|versi\b|vers\b|ver\b|ve\b|view\b|vie\b|vi\b|xyplane\b|xyplan\b|xypla\b|xypl\b|xyp\b|xdata\b|xdat\b|xda\b|x2data\b|x2dat\b|x2da\b|ydata\b|ydat\b|yda\b|y2data\b|y2dat\b|y2da\b|zdata\b|zdat\b|zda\b|cbdata\b|cbdat\b|cbda\b|xlabel\b|xlabe\b|xlab\b|xla\b|xl\b|x2label\b|x2labe\b|x2lab\b|x2la\b|x2l\b|ylabel\b|ylabe\b|ylab\b|yla\b|yl\b|y2label\b|y2labe\b|y2lab\b|y2la\b|y2l\b|zlabel\b|zlabe\b|zlab\b|zla\b|zl\b|cblabel\b|cblabe\b|cblab\b|cbla\b|cbl\b|xtics\b|xtic\b|xti\b|noxtics\b|noxtic\b|noxti\b|x2tics\b|x2tic\b|x2ti\b|nox2tics\b|nox2tic\b|nox2ti\b|ytics\b|ytic\b|yti\b|noytics\b|noytic\b|noyti\b|y2tics\b|y2tic\b|y2ti\b|noy2tics\b|noy2tic\b|noy2ti\b|ztics\b|ztic\b|zti\b|noztics\b|noztic\b|nozti\b|cbtics\b|cbtic\b|cbti\b|nocbtics\b|nocbtic\b|nocbti\b|xdtics\b|xdtic\b|xdti\b|noxdtics\b|noxdtic\b|noxdti\b|x2dtics\b|x2dtic\b|x2dti\b|nox2dtics\b|nox2dtic\b|nox2dti\b|ydtics\b|ydtic\b|ydti\b|noydtics\b|noydtic\b|noydti\b|y2dtics\b|y2dtic\b|y2dti\b|noy2dtics\b|noy2dtic\b|noy2dti\b|zdtics\b|zdtic\b|zdti\b|nozdtics\b|nozdtic\b|nozdti\b|cbdtics\b|cbdtic\b|cbdti\b|nocbdtics\b|nocbdtic\b|nocbdti\b|xmtics\b|xmtic\b|xmti\b|noxmtics\b|noxmtic\b|noxmti\b|x2mtics\b|x2mtic\b|x2mti\b|nox2mtics\b|nox2mtic\b|nox2mti\b|ymtics\b|ymtic\b|ymti\b|noymtics\b|noymtic\b|noymti\b|y2mtics\b|y2mtic\b|y2mti\b|noy2mtics\b|noy2mtic\b|noy2mti\b|zmtics\b|zmtic\b|zmti\b|nozmtics\b|nozmtic\b|nozmti\b|cbmtics\b|cbmtic\b|cbmti\b|nocbmtics\b|nocbmtic\b|nocbmti\b|xrange\b|xrang\b|xran\b|xra\b|xr\b|x2range\b|x2rang\b|x2ran\b|x2ra\b|x2r\b|yrange\b|yrang\b|yran\b|yra\b|yr\b|y2range\b|y2rang\b|y2ran\b|y2ra\b|y2r\b|zrange\b|zrang\b|zran\b|zra\b|zr\b|cbrange\b|cbrang\b|cbran\b|cbra\b|cbr\b|rrange\b|rrang\b|rran\b|rra\b|rr\b|trange\b|trang\b|tran\b|tra\b|tr\b|urange\b|urang\b|uran\b|ura\b|ur\b|vrange\b|vrang\b|vran\b|vra\b|vr\b|xzeroaxis\b|xzeroaxi\b|xzeroax\b|xzeroa\b|x2zeroaxis\b|x2zeroaxi\b|x2zeroax\b|x2zeroa\b|yzeroaxis\b|yzeroaxi\b|yzeroax\b|yzeroa\b|y2zeroaxis\b|y2zeroaxi\b|y2zeroax\b|y2zeroa\b|zzeroaxis\b|zzeroaxi\b|zzeroax\b|zzeroa\b|zeroaxis\b|zeroaxi\b|zeroax\b|zeroa\b|zero\b|zer\b|ze\b|z\b`, NameBuiltin, Pop(1)}, - }, - "bind": { - {`!`, Keyword, Pop(1)}, - {`allwindows\b|allwindow\b|allwindo\b|allwind\b|allwin\b|allwi\b|allw\b|all\b`, NameBuiltin, nil}, - Include("genericargs"), - }, - "quit": { - {`gnuplot\b`, Keyword, nil}, - Include("noargs"), - }, - "fit": { - {`via\b`, NameBuiltin, nil}, - Include("plot"), - }, - "if": { - {`\)`, Punctuation, Pop(1)}, - Include("genericargs"), - }, - "pause": { - {`(mouse|any|button1|button2|button3)\b`, NameBuiltin, nil}, - {`keypress\b|keypres\b|keypre\b|keypr\b|keyp\b|key\b`, NameBuiltin, nil}, - Include("genericargs"), - }, - "plot": { - {`axes\b|axe\b|ax\b|axis\b|axi\b|binary\b|binar\b|bina\b|bin\b|every\b|ever\b|eve\b|ev\b|index\b|inde\b|ind\b|in\b|i\b|matrix\b|matri\b|matr\b|mat\b|smooth\b|smoot\b|smoo\b|smo\b|sm\b|s\b|thru\b|title\b|titl\b|tit\b|ti\b|t\b|notitle\b|notitl\b|notit\b|noti\b|not\b|using\b|usin\b|usi\b|us\b|u\b|with\b|wit\b|wi\b|w\b`, NameBuiltin, nil}, - Include("genericargs"), - }, - "save": { - {`functions\b|function\b|functio\b|functi\b|funct\b|func\b|fun\b|fu\b|f\b|set\b|se\b|s\b|terminal\b|termina\b|termin\b|termi\b|term\b|ter\b|te\b|t\b|variables\b|variable\b|variabl\b|variab\b|varia\b|vari\b|var\b|va\b|v\b`, NameBuiltin, nil}, - Include("genericargs"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/go.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/go.go deleted file mode 100644 index a93fa8bbb0..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/go.go +++ /dev/null @@ -1,114 +0,0 @@ -package g - -import ( - "strings" - - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/h" - "github.com/alecthomas/chroma/lexers/internal" -) - -// Go lexer. -var Go = internal.Register(MustNewLexer( - &Config{ - Name: "Go", - Aliases: []string{"go", "golang"}, - Filenames: []string{"*.go"}, - MimeTypes: []string{"text/x-gosrc"}, - }, - Rules{ - "root": { - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`\\\n`, Text, nil}, - {`//(.*?)\n`, CommentSingle, nil}, - {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil}, - {`(import|package)\b`, KeywordNamespace, nil}, - {`(var|func|struct|map|chan|type|interface|const)\b`, KeywordDeclaration, nil}, - {Words(``, `\b`, `break`, `default`, `select`, `case`, `defer`, `go`, `else`, `goto`, `switch`, `fallthrough`, `if`, `range`, `continue`, `for`, `return`), Keyword, nil}, - {`(true|false|iota|nil)\b`, KeywordConstant, nil}, - {Words(``, `\b(\()`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `int`, `int8`, `int16`, `int32`, `int64`, `float`, `float32`, `float64`, `complex64`, `complex128`, `byte`, `rune`, `string`, `bool`, `error`, `uintptr`, `print`, `println`, `panic`, `recover`, `close`, `complex`, `real`, `imag`, `len`, `cap`, `append`, `copy`, `delete`, `new`, `make`), ByGroups(NameBuiltin, Punctuation), nil}, - {Words(``, `\b`, `uint`, `uint8`, `uint16`, `uint32`, `uint64`, `int`, `int8`, `int16`, `int32`, `int64`, `float`, `float32`, `float64`, `complex64`, `complex128`, `byte`, `rune`, `string`, `bool`, `error`, `uintptr`), KeywordType, nil}, - {`\d+i`, LiteralNumber, nil}, - {`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil}, - {`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil}, - {`\d+[Ee][-+]\d+i`, LiteralNumber, nil}, - {`\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)`, LiteralNumberFloat, nil}, - {`\.\d+([eE][+\-]?\d+)?`, LiteralNumberFloat, nil}, - {`0[0-7]+`, LiteralNumberOct, nil}, - {`0[xX][0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`(0|[1-9][0-9]*)`, LiteralNumberInteger, nil}, - {`'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'`, LiteralStringChar, nil}, - {"(`)([^`]*)(`)", ByGroups(LiteralString, Using(TypeRemappingLexer(GoTextTemplate, TypeMapping{{Other, LiteralString, nil}})), LiteralString), nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`(<<=|>>=|<<|>>|<=|>=|&\^=|&\^|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\||<-|\+\+|--|==|!=|:=|\.\.\.|[+\-*/%&])`, Operator, nil}, - {`([a-zA-Z_]\w*)(\s*)(\()`, ByGroups(NameFunction, UsingSelf("root"), Punctuation), nil}, - {`[|^<>=!()\[\]{}.,;:]`, Punctuation, nil}, - {`[^\W\d]\w*`, NameOther, nil}, - }, - }, -).SetAnalyser(func(text string) float32 { - if strings.Contains(text, "fmt.") && strings.Contains(text, "package ") { - return 0.5 - } - if strings.Contains(text, "package ") { - return 0.1 - } - return 0.0 -})) - -var goTemplateRules = Rules{ - "root": { - {`{{[-]?`, CommentPreproc, Push("template")}, - {`[^{]+`, Other, nil}, - {`{`, Other, nil}, - }, - "template": { - {`[-]?}}`, CommentPreproc, Pop(1)}, - {`/\*.*?\*/`, Comment, nil}, - {`(?=}})`, CommentPreproc, Pop(1)}, // Terminate the pipeline - {`\(`, Operator, Push("subexpression")}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - Include("expression"), - }, - "subexpression": { - {`\)`, Operator, Pop(1)}, - Include("expression"), - }, - "expression": { - {`\s+`, Whitespace, nil}, - {`\(`, Operator, Push("subexpression")}, - {`(range|if|else|while|with|template|end|true|false|nil|and|call|html|index|js|len|not|or|print|printf|println|urlquery|eq|ne|lt|le|gt|ge)\b`, Keyword, nil}, - {`\||:=`, Operator, nil}, - {`[$]?[^\W\d]\w*`, NameOther, nil}, - {`[$]?\.(?:[^\W\d]\w*)?`, NameAttribute, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`\d+i`, LiteralNumber, nil}, - {`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil}, - {`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil}, - {`\d+[Ee][-+]\d+i`, LiteralNumber, nil}, - {`\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)`, LiteralNumberFloat, nil}, - {`\.\d+([eE][+\-]?\d+)?`, LiteralNumberFloat, nil}, - {`0[0-7]+`, LiteralNumberOct, nil}, - {`0[xX][0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`(0|[1-9][0-9]*)`, LiteralNumberInteger, nil}, - {`'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'`, LiteralStringChar, nil}, - {"`[^`]*`", LiteralString, nil}, - }, -} - -var GoHTMLTemplate = internal.Register(DelegatingLexer(h.HTML, MustNewLexer( - &Config{ - Name: "Go HTML Template", - Aliases: []string{"go-html-template"}, - }, - goTemplateRules, -))) - -var GoTextTemplate = internal.Register(MustNewLexer( - &Config{ - Name: "Go Text Template", - Aliases: []string{"go-text-template"}, - }, - goTemplateRules, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/go_test.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/go_test.go deleted file mode 100644 index 583681e0f1..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/go_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package g - -import ( - "testing" - - "github.com/alecthomas/assert" - "github.com/alecthomas/chroma" -) - -func TestGoHTMLTemplateIssue126(t *testing.T) { - for _, source := range []string{ - ` - - {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} - {{ .Permalink }} - Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }} - Hugo -- gohugo.io{{ with .Site.LanguageCode }} - {{.}}{{end}}{{ with .Site.Author.email }} - {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} - {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }} - {{.}}{{end}}{{ if not .Date.IsZero }} - {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} - {{ with .OutputFormats.Get "RSS" }} - {{ printf "" .Permalink .MediaType | safeHTML }} - {{ end }} - {{ range .Data.Pages }} - - {{ .Title }} - {{ .Permalink }} - {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} - {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} - {{ .Permalink }} - {{ .Summary | html }} - - {{ end }} - - -`, - `{{ $headless := .Site.GetPage "page" "some-headless-bundle" }} -{{ $reusablePages := $headless.Resources.Match "author*" }} -

Authors

-{{ range $reusablePages }} -

{{ .Title }}

- {{ .Content }} -{{ end }}`} { - tokens, err := chroma.Tokenise(GoHTMLTemplate, nil, source) - assert.NoError(t, err) - assert.Equal(t, source, chroma.Stringify(tokens...)) - } -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/graphql.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/graphql.go deleted file mode 100644 index a57e693aba..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/graphql.go +++ /dev/null @@ -1,45 +0,0 @@ -package g - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Go lexer. -var Graphql = internal.Register(MustNewLexer( - &Config{ - Name: "GraphQL", - Aliases: []string{"graphql", "graphqls", "gql"}, - Filenames: []string{"*.graphql", "*.graphqls"}, - }, - Rules{ - "root": { - {`(query|mutation|subscription|fragment|scalar|implements|interface|union|enum|input|type)`, KeywordDeclaration, Push("type")}, - {`(on|extend|schema|directive|\.\.\.)`, KeywordDeclaration, nil}, - {`(QUERY|MUTATION|SUBSCRIPTION|FIELD|FRAGMENT_DEFINITION|FRAGMENT_SPREAD|INLINE_FRAGMENT|SCHEMA|SCALAR|OBJECT|FIELD_DEFINITION|ARGUMENT_DEFINITION|INTERFACE|UNION|ENUM|ENUM_VALUE|INPUT_OBJECT|INPUT_FIELD_DEFINITION)\b`, KeywordConstant, nil}, - {`[^\W\d]\w*`, NameProperty, nil}, - {`\@\w+`, NameDecorator, nil}, - {`:`, Punctuation, Push("type")}, - {`[\(\)\{\}\[\],!\|=]`, Punctuation, nil}, - {`\$\w+`, NameVariable, nil}, - {`\d+i`, LiteralNumber, nil}, - {`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil}, - {`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil}, - {`\d+[Ee][-+]\d+i`, LiteralNumber, nil}, - {`\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)`, LiteralNumberFloat, nil}, - {`\.\d+([eE][+\-]?\d+)?`, LiteralNumberFloat, nil}, - {`(0|[1-9][0-9]*)`, LiteralNumberInteger, nil}, - {`"""[\x00-\x7F]*?"""`, LiteralString, nil}, - {`"(\\["\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])"`, LiteralStringChar, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`"(true|false|null)*"`, Literal, nil}, - {`[\r\n\s]+`, Whitespace, nil}, - {`#[^\r\n]*`, Comment, nil}, - }, - // Treats the next word as a class, default rules it would be a property - "type": { - {`[^\W\d]\w*`, NameClass, Pop(1)}, - Include("root"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/groovy.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/groovy.go deleted file mode 100644 index a395415a9a..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/g/groovy.go +++ /dev/null @@ -1,58 +0,0 @@ -package g - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Groovy lexer. -var Groovy = internal.Register(MustNewLexer( - &Config{ - Name: "Groovy", - Aliases: []string{"groovy"}, - Filenames: []string{"*.groovy", "*.gradle"}, - MimeTypes: []string{"text/x-groovy"}, - DotAll: true, - }, - Rules{ - "root": { - {`#!(.*?)$`, CommentPreproc, Push("base")}, - Default(Push("base")), - }, - "base": { - {`^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()`, ByGroups(UsingSelf("root"), NameFunction, Text, Operator), nil}, - {`[^\S\n]+`, Text, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/\*.*?\*/`, CommentMultiline, nil}, - {`@[a-zA-Z_][\w.]*`, NameDecorator, nil}, - {`(as|assert|break|case|catch|continue|default|do|else|finally|for|if|in|goto|instanceof|new|return|switch|this|throw|try|while|in|as)\b`, Keyword, nil}, - {`(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\b`, KeywordDeclaration, nil}, - {`(def|boolean|byte|char|double|float|int|long|short|void)\b`, KeywordType, nil}, - {`(package)(\s+)`, ByGroups(KeywordNamespace, Text), nil}, - {`(true|false|null)\b`, KeywordConstant, nil}, - {`(class|interface)(\s+)`, ByGroups(KeywordDeclaration, Text), Push("class")}, - {`(import)(\s+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - {`""".*?"""`, LiteralStringDouble, nil}, - {`'''.*?'''`, LiteralStringSingle, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`\$/((?!/\$).)*/\$`, LiteralString, nil}, - {`/(\\\\|\\"|[^/])*/`, LiteralString, nil}, - {`'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'`, LiteralStringChar, nil}, - {`(\.)([a-zA-Z_]\w*)`, ByGroups(Operator, NameAttribute), nil}, - {`[a-zA-Z_]\w*:`, NameLabel, nil}, - {`[a-zA-Z_$]\w*`, Name, nil}, - {`[~^*!%&\[\](){}<>|+=:;,./?-]`, Operator, nil}, - {`[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`[0-9]+L?`, LiteralNumberInteger, nil}, - {`\n`, Text, nil}, - }, - "class": { - {`[a-zA-Z_]\w*`, NameClass, Pop(1)}, - }, - "import": { - {`[\w.]+\*?`, NameNamespace, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/handlebars.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/handlebars.go deleted file mode 100644 index 07072da582..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/handlebars.go +++ /dev/null @@ -1,56 +0,0 @@ -package h - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Handlebars lexer. -var Handlebars = internal.Register(MustNewLexer( - &Config{ - Name: "Handlebars", - Aliases: []string{"handlebars"}, - Filenames: []string{"*.handlebars"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`[^{]+`, Other, nil}, - {`\{\{!.*\}\}`, Comment, nil}, - {`(\{\{\{)(\s*)`, ByGroups(CommentSpecial, Text), Push("tag")}, - {`(\{\{)(\s*)`, ByGroups(CommentPreproc, Text), Push("tag")}, - }, - "tag": { - {`\s+`, Text, nil}, - {`\}\}\}`, CommentSpecial, Pop(1)}, - {`\}\}`, CommentPreproc, Pop(1)}, - {`([#/]*)(each|if|unless|else|with|log|in(?:line)?)`, ByGroups(Keyword, Keyword), nil}, - {`#\*inline`, Keyword, nil}, - {`([#/])([\w-]+)`, ByGroups(NameFunction, NameFunction), nil}, - {`([\w-]+)(=)`, ByGroups(NameAttribute, Operator), nil}, - {`(>)(\s*)(@partial-block)`, ByGroups(Keyword, Text, Keyword), nil}, - {`(#?>)(\s*)([\w-]+)`, ByGroups(Keyword, Text, NameVariable), nil}, - {`(>)(\s*)(\()`, ByGroups(Keyword, Text, Punctuation), Push("dynamic-partial")}, - Include("generic"), - }, - "dynamic-partial": { - {`\s+`, Text, nil}, - {`\)`, Punctuation, Pop(1)}, - {`(lookup)(\s+)(\.|this)(\s+)`, ByGroups(Keyword, Text, NameVariable, Text), nil}, - {`(lookup)(\s+)(\S+)`, ByGroups(Keyword, Text, UsingSelf("variable")), nil}, - {`[\w-]+`, NameFunction, nil}, - Include("generic"), - }, - "variable": { - {`[a-zA-Z][\w-]*`, NameVariable, nil}, - {`\.[\w-]+`, NameVariable, nil}, - {`(this\/|\.\/|(\.\.\/)+)[\w-]+`, NameVariable, nil}, - }, - "generic": { - Include("variable"), - {`:?"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`:?'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/haskell.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/haskell.go deleted file mode 100644 index b018eab484..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/haskell.go +++ /dev/null @@ -1,99 +0,0 @@ -package h - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Haskell lexer. -var Haskell = internal.Register(MustNewLexer( - &Config{ - Name: "Haskell", - Aliases: []string{"haskell", "hs"}, - Filenames: []string{"*.hs"}, - MimeTypes: []string{"text/x-haskell"}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`--(?![!#$%&*+./<=>?@^|_~:\\]).*?$`, CommentSingle, nil}, - {`\{-`, CommentMultiline, Push("comment")}, - {`\bimport\b`, KeywordReserved, Push("import")}, - {`\bmodule\b`, KeywordReserved, Push("module")}, - {`\berror\b`, NameException, nil}, - {`\b(case|class|data|default|deriving|do|else|family|if|in|infix[lr]?|instance|let|newtype|of|then|type|where|_)(?!\')\b`, KeywordReserved, nil}, - {`'[^\\]'`, LiteralStringChar, nil}, - {`^[_a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ-ĸĺļľŀłńņň-ʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌ-ƍƒƕƙ-ƛƞơƣƥƨƪ-ƫƭưƴƶƹ-ƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜ-ǝǟǡǣǥǧǩǫǭǯ-ǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿ-ɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐ-ϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻ-ϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎ-ӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧա-ևᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶ-ᾷιῂ-ῄῆ-ῇῐ-ΐῖ-ῗῠ-ῧῲ-ῴῶ-ῷℊℎ-ℏℓℯℴℹℼ-ℽⅆ-ⅉⅎↄⰰ-ⱞⱡⱥ-ⱦⱨⱪⱬⱱⱳ-ⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ-ⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓꞡꞣꞥꞧꞩꟺff-stﬓ-ﬗa-z𐐨-𐑏𝐚-𝐳𝑎-𝑔𝑖-𝑧𝒂-𝒛𝒶-𝒹𝒻𝒽-𝓃𝓅-𝓏𝓪-𝔃𝔞-𝔷𝕒-𝕫𝖆-𝖟𝖺-𝗓𝗮-𝘇𝘢-𝘻𝙖-𝙯𝚊-𝚥𝛂-𝛚𝛜-𝛡𝛼-𝜔𝜖-𝜛𝜶-𝝎𝝐-𝝕𝝰-𝞈𝞊-𝞏𝞪-𝟂𝟄-𝟉𝟋][\w\']*`, NameFunction, nil}, - {`'?[_a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ-ĸĺļľŀłńņň-ʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌ-ƍƒƕƙ-ƛƞơƣƥƨƪ-ƫƭưƴƶƹ-ƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜ-ǝǟǡǣǥǧǩǫǭǯ-ǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿ-ɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐ-ϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻ-ϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎ-ӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧա-ևᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶ-ᾷιῂ-ῄῆ-ῇῐ-ΐῖ-ῗῠ-ῧῲ-ῴῶ-ῷℊℎ-ℏℓℯℴℹℼ-ℽⅆ-ⅉⅎↄⰰ-ⱞⱡⱥ-ⱦⱨⱪⱬⱱⱳ-ⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ-ⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓꞡꞣꞥꞧꞩꟺff-stﬓ-ﬗa-z𐐨-𐑏𝐚-𝐳𝑎-𝑔𝑖-𝑧𝒂-𝒛𝒶-𝒹𝒻𝒽-𝓃𝓅-𝓏𝓪-𝔃𝔞-𝔷𝕒-𝕫𝖆-𝖟𝖺-𝗓𝗮-𝘇𝘢-𝘻𝙖-𝙯𝚊-𝚥𝛂-𝛚𝛜-𝛡𝛼-𝜔𝜖-𝜛𝜶-𝝎𝝐-𝝕𝝰-𝞈𝞊-𝞏𝞪-𝟂𝟄-𝟉𝟋][\w']*`, Name, nil}, - {`('')?[A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w\']*`, KeywordType, nil}, - {`(')[A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w\']*`, KeywordType, nil}, - {`(')\[[^\]]*\]`, KeywordType, nil}, - {`(')\([^)]*\)`, KeywordType, nil}, - {`\\(?![:!#$%&*+.\\/<=>?@^|~-]+)`, NameFunction, nil}, - {`(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)`, OperatorWord, nil}, - {`:[:!#$%&*+.\\/<=>?@^|~-]*`, KeywordType, nil}, - {`[:!#$%&*+.\\/<=>?@^|~-]+`, Operator, nil}, - {`\d+[eE][+-]?\d+`, LiteralNumberFloat, nil}, - {`\d+\.\d+([eE][+-]?\d+)?`, LiteralNumberFloat, nil}, - {`0[oO][0-7]+`, LiteralNumberOct, nil}, - {`0[xX][\da-fA-F]+`, LiteralNumberHex, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`'`, LiteralStringChar, Push("character")}, - {`"`, LiteralString, Push("string")}, - {`\[\]`, KeywordType, nil}, - {`\(\)`, NameBuiltin, nil}, - {"[][(),;`{}]", Punctuation, nil}, - }, - "import": { - {`\s+`, Text, nil}, - {`"`, LiteralString, Push("string")}, - {`\)`, Punctuation, Pop(1)}, - {`qualified\b`, Keyword, nil}, - {`([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)(\s+)(as)(\s+)([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)`, ByGroups(NameNamespace, Text, Keyword, Text, Name), Pop(1)}, - {`([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)(\s+)(hiding)(\s+)(\()`, ByGroups(NameNamespace, Text, Keyword, Text, Punctuation), Push("funclist")}, - {`([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)(\s+)(\()`, ByGroups(NameNamespace, Text, Punctuation), Push("funclist")}, - {`[\w.]+`, NameNamespace, Pop(1)}, - }, - "module": { - {`\s+`, Text, nil}, - {`([A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*)(\s+)(\()`, ByGroups(NameNamespace, Text, Punctuation), Push("funclist")}, - {`[A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊][\w.]*`, NameNamespace, Pop(1)}, - }, - "funclist": { - {`\s+`, Text, nil}, - {`[A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊]\w*`, KeywordType, nil}, - {`(_[\w\']+|[a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ-ĸĺļľŀłńņň-ʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌ-ƍƒƕƙ-ƛƞơƣƥƨƪ-ƫƭưƴƶƹ-ƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜ-ǝǟǡǣǥǧǩǫǭǯ-ǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿ-ɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐ-ϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻ-ϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎ-ӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧա-ևᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶ-ᾷιῂ-ῄῆ-ῇῐ-ΐῖ-ῗῠ-ῧῲ-ῴῶ-ῷℊℎ-ℏℓℯℴℹℼ-ℽⅆ-ⅉⅎↄⰰ-ⱞⱡⱥ-ⱦⱨⱪⱬⱱⱳ-ⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ-ⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓꞡꞣꞥꞧꞩꟺff-stﬓ-ﬗa-z𐐨-𐑏𝐚-𝐳𝑎-𝑔𝑖-𝑧𝒂-𝒛𝒶-𝒹𝒻𝒽-𝓃𝓅-𝓏𝓪-𝔃𝔞-𝔷𝕒-𝕫𝖆-𝖟𝖺-𝗓𝗮-𝘇𝘢-𝘻𝙖-𝙯𝚊-𝚥𝛂-𝛚𝛜-𝛡𝛼-𝜔𝜖-𝜛𝜶-𝝎𝝐-𝝕𝝰-𝞈𝞊-𝞏𝞪-𝟂𝟄-𝟉𝟋][\w\']*)`, NameFunction, nil}, - {`--(?![!#$%&*+./<=>?@^|_~:\\]).*?$`, CommentSingle, nil}, - {`\{-`, CommentMultiline, Push("comment")}, - {`,`, Punctuation, nil}, - {`[:!#$%&*+.\\/<=>?@^|~-]+`, Operator, nil}, - {`\(`, Punctuation, Push("funclist", "funclist")}, - {`\)`, Punctuation, Pop(2)}, - }, - "comment": { - {`[^-{}]+`, CommentMultiline, nil}, - {`\{-`, CommentMultiline, Push()}, - {`-\}`, CommentMultiline, Pop(1)}, - {`[-{}]`, CommentMultiline, nil}, - }, - "character": { - {`[^\\']'`, LiteralStringChar, Pop(1)}, - {`\\`, LiteralStringEscape, Push("escape")}, - {`'`, LiteralStringChar, Pop(1)}, - }, - "string": { - {`[^\\"]+`, LiteralString, nil}, - {`\\`, LiteralStringEscape, Push("escape")}, - {`"`, LiteralString, Pop(1)}, - }, - "escape": { - {`[abfnrtv"\'&\\]`, LiteralStringEscape, Pop(1)}, - {`\^[][A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΊΌΎ-ΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԱ-ՖႠ-ჅჇჍḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋꞍꞐꞒꞠꞢꞤꞦꞨꞪA-Z𐐀-𐐧𝐀-𝐙𝐴-𝑍𝑨-𝒁𝒜𝒞-𝒟𝒢𝒥-𝒦𝒩-𝒬𝒮-𝒵𝓐-𝓩𝔄-𝔅𝔇-𝔊𝔍-𝔔𝔖-𝔜𝔸-𝔹𝔻-𝔾𝕀-𝕄𝕆𝕊-𝕐𝕬-𝖅𝖠-𝖹𝗔-𝗭𝘈-𝘡𝘼-𝙕𝙰-𝚉𝚨-𝛀𝛢-𝛺𝜜-𝜴𝝖-𝝮𝞐-𝞨𝟊@^_]`, LiteralStringEscape, Pop(1)}, - {`NUL|SOH|[SE]TX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|S[OI]|DLE|DC[1-4]|NAK|SYN|ETB|CAN|EM|SUB|ESC|[FGRU]S|SP|DEL`, LiteralStringEscape, Pop(1)}, - {`o[0-7]+`, LiteralStringEscape, Pop(1)}, - {`x[\da-fA-F]+`, LiteralStringEscape, Pop(1)}, - {`\d+`, LiteralStringEscape, Pop(1)}, - {`\s+\\`, LiteralStringEscape, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/haxe.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/haxe.go deleted file mode 100644 index 5958543194..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/haxe.go +++ /dev/null @@ -1,642 +0,0 @@ -package h - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Haxe lexer. -var Haxe = internal.Register(MustNewLexer( - &Config{ - Name: "Haxe", - Aliases: []string{"hx", "haxe", "hxsl"}, - Filenames: []string{"*.hx", "*.hxsl"}, - MimeTypes: []string{"text/haxe", "text/x-haxe", "text/x-hx"}, - DotAll: true, - }, - Rules{ - "root": { - Include("spaces"), - Include("meta"), - {`(?:package)\b`, KeywordNamespace, Push("semicolon", "package")}, - {`(?:import)\b`, KeywordNamespace, Push("semicolon", "import")}, - {`(?:using)\b`, KeywordNamespace, Push("semicolon", "using")}, - {`(?:extern|private)\b`, KeywordDeclaration, nil}, - {`(?:abstract)\b`, KeywordDeclaration, Push("abstract")}, - {`(?:class|interface)\b`, KeywordDeclaration, Push("class")}, - {`(?:enum)\b`, KeywordDeclaration, Push("enum")}, - {`(?:typedef)\b`, KeywordDeclaration, Push("typedef")}, - {`(?=.)`, Text, Push("expr-statement")}, - }, - "spaces": { - {`\s+`, Text, nil}, - {`//[^\n\r]*`, CommentSingle, nil}, - {`/\*.*?\*/`, CommentMultiline, nil}, - {`(#)(if|elseif|else|end|error)\b`, CommentPreproc, MutatorFunc(haxePreProcMutator)}, - }, - "string-single-interpol": { - {`\$\{`, LiteralStringInterpol, Push("string-interpol-close", "expr")}, - {`\$\$`, LiteralStringEscape, nil}, - {`\$(?=(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))`, LiteralStringInterpol, Push("ident")}, - Include("string-single"), - }, - "string-single": { - {`'`, LiteralStringSingle, Pop(1)}, - {`\\.`, LiteralStringEscape, nil}, - {`.`, LiteralStringSingle, nil}, - }, - "string-double": { - {`"`, LiteralStringDouble, Pop(1)}, - {`\\.`, LiteralStringEscape, nil}, - {`.`, LiteralStringDouble, nil}, - }, - "string-interpol-close": { - {`\$(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, LiteralStringInterpol, nil}, - {`\}`, LiteralStringInterpol, Pop(1)}, - }, - "package": { - Include("spaces"), - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil}, - {`\.`, Punctuation, Push("import-ident")}, - Default(Pop(1)), - }, - "import": { - Include("spaces"), - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil}, - {`\*`, Keyword, nil}, - {`\.`, Punctuation, Push("import-ident")}, - {`in`, KeywordNamespace, Push("ident")}, - Default(Pop(1)), - }, - "import-ident": { - Include("spaces"), - {`\*`, Keyword, Pop(1)}, - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, Pop(1)}, - }, - "using": { - Include("spaces"), - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameNamespace, nil}, - {`\.`, Punctuation, Push("import-ident")}, - Default(Pop(1)), - }, - "preproc-error": { - {`\s+`, CommentPreproc, nil}, - {`'`, LiteralStringSingle, Push("#pop", "string-single")}, - {`"`, LiteralStringDouble, Push("#pop", "string-double")}, - Default(Pop(1)), - }, - "preproc-expr": { - {`\s+`, CommentPreproc, nil}, - {`\!`, CommentPreproc, nil}, - {`\(`, CommentPreproc, Push("#pop", "preproc-parenthesis")}, - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, CommentPreproc, Pop(1)}, - {`\.[0-9]+`, LiteralNumberFloat, nil}, - {`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, nil}, - {`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, nil}, - {`[0-9]+\.[0-9]+`, LiteralNumberFloat, nil}, - {`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, nil}, - {`0x[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`'`, LiteralStringSingle, Push("#pop", "string-single")}, - {`"`, LiteralStringDouble, Push("#pop", "string-double")}, - }, - "preproc-parenthesis": { - {`\s+`, CommentPreproc, nil}, - {`\)`, CommentPreproc, Pop(1)}, - Default(Push("preproc-expr-in-parenthesis")), - }, - "preproc-expr-chain": { - {`\s+`, CommentPreproc, nil}, - {`(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|/|\-|=>|=)`, CommentPreproc, Push("#pop", "preproc-expr-in-parenthesis")}, - Default(Pop(1)), - }, - "preproc-expr-in-parenthesis": { - {`\s+`, CommentPreproc, nil}, - {`\!`, CommentPreproc, nil}, - {`\(`, CommentPreproc, Push("#pop", "preproc-expr-chain", "preproc-parenthesis")}, - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, CommentPreproc, Push("#pop", "preproc-expr-chain")}, - {`\.[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, - {`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, - {`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, - {`[0-9]+\.[0-9]+`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, - {`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Push("#pop", "preproc-expr-chain")}, - {`0x[0-9a-fA-F]+`, LiteralNumberHex, Push("#pop", "preproc-expr-chain")}, - {`[0-9]+`, LiteralNumberInteger, Push("#pop", "preproc-expr-chain")}, - {`'`, LiteralStringSingle, Push("#pop", "preproc-expr-chain", "string-single")}, - {`"`, LiteralStringDouble, Push("#pop", "preproc-expr-chain", "string-double")}, - }, - "abstract": { - Include("spaces"), - Default(Pop(1), Push("abstract-body"), Push("abstract-relation"), Push("abstract-opaque"), Push("type-param-constraint"), Push("type-name")), - }, - "abstract-body": { - Include("spaces"), - {`\{`, Punctuation, Push("#pop", "class-body")}, - }, - "abstract-opaque": { - Include("spaces"), - {`\(`, Punctuation, Push("#pop", "parenthesis-close", "type")}, - Default(Pop(1)), - }, - "abstract-relation": { - Include("spaces"), - {`(?:to|from)`, KeywordDeclaration, Push("type")}, - {`,`, Punctuation, nil}, - Default(Pop(1)), - }, - "meta": { - Include("spaces"), - {`@`, NameDecorator, Push("meta-body", "meta-ident", "meta-colon")}, - }, - "meta-colon": { - Include("spaces"), - {`:`, NameDecorator, Pop(1)}, - Default(Pop(1)), - }, - "meta-ident": { - Include("spaces"), - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameDecorator, Pop(1)}, - }, - "meta-body": { - Include("spaces"), - {`\(`, NameDecorator, Push("#pop", "meta-call")}, - Default(Pop(1)), - }, - "meta-call": { - Include("spaces"), - {`\)`, NameDecorator, Pop(1)}, - Default(Pop(1), Push("meta-call-sep"), Push("expr")), - }, - "meta-call-sep": { - Include("spaces"), - {`\)`, NameDecorator, Pop(1)}, - {`,`, Punctuation, Push("#pop", "meta-call")}, - }, - "typedef": { - Include("spaces"), - Default(Pop(1), Push("typedef-body"), Push("type-param-constraint"), Push("type-name")), - }, - "typedef-body": { - Include("spaces"), - {`=`, Operator, Push("#pop", "optional-semicolon", "type")}, - }, - "enum": { - Include("spaces"), - Default(Pop(1), Push("enum-body"), Push("bracket-open"), Push("type-param-constraint"), Push("type-name")), - }, - "enum-body": { - Include("spaces"), - Include("meta"), - {`\}`, Punctuation, Pop(1)}, - {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("enum-member", "type-param-constraint")}, - }, - "enum-member": { - Include("spaces"), - {`\(`, Punctuation, Push("#pop", "semicolon", "flag", "function-param")}, - Default(Pop(1), Push("semicolon"), Push("flag")), - }, - "class": { - Include("spaces"), - Default(Pop(1), Push("class-body"), Push("bracket-open"), Push("extends"), Push("type-param-constraint"), Push("type-name")), - }, - "extends": { - Include("spaces"), - {`(?:extends|implements)\b`, KeywordDeclaration, Push("type")}, - {`,`, Punctuation, nil}, - Default(Pop(1)), - }, - "bracket-open": { - Include("spaces"), - {`\{`, Punctuation, Pop(1)}, - }, - "bracket-close": { - Include("spaces"), - {`\}`, Punctuation, Pop(1)}, - }, - "class-body": { - Include("spaces"), - Include("meta"), - {`\}`, Punctuation, Pop(1)}, - {`(?:static|public|private|override|dynamic|inline|macro)\b`, KeywordDeclaration, nil}, - Default(Push("class-member")), - }, - "class-member": { - Include("spaces"), - {`(var)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "var")}, - {`(function)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "class-method")}, - }, - "function-local": { - Include("spaces"), - {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameFunction, Push("#pop", "optional-expr", "flag", "function-param", "parenthesis-open", "type-param-constraint")}, - Default(Pop(1), Push("optional-expr"), Push("flag"), Push("function-param"), Push("parenthesis-open"), Push("type-param-constraint")), - }, - "optional-expr": { - Include("spaces"), - Include("expr"), - Default(Pop(1)), - }, - "class-method": { - Include("spaces"), - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, NameFunction, Push("#pop", "optional-expr", "flag", "function-param", "parenthesis-open", "type-param-constraint")}, - }, - "function-param": { - Include("spaces"), - {`\)`, Punctuation, Pop(1)}, - {`\?`, Punctuation, nil}, - {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "function-param-sep", "assign", "flag")}, - }, - "function-param-sep": { - Include("spaces"), - {`\)`, Punctuation, Pop(1)}, - {`,`, Punctuation, Push("#pop", "function-param")}, - }, - "prop-get-set": { - Include("spaces"), - {`\(`, Punctuation, Push("#pop", "parenthesis-close", "prop-get-set-opt", "comma", "prop-get-set-opt")}, - Default(Pop(1)), - }, - "prop-get-set-opt": { - Include("spaces"), - {`(?:default|null|never|dynamic|get|set)\b`, Keyword, Pop(1)}, - {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Text, Pop(1)}, - }, - "expr-statement": { - Include("spaces"), - Default(Pop(1), Push("optional-semicolon"), Push("expr")), - }, - "expr": { - Include("spaces"), - {`@`, NameDecorator, Push("#pop", "optional-expr", "meta-body", "meta-ident", "meta-colon")}, - {`(?:\+\+|\-\-|~(?!/)|!|\-)`, Operator, nil}, - {`\(`, Punctuation, Push("#pop", "expr-chain", "parenthesis")}, - {`(?:static|public|private|override|dynamic|inline)\b`, KeywordDeclaration, nil}, - {`(?:function)\b`, KeywordDeclaration, Push("#pop", "expr-chain", "function-local")}, - {`\{`, Punctuation, Push("#pop", "expr-chain", "bracket")}, - {`(?:true|false|null)\b`, KeywordConstant, Push("#pop", "expr-chain")}, - {`(?:this)\b`, Keyword, Push("#pop", "expr-chain")}, - {`(?:cast)\b`, Keyword, Push("#pop", "expr-chain", "cast")}, - {`(?:try)\b`, Keyword, Push("#pop", "catch", "expr")}, - {`(?:var)\b`, KeywordDeclaration, Push("#pop", "var")}, - {`(?:new)\b`, Keyword, Push("#pop", "expr-chain", "new")}, - {`(?:switch)\b`, Keyword, Push("#pop", "switch")}, - {`(?:if)\b`, Keyword, Push("#pop", "if")}, - {`(?:do)\b`, Keyword, Push("#pop", "do")}, - {`(?:while)\b`, Keyword, Push("#pop", "while")}, - {`(?:for)\b`, Keyword, Push("#pop", "for")}, - {`(?:untyped|throw)\b`, Keyword, nil}, - {`(?:return)\b`, Keyword, Push("#pop", "optional-expr")}, - {`(?:macro)\b`, Keyword, Push("#pop", "macro")}, - {`(?:continue|break)\b`, Keyword, Pop(1)}, - {`(?:\$\s*[a-z]\b|\$(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)))`, Name, Push("#pop", "dollar")}, - {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "expr-chain")}, - {`\.[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")}, - {`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")}, - {`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")}, - {`[0-9]+\.[0-9]+`, LiteralNumberFloat, Push("#pop", "expr-chain")}, - {`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Push("#pop", "expr-chain")}, - {`0x[0-9a-fA-F]+`, LiteralNumberHex, Push("#pop", "expr-chain")}, - {`[0-9]+`, LiteralNumberInteger, Push("#pop", "expr-chain")}, - {`'`, LiteralStringSingle, Push("#pop", "expr-chain", "string-single-interpol")}, - {`"`, LiteralStringDouble, Push("#pop", "expr-chain", "string-double")}, - {`~/(\\\\|\\/|[^/\n])*/[gimsu]*`, LiteralStringRegex, Push("#pop", "expr-chain")}, - {`\[`, Punctuation, Push("#pop", "expr-chain", "array-decl")}, - }, - "expr-chain": { - Include("spaces"), - {`(?:\+\+|\-\-)`, Operator, nil}, - {`(?:%=|&=|\|=|\^=|\+=|\-=|\*=|/=|<<=|>\s*>\s*=|>\s*>\s*>\s*=|==|!=|<=|>\s*=|&&|\|\||<<|>>>|>\s*>|\.\.\.|<|>|%|&|\||\^|\+|\*|/|\-|=>|=)`, Operator, Push("#pop", "expr")}, - {`(?:in)\b`, Keyword, Push("#pop", "expr")}, - {`\?`, Operator, Push("#pop", "expr", "ternary", "expr")}, - {`(\.)((?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))`, ByGroups(Punctuation, Name), nil}, - {`\[`, Punctuation, Push("array-access")}, - {`\(`, Punctuation, Push("call")}, - Default(Pop(1)), - }, - "macro": { - Include("spaces"), - Include("meta"), - {`:`, Punctuation, Push("#pop", "type")}, - {`(?:extern|private)\b`, KeywordDeclaration, nil}, - {`(?:abstract)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "abstract")}, - {`(?:class|interface)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "macro-class")}, - {`(?:enum)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "enum")}, - {`(?:typedef)\b`, KeywordDeclaration, Push("#pop", "optional-semicolon", "typedef")}, - Default(Pop(1), Push("expr")), - }, - "macro-class": { - {`\{`, Punctuation, Push("#pop", "class-body")}, - Include("class"), - }, - "cast": { - Include("spaces"), - {`\(`, Punctuation, Push("#pop", "parenthesis-close", "cast-type", "expr")}, - Default(Pop(1), Push("expr")), - }, - "cast-type": { - Include("spaces"), - {`,`, Punctuation, Push("#pop", "type")}, - Default(Pop(1)), - }, - "catch": { - Include("spaces"), - {`(?:catch)\b`, Keyword, Push("expr", "function-param", "parenthesis-open")}, - Default(Pop(1)), - }, - "do": { - Include("spaces"), - Default(Pop(1), Push("do-while"), Push("expr")), - }, - "do-while": { - Include("spaces"), - {`(?:while)\b`, Keyword, Push("#pop", "parenthesis", "parenthesis-open")}, - }, - "while": { - Include("spaces"), - {`\(`, Punctuation, Push("#pop", "expr", "parenthesis")}, - }, - "for": { - Include("spaces"), - {`\(`, Punctuation, Push("#pop", "expr", "parenthesis")}, - }, - "if": { - Include("spaces"), - {`\(`, Punctuation, Push("#pop", "else", "optional-semicolon", "expr", "parenthesis")}, - }, - "else": { - Include("spaces"), - {`(?:else)\b`, Keyword, Push("#pop", "expr")}, - Default(Pop(1)), - }, - "switch": { - Include("spaces"), - Default(Pop(1), Push("switch-body"), Push("bracket-open"), Push("expr")), - }, - "switch-body": { - Include("spaces"), - {`(?:case|default)\b`, Keyword, Push("case-block", "case")}, - {`\}`, Punctuation, Pop(1)}, - }, - "case": { - Include("spaces"), - {`:`, Punctuation, Pop(1)}, - Default(Pop(1), Push("case-sep"), Push("case-guard"), Push("expr")), - }, - "case-sep": { - Include("spaces"), - {`:`, Punctuation, Pop(1)}, - {`,`, Punctuation, Push("#pop", "case")}, - }, - "case-guard": { - Include("spaces"), - {`(?:if)\b`, Keyword, Push("#pop", "parenthesis", "parenthesis-open")}, - Default(Pop(1)), - }, - "case-block": { - Include("spaces"), - {`(?!(?:case|default)\b|\})`, Keyword, Push("expr-statement")}, - Default(Pop(1)), - }, - "new": { - Include("spaces"), - Default(Pop(1), Push("call"), Push("parenthesis-open"), Push("type")), - }, - "array-decl": { - Include("spaces"), - {`\]`, Punctuation, Pop(1)}, - Default(Pop(1), Push("array-decl-sep"), Push("expr")), - }, - "array-decl-sep": { - Include("spaces"), - {`\]`, Punctuation, Pop(1)}, - {`,`, Punctuation, Push("#pop", "array-decl")}, - }, - "array-access": { - Include("spaces"), - Default(Pop(1), Push("array-access-close"), Push("expr")), - }, - "array-access-close": { - Include("spaces"), - {`\]`, Punctuation, Pop(1)}, - }, - "comma": { - Include("spaces"), - {`,`, Punctuation, Pop(1)}, - }, - "colon": { - Include("spaces"), - {`:`, Punctuation, Pop(1)}, - }, - "semicolon": { - Include("spaces"), - {`;`, Punctuation, Pop(1)}, - }, - "optional-semicolon": { - Include("spaces"), - {`;`, Punctuation, Pop(1)}, - Default(Pop(1)), - }, - "ident": { - Include("spaces"), - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Pop(1)}, - }, - "dollar": { - Include("spaces"), - {`\{`, Punctuation, Push("#pop", "expr-chain", "bracket-close", "expr")}, - Default(Pop(1), Push("expr-chain")), - }, - "type-name": { - Include("spaces"), - {`_*[A-Z]\w*`, Name, Pop(1)}, - }, - "type-full-name": { - Include("spaces"), - {`\.`, Punctuation, Push("ident")}, - Default(Pop(1)), - }, - "type": { - Include("spaces"), - {`\?`, Punctuation, nil}, - {`(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "type-check", "type-full-name")}, - {`\{`, Punctuation, Push("#pop", "type-check", "type-struct")}, - {`\(`, Punctuation, Push("#pop", "type-check", "type-parenthesis")}, - }, - "type-parenthesis": { - Include("spaces"), - Default(Pop(1), Push("parenthesis-close"), Push("type")), - }, - "type-check": { - Include("spaces"), - {`->`, Punctuation, Push("#pop", "type")}, - {`<(?!=)`, Punctuation, Push("type-param")}, - Default(Pop(1)), - }, - "type-struct": { - Include("spaces"), - {`\}`, Punctuation, Pop(1)}, - {`\?`, Punctuation, nil}, - {`>`, Punctuation, Push("comma", "type")}, - {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "type-struct-sep", "type", "colon")}, - Include("class-body"), - }, - "type-struct-sep": { - Include("spaces"), - {`\}`, Punctuation, Pop(1)}, - {`,`, Punctuation, Push("#pop", "type-struct")}, - }, - "type-param-type": { - {`\.[0-9]+`, LiteralNumberFloat, Pop(1)}, - {`[0-9]+[eE][+\-]?[0-9]+`, LiteralNumberFloat, Pop(1)}, - {`[0-9]+\.[0-9]*[eE][+\-]?[0-9]+`, LiteralNumberFloat, Pop(1)}, - {`[0-9]+\.[0-9]+`, LiteralNumberFloat, Pop(1)}, - {`[0-9]+\.(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)|\.\.)`, LiteralNumberFloat, Pop(1)}, - {`0x[0-9a-fA-F]+`, LiteralNumberHex, Pop(1)}, - {`[0-9]+`, LiteralNumberInteger, Pop(1)}, - {`'`, LiteralStringSingle, Push("#pop", "string-single")}, - {`"`, LiteralStringDouble, Push("#pop", "string-double")}, - {`~/(\\\\|\\/|[^/\n])*/[gim]*`, LiteralStringRegex, Pop(1)}, - {`\[`, Operator, Push("#pop", "array-decl")}, - Include("type"), - }, - "type-param": { - Include("spaces"), - Default(Pop(1), Push("type-param-sep"), Push("type-param-type")), - }, - "type-param-sep": { - Include("spaces"), - {`>`, Punctuation, Pop(1)}, - {`,`, Punctuation, Push("#pop", "type-param")}, - }, - "type-param-constraint": { - Include("spaces"), - {`<(?!=)`, Punctuation, Push("#pop", "type-param-constraint-sep", "type-param-constraint-flag", "type-name")}, - Default(Pop(1)), - }, - "type-param-constraint-sep": { - Include("spaces"), - {`>`, Punctuation, Pop(1)}, - {`,`, Punctuation, Push("#pop", "type-param-constraint-sep", "type-param-constraint-flag", "type-name")}, - }, - "type-param-constraint-flag": { - Include("spaces"), - {`:`, Punctuation, Push("#pop", "type-param-constraint-flag-type")}, - Default(Pop(1)), - }, - "type-param-constraint-flag-type": { - Include("spaces"), - {`\(`, Punctuation, Push("#pop", "type-param-constraint-flag-type-sep", "type")}, - Default(Pop(1), Push("type")), - }, - "type-param-constraint-flag-type-sep": { - Include("spaces"), - {`\)`, Punctuation, Pop(1)}, - {`,`, Punctuation, Push("type")}, - }, - "parenthesis": { - Include("spaces"), - Default(Pop(1), Push("parenthesis-close"), Push("flag"), Push("expr")), - }, - "parenthesis-open": { - Include("spaces"), - {`\(`, Punctuation, Pop(1)}, - }, - "parenthesis-close": { - Include("spaces"), - {`\)`, Punctuation, Pop(1)}, - }, - "var": { - Include("spaces"), - {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Text, Push("#pop", "var-sep", "assign", "flag", "prop-get-set")}, - }, - "var-sep": { - Include("spaces"), - {`,`, Punctuation, Push("#pop", "var")}, - Default(Pop(1)), - }, - "assign": { - Include("spaces"), - {`=`, Operator, Push("#pop", "expr")}, - Default(Pop(1)), - }, - "flag": { - Include("spaces"), - {`:`, Punctuation, Push("#pop", "type")}, - Default(Pop(1)), - }, - "ternary": { - Include("spaces"), - {`:`, Operator, Pop(1)}, - }, - "call": { - Include("spaces"), - {`\)`, Punctuation, Pop(1)}, - Default(Pop(1), Push("call-sep"), Push("expr")), - }, - "call-sep": { - Include("spaces"), - {`\)`, Punctuation, Pop(1)}, - {`,`, Punctuation, Push("#pop", "call")}, - }, - "bracket": { - Include("spaces"), - {`(?!(?:\$\s*[a-z]\b|\$(?!(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+))))(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Push("#pop", "bracket-check")}, - {`'`, LiteralStringSingle, Push("#pop", "bracket-check", "string-single")}, - {`"`, LiteralStringDouble, Push("#pop", "bracket-check", "string-double")}, - Default(Pop(1), Push("block")), - }, - "bracket-check": { - Include("spaces"), - {`:`, Punctuation, Push("#pop", "object-sep", "expr")}, - Default(Pop(1), Push("block"), Push("optional-semicolon"), Push("expr-chain")), - }, - "block": { - Include("spaces"), - {`\}`, Punctuation, Pop(1)}, - Default(Push("expr-statement")), - }, - "object": { - Include("spaces"), - {`\}`, Punctuation, Pop(1)}, - Default(Pop(1), Push("object-sep"), Push("expr"), Push("colon"), Push("ident-or-string")), - }, - "ident-or-string": { - Include("spaces"), - {`(?!(?:function|class|static|var|if|else|while|do|for|break|return|continue|extends|implements|import|switch|case|default|public|private|try|untyped|catch|new|this|throw|extern|enum|in|interface|cast|override|dynamic|typedef|package|inline|using|null|true|false|abstract)\b)(?:_*[a-z]\w*|_+[0-9]\w*|_*[A-Z]\w*|_+|\$\w+)`, Name, Pop(1)}, - {`'`, LiteralStringSingle, Push("#pop", "string-single")}, - {`"`, LiteralStringDouble, Push("#pop", "string-double")}, - }, - "object-sep": { - Include("spaces"), - {`\}`, Punctuation, Pop(1)}, - {`,`, Punctuation, Push("#pop", "object")}, - }, - }, -)) - -func haxePreProcMutator(state *LexerState) error { - stack, ok := state.Get("haxe-pre-proc").([][]string) - if !ok { - stack = [][]string{} - } - - proc := state.Groups[2] - switch proc { - case "if": - stack = append(stack, state.Stack) - case "else", "elseif": - if len(stack) > 0 { - state.Stack = stack[len(stack)-1] - } - case "end": - stack = stack[:len(stack)-1] - } - - if proc == "if" || proc == "elseif" { - state.Stack = append(state.Stack, "preproc-expr") - } - - if proc == "error" { - state.Stack = append(state.Stack, "preproc-error") - } - state.Set("haxe-pre-proc", stack) - return nil -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hcl.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hcl.go deleted file mode 100644 index ce7064b58d..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hcl.go +++ /dev/null @@ -1,69 +0,0 @@ -package h - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// HCL lexer. -var HCL = internal.Register(MustNewLexer( - &Config{ - Name: "HCL", - Aliases: []string{"hcl"}, - Filenames: []string{"*.hcl"}, - MimeTypes: []string{"application/x-hcl"}, - }, - Rules{ - "root": { - Include("string"), - Include("punctuation"), - Include("curly"), - Include("basic"), - Include("whitespace"), - {`[0-9]+`, LiteralNumber, nil}, - }, - "basic": { - {Words(`\b`, `\b`, `true`, `false`), KeywordType, nil}, - {`\s*/\*`, CommentMultiline, Push("comment")}, - {`\s*#.*\n`, CommentSingle, nil}, - {`(.*?)(\s*)(=)`, ByGroups(Name, Text, Operator), nil}, - {`\d+`, Number, nil}, - {`\b\w+\b`, Keyword, nil}, - {`\$\{`, LiteralStringInterpol, Push("var_builtin")}, - }, - "function": { - {`(\s+)(".*")(\s+)`, ByGroups(Text, LiteralString, Text), nil}, - Include("punctuation"), - Include("curly"), - }, - "var_builtin": { - {`\$\{`, LiteralStringInterpol, Push()}, - {Words(`\b`, `\b`, `concat`, `file`, `join`, `lookup`, `element`), NameBuiltin, nil}, - Include("string"), - Include("punctuation"), - {`\s+`, Text, nil}, - {`\}`, LiteralStringInterpol, Pop(1)}, - }, - "string": { - {`(".*")`, ByGroups(LiteralStringDouble), nil}, - }, - "punctuation": { - {`[\[\](),.]`, Punctuation, nil}, - }, - "curly": { - {`\{`, TextPunctuation, nil}, - {`\}`, TextPunctuation, nil}, - }, - "comment": { - {`[^*/]`, CommentMultiline, nil}, - {`/\*`, CommentMultiline, Push()}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[*/]`, CommentMultiline, nil}, - }, - "whitespace": { - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`\\\n`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hexdump.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hexdump.go deleted file mode 100644 index 8b7e7bdda6..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hexdump.go +++ /dev/null @@ -1,67 +0,0 @@ -package h - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Hexdump lexer. -var Hexdump = internal.Register(MustNewLexer( - &Config{ - Name: "Hexdump", - Aliases: []string{"hexdump"}, - Filenames: []string{}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`\n`, Text, nil}, - Include("offset"), - {`([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})`, ByGroups(LiteralNumberHex, Punctuation, LiteralNumberHex), nil}, - {`[0-9A-Ha-h]{2}`, LiteralNumberHex, nil}, - {`(\s{2,3})(\>)(.{16})(\<)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), Push("bracket-strings")}, - {`(\s{2,3})(\|)(.{16})(\|)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), Push("piped-strings")}, - {`(\s{2,3})(\>)(.{1,15})(\<)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), nil}, - {`(\s{2,3})(\|)(.{1,15})(\|)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), nil}, - {`(\s{2,3})(.{1,15})$`, ByGroups(Text, LiteralString), nil}, - {`(\s{2,3})(.{16}|.{20})$`, ByGroups(Text, LiteralString), Push("nonpiped-strings")}, - {`\s`, Text, nil}, - {`^\*`, Punctuation, nil}, - }, - "offset": { - {`^([0-9A-Ha-h]+)(:)`, ByGroups(NameLabel, Punctuation), Push("offset-mode")}, - {`^[0-9A-Ha-h]+`, NameLabel, nil}, - }, - "offset-mode": { - {`\s`, Text, Pop(1)}, - {`[0-9A-Ha-h]+`, NameLabel, nil}, - {`:`, Punctuation, nil}, - }, - "piped-strings": { - {`\n`, Text, nil}, - Include("offset"), - {`[0-9A-Ha-h]{2}`, LiteralNumberHex, nil}, - {`(\s{2,3})(\|)(.{1,16})(\|)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), nil}, - {`\s`, Text, nil}, - {`^\*`, Punctuation, nil}, - }, - "bracket-strings": { - {`\n`, Text, nil}, - Include("offset"), - {`[0-9A-Ha-h]{2}`, LiteralNumberHex, nil}, - {`(\s{2,3})(\>)(.{1,16})(\<)$`, ByGroups(Text, Punctuation, LiteralString, Punctuation), nil}, - {`\s`, Text, nil}, - {`^\*`, Punctuation, nil}, - }, - "nonpiped-strings": { - {`\n`, Text, nil}, - Include("offset"), - {`([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})`, ByGroups(LiteralNumberHex, Punctuation, LiteralNumberHex), nil}, - {`[0-9A-Ha-h]{2}`, LiteralNumberHex, nil}, - {`(\s{19,})(.{1,20}?)$`, ByGroups(Text, LiteralString), nil}, - {`(\s{2,3})(.{1,20})$`, ByGroups(Text, LiteralString), nil}, - {`\s`, Text, nil}, - {`^\*`, Punctuation, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/html.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/html.go deleted file mode 100644 index 07fc27ef55..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/html.go +++ /dev/null @@ -1,59 +0,0 @@ -package h - -import ( - . "github.com/alecthomas/chroma" // nolint - . "github.com/alecthomas/chroma/lexers/c" // nolint - "github.com/alecthomas/chroma/lexers/internal" - . "github.com/alecthomas/chroma/lexers/j" // nolint -) - -// HTML lexer. -var HTML = internal.Register(MustNewLexer( - &Config{ - Name: "HTML", - Aliases: []string{"html"}, - Filenames: []string{"*.html", "*.htm", "*.xhtml", "*.xslt"}, - MimeTypes: []string{"text/html", "application/xhtml+xml"}, - NotMultiline: true, - DotAll: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`[^<&]+`, Text, nil}, - {`&\S*?;`, NameEntity, nil}, - {`\<\!\[CDATA\[.*?\]\]\>`, CommentPreproc, nil}, - {``, Comment, Pop(1)}, - {`-`, Comment, nil}, - }, - "tag": { - {`\s+`, Text, nil}, - {`([\w:-]+\s*)(=)(\s*)`, ByGroups(NameAttribute, Operator, Text), Push("attr")}, - {`[\w:-]+`, NameAttribute, nil}, - {`(/?)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation), Pop(1)}, - }, - "script-content": { - {`(<)(\s*)(/)(\s*)(script)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)}, - {`.+?(?=<\s*/\s*script\s*>)`, Using(Javascript), nil}, - }, - "style-content": { - {`(<)(\s*)(/)(\s*)(style)(\s*)(>)`, ByGroups(Punctuation, Text, Punctuation, Text, NameTag, Text, Punctuation), Pop(1)}, - {`.+?(?=<\s*/\s*style\s*>)`, Using(CSS), nil}, - }, - "attr": { - {`".*?"`, LiteralString, Pop(1)}, - {`'.*?'`, LiteralString, Pop(1)}, - {`[^\s>]+`, LiteralString, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/http.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/http.go deleted file mode 100644 index 0a1264cf08..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/http.go +++ /dev/null @@ -1,128 +0,0 @@ -package h - -import ( - "strings" - - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// HTTP lexer. -var HTTP = internal.Register(httpBodyContentTypeLexer(MustNewLexer( - &Config{ - Name: "HTTP", - Aliases: []string{"http"}, - Filenames: []string{}, - MimeTypes: []string{}, - NotMultiline: true, - DotAll: true, - }, - Rules{ - "root": { - {`(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH|CONNECT)( +)([^ ]+)( +)(HTTP)(/)(1\.[01])(\r?\n|\Z)`, ByGroups(NameFunction, Text, NameNamespace, Text, KeywordReserved, Operator, LiteralNumber, Text), Push("headers")}, - {`(HTTP)(/)(1\.[01])( +)(\d{3})( +)([^\r\n]+)(\r?\n|\Z)`, ByGroups(KeywordReserved, Operator, LiteralNumber, Text, LiteralNumber, Text, NameException, Text), Push("headers")}, - }, - "headers": { - {`([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|\Z)`, EmitterFunc(httpHeaderBlock), nil}, - {`([\t ]+)([^\r\n]+)(\r?\n|\Z)`, EmitterFunc(httpContinuousHeaderBlock), nil}, - {`\r?\n`, Text, Push("content")}, - }, - "content": { - {`.+`, EmitterFunc(httpContentBlock), nil}, - }, - }, -))) - -func httpContentBlock(groups []string, lexer Lexer) Iterator { - tokens := []Token{ - {Generic, groups[0]}, - } - return Literator(tokens...) -} - -func httpHeaderBlock(groups []string, lexer Lexer) Iterator { - tokens := []Token{ - {Name, groups[1]}, - {Text, groups[2]}, - {Operator, groups[3]}, - {Text, groups[4]}, - {Literal, groups[5]}, - {Text, groups[6]}, - } - return Literator(tokens...) -} - -func httpContinuousHeaderBlock(groups []string, lexer Lexer) Iterator { - tokens := []Token{ - {Text, groups[1]}, - {Literal, groups[2]}, - {Text, groups[3]}, - } - return Literator(tokens...) -} - -func httpBodyContentTypeLexer(lexer Lexer) Lexer { return &httpBodyContentTyper{lexer} } - -type httpBodyContentTyper struct{ Lexer } - -func (d *httpBodyContentTyper) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { // nolint: gocognit - var contentType string - var isContentType bool - var subIterator Iterator - - it, err := d.Lexer.Tokenise(options, text) - if err != nil { - return nil, err - } - - return func() Token { - token := it() - - if token == EOF { - if subIterator != nil { - return subIterator() - } - return EOF - } - - switch { - case token.Type == Name && strings.ToLower(token.Value) == "content-type": - { - isContentType = true - } - case token.Type == Literal && isContentType: - { - isContentType = false - contentType = strings.TrimSpace(token.Value) - pos := strings.Index(contentType, ";") - if pos > 0 { - contentType = strings.TrimSpace(contentType[:pos]) - } - } - case token.Type == Generic && contentType != "": - { - lexer := internal.MatchMimeType(contentType) - - // application/calendar+xml can be treated as application/xml - // if there's not a better match. - if lexer == nil && strings.Contains(contentType, "+") { - slashPos := strings.Index(contentType, "/") - plusPos := strings.LastIndex(contentType, "+") - contentType = contentType[:slashPos+1] + contentType[plusPos+1:] - lexer = internal.MatchMimeType(contentType) - } - - if lexer == nil { - token.Type = Text - } else { - subIterator, err = lexer.Tokenise(nil, token.Value) - if err != nil { - panic(err) - } - return EOF - } - } - } - return token - }, nil -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hy.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hy.go deleted file mode 100644 index 17385e86fe..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/h/hy.go +++ /dev/null @@ -1,51 +0,0 @@ -package h - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Hy lexer. -var Hy = internal.Register(MustNewLexer( - &Config{ - Name: "Hy", - Aliases: []string{"hylang"}, - Filenames: []string{"*.hy"}, - MimeTypes: []string{"text/x-hy", "application/x-hy"}, - }, - Rules{ - "root": { - {`;.*$`, CommentSingle, nil}, - {`[,\s]+`, Text, nil}, - {`-?\d+\.\d+`, LiteralNumberFloat, nil}, - {`-?\d+`, LiteralNumberInteger, nil}, - {`0[0-7]+j?`, LiteralNumberOct, nil}, - {`0[xX][a-fA-F0-9]+`, LiteralNumberHex, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`'(?!#)[\w!$%*+<=>?/.#-]+`, LiteralStringSymbol, nil}, - {`\\(.|[a-z]+)`, LiteralStringChar, nil}, - {`^(\s*)([rRuU]{,2}"""(?:.|\n)*?""")`, ByGroups(Text, LiteralStringDoc), nil}, - {`^(\s*)([rRuU]{,2}'''(?:.|\n)*?''')`, ByGroups(Text, LiteralStringDoc), nil}, - {`::?(?!#)[\w!$%*+<=>?/.#-]+`, LiteralStringSymbol, nil}, - {"~@|[`\\'#^~&@]", Operator, nil}, - Include("py-keywords"), - Include("py-builtins"), - {Words(``, ` `, `cond`, `for`, `->`, `->>`, `car`, `cdr`, `first`, `rest`, `let`, `when`, `unless`, `import`, `do`, `progn`, `get`, `slice`, `assoc`, `with-decorator`, `,`, `list_comp`, `kwapply`, `~`, `is`, `in`, `is-not`, `not-in`, `quasiquote`, `unquote`, `unquote-splice`, `quote`, `|`, `<<=`, `>>=`, `foreach`, `while`, `eval-and-compile`, `eval-when-compile`), Keyword, nil}, - {Words(``, ` `, `def`, `defn`, `defun`, `defmacro`, `defclass`, `lambda`, `fn`, `setv`), KeywordDeclaration, nil}, - {Words(``, ` `, `cycle`, `dec`, `distinct`, `drop`, `even?`, `filter`, `inc`, `instance?`, `iterable?`, `iterate`, `iterator?`, `neg?`, `none?`, `nth`, `numeric?`, `odd?`, `pos?`, `remove`, `repeat`, `repeatedly`, `take`, `take_nth`, `take_while`, `zero?`), NameBuiltin, nil}, - {`(?<=\()(?!#)[\w!$%*+<=>?/.#-]+`, NameFunction, nil}, - {`(?!#)[\w!$%*+<=>?/.#-]+`, NameVariable, nil}, - {`(\[|\])`, Punctuation, nil}, - {`(\{|\})`, Punctuation, nil}, - {`(\(|\))`, Punctuation, nil}, - }, - "py-keywords": { - {Words(``, `\b`, `assert`, `break`, `continue`, `del`, `elif`, `else`, `except`, `exec`, `finally`, `for`, `global`, `if`, `lambda`, `pass`, `print`, `raise`, `return`, `try`, `while`, `yield`, `yield from`, `as`, `with`), Keyword, nil}, - }, - "py-builtins": { - {Words(`(??@^|_~:\\]).*?)$`, ByGroups(Text, CommentSingle), nil}, - {`(\s*)(\|{3}.*?)$`, ByGroups(Text, CommentSingle), nil}, - {`(\s*)(\{-)`, ByGroups(Text, CommentMultiline), Push("comment")}, - {`^(\s*)([^\s(){}]+)(\s*)(:)(\s*)`, ByGroups(Text, NameFunction, Text, OperatorWord, Text), nil}, - {`\b(case|class|data|default|using|do|else|if|in|infix[lr]?|instance|rewrite|auto|namespace|codata|mutual|private|public|abstract|total|partial|let|proof|of|then|static|where|_|with|pattern|term|syntax|prefix|postulate|parameters|record|dsl|impossible|implicit|tactics|intros|intro|compute|refine|exact|trivial)(?!\')\b`, KeywordReserved, nil}, - {`(import|module)(\s+)`, ByGroups(KeywordReserved, Text), Push("module")}, - {`('')?[A-Z][\w\']*`, KeywordType, nil}, - {`[a-z][\w\']*`, Text, nil}, - {`(<-|::|->|=>|=)`, OperatorWord, nil}, - {`([(){}\[\]:!#$%&*+.\\/<=>?@^|~-]+)`, OperatorWord, nil}, - {`\d+[eE][+-]?\d+`, LiteralNumberFloat, nil}, - {`\d+\.\d+([eE][+-]?\d+)?`, LiteralNumberFloat, nil}, - {`0[xX][\da-fA-F]+`, LiteralNumberHex, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`'`, LiteralStringChar, Push("character")}, - {`"`, LiteralString, Push("string")}, - {`[^\s(){}]+`, Text, nil}, - {`\s+?`, Text, nil}, - }, - "module": { - {`\s+`, Text, nil}, - {`([A-Z][\w.]*)(\s+)(\()`, ByGroups(NameNamespace, Text, Punctuation), Push("funclist")}, - {`[A-Z][\w.]*`, NameNamespace, Pop(1)}, - }, - "funclist": { - {`\s+`, Text, nil}, - {`[A-Z]\w*`, KeywordType, nil}, - {`(_[\w\']+|[a-z][\w\']*)`, NameFunction, nil}, - {`--.*$`, CommentSingle, nil}, - {`\{-`, CommentMultiline, Push("comment")}, - {`,`, Punctuation, nil}, - {`[:!#$%&*+.\\/<=>?@^|~-]+`, Operator, nil}, - {`\(`, Punctuation, Push("funclist", "funclist")}, - {`\)`, Punctuation, Pop(2)}, - }, - "comment": { - {`[^-{}]+`, CommentMultiline, nil}, - {`\{-`, CommentMultiline, Push()}, - {`-\}`, CommentMultiline, Pop(1)}, - {`[-{}]`, CommentMultiline, nil}, - }, - "character": { - {`[^\\']`, LiteralStringChar, nil}, - {`\\`, LiteralStringEscape, Push("escape")}, - {`'`, LiteralStringChar, Pop(1)}, - }, - "string": { - {`[^\\"]+`, LiteralString, nil}, - {`\\`, LiteralStringEscape, Push("escape")}, - {`"`, LiteralString, Pop(1)}, - }, - "escape": { - {`[abfnrtv"\'&\\]`, LiteralStringEscape, Pop(1)}, - {`\^[][A-Z@^_]`, LiteralStringEscape, Pop(1)}, - {`NUL|SOH|[SE]TX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|S[OI]|DLE|DC[1-4]|NAK|SYN|ETB|CAN|EM|SUB|ESC|[FGRU]S|SP|DEL`, LiteralStringEscape, Pop(1)}, - {`o[0-7]+`, LiteralStringEscape, Pop(1)}, - {`x[\da-fA-F]+`, LiteralStringEscape, Pop(1)}, - {`\d+`, LiteralStringEscape, Pop(1)}, - {`\s+\\`, LiteralStringEscape, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/i/igor.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/i/igor.go deleted file mode 100644 index d704a4fbd9..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/i/igor.go +++ /dev/null @@ -1,32 +0,0 @@ -package i - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Igor lexer. -var Igor = internal.Register(MustNewLexer( - &Config{ - Name: "Igor", - Aliases: []string{"igor", "igorpro"}, - Filenames: []string{"*.ipf"}, - MimeTypes: []string{"text/ipf"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`//.*$`, CommentSingle, nil}, - {`"([^"\\]|\\.)*"`, LiteralString, nil}, - {Words(`\b`, `\b`, `if`, `else`, `elseif`, `endif`, `for`, `endfor`, `strswitch`, `switch`, `case`, `default`, `endswitch`, `do`, `while`, `try`, `catch`, `endtry`, `break`, `continue`, `return`, `AbortOnRTE`, `AbortOnValue`), Keyword, nil}, - {Words(`\b`, `\b`, `variable`, `string`, `constant`, `strconstant`, `NVAR`, `SVAR`, `WAVE`, `STRUCT`, `dfref`, `funcref`, `char`, `uchar`, `int16`, `uint16`, `int32`, `uint32`, `int64`, `uint64`, `float`, `double`), KeywordType, nil}, - {Words(`\b`, `\b`, `override`, `ThreadSafe`, `MultiThread`, `static`, `Proc`, `Picture`, `Prompt`, `DoPrompt`, `macro`, `window`, `function`, `end`, `Structure`, `EndStructure`, `EndMacro`, `Menu`, `SubMenu`), KeywordReserved, nil}, - {Words(`\b`, `\b`, `Abort`, `AddFIFOData`, `AddFIFOVectData`, `AddMovieAudio`, `AddMovieFrame`, `AddWavesToBoxPlot`, `AddWavesToViolinPlot`, `AdoptFiles`, `APMath`, `Append`, `AppendBoxPlot`, `AppendImage`, `AppendLayoutObject`, `AppendMatrixContour`, `AppendText`, `AppendToGizmo`, `AppendToGraph`, `AppendToLayout`, `AppendToTable`, `AppendViolinPlot`, `AppendXYZContour`, `AutoPositionWindow`, `AxonTelegraphFindServers`, `BackgroundInfo`, `Beep`, `BoundingBall`, `BoxSmooth`, `BrowseURL`, `BuildMenu`, `Button`, `cd`, `Chart`, `CheckBox`, `CheckDisplayed`, `ChooseColor`, `Close`, `CloseHelp`, `CloseMovie`, `CloseProc`, `ColorScale`, `ColorTab2Wave`, `Concatenate`, `ControlBar`, `ControlInfo`, `ControlUpdate`, `ConvertGlobalStringTextEncoding`, `ConvexHull`, `Convolve`, `CopyDimLabels`, `CopyFile`, `CopyFolder`, `CopyScales`, `Correlate`, `CreateAliasShortcut`, `CreateBrowser`, `Cross`, `CtrlBackground`, `CtrlFIFO`, `CtrlNamedBackground`, `Cursor`, `CurveFit`, `CustomControl`, `CWT`, `DAQmx_AI_SetupReader`, `DAQmx_AO_SetOutputs`, `DAQmx_CTR_CountEdges`, `DAQmx_CTR_OutputPulse`, `DAQmx_CTR_Period`, `DAQmx_CTR_PulseWidth`, `DAQmx_DIO_Config`, `DAQmx_DIO_WriteNewData`, `DAQmx_Scan`, `DAQmx_WaveformGen`, `Debugger`, `DebuggerOptions`, `DefaultFont`, `DefaultGuiControls`, `DefaultGuiFont`, `DefaultTextEncoding`, `DefineGuide`, `DelayUpdate`, `DeleteAnnotations`, `DeleteFile`, `DeleteFolder`, `DeletePoints`, `Differentiate`, `dir`, `Display`, `DisplayHelpTopic`, `DisplayProcedure`, `DoAlert`, `DoIgorMenu`, `DoUpdate`, `DoWindow`, `DoXOPIdle`, `DPSS`, `DrawAction`, `DrawArc`, `DrawBezier`, `DrawLine`, `DrawOval`, `DrawPICT`, `DrawPoly`, `DrawRect`, `DrawRRect`, `DrawText`, `DrawUserShape`, `DSPDetrend`, `DSPPeriodogram`, `Duplicate`, `DuplicateDataFolder`, `DWT`, `EdgeStats`, `Edit`, `ErrorBars`, `EstimatePeakSizes`, `Execute`, `ExecuteScriptText`, `ExperimentInfo`, `ExperimentModified`, `ExportGizmo`, `Extract`, `FastGaussTransform`, `FastOp`, `FBinRead`, `FBinWrite`, `FFT`, `FGetPos`, `FIFOStatus`, `FIFO2Wave`, `FilterFIR`, `FilterIIR`, `FindAPeak`, `FindContour`, `FindDuplicates`, `FindLevel`, `FindLevels`, `FindPeak`, `FindPointsInPoly`, `FindRoots`, `FindSequence`, `FindValue`, `FMaxFlat`, `FPClustering`, `fprintf`, `FReadLine`, `FSetPos`, `FStatus`, `FTPCreateDirectory`, `FTPDelete`, `FTPDownload`, `FTPUpload`, `FuncFit`, `FuncFitMD`, `GBLoadWave`, `GetAxis`, `GetCamera`, `GetFileFolderInfo`, `GetGizmo`, `GetLastUserMenuInfo`, `GetMarquee`, `GetMouse`, `GetSelection`, `GetWindow`, `GISCreateVectorLayer`, `GISGetRasterInfo`, `GISGetRegisteredFileInfo`, `GISGetVectorLayerInfo`, `GISLoadRasterData`, `GISLoadVectorData`, `GISRasterizeVectorData`, `GISRegisterFile`, `GISTransformCoords`, `GISUnRegisterFile`, `GISWriteFieldData`, `GISWriteGeometryData`, `GISWriteRaster`, `GPIBReadBinaryWave2`, `GPIBReadBinary2`, `GPIBReadWave2`, `GPIBRead2`, `GPIBWriteBinaryWave2`, `GPIBWriteBinary2`, `GPIBWriteWave2`, `GPIBWrite2`, `GPIB2`, `GraphNormal`, `GraphWaveDraw`, `GraphWaveEdit`, `Grep`, `GroupBox`, `Hanning`, `HDFInfo`, `HDFReadImage`, `HDFReadSDS`, `HDFReadVset`, `HDF5CloseFile`, `HDF5CloseGroup`, `HDF5ConvertColors`, `HDF5CreateFile`, `HDF5CreateGroup`, `HDF5CreateLink`, `HDF5Dump`, `HDF5DumpErrors`, `HDF5DumpState`, `HDF5FlushFile`, `HDF5ListAttributes`, `HDF5ListGroup`, `HDF5LoadData`, `HDF5LoadGroup`, `HDF5LoadImage`, `HDF5OpenFile`, `HDF5OpenGroup`, `HDF5SaveData`, `HDF5SaveGroup`, `HDF5SaveImage`, `HDF5TestOperation`, `HDF5UnlinkObject`, `HideIgorMenus`, `HideInfo`, `HideProcedures`, `HideTools`, `HilbertTransform`, `Histogram`, `ICA`, `IFFT`, `ImageAnalyzeParticles`, `ImageBlend`, `ImageBoundaryToMask`, `ImageComposite`, `ImageEdgeDetection`, `ImageFileInfo`, `ImageFilter`, `ImageFocus`, `ImageFromXYZ`, `ImageGenerateROIMask`, `ImageGLCM`, `ImageHistModification`, `ImageHistogram`, `ImageInterpolate`, `ImageLineProfile`, `ImageLoad`, `ImageMorphology`, `ImageRegistration`, `ImageRemoveBackground`, `ImageRestore`, `ImageRotate`, `ImageSave`, `ImageSeedFill`, `ImageSkeleton3d`, `ImageSnake`, `ImageStats`, `ImageThreshold`, `ImageTransform`, `ImageUnwrapPhase`, `ImageWindow`, `IndexSort`, `InsertPoints`, `Integrate`, `IntegrateODE`, `Integrate2D`, `Interpolate2`, `Interpolate3D`, `Interp3DPath`, `ITCCloseAll2`, `ITCCloseDevice2`, `ITCConfigAllChannels2`, `ITCConfigChannelReset2`, `ITCConfigChannelUpload2`, `ITCConfigChannel2`, `ITCFIFOAvailableAll2`, `ITCFIFOAvailable2`, `ITCGetAllChannelsConfig2`, `ITCGetChannelConfig2`, `ITCGetCurrentDevice2`, `ITCGetDeviceInfo2`, `ITCGetDevices2`, `ITCGetErrorString2`, `ITCGetSerialNumber2`, `ITCGetState2`, `ITCGetVersions2`, `ITCInitialize2`, `ITCOpenDevice2`, `ITCReadADC2`, `ITCReadDigital2`, `ITCReadTimer2`, `ITCSelectDevice2`, `ITCSetDAC2`, `ITCSetGlobals2`, `ITCSetModes2`, `ITCSetState2`, `ITCStartAcq2`, `ITCStopAcq2`, `ITCUpdateFIFOPositionAll2`, `ITCUpdateFIFOPosition2`, `ITCWriteDigital2`, `JCAMPLoadWave`, `JointHistogram`, `KillBackground`, `KillControl`, `KillDataFolder`, `KillFIFO`, `KillFreeAxis`, `KillPath`, `KillPICTs`, `KillStrings`, `KillVariables`, `KillWaves`, `KillWindow`, `KMeans`, `Label`, `Layout`, `LayoutPageAction`, `LayoutSlideShow`, `Legend`, `LinearFeedbackShiftRegister`, `ListBox`, `LoadData`, `LoadPackagePreferences`, `LoadPICT`, `LoadWave`, `Loess`, `LombPeriodogram`, `Make`, `MakeIndex`, `MarkPerfTestTime`, `MatrixConvolve`, `MatrixCorr`, `MatrixEigenV`, `MatrixFilter`, `MatrixGaussJ`, `MatrixGLM`, `MatrixInverse`, `MatrixLinearSolve`, `MatrixLinearSolveTD`, `MatrixLLS`, `MatrixLUBkSub`, `MatrixLUD`, `MatrixLUDTD`, `MatrixMultiply`, `MatrixOP`, `MatrixSchur`, `MatrixSolve`, `MatrixSVBkSub`, `MatrixSVD`, `MatrixTranspose`, `MCC_FindServers`, `MeasureStyledText`, `MFR_CheckForNewBricklets`, `MFR_CloseResultFile`, `MFR_CreateOverviewTable`, `MFR_GetBrickletCount`, `MFR_GetBrickletData`, `MFR_GetBrickletDeployData`, `MFR_GetBrickletMetaData`, `MFR_GetBrickletRawData`, `MFR_GetReportTemplate`, `MFR_GetResultFileMetaData`, `MFR_GetResultFileName`, `MFR_GetVernissageVersion`, `MFR_GetVersion`, `MFR_GetXOPErrorMessage`, `MFR_OpenResultFile`, `MLLoadWave`, `Modify`, `ModifyBoxPlot`, `ModifyBrowser`, `ModifyCamera`, `ModifyContour`, `ModifyControl`, `ModifyControlList`, `ModifyFreeAxis`, `ModifyGizmo`, `ModifyGraph`, `ModifyImage`, `ModifyLayout`, `ModifyPanel`, `ModifyTable`, `ModifyViolinPlot`, `ModifyWaterfall`, `MoveDataFolder`, `MoveFile`, `MoveFolder`, `MoveString`, `MoveSubwindow`, `MoveVariable`, `MoveWave`, `MoveWindow`, `MultiTaperPSD`, `MultiThreadingControl`, `NC_CloseFile`, `NC_DumpErrors`, `NC_Inquire`, `NC_ListAttributes`, `NC_ListObjects`, `NC_LoadData`, `NC_OpenFile`, `NeuralNetworkRun`, `NeuralNetworkTrain`, `NewCamera`, `NewDataFolder`, `NewFIFO`, `NewFIFOChan`, `NewFreeAxis`, `NewGizmo`, `NewImage`, `NewLayout`, `NewMovie`, `NewNotebook`, `NewPanel`, `NewPath`, `NewWaterfall`, `NILoadWave`, `NI4882`, `Note`, `Notebook`, `NotebookAction`, `Open`, `OpenHelp`, `OpenNotebook`, `Optimize`, `ParseOperationTemplate`, `PathInfo`, `PauseForUser`, `PauseUpdate`, `PCA`, `PlayMovie`, `PlayMovieAction`, `PlaySound`, `PopupContextualMenu`, `PopupMenu`, `Preferences`, `PrimeFactors`, `Print`, `printf`, `PrintGraphs`, `PrintLayout`, `PrintNotebook`, `PrintSettings`, `PrintTable`, `Project`, `PulseStats`, `PutScrapText`, `pwd`, `Quit`, `RatioFromNumber`, `Redimension`, `Remez`, `Remove`, `RemoveContour`, `RemoveFromGizmo`, `RemoveFromGraph`, `RemoveFromLayout`, `RemoveFromTable`, `RemoveImage`, `RemoveLayoutObjects`, `RemovePath`, `Rename`, `RenameDataFolder`, `RenamePath`, `RenamePICT`, `RenameWindow`, `ReorderImages`, `ReorderTraces`, `ReplaceText`, `ReplaceWave`, `Resample`, `ResumeUpdate`, `Reverse`, `Rotate`, `Save`, `SaveData`, `SaveExperiment`, `SaveGizmoCopy`, `SaveGraphCopy`, `SaveNotebook`, `SavePackagePreferences`, `SavePICT`, `SaveTableCopy`, `SetActiveSubwindow`, `SetAxis`, `SetBackground`, `SetDashPattern`, `SetDataFolder`, `SetDimLabel`, `SetDrawEnv`, `SetDrawLayer`, `SetFileFolderInfo`, `SetFormula`, `SetIdlePeriod`, `SetIgorHook`, `SetIgorMenuMode`, `SetIgorOption`, `SetMarquee`, `SetProcessSleep`, `SetRandomSeed`, `SetScale`, `SetVariable`, `SetWaveLock`, `SetWaveTextEncoding`, `SetWindow`, `ShowIgorMenus`, `ShowInfo`, `ShowTools`, `Silent`, `Sleep`, `Slider`, `Smooth`, `SmoothCustom`, `Sort`, `SortColumns`, `SoundInRecord`, `SoundInSet`, `SoundInStartChart`, `SoundInStatus`, `SoundInStopChart`, `SoundLoadWave`, `SoundSaveWave`, `SphericalInterpolate`, `SphericalTriangulate`, `SplitString`, `SplitWave`, `sprintf`, `SQLHighLevelOp`, `sscanf`, `Stack`, `StackWindows`, `StatsAngularDistanceTest`, `StatsANOVA1Test`, `StatsANOVA2NRTest`, `StatsANOVA2RMTest`, `StatsANOVA2Test`, `StatsChiTest`, `StatsCircularCorrelationTest`, `StatsCircularMeans`, `StatsCircularMoments`, `StatsCircularTwoSampleTest`, `StatsCochranTest`, `StatsContingencyTable`, `StatsDIPTest`, `StatsDunnettTest`, `StatsFriedmanTest`, `StatsFTest`, `StatsHodgesAjneTest`, `StatsJBTest`, `StatsKDE`, `StatsKendallTauTest`, `StatsKSTest`, `StatsKWTest`, `StatsLinearCorrelationTest`, `StatsLinearRegression`, `StatsMultiCorrelationTest`, `StatsNPMCTest`, `StatsNPNominalSRTest`, `StatsQuantiles`, `StatsRankCorrelationTest`, `StatsResample`, `StatsSample`, `StatsScheffeTest`, `StatsShapiroWilkTest`, `StatsSignTest`, `StatsSRTest`, `StatsTTest`, `StatsTukeyTest`, `StatsVariancesTest`, `StatsWatsonUSquaredTest`, `StatsWatsonWilliamsTest`, `StatsWheelerWatsonTest`, `StatsWilcoxonRankTest`, `StatsWRCorrelationTest`, `STFT`, `String`, `StructFill`, `StructGet`, `StructPut`, `SumDimension`, `SumSeries`, `TabControl`, `Tag`, `TDMLoadData`, `TDMSaveData`, `TextBox`, `ThreadGroupPutDF`, `ThreadStart`, `TickWavesFromAxis`, `Tile`, `TileWindows`, `TitleBox`, `ToCommandLine`, `ToolsGrid`, `Triangulate3d`, `Unwrap`, `URLRequest`, `ValDisplay`, `Variable`, `VDTClosePort2`, `VDTGetPortList2`, `VDTGetStatus2`, `VDTOpenPort2`, `VDTOperationsPort2`, `VDTReadBinaryWave2`, `VDTReadBinary2`, `VDTReadHexWave2`, `VDTReadHex2`, `VDTReadWave2`, `VDTRead2`, `VDTTerminalPort2`, `VDTWriteBinaryWave2`, `VDTWriteBinary2`, `VDTWriteHexWave2`, `VDTWriteHex2`, `VDTWriteWave2`, `VDTWrite2`, `VDT2`, `VISAControl`, `VISARead`, `VISAReadBinary`, `VISAReadBinaryWave`, `VISAReadWave`, `VISAWrite`, `VISAWriteBinary`, `VISAWriteBinaryWave`, `VISAWriteWave`, `WaveMeanStdv`, `WaveStats`, `WaveTransform`, `wfprintf`, `WignerTransform`, `WindowFunction`, `XLLoadWave`), NameClass, nil}, - {Words(`\b`, `\b`, `abs`, `acos`, `acosh`, `AddListItem`, `AiryA`, `AiryAD`, `AiryB`, `AiryBD`, `alog`, `AnnotationInfo`, `AnnotationList`, `area`, `areaXY`, `asin`, `asinh`, `atan`, `atanh`, `atan2`, `AxisInfo`, `AxisList`, `AxisValFromPixel`, `AxonTelegraphAGetDataNum`, `AxonTelegraphAGetDataString`, `AxonTelegraphAGetDataStruct`, `AxonTelegraphGetDataNum`, `AxonTelegraphGetDataString`, `AxonTelegraphGetDataStruct`, `AxonTelegraphGetTimeoutMs`, `AxonTelegraphSetTimeoutMs`, `Base64Decode`, `Base64Encode`, `Besseli`, `Besselj`, `Besselk`, `Bessely`, `beta`, `betai`, `BinarySearch`, `BinarySearchInterp`, `binomial`, `binomialln`, `binomialNoise`, `cabs`, `CaptureHistory`, `CaptureHistoryStart`, `ceil`, `cequal`, `char2num`, `chebyshev`, `chebyshevU`, `CheckName`, `ChildWindowList`, `CleanupName`, `cmplx`, `cmpstr`, `conj`, `ContourInfo`, `ContourNameList`, `ContourNameToWaveRef`, `ContourZ`, `ControlNameList`, `ConvertTextEncoding`, `cos`, `cosh`, `cosIntegral`, `cot`, `coth`, `CountObjects`, `CountObjectsDFR`, `cpowi`, `CreationDate`, `csc`, `csch`, `CsrInfo`, `CsrWave`, `CsrWaveRef`, `CsrXWave`, `CsrXWaveRef`, `CTabList`, `DataFolderDir`, `DataFolderExists`, `DataFolderRefsEqual`, `DataFolderRefStatus`, `date`, `datetime`, `DateToJulian`, `date2secs`, `Dawson`, `defined`, `deltax`, `digamma`, `dilogarithm`, `DimDelta`, `DimOffset`, `DimSize`, `ei`, `enoise`, `equalWaves`, `erf`, `erfc`, `erfcw`, `exists`, `exp`, `expInt`, `expIntegralE1`, `expNoise`, `factorial`, `Faddeeva`, `fakedata`, `faverage`, `faverageXY`, `fDAQmx_AI_GetReader`, `fDAQmx_AO_UpdateOutputs`, `fDAQmx_ConnectTerminals`, `fDAQmx_CTR_Finished`, `fDAQmx_CTR_IsFinished`, `fDAQmx_CTR_IsPulseFinished`, `fDAQmx_CTR_ReadCounter`, `fDAQmx_CTR_ReadWithOptions`, `fDAQmx_CTR_SetPulseFrequency`, `fDAQmx_CTR_Start`, `fDAQmx_DeviceNames`, `fDAQmx_DIO_Finished`, `fDAQmx_DIO_PortWidth`, `fDAQmx_DIO_Read`, `fDAQmx_DIO_Write`, `fDAQmx_DisconnectTerminals`, `fDAQmx_ErrorString`, `fDAQmx_ExternalCalDate`, `fDAQmx_NumAnalogInputs`, `fDAQmx_NumAnalogOutputs`, `fDAQmx_NumCounters`, `fDAQmx_NumDIOPorts`, `fDAQmx_ReadChan`, `fDAQmx_ReadNamedChan`, `fDAQmx_ResetDevice`, `fDAQmx_ScanGetAvailable`, `fDAQmx_ScanGetNextIndex`, `fDAQmx_ScanStart`, `fDAQmx_ScanStop`, `fDAQmx_ScanWait`, `fDAQmx_ScanWaitWithTimeout`, `fDAQmx_SelfCalDate`, `fDAQmx_SelfCalibration`, `fDAQmx_WaveformStart`, `fDAQmx_WaveformStop`, `fDAQmx_WF_IsFinished`, `fDAQmx_WF_WaitUntilFinished`, `fDAQmx_WriteChan`, `FetchURL`, `FindDimLabel`, `FindListItem`, `floor`, `FontList`, `FontSizeHeight`, `FontSizeStringWidth`, `FresnelCos`, `FresnelSin`, `FuncRefInfo`, `FunctionInfo`, `FunctionList`, `FunctionPath`, `gamma`, `gammaEuler`, `gammaInc`, `gammaNoise`, `gammln`, `gammp`, `gammq`, `Gauss`, `Gauss1D`, `Gauss2D`, `gcd`, `GetBrowserLine`, `GetBrowserSelection`, `GetDataFolder`, `GetDataFolderDFR`, `GetDefaultFont`, `GetDefaultFontSize`, `GetDefaultFontStyle`, `GetDimLabel`, `GetEnvironmentVariable`, `GetErrMessage`, `GetFormula`, `GetIndependentModuleName`, `GetIndexedObjName`, `GetIndexedObjNameDFR`, `GetKeyState`, `GetRTErrMessage`, `GetRTError`, `GetRTLocation`, `GetRTLocInfo`, `GetRTStackInfo`, `GetScrapText`, `GetUserData`, `GetWavesDataFolder`, `GetWavesDataFolderDFR`, `GISGetAllFileFormats`, `GISSRefsAreEqual`, `GizmoInfo`, `GizmoScale`, `gnoise`, `GrepList`, `GrepString`, `GuideInfo`, `GuideNameList`, `Hash`, `hcsr`, `HDF5AttributeInfo`, `HDF5DatasetInfo`, `HDF5LibraryInfo`, `HDF5TypeInfo`, `hermite`, `hermiteGauss`, `HyperGNoise`, `HyperGPFQ`, `HyperG0F1`, `HyperG1F1`, `HyperG2F1`, `IgorInfo`, `IgorVersion`, `imag`, `ImageInfo`, `ImageNameList`, `ImageNameToWaveRef`, `IndependentModuleList`, `IndexedDir`, `IndexedFile`, `IndexToScale`, `Inf`, `Integrate1D`, `interp`, `Interp2D`, `Interp3D`, `inverseERF`, `inverseERFC`, `ItemsInList`, `JacobiCn`, `JacobiSn`, `JulianToDate`, `Laguerre`, `LaguerreA`, `LaguerreGauss`, `LambertW`, `LayoutInfo`, `leftx`, `LegendreA`, `limit`, `ListMatch`, `ListToTextWave`, `ListToWaveRefWave`, `ln`, `log`, `logNormalNoise`, `lorentzianNoise`, `LowerStr`, `MacroList`, `magsqr`, `MandelbrotPoint`, `MarcumQ`, `MatrixCondition`, `MatrixDet`, `MatrixDot`, `MatrixRank`, `MatrixTrace`, `max`, `MCC_AutoBridgeBal`, `MCC_AutoFastComp`, `MCC_AutoPipetteOffset`, `MCC_AutoSlowComp`, `MCC_AutoWholeCellComp`, `MCC_GetBridgeBalEnable`, `MCC_GetBridgeBalResist`, `MCC_GetFastCompCap`, `MCC_GetFastCompTau`, `MCC_GetHolding`, `MCC_GetHoldingEnable`, `MCC_GetMode`, `MCC_GetNeutralizationCap`, `MCC_GetNeutralizationEnable`, `MCC_GetOscKillerEnable`, `MCC_GetPipetteOffset`, `MCC_GetPrimarySignalGain`, `MCC_GetPrimarySignalHPF`, `MCC_GetPrimarySignalLPF`, `MCC_GetRsCompBandwidth`, `MCC_GetRsCompCorrection`, `MCC_GetRsCompEnable`, `MCC_GetRsCompPrediction`, `MCC_GetSecondarySignalGain`, `MCC_GetSecondarySignalLPF`, `MCC_GetSlowCompCap`, `MCC_GetSlowCompTau`, `MCC_GetSlowCompTauX20Enable`, `MCC_GetSlowCurrentInjEnable`, `MCC_GetSlowCurrentInjLevel`, `MCC_GetSlowCurrentInjSetlTime`, `MCC_GetWholeCellCompCap`, `MCC_GetWholeCellCompEnable`, `MCC_GetWholeCellCompResist`, `MCC_SelectMultiClamp700B`, `MCC_SetBridgeBalEnable`, `MCC_SetBridgeBalResist`, `MCC_SetFastCompCap`, `MCC_SetFastCompTau`, `MCC_SetHolding`, `MCC_SetHoldingEnable`, `MCC_SetMode`, `MCC_SetNeutralizationCap`, `MCC_SetNeutralizationEnable`, `MCC_SetOscKillerEnable`, `MCC_SetPipetteOffset`, `MCC_SetPrimarySignalGain`, `MCC_SetPrimarySignalHPF`, `MCC_SetPrimarySignalLPF`, `MCC_SetRsCompBandwidth`, `MCC_SetRsCompCorrection`, `MCC_SetRsCompEnable`, `MCC_SetRsCompPrediction`, `MCC_SetSecondarySignalGain`, `MCC_SetSecondarySignalLPF`, `MCC_SetSlowCompCap`, `MCC_SetSlowCompTau`, `MCC_SetSlowCompTauX20Enable`, `MCC_SetSlowCurrentInjEnable`, `MCC_SetSlowCurrentInjLevel`, `MCC_SetSlowCurrentInjSetlTime`, `MCC_SetTimeoutMs`, `MCC_SetWholeCellCompCap`, `MCC_SetWholeCellCompEnable`, `MCC_SetWholeCellCompResist`, `mean`, `median`, `min`, `mod`, `ModDate`, `MPFXEMGPeak`, `MPFXExpConvExpPeak`, `MPFXGaussPeak`, `MPFXLorenzianPeak`, `MPFXVoigtPeak`, `NameOfWave`, `NaN`, `NewFreeDataFolder`, `NewFreeWave`, `norm`, `NormalizeUnicode`, `note`, `NumberByKey`, `numpnts`, `numtype`, `NumVarOrDefault`, `num2char`, `num2istr`, `num2str`, `NVAR_Exists`, `OperationList`, `PadString`, `PanelResolution`, `ParamIsDefault`, `ParseFilePath`, `PathList`, `pcsr`, `Pi`, `PICTInfo`, `PICTList`, `PixelFromAxisVal`, `pnt2x`, `poissonNoise`, `poly`, `PolygonArea`, `poly2D`, `PossiblyQuoteName`, `ProcedureText`, `p2rect`, `qcsr`, `real`, `RemoveByKey`, `RemoveEnding`, `RemoveFromList`, `RemoveListItem`, `ReplaceNumberByKey`, `ReplaceString`, `ReplaceStringByKey`, `rightx`, `round`, `r2polar`, `sawtooth`, `scaleToIndex`, `ScreenResolution`, `sec`, `sech`, `Secs2Date`, `Secs2Time`, `SelectNumber`, `SelectString`, `SetEnvironmentVariable`, `sign`, `sin`, `sinc`, `sinh`, `sinIntegral`, `SortList`, `SpecialCharacterInfo`, `SpecialCharacterList`, `SpecialDirPath`, `SphericalBessJ`, `SphericalBessJD`, `SphericalBessY`, `SphericalBessYD`, `SphericalHarmonics`, `SQLAllocHandle`, `SQLAllocStmt`, `SQLBinaryWavesToTextWave`, `SQLBindCol`, `SQLBindParameter`, `SQLBrowseConnect`, `SQLBulkOperations`, `SQLCancel`, `SQLCloseCursor`, `SQLColAttributeNum`, `SQLColAttributeStr`, `SQLColumnPrivileges`, `SQLColumns`, `SQLConnect`, `SQLDataSources`, `SQLDescribeCol`, `SQLDescribeParam`, `SQLDisconnect`, `SQLDriverConnect`, `SQLDrivers`, `SQLEndTran`, `SQLError`, `SQLExecDirect`, `SQLExecute`, `SQLFetch`, `SQLFetchScroll`, `SQLForeignKeys`, `SQLFreeConnect`, `SQLFreeEnv`, `SQLFreeHandle`, `SQLFreeStmt`, `SQLGetConnectAttrNum`, `SQLGetConnectAttrStr`, `SQLGetCursorName`, `SQLGetDataNum`, `SQLGetDataStr`, `SQLGetDescFieldNum`, `SQLGetDescFieldStr`, `SQLGetDescRec`, `SQLGetDiagFieldNum`, `SQLGetDiagFieldStr`, `SQLGetDiagRec`, `SQLGetEnvAttrNum`, `SQLGetEnvAttrStr`, `SQLGetFunctions`, `SQLGetInfoNum`, `SQLGetInfoStr`, `SQLGetStmtAttrNum`, `SQLGetStmtAttrStr`, `SQLGetTypeInfo`, `SQLMoreResults`, `SQLNativeSql`, `SQLNumParams`, `SQLNumResultCols`, `SQLNumResultRowsIfKnown`, `SQLNumRowsFetched`, `SQLParamData`, `SQLPrepare`, `SQLPrimaryKeys`, `SQLProcedureColumns`, `SQLProcedures`, `SQLPutData`, `SQLReinitialize`, `SQLRowCount`, `SQLSetConnectAttrNum`, `SQLSetConnectAttrStr`, `SQLSetCursorName`, `SQLSetDescFieldNum`, `SQLSetDescFieldStr`, `SQLSetDescRec`, `SQLSetEnvAttrNum`, `SQLSetEnvAttrStr`, `SQLSetPos`, `SQLSetStmtAttrNum`, `SQLSetStmtAttrStr`, `SQLSpecialColumns`, `SQLStatistics`, `SQLTablePrivileges`, `SQLTables`, `SQLTextWaveToBinaryWaves`, `SQLTextWaveTo2DBinaryWave`, `SQLUpdateBoundValues`, `SQLXOPCheckState`, `SQL2DBinaryWaveToTextWave`, `sqrt`, `StartMSTimer`, `StatsBetaCDF`, `StatsBetaPDF`, `StatsBinomialCDF`, `StatsBinomialPDF`, `StatsCauchyCDF`, `StatsCauchyPDF`, `StatsChiCDF`, `StatsChiPDF`, `StatsCMSSDCDF`, `StatsCorrelation`, `StatsDExpCDF`, `StatsDExpPDF`, `StatsErlangCDF`, `StatsErlangPDF`, `StatsErrorPDF`, `StatsEValueCDF`, `StatsEValuePDF`, `StatsExpCDF`, `StatsExpPDF`, `StatsFCDF`, `StatsFPDF`, `StatsFriedmanCDF`, `StatsGammaCDF`, `StatsGammaPDF`, `StatsGeometricCDF`, `StatsGeometricPDF`, `StatsGEVCDF`, `StatsGEVPDF`, `StatsHyperGCDF`, `StatsHyperGPDF`, `StatsInvBetaCDF`, `StatsInvBinomialCDF`, `StatsInvCauchyCDF`, `StatsInvChiCDF`, `StatsInvCMSSDCDF`, `StatsInvDExpCDF`, `StatsInvEValueCDF`, `StatsInvExpCDF`, `StatsInvFCDF`, `StatsInvFriedmanCDF`, `StatsInvGammaCDF`, `StatsInvGeometricCDF`, `StatsInvKuiperCDF`, `StatsInvLogisticCDF`, `StatsInvLogNormalCDF`, `StatsInvMaxwellCDF`, `StatsInvMooreCDF`, `StatsInvNBinomialCDF`, `StatsInvNCChiCDF`, `StatsInvNCFCDF`, `StatsInvNormalCDF`, `StatsInvParetoCDF`, `StatsInvPoissonCDF`, `StatsInvPowerCDF`, `StatsInvQCDF`, `StatsInvQpCDF`, `StatsInvRayleighCDF`, `StatsInvRectangularCDF`, `StatsInvSpearmanCDF`, `StatsInvStudentCDF`, `StatsInvTopDownCDF`, `StatsInvTriangularCDF`, `StatsInvUsquaredCDF`, `StatsInvVonMisesCDF`, `StatsInvWeibullCDF`, `StatsKuiperCDF`, `StatsLogisticCDF`, `StatsLogisticPDF`, `StatsLogNormalCDF`, `StatsLogNormalPDF`, `StatsMaxwellCDF`, `StatsMaxwellPDF`, `StatsMedian`, `StatsMooreCDF`, `StatsNBinomialCDF`, `StatsNBinomialPDF`, `StatsNCChiCDF`, `StatsNCChiPDF`, `StatsNCFCDF`, `StatsNCFPDF`, `StatsNCTCDF`, `StatsNCTPDF`, `StatsNormalCDF`, `StatsNormalPDF`, `StatsParetoCDF`, `StatsParetoPDF`, `StatsPermute`, `StatsPoissonCDF`, `StatsPoissonPDF`, `StatsPowerCDF`, `StatsPowerNoise`, `StatsPowerPDF`, `StatsQCDF`, `StatsQpCDF`, `StatsRayleighCDF`, `StatsRayleighPDF`, `StatsRectangularCDF`, `StatsRectangularPDF`, `StatsRunsCDF`, `StatsSpearmanRhoCDF`, `StatsStudentCDF`, `StatsStudentPDF`, `StatsTopDownCDF`, `StatsTriangularCDF`, `StatsTriangularPDF`, `StatsTrimmedMean`, `StatsUSquaredCDF`, `StatsVonMisesCDF`, `StatsVonMisesNoise`, `StatsVonMisesPDF`, `StatsWaldCDF`, `StatsWaldPDF`, `StatsWeibullCDF`, `StatsWeibullPDF`, `StopMSTimer`, `StringByKey`, `stringCRC`, `StringFromList`, `StringList`, `stringmatch`, `strlen`, `strsearch`, `StrVarOrDefault`, `str2num`, `StudentA`, `StudentT`, `sum`, `SVAR_Exists`, `TableInfo`, `TagVal`, `TagWaveRef`, `tan`, `tango_close_device`, `tango_command_inout`, `tango_compute_image_proj`, `tango_get_dev_attr_list`, `tango_get_dev_black_box`, `tango_get_dev_cmd_list`, `tango_get_dev_status`, `tango_get_dev_timeout`, `tango_get_error_stack`, `tango_open_device`, `tango_ping_device`, `tango_read_attribute`, `tango_read_attributes`, `tango_reload_dev_interface`, `tango_resume_attr_monitor`, `tango_set_attr_monitor_period`, `tango_set_dev_timeout`, `tango_start_attr_monitor`, `tango_stop_attr_monitor`, `tango_suspend_attr_monitor`, `tango_write_attribute`, `tango_write_attributes`, `tanh`, `TDMAddChannel`, `TDMAddGroup`, `TDMAppendDataValues`, `TDMAppendDataValuesTime`, `TDMChannelPropertyExists`, `TDMCloseChannel`, `TDMCloseFile`, `TDMCloseGroup`, `TDMCreateChannelProperty`, `TDMCreateFile`, `TDMCreateFileProperty`, `TDMCreateGroupProperty`, `TDMFilePropertyExists`, `TDMGetChannelPropertyNames`, `TDMGetChannelPropertyNum`, `TDMGetChannelPropertyStr`, `TDMGetChannelPropertyTime`, `TDMGetChannelPropertyType`, `TDMGetChannels`, `TDMGetChannelStringPropertyLen`, `TDMGetDataType`, `TDMGetDataValues`, `TDMGetDataValuesTime`, `TDMGetFilePropertyNames`, `TDMGetFilePropertyNum`, `TDMGetFilePropertyStr`, `TDMGetFilePropertyTime`, `TDMGetFilePropertyType`, `TDMGetFileStringPropertyLen`, `TDMGetGroupPropertyNames`, `TDMGetGroupPropertyNum`, `TDMGetGroupPropertyStr`, `TDMGetGroupPropertyTime`, `TDMGetGroupPropertyType`, `TDMGetGroups`, `TDMGetGroupStringPropertyLen`, `TDMGetLibraryErrorDescription`, `TDMGetNumChannelProperties`, `TDMGetNumChannels`, `TDMGetNumDataValues`, `TDMGetNumFileProperties`, `TDMGetNumGroupProperties`, `TDMGetNumGroups`, `TDMGroupPropertyExists`, `TDMOpenFile`, `TDMOpenFileEx`, `TDMRemoveChannel`, `TDMRemoveGroup`, `TDMReplaceDataValues`, `TDMReplaceDataValuesTime`, `TDMSaveFile`, `TDMSetChannelPropertyNum`, `TDMSetChannelPropertyStr`, `TDMSetChannelPropertyTime`, `TDMSetDataValues`, `TDMSetDataValuesTime`, `TDMSetFilePropertyNum`, `TDMSetFilePropertyStr`, `TDMSetFilePropertyTime`, `TDMSetGroupPropertyNum`, `TDMSetGroupPropertyStr`, `TDMSetGroupPropertyTime`, `TextEncodingCode`, `TextEncodingName`, `TextFile`, `ThreadGroupCreate`, `ThreadGroupGetDF`, `ThreadGroupGetDFR`, `ThreadGroupRelease`, `ThreadGroupWait`, `ThreadProcessorCount`, `ThreadReturnValue`, `ticks`, `time`, `TraceFromPixel`, `TraceInfo`, `TraceNameList`, `TraceNameToWaveRef`, `TrimString`, `trunc`, `UniqueName`, `UnPadString`, `UnsetEnvironmentVariable`, `UpperStr`, `URLDecode`, `URLEncode`, `VariableList`, `Variance`, `vcsr`, `viAssertIntrSignal`, `viAssertTrigger`, `viAssertUtilSignal`, `viClear`, `viClose`, `viDisableEvent`, `viDiscardEvents`, `viEnableEvent`, `viFindNext`, `viFindRsrc`, `viGetAttribute`, `viGetAttributeString`, `viGpibCommand`, `viGpibControlATN`, `viGpibControlREN`, `viGpibPassControl`, `viGpibSendIFC`, `viIn8`, `viIn16`, `viIn32`, `viLock`, `viMapAddress`, `viMapTrigger`, `viMemAlloc`, `viMemFree`, `viMoveIn8`, `viMoveIn16`, `viMoveIn32`, `viMoveOut8`, `viMoveOut16`, `viMoveOut32`, `viOpen`, `viOpenDefaultRM`, `viOut8`, `viOut16`, `viOut32`, `viPeek8`, `viPeek16`, `viPeek32`, `viPoke8`, `viPoke16`, `viPoke32`, `viRead`, `viReadSTB`, `viSetAttribute`, `viSetAttributeString`, `viStatusDesc`, `viTerminate`, `viUnlock`, `viUnmapAddress`, `viUnmapTrigger`, `viUsbControlIn`, `viUsbControlOut`, `viVxiCommandQuery`, `viWaitOnEvent`, `viWrite`, `VoigtFunc`, `VoigtPeak`, `WaveCRC`, `WaveDims`, `WaveExists`, `WaveHash`, `WaveInfo`, `WaveList`, `WaveMax`, `WaveMin`, `WaveName`, `WaveRefIndexed`, `WaveRefIndexedDFR`, `WaveRefsEqual`, `WaveRefWaveToList`, `WaveTextEncoding`, `WaveType`, `WaveUnits`, `WhichListItem`, `WinList`, `WinName`, `WinRecreation`, `WinType`, `wnoise`, `xcsr`, `XWaveName`, `XWaveRefFromTrace`, `x2pnt`, `zcsr`, `ZernikeR`, `zeromq_client_connect`, `zeromq_client_connect`, `zeromq_client_recv`, `zeromq_client_recv`, `zeromq_client_send`, `zeromq_client_send`, `zeromq_handler_start`, `zeromq_handler_start`, `zeromq_handler_stop`, `zeromq_handler_stop`, `zeromq_server_bind`, `zeromq_server_bind`, `zeromq_server_recv`, `zeromq_server_recv`, `zeromq_server_send`, `zeromq_server_send`, `zeromq_set`, `zeromq_set`, `zeromq_stop`, `zeromq_stop`, `zeromq_test_callfunction`, `zeromq_test_callfunction`, `zeromq_test_serializeWave`, `zeromq_test_serializeWave`, `zeta`), NameFunction, nil}, - {`^#(include|pragma|define|undef|ifdef|ifndef|if|elif|else|endif)`, NameDecorator, nil}, - {`[^a-z"/]+$`, Text, nil}, - {`.`, Text, nil}, - {`\n|\r`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/i/ini.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/i/ini.go deleted file mode 100644 index 39b5edd2e6..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/i/ini.go +++ /dev/null @@ -1,25 +0,0 @@ -package i - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Ini lexer. -var Ini = internal.Register(MustNewLexer( - &Config{ - Name: "INI", - Aliases: []string{"ini", "cfg", "dosini"}, - Filenames: []string{"*.ini", "*.cfg", "*.inf", ".gitconfig"}, - MimeTypes: []string{"text/x-ini", "text/inf"}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`[;#].*`, CommentSingle, nil}, - {`\[.*?\]$`, Keyword, nil}, - {`(.*?)([ \t]*)(=)([ \t]*)(.*(?:\n[ \t].+)*)`, ByGroups(NameAttribute, Text, Operator, Text, LiteralString), nil}, - {`(.+?)$`, NameAttribute, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/i/io.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/i/io.go deleted file mode 100644 index 840feeaae1..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/i/io.go +++ /dev/null @@ -1,40 +0,0 @@ -package i - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Io lexer. -var Io = internal.Register(MustNewLexer( - &Config{ - Name: "Io", - Aliases: []string{"io"}, - Filenames: []string{"*.io"}, - MimeTypes: []string{"text/x-iosrc"}, - }, - Rules{ - "root": { - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`//(.*?)\n`, CommentSingle, nil}, - {`#(.*?)\n`, CommentSingle, nil}, - {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil}, - {`/\+`, CommentMultiline, Push("nestedcomment")}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`::=|:=|=|\(|\)|;|,|\*|-|\+|>|<|@|!|/|\||\^|\.|%|&|\[|\]|\{|\}`, Operator, nil}, - {`(clone|do|doFile|doString|method|for|if|else|elseif|then)\b`, Keyword, nil}, - {`(nil|false|true)\b`, NameConstant, nil}, - {`(Object|list|List|Map|args|Sequence|Coroutine|File)\b`, NameBuiltin, nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - {`(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`\d+`, LiteralNumberInteger, nil}, - }, - "nestedcomment": { - {`[^+/]+`, CommentMultiline, nil}, - {`/\+`, CommentMultiline, Push()}, - {`\+/`, CommentMultiline, Pop(1)}, - {`[+/]`, CommentMultiline, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/internal/api.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/internal/api.go deleted file mode 100644 index 08ec6ff7f2..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/internal/api.go +++ /dev/null @@ -1,161 +0,0 @@ -// Package internal contains common API functions and structures shared between lexer packages. -package internal - -import ( - "path/filepath" - "sort" - "strings" - - "github.com/danwakefield/fnmatch" - - "github.com/alecthomas/chroma" -) - -// Registry of Lexers. -var Registry = struct { - Lexers chroma.Lexers - byName map[string]chroma.Lexer - byAlias map[string]chroma.Lexer -}{ - byName: map[string]chroma.Lexer{}, - byAlias: map[string]chroma.Lexer{}, -} - -// Names of all lexers, optionally including aliases. -func Names(withAliases bool) []string { - out := []string{} - for _, lexer := range Registry.Lexers { - config := lexer.Config() - out = append(out, config.Name) - if withAliases { - out = append(out, config.Aliases...) - } - } - sort.Strings(out) - return out -} - -// Get a Lexer by name, alias or file extension. -func Get(name string) chroma.Lexer { - if lexer := Registry.byName[name]; lexer != nil { - return lexer - } - if lexer := Registry.byAlias[name]; lexer != nil { - return lexer - } - if lexer := Registry.byName[strings.ToLower(name)]; lexer != nil { - return lexer - } - if lexer := Registry.byAlias[strings.ToLower(name)]; lexer != nil { - return lexer - } - - candidates := chroma.PrioritisedLexers{} - // Try file extension. - if lexer := Match("filename." + name); lexer != nil { - candidates = append(candidates, lexer) - } - // Try exact filename. - if lexer := Match(name); lexer != nil { - candidates = append(candidates, lexer) - } - if len(candidates) == 0 { - return nil - } - sort.Sort(candidates) - return candidates[0] -} - -// MatchMimeType attempts to find a lexer for the given MIME type. -func MatchMimeType(mimeType string) chroma.Lexer { - matched := chroma.PrioritisedLexers{} - for _, l := range Registry.Lexers { - for _, lmt := range l.Config().MimeTypes { - if mimeType == lmt { - matched = append(matched, l) - } - } - } - if len(matched) != 0 { - sort.Sort(matched) - return matched[0] - } - return nil -} - -// Match returns the first lexer matching filename. -func Match(filename string) chroma.Lexer { - filename = filepath.Base(filename) - matched := chroma.PrioritisedLexers{} - // First, try primary filename matches. - for _, lexer := range Registry.Lexers { - config := lexer.Config() - for _, glob := range config.Filenames { - if fnmatch.Match(glob, filename, 0) { - matched = append(matched, lexer) - } - } - } - if len(matched) > 0 { - sort.Sort(matched) - return matched[0] - } - matched = nil - // Next, try filename aliases. - for _, lexer := range Registry.Lexers { - config := lexer.Config() - for _, glob := range config.AliasFilenames { - if fnmatch.Match(glob, filename, 0) { - matched = append(matched, lexer) - } - } - } - if len(matched) > 0 { - sort.Sort(matched) - return matched[0] - } - return nil -} - -// Analyse text content and return the "best" lexer.. -func Analyse(text string) chroma.Lexer { - var picked chroma.Lexer - highest := float32(0.0) - for _, lexer := range Registry.Lexers { - if analyser, ok := lexer.(chroma.Analyser); ok { - weight := analyser.AnalyseText(text) - if weight > highest { - picked = lexer - highest = weight - } - } - } - return picked -} - -// Register a Lexer with the global registry. -func Register(lexer chroma.Lexer) chroma.Lexer { - config := lexer.Config() - Registry.byName[config.Name] = lexer - Registry.byName[strings.ToLower(config.Name)] = lexer - for _, alias := range config.Aliases { - Registry.byAlias[alias] = lexer - Registry.byAlias[strings.ToLower(alias)] = lexer - } - Registry.Lexers = append(Registry.Lexers, lexer) - return lexer -} - -// Used for the fallback lexer as well as the explicit plaintext lexer -var PlaintextRules = chroma.Rules{ - "root": []chroma.Rule{ - {`.+`, chroma.Text, nil}, - {`\n`, chroma.Text, nil}, - }, -} - -// Fallback lexer if no other is found. -var Fallback chroma.Lexer = chroma.MustNewLexer(&chroma.Config{ - Name: "fallback", - Filenames: []string{"*"}, -}, PlaintextRules) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/j.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/j.go deleted file mode 100644 index 686e53b975..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/j.go +++ /dev/null @@ -1,73 +0,0 @@ -package j - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// J lexer. -var J = internal.Register(MustNewLexer( - &Config{ - Name: "J", - Aliases: []string{"j"}, - Filenames: []string{"*.ijs"}, - MimeTypes: []string{"text/x-j"}, - }, - Rules{ - "root": { - {`#!.*$`, CommentPreproc, nil}, - {`NB\..*`, CommentSingle, nil}, - {`\n+\s*Note`, CommentMultiline, Push("comment")}, - {`\s*Note.*`, CommentSingle, nil}, - {`\s+`, Text, nil}, - {`'`, LiteralString, Push("singlequote")}, - {`0\s+:\s*0|noun\s+define\s*$`, NameEntity, Push("nounDefinition")}, - {`(([1-4]|13)\s+:\s*0|(adverb|conjunction|dyad|monad|verb)\s+define)\b`, NameFunction, Push("explicitDefinition")}, - {Words(``, `\b[a-zA-Z]\w*\.`, `for_`, `goto_`, `label_`), NameLabel, nil}, - {Words(``, `\.`, `assert`, `break`, `case`, `catch`, `catchd`, `catcht`, `continue`, `do`, `else`, `elseif`, `end`, `fcase`, `for`, `if`, `return`, `select`, `throw`, `try`, `while`, `whilst`), NameLabel, nil}, - {`\b[a-zA-Z]\w*`, NameVariable, nil}, - {Words(``, ``, `ARGV`, `CR`, `CRLF`, `DEL`, `Debug`, `EAV`, `EMPTY`, `FF`, `JVERSION`, `LF`, `LF2`, `Note`, `TAB`, `alpha17`, `alpha27`, `apply`, `bind`, `boxopen`, `boxxopen`, `bx`, `clear`, `cutLF`, `cutopen`, `datatype`, `def`, `dfh`, `drop`, `each`, `echo`, `empty`, `erase`, `every`, `evtloop`, `exit`, `expand`, `fetch`, `file2url`, `fixdotdot`, `fliprgb`, `getargs`, `getenv`, `hfd`, `inv`, `inverse`, `iospath`, `isatty`, `isutf8`, `items`, `leaf`, `list`, `nameclass`, `namelist`, `names`, `nc`, `nl`, `on`, `pick`, `rows`, `script`, `scriptd`, `sign`, `sminfo`, `smoutput`, `sort`, `split`, `stderr`, `stdin`, `stdout`, `table`, `take`, `timespacex`, `timex`, `tmoutput`, `toCRLF`, `toHOST`, `toJ`, `tolower`, `toupper`, `type`, `ucp`, `ucpcount`, `usleep`, `utf8`, `uucp`), NameFunction, nil}, - {`=[.:]`, Operator, nil}, - {"[-=+*#$%@!~`^&\";:.,<>{}\\[\\]\\\\|/]", Operator, nil}, - {`[abCdDeEfHiIjLMoprtT]\.`, KeywordReserved, nil}, - {`[aDiLpqsStux]\:`, KeywordReserved, nil}, - {`(_[0-9])\:`, KeywordConstant, nil}, - {`\(`, Punctuation, Push("parentheses")}, - Include("numbers"), - }, - "comment": { - {`[^)]`, CommentMultiline, nil}, - {`^\)`, CommentMultiline, Pop(1)}, - {`[)]`, CommentMultiline, nil}, - }, - "explicitDefinition": { - {`\b[nmuvxy]\b`, NameDecorator, nil}, - Include("root"), - {`[^)]`, Name, nil}, - {`^\)`, NameLabel, Pop(1)}, - {`[)]`, Name, nil}, - }, - "numbers": { - {`\b_{1,2}\b`, LiteralNumber, nil}, - {`_?\d+(\.\d+)?(\s*[ejr]\s*)_?\d+(\.?=\d+)?`, LiteralNumber, nil}, - {`_?\d+\.(?=\d+)`, LiteralNumberFloat, nil}, - {`_?\d+x`, LiteralNumberIntegerLong, nil}, - {`_?\d+`, LiteralNumberInteger, nil}, - }, - "nounDefinition": { - {`[^)]`, LiteralString, nil}, - {`^\)`, NameLabel, Pop(1)}, - {`[)]`, LiteralString, nil}, - }, - "parentheses": { - {`\)`, Punctuation, Pop(1)}, - Include("explicitDefinition"), - Include("root"), - }, - "singlequote": { - {`[^']`, LiteralString, nil}, - {`''`, LiteralString, nil}, - {`'`, LiteralString, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/java.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/java.go deleted file mode 100644 index c6b9a762e4..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/java.go +++ /dev/null @@ -1,51 +0,0 @@ -package j - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Java lexer. -var Java = internal.Register(MustNewLexer( - &Config{ - Name: "Java", - Aliases: []string{"java"}, - Filenames: []string{"*.java"}, - MimeTypes: []string{"text/x-java"}, - DotAll: true, - }, - Rules{ - "root": { - {`[^\S\n]+`, Text, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/\*.*?\*/`, CommentMultiline, nil}, - {`(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while)\b`, Keyword, nil}, - {`((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()`, ByGroups(UsingSelf("root"), NameFunction, Text, Operator), nil}, - {`@[^\W\d][\w.]*`, NameDecorator, nil}, - {`(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\b`, KeywordDeclaration, nil}, - {`(boolean|byte|char|double|float|int|long|short|void)\b`, KeywordType, nil}, - {`(package)(\s+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - {`(true|false|null)\b`, KeywordConstant, nil}, - {`(class|interface)(\s+)`, ByGroups(KeywordDeclaration, Text), Push("class")}, - {`(import(?:\s+static)?)(\s+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'`, LiteralStringChar, nil}, - {`(\.)((?:[^\W\d]|\$)[\w$]*)`, ByGroups(Operator, NameAttribute), nil}, - {`^\s*([^\W\d]|\$)[\w$]*:`, NameLabel, nil}, - {`([^\W\d]|\$)[\w$]*`, Name, nil}, - {`([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?`, LiteralNumberFloat, nil}, - {`0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?`, LiteralNumberHex, nil}, - {`0[bB][01][01_]*[lL]?`, LiteralNumberBin, nil}, - {`0[0-7_]+[lL]?`, LiteralNumberOct, nil}, - {`0|[1-9][0-9_]*[lL]?`, LiteralNumberInteger, nil}, - {`[~^*!%&\[\](){}<>|+=:;,./?-]`, Operator, nil}, - {`\n`, Text, nil}, - }, - "class": { - {`([^\W\d]|\$)[\w$]*`, NameClass, Pop(1)}, - }, - "import": { - {`[\w.]+\*?`, NameNamespace, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/javascript.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/javascript.go deleted file mode 100644 index 282501d060..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/javascript.go +++ /dev/null @@ -1,73 +0,0 @@ -package j - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Javascript lexer. -var JavascriptRules = Rules{ - "commentsandwhitespace": { - {`\s+`, Text, nil}, - {``, `||`, `&&`, `>`, `<`, `>=`, `≥`, `<=`, `≤`, `==`, `===`, `≡`, `!=`, `≠`, `!==`, `≢`, `.>`, `.<`, `.>=`, `.≥`, `.<=`, `.≤`, `.==`, `.!=`, `.≠`, `.=`, `.!`, `<:`, `>:`, `∈`, `∉`, `∋`, `∌`, `⊆`, `⊈`, `⊂`, `⊄`, `⊊`, `|>`, `<|`, `:`, `+`, `-`, `.+`, `.-`, `|`, `∪`, `$`, `<<`, `>>`, `>>>`, `.<<`, `.>>`, `.>>>`, `*`, `/`, `./`, `÷`, `.÷`, `%`, `⋅`, `.%`, `.*`, `\`, `.\`, `&`, `∩`, `//`, `.//`, `^`, `.^`, `::`, `.`, `+`, `-`, `!`, `√`, `∛`, `∜`), Operator, nil}, - {`'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,3}|\\u[a-fA-F0-9]{1,4}|\\U[a-fA-F0-9]{1,6}|[^\\\'\n])'`, LiteralStringChar, nil}, - {`(?<=[.\w)\]])\'+`, Operator, nil}, - {`"""`, LiteralString, Push("tqstring")}, - {`"`, LiteralString, Push("string")}, - {`r"""`, LiteralStringRegex, Push("tqregex")}, - {`r"`, LiteralStringRegex, Push("regex")}, - {"`", LiteralStringBacktick, Push("command")}, - {`((?:[a-zA-Z_¡-￿]|[𐀀-􏿿])(?:[a-zA-Z_0-9¡-￿]|[𐀀-􏿿])*!*)(')?`, ByGroups(Name, Operator), nil}, - {`(@(?:[a-zA-Z_¡-￿]|[𐀀-􏿿])(?:[a-zA-Z_0-9¡-￿]|[𐀀-􏿿])*!*)(')?`, ByGroups(NameDecorator, Operator), nil}, - {`(\d+(_\d+)+\.\d*|\d*\.\d+(_\d+)+)([eEf][+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`\d+(_\d+)+[eEf][+-]?[0-9]+`, LiteralNumberFloat, nil}, - {`\d+[eEf][+-]?[0-9]+`, LiteralNumberFloat, nil}, - {`0b[01]+(_[01]+)+`, LiteralNumberBin, nil}, - {`0b[01]+`, LiteralNumberBin, nil}, - {`0o[0-7]+(_[0-7]+)+`, LiteralNumberOct, nil}, - {`0o[0-7]+`, LiteralNumberOct, nil}, - {`0x[a-fA-F0-9]+(_[a-fA-F0-9]+)+`, LiteralNumberHex, nil}, - {`0x[a-fA-F0-9]+`, LiteralNumberHex, nil}, - {`\d+(_\d+)+`, LiteralNumberInteger, nil}, - {`\d+`, LiteralNumberInteger, nil}, - }, - "blockcomment": { - {`[^=#]`, CommentMultiline, nil}, - {`#=`, CommentMultiline, Push()}, - {`=#`, CommentMultiline, Pop(1)}, - {`[=#]`, CommentMultiline, nil}, - }, - "string": { - {`"`, LiteralString, Pop(1)}, - {`\\([\\"\'$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)`, LiteralStringEscape, nil}, - {`\$(?:[a-zA-Z_¡-￿]|[𐀀-􏿿])(?:[a-zA-Z_0-9¡-￿]|[𐀀-􏿿])*!*`, LiteralStringInterpol, nil}, - {`(\$)(\()`, ByGroups(LiteralStringInterpol, Punctuation), Push("in-intp")}, - {`%[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]`, LiteralStringInterpol, nil}, - {`.|\s`, LiteralString, nil}, - }, - "tqstring": { - {`"""`, LiteralString, Pop(1)}, - {`\\([\\"\'$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)`, LiteralStringEscape, nil}, - {`\$(?:[a-zA-Z_¡-￿]|[𐀀-􏿿])(?:[a-zA-Z_0-9¡-￿]|[𐀀-􏿿])*!*`, LiteralStringInterpol, nil}, - {`(\$)(\()`, ByGroups(LiteralStringInterpol, Punctuation), Push("in-intp")}, - {`.|\s`, LiteralString, nil}, - }, - "regex": { - {`"`, LiteralStringRegex, Pop(1)}, - {`\\"`, LiteralStringRegex, nil}, - {`.|\s`, LiteralStringRegex, nil}, - }, - "tqregex": { - {`"""`, LiteralStringRegex, Pop(1)}, - {`.|\s`, LiteralStringRegex, nil}, - }, - "command": { - {"`", LiteralStringBacktick, Pop(1)}, - {`\$(?:[a-zA-Z_¡-￿]|[𐀀-􏿿])(?:[a-zA-Z_0-9¡-￿]|[𐀀-􏿿])*!*`, LiteralStringInterpol, nil}, - {`(\$)(\()`, ByGroups(LiteralStringInterpol, Punctuation), Push("in-intp")}, - {`.|\s`, LiteralStringBacktick, nil}, - }, - "in-intp": { - {`\(`, Punctuation, Push()}, - {`\)`, Punctuation, Pop(1)}, - Include("root"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/jungle.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/jungle.go deleted file mode 100644 index 83d46a48df..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/j/jungle.go +++ /dev/null @@ -1,50 +0,0 @@ -package j - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var Jungle = internal.Register(MustNewLexer( - &Config{ - Name: "Jungle", - Aliases: []string{"jungle"}, - Filenames: []string{"*.jungle"}, - MimeTypes: []string{"text/x-jungle"}, - }, - Rules{ - "root": { - {`[^\S\n]+`, Text, nil}, - {`\n`, Text, nil}, - {`#(\n|[\w\W]*?[^#]\n)`, CommentSingle, nil}, - {`^(?=\S)`, None, Push("instruction")}, - {`[\.;\[\]\(\)\$]`, Punctuation, nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - "instruction": { - {`[^\S\n]+`, Text, nil}, - {`=`, Operator, Push("value")}, - {`(?=\S)`, None, Push("var")}, - Default(Pop(1)), - }, - "value": { - {`[^\S\n]+`, Text, nil}, - {`\$\(`, Punctuation, Push("var")}, - {`[;\[\]\(\)\$]`, Punctuation, nil}, - {`#(\n|[\w\W]*?[^#]\n)`, CommentSingle, nil}, - {`[\w_\-\.\/\\]+`, Text, nil}, - Default(Pop(1)), - }, - "var": { - {`[^\S\n]+`, Text, nil}, - {`\b(((re)?source|barrel)Path|excludeAnnotations|annotations|lang)\b`, NameBuiltin, nil}, - {`\bbase\b`, NameConstant, nil}, - {`\b(ind|zsm|hrv|ces|dan|dut|eng|fin|fre|deu|gre|hun|ita|nob|po[lr]|rus|sl[ov]|spa|swe|ara|heb|zh[st]|jpn|kor|tha|vie|bul|tur)`, NameConstant, nil}, - {`\b((semi)?round|rectangle)(-\d+x\d+)?\b`, NameConstant, nil}, - {`[\.;\[\]\(\$]`, Punctuation, nil}, - {`\)`, Punctuation, Pop(1)}, - {`[a-zA-Z_]\w*`, Name, nil}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/k/kotlin.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/k/kotlin.go deleted file mode 100644 index 56b7966011..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/k/kotlin.go +++ /dev/null @@ -1,55 +0,0 @@ -package k - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var kotlinIdentifier = "_A-Z\u00c0-\u00d6\u00d8-\u00de\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa\uff21-\uff3aa-z\u00b5\u00df-\u00f6\u00f8-\u00ff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa-\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02af\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb-\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0561-\u0587\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u210a\u210e-\u210f\u2113\u212f\u2134\u2139\u213c-\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5e\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73-\u2c74\u2c76-\u2c7b\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3-\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua771-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7fa\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0374\u037a\u0559\u0640\u06e5-\u06e6\u07f4-\u07f5\u07fa\u081a\u0824\u0828\u0971\u0e46\u0ec6\u10fc\u17d7\u1843\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2c7c-\u2c7d\u2d6f\u2e2f\u3005\u3031-\u3035\u303b\u309d-\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua67f\ua717-\ua71f\ua770\ua788\ua7f8-\ua7f9\ua9cf\uaa70\uaadd\uaaf3-\uaaf4\uff70\uff9e-\uff9f\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef][A-Z\u00c0-\u00d6\u00d8-\u00de\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa\uff21-\uff3aa-z\u00b5\u00df-\u00f6\u00f8-\u00ff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa-\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02af\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb-\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0561-\u0587\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u210a\u210e-\u210f\u2113\u212f\u2134\u2139\u213c-\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5e\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73-\u2c74\u2c76-\u2c7b\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3-\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua771-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7fa\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0374\u037a\u0559\u0640\u06e5-\u06e6\u07f4-\u07f5\u07fa\u081a\u0824\u0828\u0971\u0e46\u0ec6\u10fc\u17d7\u1843\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2c7c-\u2c7d\u2d6f\u2e2f\u3005\u3031-\u3035\u303b\u309d-\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua67f\ua717-\ua71f\ua770\ua788\ua7f8-\ua7f9\ua9cf\uaa70\uaadd\uaaf3-\uaaf4\uff70\uff9e-\uff9f\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef0-9\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19_\u203f-\u2040\u2054\ufe33-\ufe34\ufe4d-\ufe4f\uff3f\u00ad\u0600-\u0604\u061c\u06dd\u070f\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufeff\ufff9-\ufffb\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09c1-\u09c4\u09cd\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b62-\u0b63\u0b82\u0bc0\u0bcd\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0cbc\u0cbf\u0cc6\u0ccc-\u0ccd\u0ce2-\u0ce3\u0d41-\u0d44\u0d4d\u0d62-\u0d63\u0dca\u0dd2-\u0dd4\u0dd6\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u3099-\u309a\ua66f\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\u0903\u093b\u093e-\u0940\u0949-\u094c\u094e-\u094f\u0982-\u0983\u09be-\u09c0\u09c7-\u09c8\u09cb-\u09cc\u09d7\u0a03\u0a3e-\u0a40\u0a83\u0abe-\u0ac0\u0ac9\u0acb-\u0acc\u0b02-\u0b03\u0b3e\u0b40\u0b47-\u0b48\u0b4b-\u0b4c\u0b57\u0bbe-\u0bbf\u0bc1-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7\u0c01-\u0c03\u0c41-\u0c44\u0c82-\u0c83\u0cbe\u0cc0-\u0cc4\u0cc7-\u0cc8\u0cca-\u0ccb\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d57\u0d82-\u0d83\u0dcf-\u0dd1\u0dd8-\u0ddf\u0df2-\u0df3\u0f3e-\u0f3f\u0f7f\u102b-\u102c\u1031\u1038\u103b-\u103c\u1056-\u1057\u1062-\u1064\u1067-\u106d\u1083-\u1084\u1087-\u108c\u108f\u109a-\u109c\u17b6\u17be-\u17c5\u17c7-\u17c8\u1923-\u1926\u1929-\u192b\u1930-\u1931\u1933-\u1938\u19b0-\u19c0\u19c8-\u19c9\u1a19-\u1a1a\u1a55\u1a57\u1a61\u1a63-\u1a64\u1a6d-\u1a72\u1b04\u1b35\u1b3b\u1b3d-\u1b41\u1b43-\u1b44\u1b82\u1ba1\u1ba6-\u1ba7\u1baa\u1bac-\u1bad\u1be7\u1bea-\u1bec\u1bee\u1bf2-\u1bf3\u1c24-\u1c2b\u1c34-\u1c35\u1ce1\u1cf2-\u1cf3\u302e-\u302f\ua823-\ua824\ua827\ua880-\ua881\ua8b4-\ua8c3\ua952-\ua953\ua983\ua9b4-\ua9b5\ua9ba-\ua9bb\ua9bd-\ua9c0\uaa2f-\uaa30\uaa33-\uaa34\uaa4d\uaa7b\uaaeb\uaaee-\uaaef\uaaf5\uabe3-\uabe4\uabe6-\uabe7\uabe9-\uabea\uabec]*|`@?[_A-Z\u00c0-\u00d6\u00d8-\u00de\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa\uff21-\uff3aa-z\u00b5\u00df-\u00f6\u00f8-\u00ff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa-\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02af\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb-\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0561-\u0587\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u210a\u210e-\u210f\u2113\u212f\u2134\u2139\u213c-\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5e\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73-\u2c74\u2c76-\u2c7b\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3-\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua771-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7fa\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0374\u037a\u0559\u0640\u06e5-\u06e6\u07f4-\u07f5\u07fa\u081a\u0824\u0828\u0971\u0e46\u0ec6\u10fc\u17d7\u1843\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2c7c-\u2c7d\u2d6f\u2e2f\u3005\u3031-\u3035\u303b\u309d-\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua67f\ua717-\ua71f\ua770\ua788\ua7f8-\ua7f9\ua9cf\uaa70\uaadd\uaaf3-\uaaf4\uff70\uff9e-\uff9f\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef][A-Z\u00c0-\u00d6\u00d8-\u00de\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa\uff21-\uff3aa-z\u00b5\u00df-\u00f6\u00f8-\u00ff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa-\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02af\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb-\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0561-\u0587\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u210a\u210e-\u210f\u2113\u212f\u2134\u2139\u213c-\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5e\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73-\u2c74\u2c76-\u2c7b\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3-\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua771-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7fa\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0374\u037a\u0559\u0640\u06e5-\u06e6\u07f4-\u07f5\u07fa\u081a\u0824\u0828\u0971\u0e46\u0ec6\u10fc\u17d7\u1843\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2c7c-\u2c7d\u2d6f\u2e2f\u3005\u3031-\u3035\u303b\u309d-\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua67f\ua717-\ua71f\ua770\ua788\ua7f8-\ua7f9\ua9cf\uaa70\uaadd\uaaf3-\uaaf4\uff70\uff9e-\uff9f\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef0-9\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19_\u203f-\u2040\u2054\ufe33-\ufe34\ufe4d-\ufe4f\uff3f\u00ad\u0600-\u0604\u061c\u06dd\u070f\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufeff\ufff9-\ufffb\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09c1-\u09c4\u09cd\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b62-\u0b63\u0b82\u0bc0\u0bcd\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0cbc\u0cbf\u0cc6\u0ccc-\u0ccd\u0ce2-\u0ce3\u0d41-\u0d44\u0d4d\u0d62-\u0d63\u0dca\u0dd2-\u0dd4\u0dd6\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u3099-\u309a\ua66f\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\u0903\u093b\u093e-\u0940\u0949-\u094c\u094e-\u094f\u0982-\u0983\u09be-\u09c0\u09c7-\u09c8\u09cb-\u09cc\u09d7\u0a03\u0a3e-\u0a40\u0a83\u0abe-\u0ac0\u0ac9\u0acb-\u0acc\u0b02-\u0b03\u0b3e\u0b40\u0b47-\u0b48\u0b4b-\u0b4c\u0b57\u0bbe-\u0bbf\u0bc1-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7\u0c01-\u0c03\u0c41-\u0c44\u0c82-\u0c83\u0cbe\u0cc0-\u0cc4\u0cc7-\u0cc8\u0cca-\u0ccb\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d57\u0d82-\u0d83\u0dcf-\u0dd1\u0dd8-\u0ddf\u0df2-\u0df3\u0f3e-\u0f3f\u0f7f\u102b-\u102c\u1031\u1038\u103b-\u103c\u1056-\u1057\u1062-\u1064\u1067-\u106d\u1083-\u1084\u1087-\u108c\u108f\u109a-\u109c\u17b6\u17be-\u17c5\u17c7-\u17c8\u1923-\u1926\u1929-\u192b\u1930-\u1931\u1933-\u1938\u19b0-\u19c0\u19c8-\u19c9\u1a19-\u1a1a\u1a55\u1a57\u1a61\u1a63-\u1a64\u1a6d-\u1a72\u1b04\u1b35\u1b3b\u1b3d-\u1b41\u1b43-\u1b44\u1b82\u1ba1\u1ba6-\u1ba7\u1baa\u1bac-\u1bad\u1be7\u1bea-\u1bec\u1bee\u1bf2-\u1bf3\u1c24-\u1c2b\u1c34-\u1c35\u1ce1\u1cf2-\u1cf3\u302e-\u302f\ua823-\ua824\ua827\ua880-\ua881\ua8b4-\ua8c3\ua952-\ua953\ua983\ua9b4-\ua9b5\ua9ba-\ua9bb\ua9bd-\ua9c0\uaa2f-\uaa30\uaa33-\uaa34\uaa4d\uaa7b\uaaeb\uaaee-\uaaef\uaaf5\uabe3-\uabe4\uabe6-\uabe7\uabe9-\uabea\uabec" - -// Kotlin lexer. -var Kotlin = internal.Register(MustNewLexer( - &Config{ - Name: "Kotlin", - Aliases: []string{"kotlin"}, - Filenames: []string{"*.kt"}, - MimeTypes: []string{"text/x-kotlin"}, - DotAll: true, - }, - Rules{ - "root": { - {`^\s*\[.*?\]`, NameAttribute, nil}, - {`[^\S\n]+`, Text, nil}, - {`\\\n`, Text, nil}, - {`//[^\n]*\n?`, CommentSingle, nil}, - {`/[*].*?[*]/`, CommentMultiline, nil}, - {`\n`, Text, nil}, - {`::|!!|\?[:.]`, Operator, nil}, - {`[~!%^&*()+=|\[\]:;,.<>/?-]`, Punctuation, nil}, - {`[{}]`, Punctuation, nil}, - {`"""[^"]*"""`, LiteralString, nil}, - {`"(\\\\|\\"|[^"\n])*["\n]`, LiteralString, nil}, - {`'\\.'|'[^\\]'`, LiteralStringChar, nil}, - {`0[xX][0-9a-fA-F]+[Uu]?[Ll]?|[0-9]+(\.[0-9]*)?([eE][+-][0-9]+)?[fF]?[Uu]?[Ll]?`, LiteralNumber, nil}, - {`(companion)(\s+)(object)`, ByGroups(Keyword, Text, Keyword), nil}, - {`(class|interface|object)(\s+)`, ByGroups(Keyword, Text), Push("class")}, - {`(package|import)(\s+)`, ByGroups(Keyword, Text), Push("package")}, - {`(val|var)(\s+)`, ByGroups(Keyword, Text), Push("property")}, - {`(fun)(\s+)(<[^>]*>\s+)?`, ByGroups(Keyword, Text, Text), Push("function")}, - {`(abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|false|final|finally|for|fun|get|if|import|in|infix|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|true|try|val|var|vararg|when|where|while)\b`, Keyword, nil}, - {"(@?[" + kotlinIdentifier + "]*`)", Name, nil}, - }, - "package": { - {`\S+`, NameNamespace, Pop(1)}, - }, - "class": { - {"(@?[" + kotlinIdentifier + "]*`)", NameClass, Pop(1)}, - }, - "property": { - {"(@?[" + kotlinIdentifier + " ]*`)", NameProperty, Pop(1)}, - }, - "function": { - {"(@?[" + kotlinIdentifier + " ]*`)", NameFunction, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/l/lighttpd.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/l/lighttpd.go deleted file mode 100644 index 799b77c30a..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/l/lighttpd.go +++ /dev/null @@ -1,30 +0,0 @@ -package l - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Lighttpd Configuration File lexer. -var Lighttpd = internal.Register(MustNewLexer( - &Config{ - Name: "Lighttpd configuration file", - Aliases: []string{"lighty", "lighttpd"}, - Filenames: []string{}, - MimeTypes: []string{"text/x-lighttpd-conf"}, - }, - Rules{ - "root": { - {`#.*\n`, CommentSingle, nil}, - {`/\S*`, Name, nil}, - {`[a-zA-Z._-]+`, Keyword, nil}, - {`\d+\.\d+\.\d+\.\d+(?:/\d+)?`, LiteralNumber, nil}, - {`[0-9]+`, LiteralNumber, nil}, - {`=>|=~|\+=|==|=|\+`, Operator, nil}, - {`\$[A-Z]+`, NameBuiltin, nil}, - {`[(){}\[\],]`, Punctuation, nil}, - {`"([^"\\]*(?:\\.[^"\\]*)*)"`, LiteralStringDouble, nil}, - {`\s+`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/l/llvm.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/l/llvm.go deleted file mode 100644 index 8f5b0b1235..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/l/llvm.go +++ /dev/null @@ -1,43 +0,0 @@ -package l - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Llvm lexer. -var Llvm = internal.Register(MustNewLexer( - &Config{ - Name: "LLVM", - Aliases: []string{"llvm"}, - Filenames: []string{"*.ll"}, - MimeTypes: []string{"text/x-llvm"}, - }, - Rules{ - "root": { - Include("whitespace"), - {`([-a-zA-Z$._][\w\-$.]*|"[^"]*?")\s*:`, NameLabel, nil}, - Include("keyword"), - {`%([-a-zA-Z$._][\w\-$.]*|"[^"]*?")`, NameVariable, nil}, - {`@([-a-zA-Z$._][\w\-$.]*|"[^"]*?")`, NameVariableGlobal, nil}, - {`%\d+`, NameVariableAnonymous, nil}, - {`@\d+`, NameVariableGlobal, nil}, - {`#\d+`, NameVariableGlobal, nil}, - {`!([-a-zA-Z$._][\w\-$.]*|"[^"]*?")`, NameVariable, nil}, - {`!\d+`, NameVariableAnonymous, nil}, - {`c?"[^"]*?"`, LiteralString, nil}, - {`0[xX][a-fA-F0-9]+`, LiteralNumber, nil}, - {`-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?`, LiteralNumber, nil}, - {`[=<>{}\[\]()*.,!]|x\b`, Punctuation, nil}, - }, - "whitespace": { - {`(\n|\s)+`, Text, nil}, - {`;.*?\n`, Comment, nil}, - }, - "keyword": { - {Words(``, `\b`, `begin`, `end`, `true`, `false`, `declare`, `define`, `global`, `constant`, `private`, `linker_private`, `internal`, `available_externally`, `linkonce`, `linkonce_odr`, `weak`, `weak_odr`, `appending`, `dllimport`, `dllexport`, `common`, `default`, `hidden`, `protected`, `extern_weak`, `external`, `thread_local`, `zeroinitializer`, `undef`, `null`, `to`, `tail`, `target`, `triple`, `datalayout`, `volatile`, `nuw`, `nsw`, `nnan`, `ninf`, `nsz`, `arcp`, `fast`, `exact`, `inbounds`, `align`, `addrspace`, `section`, `alias`, `module`, `asm`, `sideeffect`, `gc`, `dbg`, `linker_private_weak`, `attributes`, `blockaddress`, `initialexec`, `localdynamic`, `localexec`, `prefix`, `unnamed_addr`, `ccc`, `fastcc`, `coldcc`, `x86_stdcallcc`, `x86_fastcallcc`, `arm_apcscc`, `arm_aapcscc`, `arm_aapcs_vfpcc`, `ptx_device`, `ptx_kernel`, `intel_ocl_bicc`, `msp430_intrcc`, `spir_func`, `spir_kernel`, `x86_64_sysvcc`, `x86_64_win64cc`, `x86_thiscallcc`, `cc`, `c`, `signext`, `zeroext`, `inreg`, `sret`, `nounwind`, `noreturn`, `noalias`, `nocapture`, `byval`, `nest`, `readnone`, `readonly`, `inlinehint`, `noinline`, `alwaysinline`, `optsize`, `ssp`, `sspreq`, `noredzone`, `noimplicitfloat`, `naked`, `builtin`, `cold`, `nobuiltin`, `noduplicate`, `nonlazybind`, `optnone`, `returns_twice`, `sanitize_address`, `sanitize_memory`, `sanitize_thread`, `sspstrong`, `uwtable`, `returned`, `type`, `opaque`, `eq`, `ne`, `slt`, `sgt`, `sle`, `sge`, `ult`, `ugt`, `ule`, `uge`, `oeq`, `one`, `olt`, `ogt`, `ole`, `oge`, `ord`, `uno`, `ueq`, `une`, `x`, `acq_rel`, `acquire`, `alignstack`, `atomic`, `catch`, `cleanup`, `filter`, `inteldialect`, `max`, `min`, `monotonic`, `nand`, `personality`, `release`, `seq_cst`, `singlethread`, `umax`, `umin`, `unordered`, `xchg`, `add`, `fadd`, `sub`, `fsub`, `mul`, `fmul`, `udiv`, `sdiv`, `fdiv`, `urem`, `srem`, `frem`, `shl`, `lshr`, `ashr`, `and`, `or`, `xor`, `icmp`, `fcmp`, `phi`, `call`, `trunc`, `zext`, `sext`, `fptrunc`, `fpext`, `uitofp`, `sitofp`, `fptoui`, `fptosi`, `inttoptr`, `ptrtoint`, `bitcast`, `addrspacecast`, `select`, `va_arg`, `ret`, `br`, `switch`, `invoke`, `unwind`, `unreachable`, `indirectbr`, `landingpad`, `resume`, `malloc`, `alloca`, `free`, `load`, `store`, `getelementptr`, `extractelement`, `insertelement`, `shufflevector`, `getresult`, `extractvalue`, `insertvalue`, `atomicrmw`, `cmpxchg`, `fence`, `allocsize`, `amdgpu_cs`, `amdgpu_gs`, `amdgpu_kernel`, `amdgpu_ps`, `amdgpu_vs`, `any`, `anyregcc`, `argmemonly`, `avr_intrcc`, `avr_signalcc`, `caller`, `catchpad`, `catchret`, `catchswitch`, `cleanuppad`, `cleanupret`, `comdat`, `convergent`, `cxx_fast_tlscc`, `deplibs`, `dereferenceable`, `dereferenceable_or_null`, `distinct`, `exactmatch`, `externally_initialized`, `from`, `ghccc`, `hhvm_ccc`, `hhvmcc`, `ifunc`, `inaccessiblemem_or_argmemonly`, `inaccessiblememonly`, `inalloca`, `jumptable`, `largest`, `local_unnamed_addr`, `minsize`, `musttail`, `noduplicates`, `none`, `nonnull`, `norecurse`, `notail`, `preserve_allcc`, `preserve_mostcc`, `prologue`, `safestack`, `samesize`, `source_filename`, `swiftcc`, `swifterror`, `swiftself`, `webkit_jscc`, `within`, `writeonly`, `x86_intrcc`, `x86_vectorcallcc`), Keyword, nil}, - {Words(``, ``, `void`, `half`, `float`, `double`, `x86_fp80`, `fp128`, `ppc_fp128`, `label`, `metadata`, `token`), KeywordType, nil}, - {`i[1-9]\d*`, Keyword, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/l/lua.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/l/lua.go deleted file mode 100644 index c397de065d..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/l/lua.go +++ /dev/null @@ -1,75 +0,0 @@ -package l - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Lua lexer. -var Lua = internal.Register(MustNewLexer( - &Config{ - Name: "Lua", - Aliases: []string{"lua"}, - Filenames: []string{"*.lua", "*.wlua"}, - MimeTypes: []string{"text/x-lua", "application/x-lua"}, - }, - Rules{ - "root": { - {`#!.*`, CommentPreproc, nil}, - Default(Push("base")), - }, - "ws": { - {`(?:--\[(=*)\[[\w\W]*?\](\1)\])`, CommentMultiline, nil}, - {`(?:--.*$)`, CommentSingle, nil}, - {`(?:\s+)`, Text, nil}, - }, - "base": { - Include("ws"), - {`(?i)0x[\da-f]*(\.[\da-f]*)?(p[+-]?\d+)?`, LiteralNumberHex, nil}, - {`(?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?`, LiteralNumberFloat, nil}, - {`(?i)\d+e[+-]?\d+`, LiteralNumberFloat, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`(?s)\[(=*)\[.*?\]\1\]`, LiteralString, nil}, - {`::`, Punctuation, Push("label")}, - {`\.{3}`, Punctuation, nil}, - {`[=<>|~&+\-*/%#^]+|\.\.`, Operator, nil}, - {`[\[\]{}().,:;]`, Punctuation, nil}, - {`(and|or|not)\b`, OperatorWord, nil}, - {`(break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\b`, KeywordReserved, nil}, - {`goto\b`, KeywordReserved, Push("goto")}, - {`(local)\b`, KeywordDeclaration, nil}, - {`(true|false|nil)\b`, KeywordConstant, nil}, - {`(function)\b`, KeywordReserved, Push("funcname")}, - {`[A-Za-z_]\w*(\.[A-Za-z_]\w*)?`, Name, nil}, - {`'`, LiteralStringSingle, Combined("stringescape", "sqs")}, - {`"`, LiteralStringDouble, Combined("stringescape", "dqs")}, - }, - "funcname": { - Include("ws"), - {`[.:]`, Punctuation, nil}, - {`(?:[^\W\d]\w*)(?=(?:(?:--\[(=*)\[[\w\W]*?\](\2)\])|(?:--.*$)|(?:\s+))*[.:])`, NameClass, nil}, - {`(?:[^\W\d]\w*)`, NameFunction, Pop(1)}, - {`\(`, Punctuation, Pop(1)}, - }, - "goto": { - Include("ws"), - {`(?:[^\W\d]\w*)`, NameLabel, Pop(1)}, - }, - "label": { - Include("ws"), - {`::`, Punctuation, Pop(1)}, - {`(?:[^\W\d]\w*)`, NameLabel, nil}, - }, - "stringescape": { - {`\\([abfnrtv\\"\']|[\r\n]{1,2}|z\s*|x[0-9a-fA-F]{2}|\d{1,3}|u\{[0-9a-fA-F]+\})`, LiteralStringEscape, nil}, - }, - "sqs": { - {`'`, LiteralStringSingle, Pop(1)}, - {`[^\\']+`, LiteralStringSingle, nil}, - }, - "dqs": { - {`"`, LiteralStringDouble, Pop(1)}, - {`[^\\"]+`, LiteralStringDouble, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/lexer_benchmark_test.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/lexer_benchmark_test.go deleted file mode 100644 index c0d805b8d9..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/lexer_benchmark_test.go +++ /dev/null @@ -1,2472 +0,0 @@ -package lexers_test - -import ( - "testing" - - "github.com/alecthomas/assert" - "github.com/alecthomas/chroma" - "github.com/alecthomas/chroma/lexers/g" -) - -const lexerBenchSource = `// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// HTTP client implementation. See RFC 7230 through 7235. -// -// This is the low-level Transport implementation of RoundTripper. -// The high-level interface is in client.go. - -package http - -import ( - "bufio" - "compress/gzip" - "container/list" - "context" - "crypto/tls" - "errors" - "fmt" - "io" - "log" - "net" - "net/http/httptrace" - "net/textproto" - "net/url" - "os" - "reflect" - "strings" - "sync" - "sync/atomic" - "time" - - "golang_org/x/net/http/httpguts" - "golang_org/x/net/http/httpproxy" -) - -// DefaultTransport is the default implementation of Transport and is -// used by DefaultClient. It establishes network connections as needed -// and caches them for reuse by subsequent calls. It uses HTTP proxies -// as directed by the $HTTP_PROXY and $NO_PROXY (or $http_proxy and -// $no_proxy) environment variables. -var DefaultTransport RoundTripper = &Transport{ - Proxy: ProxyFromEnvironment, - DialContext: (&net.Dialer{ - Timeout: 30 * time.Second, - KeepAlive: 30 * time.Second, - DualStack: true, - }).DialContext, - MaxIdleConns: 100, - IdleConnTimeout: 90 * time.Second, - TLSHandshakeTimeout: 10 * time.Second, - ExpectContinueTimeout: 1 * time.Second, -} - -// DefaultMaxIdleConnsPerHost is the default value of Transport's -// MaxIdleConnsPerHost. -const DefaultMaxIdleConnsPerHost = 2 - -// connsPerHostClosedCh is a closed channel used by MaxConnsPerHost -// for the property that receives from a closed channel return the -// zero value. -var connsPerHostClosedCh = make(chan struct{}) - -func init() { - close(connsPerHostClosedCh) -} - -// Transport is an implementation of RoundTripper that supports HTTP, -// HTTPS, and HTTP proxies (for either HTTP or HTTPS with CONNECT). -// -// By default, Transport caches connections for future re-use. -// This may leave many open connections when accessing many hosts. -// This behavior can be managed using Transport's CloseIdleConnections method -// and the MaxIdleConnsPerHost and DisableKeepAlives fields. -// -// Transports should be reused instead of created as needed. -// Transports are safe for concurrent use by multiple goroutines. -// -// A Transport is a low-level primitive for making HTTP and HTTPS requests. -// For high-level functionality, such as cookies and redirects, see Client. -// -// Transport uses HTTP/1.1 for HTTP URLs and either HTTP/1.1 or HTTP/2 -// for HTTPS URLs, depending on whether the server supports HTTP/2, -// and how the Transport is configured. The DefaultTransport supports HTTP/2. -// To explicitly enable HTTP/2 on a transport, use golang.org/x/net/http2 -// and call ConfigureTransport. See the package docs for more about HTTP/2. -// -// The Transport will send CONNECT requests to a proxy for its own use -// when processing HTTPS requests, but Transport should generally not -// be used to send a CONNECT request. That is, the Request passed to -// the RoundTrip method should not have a Method of "CONNECT", as Go's -// HTTP/1.x implementation does not support full-duplex request bodies -// being written while the response body is streamed. Go's HTTP/2 -// implementation does support full duplex, but many CONNECT proxies speak -// HTTP/1.x. -// -// Responses with status codes in the 1xx range are either handled -// automatically (100 expect-continue) or ignored. The one -// exception is HTTP status code 101 (Switching Protocols), which is -// considered a terminal status and returned by RoundTrip. To see the -// ignored 1xx responses, use the httptrace trace package's -// ClientTrace.Got1xxResponse. -type Transport struct { - idleMu sync.Mutex - wantIdle bool // user has requested to close all idle conns - idleConn map[connectMethodKey][]*persistConn // most recently used at end - idleConnCh map[connectMethodKey]chan *persistConn - idleLRU connLRU - - reqMu sync.Mutex - reqCanceler map[*Request]func(error) - - altMu sync.Mutex // guards changing altProto only - altProto atomic.Value // of nil or map[string]RoundTripper, key is URI scheme - - connCountMu sync.Mutex - connPerHostCount map[connectMethodKey]int - connPerHostAvailable map[connectMethodKey]chan struct{} - - // Proxy specifies a function to return a proxy for a given - // Request. If the function returns a non-nil error, the - // request is aborted with the provided error. - // - // The proxy type is determined by the URL scheme. "http", - // "https", and "socks5" are supported. If the scheme is empty, - // "http" is assumed. - // - // If Proxy is nil or returns a nil *URL, no proxy is used. - Proxy func(*Request) (*url.URL, error) - - // DialContext specifies the dial function for creating unencrypted TCP connections. - // If DialContext is nil (and the deprecated Dial below is also nil), - // then the transport dials using package net. - // - // DialContext runs concurrently with calls to RoundTrip. - // A RoundTrip call that initiates a dial may end up using - // an connection dialed previously when the earlier connection - // becomes idle before the later DialContext completes. - DialContext func(ctx context.Context, network, addr string) (net.Conn, error) - - // Dial specifies the dial function for creating unencrypted TCP connections. - // - // Dial runs concurrently with calls to RoundTrip. - // A RoundTrip call that initiates a dial may end up using - // an connection dialed previously when the earlier connection - // becomes idle before the later Dial completes. - // - // Deprecated: Use DialContext instead, which allows the transport - // to cancel dials as soon as they are no longer needed. - // If both are set, DialContext takes priority. - Dial func(network, addr string) (net.Conn, error) - - // DialTLS specifies an optional dial function for creating - // TLS connections for non-proxied HTTPS requests. - // - // If DialTLS is nil, Dial and TLSClientConfig are used. - // - // If DialTLS is set, the Dial hook is not used for HTTPS - // requests and the TLSClientConfig and TLSHandshakeTimeout - // are ignored. The returned net.Conn is assumed to already be - // past the TLS handshake. - DialTLS func(network, addr string) (net.Conn, error) - - // TLSClientConfig specifies the TLS configuration to use with - // tls.Client. - // If nil, the default configuration is used. - // If non-nil, HTTP/2 support may not be enabled by default. - TLSClientConfig *tls.Config - - // TLSHandshakeTimeout specifies the maximum amount of time waiting to - // wait for a TLS handshake. Zero means no timeout. - TLSHandshakeTimeout time.Duration - - // DisableKeepAlives, if true, disables HTTP keep-alives and - // will only use the connection to the server for a single - // HTTP request. - // - // This is unrelated to the similarly named TCP keep-alives. - DisableKeepAlives bool - - // DisableCompression, if true, prevents the Transport from - // requesting compression with an "Accept-Encoding: gzip" - // request header when the Request contains no existing - // Accept-Encoding value. If the Transport requests gzip on - // its own and gets a gzipped response, it's transparently - // decoded in the Response.Body. However, if the user - // explicitly requested gzip it is not automatically - // uncompressed. - DisableCompression bool - - // MaxIdleConns controls the maximum number of idle (keep-alive) - // connections across all hosts. Zero means no limit. - MaxIdleConns int - - // MaxIdleConnsPerHost, if non-zero, controls the maximum idle - // (keep-alive) connections to keep per-host. If zero, - // DefaultMaxIdleConnsPerHost is used. - MaxIdleConnsPerHost int - - // MaxConnsPerHost optionally limits the total number of - // connections per host, including connections in the dialing, - // active, and idle states. On limit violation, dials will block. - // - // Zero means no limit. - // - // For HTTP/2, this currently only controls the number of new - // connections being created at a time, instead of the total - // number. In practice, hosts using HTTP/2 only have about one - // idle connection, though. - MaxConnsPerHost int - - // IdleConnTimeout is the maximum amount of time an idle - // (keep-alive) connection will remain idle before closing - // itself. - // Zero means no limit. - IdleConnTimeout time.Duration - - // ResponseHeaderTimeout, if non-zero, specifies the amount of - // time to wait for a server's response headers after fully - // writing the request (including its body, if any). This - // time does not include the time to read the response body. - ResponseHeaderTimeout time.Duration - - // ExpectContinueTimeout, if non-zero, specifies the amount of - // time to wait for a server's first response headers after fully - // writing the request headers if the request has an - // "Expect: 100-continue" header. Zero means no timeout and - // causes the body to be sent immediately, without - // waiting for the server to approve. - // This time does not include the time to send the request header. - ExpectContinueTimeout time.Duration - - // TLSNextProto specifies how the Transport switches to an - // alternate protocol (such as HTTP/2) after a TLS NPN/ALPN - // protocol negotiation. If Transport dials an TLS connection - // with a non-empty protocol name and TLSNextProto contains a - // map entry for that key (such as "h2"), then the func is - // called with the request's authority (such as "example.com" - // or "example.com:1234") and the TLS connection. The function - // must return a RoundTripper that then handles the request. - // If TLSNextProto is not nil, HTTP/2 support is not enabled - // automatically. - TLSNextProto map[string]func(authority string, c *tls.Conn) RoundTripper - - // ProxyConnectHeader optionally specifies headers to send to - // proxies during CONNECT requests. - ProxyConnectHeader Header - - // MaxResponseHeaderBytes specifies a limit on how many - // response bytes are allowed in the server's response - // header. - // - // Zero means to use a default limit. - MaxResponseHeaderBytes int64 - - // nextProtoOnce guards initialization of TLSNextProto and - // h2transport (via onceSetNextProtoDefaults) - nextProtoOnce sync.Once - h2transport h2Transport // non-nil if http2 wired up -} - -// h2Transport is the interface we expect to be able to call from -// net/http against an *http2.Transport that's either bundled into -// h2_bundle.go or supplied by the user via x/net/http2. -// -// We name it with the "h2" prefix to stay out of the "http2" prefix -// namespace used by x/tools/cmd/bundle for h2_bundle.go. -type h2Transport interface { - CloseIdleConnections() -} - -// onceSetNextProtoDefaults initializes TLSNextProto. -// It must be called via t.nextProtoOnce.Do. -func (t *Transport) onceSetNextProtoDefaults() { - if strings.Contains(os.Getenv("GODEBUG"), "http2client=0") { - return - } - - // If they've already configured http2 with - // golang.org/x/net/http2 instead of the bundled copy, try to - // get at its http2.Transport value (via the the "https" - // altproto map) so we can call CloseIdleConnections on it if - // requested. (Issue 22891) - altProto, _ := t.altProto.Load().(map[string]RoundTripper) - if rv := reflect.ValueOf(altProto["https"]); rv.IsValid() && rv.Type().Kind() == reflect.Struct && rv.Type().NumField() == 1 { - if v := rv.Field(0); v.CanInterface() { - if h2i, ok := v.Interface().(h2Transport); ok { - t.h2transport = h2i - } - } - } - - if t.TLSNextProto != nil { - // This is the documented way to disable http2 on a - // Transport. - return - } - if t.TLSClientConfig != nil || t.Dial != nil || t.DialTLS != nil { - // Be conservative and don't automatically enable - // http2 if they've specified a custom TLS config or - // custom dialers. Let them opt-in themselves via - // http2.ConfigureTransport so we don't surprise them - // by modifying their tls.Config. Issue 14275. - return - } - t2, err := http2configureTransport(t) - if err != nil { - log.Printf("Error enabling Transport HTTP/2 support: %v", err) - return - } - t.h2transport = t2 - - // Auto-configure the http2.Transport's MaxHeaderListSize from - // the http.Transport's MaxResponseHeaderBytes. They don't - // exactly mean the same thing, but they're close. - // - // TODO: also add this to x/net/http2.Configure Transport, behind - // a +build go1.7 build tag: - if limit1 := t.MaxResponseHeaderBytes; limit1 != 0 && t2.MaxHeaderListSize == 0 { - const h2max = 1<<32 - 1 - if limit1 >= h2max { - t2.MaxHeaderListSize = h2max - } else { - t2.MaxHeaderListSize = uint32(limit1) - } - } -} - -// ProxyFromEnvironment returns the URL of the proxy to use for a -// given request, as indicated by the environment variables -// HTTP_PROXY, HTTPS_PROXY and NO_PROXY (or the lowercase versions -// thereof). HTTPS_PROXY takes precedence over HTTP_PROXY for https -// requests. -// -// The environment values may be either a complete URL or a -// "host[:port]", in which case the "http" scheme is assumed. -// An error is returned if the value is a different form. -// -// A nil URL and nil error are returned if no proxy is defined in the -// environment, or a proxy should not be used for the given request, -// as defined by NO_PROXY. -// -// As a special case, if req.URL.Host is "localhost" (with or without -// a port number), then a nil URL and nil error will be returned. -func ProxyFromEnvironment(req *Request) (*url.URL, error) { - return envProxyFunc()(req.URL) -} - -// ProxyURL returns a proxy function (for use in a Transport) -// that always returns the same URL. -func ProxyURL(fixedURL *url.URL) func(*Request) (*url.URL, error) { - return func(*Request) (*url.URL, error) { - return fixedURL, nil - } -} - -// transportRequest is a wrapper around a *Request that adds -// optional extra headers to write and stores any error to return -// from roundTrip. -type transportRequest struct { - *Request // original request, not to be mutated - extra Header // extra headers to write, or nil - trace *httptrace.ClientTrace // optional - - mu sync.Mutex // guards err - err error // first setError value for mapRoundTripError to consider -} - -func (tr *transportRequest) extraHeaders() Header { - if tr.extra == nil { - tr.extra = make(Header) - } - return tr.extra -} - -func (tr *transportRequest) setError(err error) { - tr.mu.Lock() - if tr.err == nil { - tr.err = err - } - tr.mu.Unlock() -} - -// roundTrip implements a RoundTripper over HTTP. -func (t *Transport) roundTrip(req *Request) (*Response, error) { - t.nextProtoOnce.Do(t.onceSetNextProtoDefaults) - ctx := req.Context() - trace := httptrace.ContextClientTrace(ctx) - - if req.URL == nil { - req.closeBody() - return nil, errors.New("http: nil Request.URL") - } - if req.Header == nil { - req.closeBody() - return nil, errors.New("http: nil Request.Header") - } - scheme := req.URL.Scheme - isHTTP := scheme == "http" || scheme == "https" - if isHTTP { - for k, vv := range req.Header { - if !httpguts.ValidHeaderFieldName(k) { - return nil, fmt.Errorf("net/http: invalid header field name %q", k) - } - for _, v := range vv { - if !httpguts.ValidHeaderFieldValue(v) { - return nil, fmt.Errorf("net/http: invalid header field value %q for key %v", v, k) - } - } - } - } - - altProto, _ := t.altProto.Load().(map[string]RoundTripper) - if altRT := altProto[scheme]; altRT != nil { - if resp, err := altRT.RoundTrip(req); err != ErrSkipAltProtocol { - return resp, err - } - } - if !isHTTP { - req.closeBody() - return nil, &badStringError{"unsupported protocol scheme", scheme} - } - if req.Method != "" && !validMethod(req.Method) { - return nil, fmt.Errorf("net/http: invalid method %q", req.Method) - } - if req.URL.Host == "" { - req.closeBody() - return nil, errors.New("http: no Host in request URL") - } - - for { - select { - case <-ctx.Done(): - req.closeBody() - return nil, ctx.Err() - default: - } - - // treq gets modified by roundTrip, so we need to recreate for each retry. - treq := &transportRequest{Request: req, trace: trace} - cm, err := t.connectMethodForRequest(treq) - if err != nil { - req.closeBody() - return nil, err - } - - // Get the cached or newly-created connection to either the - // host (for http or https), the http proxy, or the http proxy - // pre-CONNECTed to https server. In any case, we'll be ready - // to send it requests. - pconn, err := t.getConn(treq, cm) - if err != nil { - t.setReqCanceler(req, nil) - req.closeBody() - return nil, err - } - - var resp *Response - if pconn.alt != nil { - // HTTP/2 path. - t.decHostConnCount(cm.key()) // don't count cached http2 conns toward conns per host - t.setReqCanceler(req, nil) // not cancelable with CancelRequest - resp, err = pconn.alt.RoundTrip(req) - } else { - resp, err = pconn.roundTrip(treq) - } - if err == nil { - return resp, nil - } - if !pconn.shouldRetryRequest(req, err) { - // Issue 16465: return underlying net.Conn.Read error from peek, - // as we've historically done. - if e, ok := err.(transportReadFromServerError); ok { - err = e.err - } - return nil, err - } - testHookRoundTripRetried() - - // Rewind the body if we're able to. (HTTP/2 does this itself so we only - // need to do it for HTTP/1.1 connections.) - if req.GetBody != nil && pconn.alt == nil { - newReq := *req - var err error - newReq.Body, err = req.GetBody() - if err != nil { - return nil, err - } - req = &newReq - } - } -} - -// shouldRetryRequest reports whether we should retry sending a failed -// HTTP request on a new connection. The non-nil input error is the -// error from roundTrip. -func (pc *persistConn) shouldRetryRequest(req *Request, err error) bool { - if http2isNoCachedConnError(err) { - // Issue 16582: if the user started a bunch of - // requests at once, they can all pick the same conn - // and violate the server's max concurrent streams. - // Instead, match the HTTP/1 behavior for now and dial - // again to get a new TCP connection, rather than failing - // this request. - return true - } - if err == errMissingHost { - // User error. - return false - } - if !pc.isReused() { - // This was a fresh connection. There's no reason the server - // should've hung up on us. - // - // Also, if we retried now, we could loop forever - // creating new connections and retrying if the server - // is just hanging up on us because it doesn't like - // our request (as opposed to sending an error). - return false - } - if _, ok := err.(nothingWrittenError); ok { - // We never wrote anything, so it's safe to retry, if there's no body or we - // can "rewind" the body with GetBody. - return req.outgoingLength() == 0 || req.GetBody != nil - } - if !req.isReplayable() { - // Don't retry non-idempotent requests. - return false - } - if _, ok := err.(transportReadFromServerError); ok { - // We got some non-EOF net.Conn.Read failure reading - // the 1st response byte from the server. - return true - } - if err == errServerClosedIdle { - // The server replied with io.EOF while we were trying to - // read the response. Probably an unfortunately keep-alive - // timeout, just as the client was writing a request. - return true - } - return false // conservatively -} - -// ErrSkipAltProtocol is a sentinel error value defined by Transport.RegisterProtocol. -var ErrSkipAltProtocol = errors.New("net/http: skip alternate protocol") - -// RegisterProtocol registers a new protocol with scheme. -// The Transport will pass requests using the given scheme to rt. -// It is rt's responsibility to simulate HTTP request semantics. -// -// RegisterProtocol can be used by other packages to provide -// implementations of protocol schemes like "ftp" or "file". -// -// If rt.RoundTrip returns ErrSkipAltProtocol, the Transport will -// handle the RoundTrip itself for that one request, as if the -// protocol were not registered. -func (t *Transport) RegisterProtocol(scheme string, rt RoundTripper) { - t.altMu.Lock() - defer t.altMu.Unlock() - oldMap, _ := t.altProto.Load().(map[string]RoundTripper) - if _, exists := oldMap[scheme]; exists { - panic("protocol " + scheme + " already registered") - } - newMap := make(map[string]RoundTripper) - for k, v := range oldMap { - newMap[k] = v - } - newMap[scheme] = rt - t.altProto.Store(newMap) -} - -// CloseIdleConnections closes any connections which were previously -// connected from previous requests but are now sitting idle in -// a "keep-alive" state. It does not interrupt any connections currently -// in use. -func (t *Transport) CloseIdleConnections() { - t.nextProtoOnce.Do(t.onceSetNextProtoDefaults) - t.idleMu.Lock() - m := t.idleConn - t.idleConn = nil - t.idleConnCh = nil - t.wantIdle = true - t.idleLRU = connLRU{} - t.idleMu.Unlock() - for _, conns := range m { - for _, pconn := range conns { - pconn.close(errCloseIdleConns) - } - } - if t2 := t.h2transport; t2 != nil { - t2.CloseIdleConnections() - } -} - -// CancelRequest cancels an in-flight request by closing its connection. -// CancelRequest should only be called after RoundTrip has returned. -// -// Deprecated: Use Request.WithContext to create a request with a -// cancelable context instead. CancelRequest cannot cancel HTTP/2 -// requests. -func (t *Transport) CancelRequest(req *Request) { - t.cancelRequest(req, errRequestCanceled) -} - -// Cancel an in-flight request, recording the error value. -func (t *Transport) cancelRequest(req *Request, err error) { - t.reqMu.Lock() - cancel := t.reqCanceler[req] - delete(t.reqCanceler, req) - t.reqMu.Unlock() - if cancel != nil { - cancel(err) - } -} - -// -// Private implementation past this point. -// - -var ( - // proxyConfigOnce guards proxyConfig - envProxyOnce sync.Once - envProxyFuncValue func(*url.URL) (*url.URL, error) -) - -// defaultProxyConfig returns a ProxyConfig value looked up -// from the environment. This mitigates expensive lookups -// on some platforms (e.g. Windows). -func envProxyFunc() func(*url.URL) (*url.URL, error) { - envProxyOnce.Do(func() { - envProxyFuncValue = httpproxy.FromEnvironment().ProxyFunc() - }) - return envProxyFuncValue -} - -// resetProxyConfig is used by tests. -func resetProxyConfig() { - envProxyOnce = sync.Once{} - envProxyFuncValue = nil -} - -func (t *Transport) connectMethodForRequest(treq *transportRequest) (cm connectMethod, err error) { - if port := treq.URL.Port(); !validPort(port) { - return cm, fmt.Errorf("invalid URL port %q", port) - } - cm.targetScheme = treq.URL.Scheme - cm.targetAddr = canonicalAddr(treq.URL) - if t.Proxy != nil { - cm.proxyURL, err = t.Proxy(treq.Request) - if err == nil && cm.proxyURL != nil { - if port := cm.proxyURL.Port(); !validPort(port) { - return cm, fmt.Errorf("invalid proxy URL port %q", port) - } - } - } - return cm, err -} - -// proxyAuth returns the Proxy-Authorization header to set -// on requests, if applicable. -func (cm *connectMethod) proxyAuth() string { - if cm.proxyURL == nil { - return "" - } - if u := cm.proxyURL.User; u != nil { - username := u.Username() - password, _ := u.Password() - return "Basic " + basicAuth(username, password) - } - return "" -} - -// error values for debugging and testing, not seen by users. -var ( - errKeepAlivesDisabled = errors.New("http: putIdleConn: keep alives disabled") - errConnBroken = errors.New("http: putIdleConn: connection is in bad state") - errWantIdle = errors.New("http: putIdleConn: CloseIdleConnections was called") - errTooManyIdle = errors.New("http: putIdleConn: too many idle connections") - errTooManyIdleHost = errors.New("http: putIdleConn: too many idle connections for host") - errCloseIdleConns = errors.New("http: CloseIdleConnections called") - errReadLoopExiting = errors.New("http: persistConn.readLoop exiting") - errIdleConnTimeout = errors.New("http: idle connection timeout") - errNotCachingH2Conn = errors.New("http: not caching alternate protocol's connections") - - // errServerClosedIdle is not seen by users for idempotent requests, but may be - // seen by a user if the server shuts down an idle connection and sends its FIN - // in flight with already-written POST body bytes from the client. - // See https://github.com/golang/go/issues/19943#issuecomment-355607646 - errServerClosedIdle = errors.New("http: server closed idle connection") -) - -// transportReadFromServerError is used by Transport.readLoop when the -// 1 byte peek read fails and we're actually anticipating a response. -// Usually this is just due to the inherent keep-alive shut down race, -// where the server closed the connection at the same time the client -// wrote. The underlying err field is usually io.EOF or some -// ECONNRESET sort of thing which varies by platform. But it might be -// the user's custom net.Conn.Read error too, so we carry it along for -// them to return from Transport.RoundTrip. -type transportReadFromServerError struct { - err error -} - -func (e transportReadFromServerError) Error() string { - return fmt.Sprintf("net/http: Transport failed to read from server: %v", e.err) -} - -func (t *Transport) putOrCloseIdleConn(pconn *persistConn) { - if err := t.tryPutIdleConn(pconn); err != nil { - pconn.close(err) - } -} - -func (t *Transport) maxIdleConnsPerHost() int { - if v := t.MaxIdleConnsPerHost; v != 0 { - return v - } - return DefaultMaxIdleConnsPerHost -} - -// tryPutIdleConn adds pconn to the list of idle persistent connections awaiting -// a new request. -// If pconn is no longer needed or not in a good state, tryPutIdleConn returns -// an error explaining why it wasn't registered. -// tryPutIdleConn does not close pconn. Use putOrCloseIdleConn instead for that. -func (t *Transport) tryPutIdleConn(pconn *persistConn) error { - if t.DisableKeepAlives || t.MaxIdleConnsPerHost < 0 { - return errKeepAlivesDisabled - } - if pconn.isBroken() { - return errConnBroken - } - if pconn.alt != nil { - return errNotCachingH2Conn - } - pconn.markReused() - key := pconn.cacheKey - - t.idleMu.Lock() - defer t.idleMu.Unlock() - - waitingDialer := t.idleConnCh[key] - select { - case waitingDialer <- pconn: - // We're done with this pconn and somebody else is - // currently waiting for a conn of this type (they're - // actively dialing, but this conn is ready - // first). Chrome calls this socket late binding. See - // https://insouciant.org/tech/connection-management-in-chromium/ - return nil - default: - if waitingDialer != nil { - // They had populated this, but their dial won - // first, so we can clean up this map entry. - delete(t.idleConnCh, key) - } - } - if t.wantIdle { - return errWantIdle - } - if t.idleConn == nil { - t.idleConn = make(map[connectMethodKey][]*persistConn) - } - idles := t.idleConn[key] - if len(idles) >= t.maxIdleConnsPerHost() { - return errTooManyIdleHost - } - for _, exist := range idles { - if exist == pconn { - log.Fatalf("dup idle pconn %p in freelist", pconn) - } - } - t.idleConn[key] = append(idles, pconn) - t.idleLRU.add(pconn) - if t.MaxIdleConns != 0 && t.idleLRU.len() > t.MaxIdleConns { - oldest := t.idleLRU.removeOldest() - oldest.close(errTooManyIdle) - t.removeIdleConnLocked(oldest) - } - if t.IdleConnTimeout > 0 { - if pconn.idleTimer != nil { - pconn.idleTimer.Reset(t.IdleConnTimeout) - } else { - pconn.idleTimer = time.AfterFunc(t.IdleConnTimeout, pconn.closeConnIfStillIdle) - } - } - pconn.idleAt = time.Now() - return nil -} - -// getIdleConnCh returns a channel to receive and return idle -// persistent connection for the given connectMethod. -// It may return nil, if persistent connections are not being used. -func (t *Transport) getIdleConnCh(cm connectMethod) chan *persistConn { - if t.DisableKeepAlives { - return nil - } - key := cm.key() - t.idleMu.Lock() - defer t.idleMu.Unlock() - t.wantIdle = false - if t.idleConnCh == nil { - t.idleConnCh = make(map[connectMethodKey]chan *persistConn) - } - ch, ok := t.idleConnCh[key] - if !ok { - ch = make(chan *persistConn) - t.idleConnCh[key] = ch - } - return ch -} - -func (t *Transport) getIdleConn(cm connectMethod) (pconn *persistConn, idleSince time.Time) { - key := cm.key() - t.idleMu.Lock() - defer t.idleMu.Unlock() - for { - pconns, ok := t.idleConn[key] - if !ok { - return nil, time.Time{} - } - if len(pconns) == 1 { - pconn = pconns[0] - delete(t.idleConn, key) - } else { - // 2 or more cached connections; use the most - // recently used one at the end. - pconn = pconns[len(pconns)-1] - t.idleConn[key] = pconns[:len(pconns)-1] - } - t.idleLRU.remove(pconn) - if pconn.isBroken() { - // There is a tiny window where this is - // possible, between the connecting dying and - // the persistConn readLoop calling - // Transport.removeIdleConn. Just skip it and - // carry on. - continue - } - return pconn, pconn.idleAt - } -} - -// removeIdleConn marks pconn as dead. -func (t *Transport) removeIdleConn(pconn *persistConn) { - t.idleMu.Lock() - defer t.idleMu.Unlock() - t.removeIdleConnLocked(pconn) -} - -// t.idleMu must be held. -func (t *Transport) removeIdleConnLocked(pconn *persistConn) { - if pconn.idleTimer != nil { - pconn.idleTimer.Stop() - } - t.idleLRU.remove(pconn) - key := pconn.cacheKey - pconns := t.idleConn[key] - switch len(pconns) { - case 0: - // Nothing - case 1: - if pconns[0] == pconn { - delete(t.idleConn, key) - } - default: - for i, v := range pconns { - if v != pconn { - continue - } - // Slide down, keeping most recently-used - // conns at the end. - copy(pconns[i:], pconns[i+1:]) - t.idleConn[key] = pconns[:len(pconns)-1] - break - } - } -} - -func (t *Transport) setReqCanceler(r *Request, fn func(error)) { - t.reqMu.Lock() - defer t.reqMu.Unlock() - if t.reqCanceler == nil { - t.reqCanceler = make(map[*Request]func(error)) - } - if fn != nil { - t.reqCanceler[r] = fn - } else { - delete(t.reqCanceler, r) - } -} - -// replaceReqCanceler replaces an existing cancel function. If there is no cancel function -// for the request, we don't set the function and return false. -// Since CancelRequest will clear the canceler, we can use the return value to detect if -// the request was canceled since the last setReqCancel call. -func (t *Transport) replaceReqCanceler(r *Request, fn func(error)) bool { - t.reqMu.Lock() - defer t.reqMu.Unlock() - _, ok := t.reqCanceler[r] - if !ok { - return false - } - if fn != nil { - t.reqCanceler[r] = fn - } else { - delete(t.reqCanceler, r) - } - return true -} - -var zeroDialer net.Dialer - -func (t *Transport) dial(ctx context.Context, network, addr string) (net.Conn, error) { - if t.DialContext != nil { - return t.DialContext(ctx, network, addr) - } - if t.Dial != nil { - c, err := t.Dial(network, addr) - if c == nil && err == nil { - err = errors.New("net/http: Transport.Dial hook returned (nil, nil)") - } - return c, err - } - return zeroDialer.DialContext(ctx, network, addr) -} - -// getConn dials and creates a new persistConn to the target as -// specified in the connectMethod. This includes doing a proxy CONNECT -// and/or setting up TLS. If this doesn't return an error, the persistConn -// is ready to write requests to. -func (t *Transport) getConn(treq *transportRequest, cm connectMethod) (*persistConn, error) { - req := treq.Request - trace := treq.trace - ctx := req.Context() - if trace != nil && trace.GetConn != nil { - trace.GetConn(cm.addr()) - } - if pc, idleSince := t.getIdleConn(cm); pc != nil { - if trace != nil && trace.GotConn != nil { - trace.GotConn(pc.gotIdleConnTrace(idleSince)) - } - // set request canceler to some non-nil function so we - // can detect whether it was cleared between now and when - // we enter roundTrip - t.setReqCanceler(req, func(error) {}) - return pc, nil - } - - type dialRes struct { - pc *persistConn - err error - } - dialc := make(chan dialRes) - cmKey := cm.key() - - // Copy these hooks so we don't race on the postPendingDial in - // the goroutine we launch. Issue 11136. - testHookPrePendingDial := testHookPrePendingDial - testHookPostPendingDial := testHookPostPendingDial - - handlePendingDial := func() { - testHookPrePendingDial() - go func() { - if v := <-dialc; v.err == nil { - t.putOrCloseIdleConn(v.pc) - } else { - t.decHostConnCount(cmKey) - } - testHookPostPendingDial() - }() - } - - cancelc := make(chan error, 1) - t.setReqCanceler(req, func(err error) { cancelc <- err }) - - if t.MaxConnsPerHost > 0 { - select { - case <-t.incHostConnCount(cmKey): - // count below conn per host limit; proceed - case pc := <-t.getIdleConnCh(cm): - if trace != nil && trace.GotConn != nil { - trace.GotConn(httptrace.GotConnInfo{Conn: pc.conn, Reused: pc.isReused()}) - } - return pc, nil - case <-req.Cancel: - return nil, errRequestCanceledConn - case <-req.Context().Done(): - return nil, req.Context().Err() - case err := <-cancelc: - if err == errRequestCanceled { - err = errRequestCanceledConn - } - return nil, err - } - } - - go func() { - pc, err := t.dialConn(ctx, cm) - dialc <- dialRes{pc, err} - }() - - idleConnCh := t.getIdleConnCh(cm) - select { - case v := <-dialc: - // Our dial finished. - if v.pc != nil { - if trace != nil && trace.GotConn != nil && v.pc.alt == nil { - trace.GotConn(httptrace.GotConnInfo{Conn: v.pc.conn}) - } - return v.pc, nil - } - // Our dial failed. See why to return a nicer error - // value. - t.decHostConnCount(cmKey) - select { - case <-req.Cancel: - // It was an error due to cancelation, so prioritize that - // error value. (Issue 16049) - return nil, errRequestCanceledConn - case <-req.Context().Done(): - return nil, req.Context().Err() - case err := <-cancelc: - if err == errRequestCanceled { - err = errRequestCanceledConn - } - return nil, err - default: - // It wasn't an error due to cancelation, so - // return the original error message: - return nil, v.err - } - case pc := <-idleConnCh: - // Another request finished first and its net.Conn - // became available before our dial. Or somebody - // else's dial that they didn't use. - // But our dial is still going, so give it away - // when it finishes: - handlePendingDial() - if trace != nil && trace.GotConn != nil { - trace.GotConn(httptrace.GotConnInfo{Conn: pc.conn, Reused: pc.isReused()}) - } - return pc, nil - case <-req.Cancel: - handlePendingDial() - return nil, errRequestCanceledConn - case <-req.Context().Done(): - handlePendingDial() - return nil, req.Context().Err() - case err := <-cancelc: - handlePendingDial() - if err == errRequestCanceled { - err = errRequestCanceledConn - } - return nil, err - } -} - -// incHostConnCount increments the count of connections for a -// given host. It returns an already-closed channel if the count -// is not at its limit; otherwise it returns a channel which is -// notified when the count is below the limit. -func (t *Transport) incHostConnCount(cmKey connectMethodKey) <-chan struct{} { - if t.MaxConnsPerHost <= 0 { - return connsPerHostClosedCh - } - t.connCountMu.Lock() - defer t.connCountMu.Unlock() - if t.connPerHostCount[cmKey] == t.MaxConnsPerHost { - if t.connPerHostAvailable == nil { - t.connPerHostAvailable = make(map[connectMethodKey]chan struct{}) - } - ch, ok := t.connPerHostAvailable[cmKey] - if !ok { - ch = make(chan struct{}) - t.connPerHostAvailable[cmKey] = ch - } - return ch - } - if t.connPerHostCount == nil { - t.connPerHostCount = make(map[connectMethodKey]int) - } - t.connPerHostCount[cmKey]++ - // return a closed channel to avoid race: if decHostConnCount is called - // after incHostConnCount and during the nil check, decHostConnCount - // will delete the channel since it's not being listened on yet. - return connsPerHostClosedCh -} - -// decHostConnCount decrements the count of connections -// for a given host. -// See Transport.MaxConnsPerHost. -func (t *Transport) decHostConnCount(cmKey connectMethodKey) { - if t.MaxConnsPerHost <= 0 { - return - } - t.connCountMu.Lock() - defer t.connCountMu.Unlock() - t.connPerHostCount[cmKey]-- - select { - case t.connPerHostAvailable[cmKey] <- struct{}{}: - default: - // close channel before deleting avoids getConn waiting forever in - // case getConn has reference to channel but hasn't started waiting. - // This could lead to more than MaxConnsPerHost in the unlikely case - // that > 1 go routine has fetched the channel but none started waiting. - if t.connPerHostAvailable[cmKey] != nil { - close(t.connPerHostAvailable[cmKey]) - } - delete(t.connPerHostAvailable, cmKey) - } - if t.connPerHostCount[cmKey] == 0 { - delete(t.connPerHostCount, cmKey) - } -} - -// connCloseListener wraps a connection, the transport that dialed it -// and the connected-to host key so the host connection count can be -// transparently decremented by whatever closes the embedded connection. -type connCloseListener struct { - net.Conn - t *Transport - cmKey connectMethodKey - didClose int32 -} - -func (c *connCloseListener) Close() error { - if atomic.AddInt32(&c.didClose, 1) != 1 { - return nil - } - err := c.Conn.Close() - c.t.decHostConnCount(c.cmKey) - return err -} - -// The connect method and the transport can both specify a TLS -// Host name. The transport's name takes precedence if present. -func chooseTLSHost(cm connectMethod, t *Transport) string { - tlsHost := "" - if t.TLSClientConfig != nil { - tlsHost = t.TLSClientConfig.ServerName - } - if tlsHost == "" { - tlsHost = cm.tlsHost() - } - return tlsHost -} - -// Add TLS to a persistent connection, i.e. negotiate a TLS session. If pconn is already a TLS -// tunnel, this function establishes a nested TLS session inside the encrypted channel. -// The remote endpoint's name may be overridden by TLSClientConfig.ServerName. -func (pconn *persistConn) addTLS(name string, trace *httptrace.ClientTrace) error { - // Initiate TLS and check remote host name against certificate. - cfg := cloneTLSConfig(pconn.t.TLSClientConfig) - if cfg.ServerName == "" { - cfg.ServerName = name - } - plainConn := pconn.conn - tlsConn := tls.Client(plainConn, cfg) - errc := make(chan error, 2) - var timer *time.Timer // for canceling TLS handshake - if d := pconn.t.TLSHandshakeTimeout; d != 0 { - timer = time.AfterFunc(d, func() { - errc <- tlsHandshakeTimeoutError{} - }) - } - go func() { - if trace != nil && trace.TLSHandshakeStart != nil { - trace.TLSHandshakeStart() - } - err := tlsConn.Handshake() - if timer != nil { - timer.Stop() - } - errc <- err - }() - if err := <-errc; err != nil { - plainConn.Close() - if trace != nil && trace.TLSHandshakeDone != nil { - trace.TLSHandshakeDone(tls.ConnectionState{}, err) - } - return err - } - cs := tlsConn.ConnectionState() - if trace != nil && trace.TLSHandshakeDone != nil { - trace.TLSHandshakeDone(cs, nil) - } - pconn.tlsState = &cs - pconn.conn = tlsConn - return nil -} - -func (t *Transport) dialConn(ctx context.Context, cm connectMethod) (*persistConn, error) { - pconn := &persistConn{ - t: t, - cacheKey: cm.key(), - reqch: make(chan requestAndChan, 1), - writech: make(chan writeRequest, 1), - closech: make(chan struct{}), - writeErrCh: make(chan error, 1), - writeLoopDone: make(chan struct{}), - } - trace := httptrace.ContextClientTrace(ctx) - wrapErr := func(err error) error { - if cm.proxyURL != nil { - // Return a typed error, per Issue 16997 - return &net.OpError{Op: "proxyconnect", Net: "tcp", Err: err} - } - return err - } - if cm.scheme() == "https" && t.DialTLS != nil { - var err error - pconn.conn, err = t.DialTLS("tcp", cm.addr()) - if err != nil { - return nil, wrapErr(err) - } - if pconn.conn == nil { - return nil, wrapErr(errors.New("net/http: Transport.DialTLS returned (nil, nil)")) - } - if tc, ok := pconn.conn.(*tls.Conn); ok { - // Handshake here, in case DialTLS didn't. TLSNextProto below - // depends on it for knowing the connection state. - if trace != nil && trace.TLSHandshakeStart != nil { - trace.TLSHandshakeStart() - } - if err := tc.Handshake(); err != nil { - go pconn.conn.Close() - if trace != nil && trace.TLSHandshakeDone != nil { - trace.TLSHandshakeDone(tls.ConnectionState{}, err) - } - return nil, err - } - cs := tc.ConnectionState() - if trace != nil && trace.TLSHandshakeDone != nil { - trace.TLSHandshakeDone(cs, nil) - } - pconn.tlsState = &cs - } - } else { - conn, err := t.dial(ctx, "tcp", cm.addr()) - if err != nil { - return nil, wrapErr(err) - } - pconn.conn = conn - if cm.scheme() == "https" { - var firstTLSHost string - if firstTLSHost, _, err = net.SplitHostPort(cm.addr()); err != nil { - return nil, wrapErr(err) - } - if err = pconn.addTLS(firstTLSHost, trace); err != nil { - return nil, wrapErr(err) - } - } - } - - // Proxy setup. - switch { - case cm.proxyURL == nil: - // Do nothing. Not using a proxy. - case cm.proxyURL.Scheme == "socks5": - conn := pconn.conn - d := socksNewDialer("tcp", conn.RemoteAddr().String()) - if u := cm.proxyURL.User; u != nil { - auth := &socksUsernamePassword{ - Username: u.Username(), - } - auth.Password, _ = u.Password() - d.AuthMethods = []socksAuthMethod{ - socksAuthMethodNotRequired, - socksAuthMethodUsernamePassword, - } - d.Authenticate = auth.Authenticate - } - if _, err := d.DialWithConn(ctx, conn, "tcp", cm.targetAddr); err != nil { - conn.Close() - return nil, err - } - case cm.targetScheme == "http": - pconn.isProxy = true - if pa := cm.proxyAuth(); pa != "" { - pconn.mutateHeaderFunc = func(h Header) { - h.Set("Proxy-Authorization", pa) - } - } - case cm.targetScheme == "https": - conn := pconn.conn - hdr := t.ProxyConnectHeader - if hdr == nil { - hdr = make(Header) - } - connectReq := &Request{ - Method: "CONNECT", - URL: &url.URL{Opaque: cm.targetAddr}, - Host: cm.targetAddr, - Header: hdr, - } - if pa := cm.proxyAuth(); pa != "" { - connectReq.Header.Set("Proxy-Authorization", pa) - } - connectReq.Write(conn) - - // Read response. - // Okay to use and discard buffered reader here, because - // TLS server will not speak until spoken to. - br := bufio.NewReader(conn) - resp, err := ReadResponse(br, connectReq) - if err != nil { - conn.Close() - return nil, err - } - if resp.StatusCode != 200 { - f := strings.SplitN(resp.Status, " ", 2) - conn.Close() - if len(f) < 2 { - return nil, errors.New("unknown status code") - } - return nil, errors.New(f[1]) - } - } - - if cm.proxyURL != nil && cm.targetScheme == "https" { - if err := pconn.addTLS(cm.tlsHost(), trace); err != nil { - return nil, err - } - } - - if s := pconn.tlsState; s != nil && s.NegotiatedProtocolIsMutual && s.NegotiatedProtocol != "" { - if next, ok := t.TLSNextProto[s.NegotiatedProtocol]; ok { - return &persistConn{alt: next(cm.targetAddr, pconn.conn.(*tls.Conn))}, nil - } - } - - if t.MaxConnsPerHost > 0 { - pconn.conn = &connCloseListener{Conn: pconn.conn, t: t, cmKey: pconn.cacheKey} - } - pconn.br = bufio.NewReader(pconn) - pconn.bw = bufio.NewWriter(persistConnWriter{pconn}) - go pconn.readLoop() - go pconn.writeLoop() - return pconn, nil -} - -// persistConnWriter is the io.Writer written to by pc.bw. -// It accumulates the number of bytes written to the underlying conn, -// so the retry logic can determine whether any bytes made it across -// the wire. -// This is exactly 1 pointer field wide so it can go into an interface -// without allocation. -type persistConnWriter struct { - pc *persistConn -} - -func (w persistConnWriter) Write(p []byte) (n int, err error) { - n, err = w.pc.conn.Write(p) - w.pc.nwrite += int64(n) - return -} - -// connectMethod is the map key (in its String form) for keeping persistent -// TCP connections alive for subsequent HTTP requests. -// -// A connect method may be of the following types: -// -// Cache key form Description -// ----------------- ------------------------- -// |http|foo.com http directly to server, no proxy -// |https|foo.com https directly to server, no proxy -// http://proxy.com|https|foo.com http to proxy, then CONNECT to foo.com -// http://proxy.com|http http to proxy, http to anywhere after that -// socks5://proxy.com|http|foo.com socks5 to proxy, then http to foo.com -// socks5://proxy.com|https|foo.com socks5 to proxy, then https to foo.com -// https://proxy.com|https|foo.com https to proxy, then CONNECT to foo.com -// https://proxy.com|http https to proxy, http to anywhere after that -// -type connectMethod struct { - proxyURL *url.URL // nil for no proxy, else full proxy URL - targetScheme string // "http" or "https" - // If proxyURL specifies an http or https proxy, and targetScheme is http (not https), - // then targetAddr is not included in the connect method key, because the socket can - // be reused for different targetAddr values. - targetAddr string -} - -func (cm *connectMethod) key() connectMethodKey { - proxyStr := "" - targetAddr := cm.targetAddr - if cm.proxyURL != nil { - proxyStr = cm.proxyURL.String() - if (cm.proxyURL.Scheme == "http" || cm.proxyURL.Scheme == "https") && cm.targetScheme == "http" { - targetAddr = "" - } - } - return connectMethodKey{ - proxy: proxyStr, - scheme: cm.targetScheme, - addr: targetAddr, - } -} - -// scheme returns the first hop scheme: http, https, or socks5 -func (cm *connectMethod) scheme() string { - if cm.proxyURL != nil { - return cm.proxyURL.Scheme - } - return cm.targetScheme -} - -// addr returns the first hop "host:port" to which we need to TCP connect. -func (cm *connectMethod) addr() string { - if cm.proxyURL != nil { - return canonicalAddr(cm.proxyURL) - } - return cm.targetAddr -} - -// tlsHost returns the host name to match against the peer's -// TLS certificate. -func (cm *connectMethod) tlsHost() string { - h := cm.targetAddr - if hasPort(h) { - h = h[:strings.LastIndex(h, ":")] - } - return h -} - -// connectMethodKey is the map key version of connectMethod, with a -// stringified proxy URL (or the empty string) instead of a pointer to -// a URL. -type connectMethodKey struct { - proxy, scheme, addr string -} - -func (k connectMethodKey) String() string { - // Only used by tests. - return fmt.Sprintf("%s|%s|%s", k.proxy, k.scheme, k.addr) -} - -// persistConn wraps a connection, usually a persistent one -// (but may be used for non-keep-alive requests as well) -type persistConn struct { - // alt optionally specifies the TLS NextProto RoundTripper. - // This is used for HTTP/2 today and future protocols later. - // If it's non-nil, the rest of the fields are unused. - alt RoundTripper - - t *Transport - cacheKey connectMethodKey - conn net.Conn - tlsState *tls.ConnectionState - br *bufio.Reader // from conn - bw *bufio.Writer // to conn - nwrite int64 // bytes written - reqch chan requestAndChan // written by roundTrip; read by readLoop - writech chan writeRequest // written by roundTrip; read by writeLoop - closech chan struct{} // closed when conn closed - isProxy bool - sawEOF bool // whether we've seen EOF from conn; owned by readLoop - readLimit int64 // bytes allowed to be read; owned by readLoop - // writeErrCh passes the request write error (usually nil) - // from the writeLoop goroutine to the readLoop which passes - // it off to the res.Body reader, which then uses it to decide - // whether or not a connection can be reused. Issue 7569. - writeErrCh chan error - - writeLoopDone chan struct{} // closed when write loop ends - - // Both guarded by Transport.idleMu: - idleAt time.Time // time it last become idle - idleTimer *time.Timer // holding an AfterFunc to close it - - mu sync.Mutex // guards following fields - numExpectedResponses int - closed error // set non-nil when conn is closed, before closech is closed - canceledErr error // set non-nil if conn is canceled - broken bool // an error has happened on this connection; marked broken so it's not reused. - reused bool // whether conn has had successful request/response and is being reused. - // mutateHeaderFunc is an optional func to modify extra - // headers on each outbound request before it's written. (the - // original Request given to RoundTrip is not modified) - mutateHeaderFunc func(Header) -} - -func (pc *persistConn) maxHeaderResponseSize() int64 { - if v := pc.t.MaxResponseHeaderBytes; v != 0 { - return v - } - return 10 << 20 // conservative default; same as http2 -} - -func (pc *persistConn) Read(p []byte) (n int, err error) { - if pc.readLimit <= 0 { - return 0, fmt.Errorf("read limit of %d bytes exhausted", pc.maxHeaderResponseSize()) - } - if int64(len(p)) > pc.readLimit { - p = p[:pc.readLimit] - } - n, err = pc.conn.Read(p) - if err == io.EOF { - pc.sawEOF = true - } - pc.readLimit -= int64(n) - return -} - -// isBroken reports whether this connection is in a known broken state. -func (pc *persistConn) isBroken() bool { - pc.mu.Lock() - b := pc.closed != nil - pc.mu.Unlock() - return b -} - -// canceled returns non-nil if the connection was closed due to -// CancelRequest or due to context cancelation. -func (pc *persistConn) canceled() error { - pc.mu.Lock() - defer pc.mu.Unlock() - return pc.canceledErr -} - -// isReused reports whether this connection is in a known broken state. -func (pc *persistConn) isReused() bool { - pc.mu.Lock() - r := pc.reused - pc.mu.Unlock() - return r -} - -func (pc *persistConn) gotIdleConnTrace(idleAt time.Time) (t httptrace.GotConnInfo) { - pc.mu.Lock() - defer pc.mu.Unlock() - t.Reused = pc.reused - t.Conn = pc.conn - t.WasIdle = true - if !idleAt.IsZero() { - t.IdleTime = time.Since(idleAt) - } - return -} - -func (pc *persistConn) cancelRequest(err error) { - pc.mu.Lock() - defer pc.mu.Unlock() - pc.canceledErr = err - pc.closeLocked(errRequestCanceled) -} - -// closeConnIfStillIdle closes the connection if it's still sitting idle. -// This is what's called by the persistConn's idleTimer, and is run in its -// own goroutine. -func (pc *persistConn) closeConnIfStillIdle() { - t := pc.t - t.idleMu.Lock() - defer t.idleMu.Unlock() - if _, ok := t.idleLRU.m[pc]; !ok { - // Not idle. - return - } - t.removeIdleConnLocked(pc) - pc.close(errIdleConnTimeout) -} - -// mapRoundTripError returns the appropriate error value for -// persistConn.roundTrip. -// -// The provided err is the first error that (*persistConn).roundTrip -// happened to receive from its select statement. -// -// The startBytesWritten value should be the value of pc.nwrite before the roundTrip -// started writing the request. -func (pc *persistConn) mapRoundTripError(req *transportRequest, startBytesWritten int64, err error) error { - if err == nil { - return nil - } - - // If the request was canceled, that's better than network - // failures that were likely the result of tearing down the - // connection. - if cerr := pc.canceled(); cerr != nil { - return cerr - } - - // See if an error was set explicitly. - req.mu.Lock() - reqErr := req.err - req.mu.Unlock() - if reqErr != nil { - return reqErr - } - - if err == errServerClosedIdle { - // Don't decorate - return err - } - - if _, ok := err.(transportReadFromServerError); ok { - // Don't decorate - return err - } - if pc.isBroken() { - <-pc.writeLoopDone - if pc.nwrite == startBytesWritten { - return nothingWrittenError{err} - } - return fmt.Errorf("net/http: HTTP/1.x transport connection broken: %v", err) - } - return err -} - -// errCallerOwnsConn is an internal sentinel error used when we hand -// off a writable response.Body to the caller. We use this to prevent -// closing a net.Conn that is now owned by the caller. -var errCallerOwnsConn = errors.New("read loop ending; caller owns writable underlying conn") - -func (pc *persistConn) readLoop() { - closeErr := errReadLoopExiting // default value, if not changed below - defer func() { - pc.close(closeErr) - pc.t.removeIdleConn(pc) - }() - - tryPutIdleConn := func(trace *httptrace.ClientTrace) bool { - if err := pc.t.tryPutIdleConn(pc); err != nil { - closeErr = err - if trace != nil && trace.PutIdleConn != nil && err != errKeepAlivesDisabled { - trace.PutIdleConn(err) - } - return false - } - if trace != nil && trace.PutIdleConn != nil { - trace.PutIdleConn(nil) - } - return true - } - - // eofc is used to block caller goroutines reading from Response.Body - // at EOF until this goroutines has (potentially) added the connection - // back to the idle pool. - eofc := make(chan struct{}) - defer close(eofc) // unblock reader on errors - - // Read this once, before loop starts. (to avoid races in tests) - testHookMu.Lock() - testHookReadLoopBeforeNextRead := testHookReadLoopBeforeNextRead - testHookMu.Unlock() - - alive := true - for alive { - pc.readLimit = pc.maxHeaderResponseSize() - _, err := pc.br.Peek(1) - - pc.mu.Lock() - if pc.numExpectedResponses == 0 { - pc.readLoopPeekFailLocked(err) - pc.mu.Unlock() - return - } - pc.mu.Unlock() - - rc := <-pc.reqch - trace := httptrace.ContextClientTrace(rc.req.Context()) - - var resp *Response - if err == nil { - resp, err = pc.readResponse(rc, trace) - } else { - err = transportReadFromServerError{err} - closeErr = err - } - - if err != nil { - if pc.readLimit <= 0 { - err = fmt.Errorf("net/http: server response headers exceeded %d bytes; aborted", pc.maxHeaderResponseSize()) - } - - select { - case rc.ch <- responseAndError{err: err}: - case <-rc.callerGone: - return - } - return - } - pc.readLimit = maxInt64 // effictively no limit for response bodies - - pc.mu.Lock() - pc.numExpectedResponses-- - pc.mu.Unlock() - - bodyWritable := resp.bodyIsWritable() - hasBody := rc.req.Method != "HEAD" && resp.ContentLength != 0 - - if resp.Close || rc.req.Close || resp.StatusCode <= 199 || bodyWritable { - // Don't do keep-alive on error if either party requested a close - // or we get an unexpected informational (1xx) response. - // StatusCode 100 is already handled above. - alive = false - } - - if !hasBody { - pc.t.setReqCanceler(rc.req, nil) - - // Put the idle conn back into the pool before we send the response - // so if they process it quickly and make another request, they'll - // get this same conn. But we use the unbuffered channel 'rc' - // to guarantee that persistConn.roundTrip got out of its select - // potentially waiting for this persistConn to close. - // but after - alive = alive && - !pc.sawEOF && - pc.wroteRequest() && - tryPutIdleConn(trace) - - if bodyWritable { - closeErr = errCallerOwnsConn - } - - select { - case rc.ch <- responseAndError{res: resp}: - case <-rc.callerGone: - return - } - - // Now that they've read from the unbuffered channel, they're safely - // out of the select that also waits on this goroutine to die, so - // we're allowed to exit now if needed (if alive is false) - testHookReadLoopBeforeNextRead() - continue - } - - waitForBodyRead := make(chan bool, 2) - body := &bodyEOFSignal{ - body: resp.Body, - earlyCloseFn: func() error { - waitForBodyRead <- false - <-eofc // will be closed by deferred call at the end of the function - return nil - - }, - fn: func(err error) error { - isEOF := err == io.EOF - waitForBodyRead <- isEOF - if isEOF { - <-eofc // see comment above eofc declaration - } else if err != nil { - if cerr := pc.canceled(); cerr != nil { - return cerr - } - } - return err - }, - } - - resp.Body = body - if rc.addedGzip && strings.EqualFold(resp.Header.Get("Content-Encoding"), "gzip") { - resp.Body = &gzipReader{body: body} - resp.Header.Del("Content-Encoding") - resp.Header.Del("Content-Length") - resp.ContentLength = -1 - resp.Uncompressed = true - } - - select { - case rc.ch <- responseAndError{res: resp}: - case <-rc.callerGone: - return - } - - // Before looping back to the top of this function and peeking on - // the bufio.Reader, wait for the caller goroutine to finish - // reading the response body. (or for cancelation or death) - select { - case bodyEOF := <-waitForBodyRead: - pc.t.setReqCanceler(rc.req, nil) // before pc might return to idle pool - alive = alive && - bodyEOF && - !pc.sawEOF && - pc.wroteRequest() && - tryPutIdleConn(trace) - if bodyEOF { - eofc <- struct{}{} - } - case <-rc.req.Cancel: - alive = false - pc.t.CancelRequest(rc.req) - case <-rc.req.Context().Done(): - alive = false - pc.t.cancelRequest(rc.req, rc.req.Context().Err()) - case <-pc.closech: - alive = false - } - - testHookReadLoopBeforeNextRead() - } -} - -func (pc *persistConn) readLoopPeekFailLocked(peekErr error) { - if pc.closed != nil { - return - } - if n := pc.br.Buffered(); n > 0 { - buf, _ := pc.br.Peek(n) - log.Printf("Unsolicited response received on idle HTTP channel starting with %q; err=%v", buf, peekErr) - } - if peekErr == io.EOF { - // common case. - pc.closeLocked(errServerClosedIdle) - } else { - pc.closeLocked(fmt.Errorf("readLoopPeekFailLocked: %v", peekErr)) - } -} - -// readResponse reads an HTTP response (or two, in the case of "Expect: -// 100-continue") from the server. It returns the final non-100 one. -// trace is optional. -func (pc *persistConn) readResponse(rc requestAndChan, trace *httptrace.ClientTrace) (resp *Response, err error) { - if trace != nil && trace.GotFirstResponseByte != nil { - if peek, err := pc.br.Peek(1); err == nil && len(peek) == 1 { - trace.GotFirstResponseByte() - } - } - num1xx := 0 // number of informational 1xx headers received - const max1xxResponses = 5 // arbitrary bound on number of informational responses - - continueCh := rc.continueCh - for { - resp, err = ReadResponse(pc.br, rc.req) - if err != nil { - return - } - resCode := resp.StatusCode - if continueCh != nil { - if resCode == 100 { - if trace != nil && trace.Got100Continue != nil { - trace.Got100Continue() - } - continueCh <- struct{}{} - continueCh = nil - } else if resCode >= 200 { - close(continueCh) - continueCh = nil - } - } - is1xx := 100 <= resCode && resCode <= 199 - // treat 101 as a terminal status, see issue 26161 - is1xxNonTerminal := is1xx && resCode != StatusSwitchingProtocols - if is1xxNonTerminal { - num1xx++ - if num1xx > max1xxResponses { - return nil, errors.New("net/http: too many 1xx informational responses") - } - pc.readLimit = pc.maxHeaderResponseSize() // reset the limit - if trace != nil && trace.Got1xxResponse != nil { - if err := trace.Got1xxResponse(resCode, textproto.MIMEHeader(resp.Header)); err != nil { - return nil, err - } - } - continue - } - break - } - if resp.isProtocolSwitch() { - resp.Body = newReadWriteCloserBody(pc.br, pc.conn) - } - - resp.TLS = pc.tlsState - return -} - -// waitForContinue returns the function to block until -// any response, timeout or connection close. After any of them, -// the function returns a bool which indicates if the body should be sent. -func (pc *persistConn) waitForContinue(continueCh <-chan struct{}) func() bool { - if continueCh == nil { - return nil - } - return func() bool { - timer := time.NewTimer(pc.t.ExpectContinueTimeout) - defer timer.Stop() - - select { - case _, ok := <-continueCh: - return ok - case <-timer.C: - return true - case <-pc.closech: - return false - } - } -} - -func newReadWriteCloserBody(br *bufio.Reader, rwc io.ReadWriteCloser) io.ReadWriteCloser { - body := &readWriteCloserBody{ReadWriteCloser: rwc} - if br.Buffered() != 0 { - body.br = br - } - return body -} - -// readWriteCloserBody is the Response.Body type used when we want to -// give users write access to the Body through the underlying -// connection (TCP, unless using custom dialers). This is then -// the concrete type for a Response.Body on the 101 Switching -// Protocols response, as used by WebSockets, h2c, etc. -type readWriteCloserBody struct { - br *bufio.Reader // used until empty - io.ReadWriteCloser -} - -func (b *readWriteCloserBody) Read(p []byte) (n int, err error) { - if b.br != nil { - if n := b.br.Buffered(); len(p) > n { - p = p[:n] - } - n, err = b.br.Read(p) - if b.br.Buffered() == 0 { - b.br = nil - } - return n, err - } - return b.ReadWriteCloser.Read(p) -} - -// nothingWrittenError wraps a write errors which ended up writing zero bytes. -type nothingWrittenError struct { - error -} - -func (pc *persistConn) writeLoop() { - defer close(pc.writeLoopDone) - for { - select { - case wr := <-pc.writech: - startBytesWritten := pc.nwrite - err := wr.req.Request.write(pc.bw, pc.isProxy, wr.req.extra, pc.waitForContinue(wr.continueCh)) - if bre, ok := err.(requestBodyReadError); ok { - err = bre.error - // Errors reading from the user's - // Request.Body are high priority. - // Set it here before sending on the - // channels below or calling - // pc.close() which tears town - // connections and causes other - // errors. - wr.req.setError(err) - } - if err == nil { - err = pc.bw.Flush() - } - if err != nil { - wr.req.Request.closeBody() - if pc.nwrite == startBytesWritten { - err = nothingWrittenError{err} - } - } - pc.writeErrCh <- err // to the body reader, which might recycle us - wr.ch <- err // to the roundTrip function - if err != nil { - pc.close(err) - return - } - case <-pc.closech: - return - } - } -} - -// maxWriteWaitBeforeConnReuse is how long the a Transport RoundTrip -// will wait to see the Request's Body.Write result after getting a -// response from the server. See comments in (*persistConn).wroteRequest. -const maxWriteWaitBeforeConnReuse = 50 * time.Millisecond - -// wroteRequest is a check before recycling a connection that the previous write -// (from writeLoop above) happened and was successful. -func (pc *persistConn) wroteRequest() bool { - select { - case err := <-pc.writeErrCh: - // Common case: the write happened well before the response, so - // avoid creating a timer. - return err == nil - default: - // Rare case: the request was written in writeLoop above but - // before it could send to pc.writeErrCh, the reader read it - // all, processed it, and called us here. In this case, give the - // write goroutine a bit of time to finish its send. - // - // Less rare case: We also get here in the legitimate case of - // Issue 7569, where the writer is still writing (or stalled), - // but the server has already replied. In this case, we don't - // want to wait too long, and we want to return false so this - // connection isn't re-used. - select { - case err := <-pc.writeErrCh: - return err == nil - case <-time.After(maxWriteWaitBeforeConnReuse): - return false - } - } -} - -// responseAndError is how the goroutine reading from an HTTP/1 server -// communicates with the goroutine doing the RoundTrip. -type responseAndError struct { - res *Response // else use this response (see res method) - err error -} - -type requestAndChan struct { - req *Request - ch chan responseAndError // unbuffered; always send in select on callerGone - - // whether the Transport (as opposed to the user client code) - // added the Accept-Encoding gzip header. If the Transport - // set it, only then do we transparently decode the gzip. - addedGzip bool - - // Optional blocking chan for Expect: 100-continue (for send). - // If the request has an "Expect: 100-continue" header and - // the server responds 100 Continue, readLoop send a value - // to writeLoop via this chan. - continueCh chan<- struct{} - - callerGone <-chan struct{} // closed when roundTrip caller has returned -} - -// A writeRequest is sent by the readLoop's goroutine to the -// writeLoop's goroutine to write a request while the read loop -// concurrently waits on both the write response and the server's -// reply. -type writeRequest struct { - req *transportRequest - ch chan<- error - - // Optional blocking chan for Expect: 100-continue (for receive). - // If not nil, writeLoop blocks sending request body until - // it receives from this chan. - continueCh <-chan struct{} -} - -type httpError struct { - err string - timeout bool -} - -func (e *httpError) Error() string { return e.err } -func (e *httpError) Timeout() bool { return e.timeout } -func (e *httpError) Temporary() bool { return true } - -var errTimeout error = &httpError{err: "net/http: timeout awaiting response headers", timeout: true} -var errRequestCanceled = errors.New("net/http: request canceled") -var errRequestCanceledConn = errors.New("net/http: request canceled while waiting for connection") // TODO: unify? - -func nop() {} - -// testHooks. Always non-nil. -var ( - testHookEnterRoundTrip = nop - testHookWaitResLoop = nop - testHookRoundTripRetried = nop - testHookPrePendingDial = nop - testHookPostPendingDial = nop - - testHookMu sync.Locker = fakeLocker{} // guards following - testHookReadLoopBeforeNextRead = nop -) - -func (pc *persistConn) roundTrip(req *transportRequest) (resp *Response, err error) { - testHookEnterRoundTrip() - if !pc.t.replaceReqCanceler(req.Request, pc.cancelRequest) { - pc.t.putOrCloseIdleConn(pc) - return nil, errRequestCanceled - } - pc.mu.Lock() - pc.numExpectedResponses++ - headerFn := pc.mutateHeaderFunc - pc.mu.Unlock() - - if headerFn != nil { - headerFn(req.extraHeaders()) - } - - // Ask for a compressed version if the caller didn't set their - // own value for Accept-Encoding. We only attempt to - // uncompress the gzip stream if we were the layer that - // requested it. - requestedGzip := false - if !pc.t.DisableCompression && - req.Header.Get("Accept-Encoding") == "" && - req.Header.Get("Range") == "" && - req.Method != "HEAD" { - // Request gzip only, not deflate. Deflate is ambiguous and - // not as universally supported anyway. - // See: http://www.gzip.org/zlib/zlib_faq.html#faq38 - // - // Note that we don't request this for HEAD requests, - // due to a bug in nginx: - // https://trac.nginx.org/nginx/ticket/358 - // https://golang.org/issue/5522 - // - // We don't request gzip if the request is for a range, since - // auto-decoding a portion of a gzipped document will just fail - // anyway. See https://golang.org/issue/8923 - requestedGzip = true - req.extraHeaders().Set("Accept-Encoding", "gzip") - } - - var continueCh chan struct{} - if req.ProtoAtLeast(1, 1) && req.Body != nil && req.expectsContinue() { - continueCh = make(chan struct{}, 1) - } - - if pc.t.DisableKeepAlives { - req.extraHeaders().Set("Connection", "close") - } - - gone := make(chan struct{}) - defer close(gone) - - defer func() { - if err != nil { - pc.t.setReqCanceler(req.Request, nil) - } - }() - - const debugRoundTrip = false - - // Write the request concurrently with waiting for a response, - // in case the server decides to reply before reading our full - // request body. - startBytesWritten := pc.nwrite - writeErrCh := make(chan error, 1) - pc.writech <- writeRequest{req, writeErrCh, continueCh} - - resc := make(chan responseAndError) - pc.reqch <- requestAndChan{ - req: req.Request, - ch: resc, - addedGzip: requestedGzip, - continueCh: continueCh, - callerGone: gone, - } - - var respHeaderTimer <-chan time.Time - cancelChan := req.Request.Cancel - ctxDoneChan := req.Context().Done() - for { - testHookWaitResLoop() - select { - case err := <-writeErrCh: - if debugRoundTrip { - req.logf("writeErrCh resv: %T/%#v", err, err) - } - if err != nil { - pc.close(fmt.Errorf("write error: %v", err)) - return nil, pc.mapRoundTripError(req, startBytesWritten, err) - } - if d := pc.t.ResponseHeaderTimeout; d > 0 { - if debugRoundTrip { - req.logf("starting timer for %v", d) - } - timer := time.NewTimer(d) - defer timer.Stop() // prevent leaks - respHeaderTimer = timer.C - } - case <-pc.closech: - if debugRoundTrip { - req.logf("closech recv: %T %#v", pc.closed, pc.closed) - } - return nil, pc.mapRoundTripError(req, startBytesWritten, pc.closed) - case <-respHeaderTimer: - if debugRoundTrip { - req.logf("timeout waiting for response headers.") - } - pc.close(errTimeout) - return nil, errTimeout - case re := <-resc: - if (re.res == nil) == (re.err == nil) { - panic(fmt.Sprintf("internal error: exactly one of res or err should be set; nil=%v", re.res == nil)) - } - if debugRoundTrip { - req.logf("resc recv: %p, %T/%#v", re.res, re.err, re.err) - } - if re.err != nil { - return nil, pc.mapRoundTripError(req, startBytesWritten, re.err) - } - return re.res, nil - case <-cancelChan: - pc.t.CancelRequest(req.Request) - cancelChan = nil - case <-ctxDoneChan: - pc.t.cancelRequest(req.Request, req.Context().Err()) - cancelChan = nil - ctxDoneChan = nil - } - } -} - -// tLogKey is a context WithValue key for test debugging contexts containing -// a t.Logf func. See export_test.go's Request.WithT method. -type tLogKey struct{} - -func (tr *transportRequest) logf(format string, args ...interface{}) { - if logf, ok := tr.Request.Context().Value(tLogKey{}).(func(string, ...interface{})); ok { - logf(time.Now().Format(time.RFC3339Nano)+": "+format, args...) - } -} - -// markReused marks this connection as having been successfully used for a -// request and response. -func (pc *persistConn) markReused() { - pc.mu.Lock() - pc.reused = true - pc.mu.Unlock() -} - -// close closes the underlying TCP connection and closes -// the pc.closech channel. -// -// The provided err is only for testing and debugging; in normal -// circumstances it should never be seen by users. -func (pc *persistConn) close(err error) { - pc.mu.Lock() - defer pc.mu.Unlock() - pc.closeLocked(err) -} - -func (pc *persistConn) closeLocked(err error) { - if err == nil { - panic("nil error") - } - pc.broken = true - if pc.closed == nil { - pc.closed = err - if pc.alt != nil { - // Do nothing; can only get here via getConn's - // handlePendingDial's putOrCloseIdleConn when - // it turns out the abandoned connection in - // flight ended up negotiating an alternate - // protocol. We don't use the connection - // freelist for http2. That's done by the - // alternate protocol's RoundTripper. - } else { - if err != errCallerOwnsConn { - pc.conn.Close() - } - close(pc.closech) - } - } - pc.mutateHeaderFunc = nil -} - -var portMap = map[string]string{ - "http": "80", - "https": "443", - "socks5": "1080", -} - -// canonicalAddr returns url.Host but always with a ":port" suffix -func canonicalAddr(url *url.URL) string { - addr := url.Hostname() - if v, err := idnaASCII(addr); err == nil { - addr = v - } - port := url.Port() - if port == "" { - port = portMap[url.Scheme] - } - return net.JoinHostPort(addr, port) -} - -// bodyEOFSignal is used by the HTTP/1 transport when reading response -// bodies to make sure we see the end of a response body before -// proceeding and reading on the connection again. -// -// It wraps a ReadCloser but runs fn (if non-nil) at most -// once, right before its final (error-producing) Read or Close call -// returns. fn should return the new error to return from Read or Close. -// -// If earlyCloseFn is non-nil and Close is called before io.EOF is -// seen, earlyCloseFn is called instead of fn, and its return value is -// the return value from Close. -type bodyEOFSignal struct { - body io.ReadCloser - mu sync.Mutex // guards following 4 fields - closed bool // whether Close has been called - rerr error // sticky Read error - fn func(error) error // err will be nil on Read io.EOF - earlyCloseFn func() error // optional alt Close func used if io.EOF not seen -} - -var errReadOnClosedResBody = errors.New("http: read on closed response body") - -func (es *bodyEOFSignal) Read(p []byte) (n int, err error) { - es.mu.Lock() - closed, rerr := es.closed, es.rerr - es.mu.Unlock() - if closed { - return 0, errReadOnClosedResBody - } - if rerr != nil { - return 0, rerr - } - - n, err = es.body.Read(p) - if err != nil { - es.mu.Lock() - defer es.mu.Unlock() - if es.rerr == nil { - es.rerr = err - } - err = es.condfn(err) - } - return -} - -func (es *bodyEOFSignal) Close() error { - es.mu.Lock() - defer es.mu.Unlock() - if es.closed { - return nil - } - es.closed = true - if es.earlyCloseFn != nil && es.rerr != io.EOF { - return es.earlyCloseFn() - } - err := es.body.Close() - return es.condfn(err) -} - -// caller must hold es.mu. -func (es *bodyEOFSignal) condfn(err error) error { - if es.fn == nil { - return err - } - err = es.fn(err) - es.fn = nil - return err -} - -// gzipReader wraps a response body so it can lazily -// call gzip.NewReader on the first call to Read -type gzipReader struct { - body *bodyEOFSignal // underlying HTTP/1 response body framing - zr *gzip.Reader // lazily-initialized gzip reader - zerr error // any error from gzip.NewReader; sticky -} - -func (gz *gzipReader) Read(p []byte) (n int, err error) { - if gz.zr == nil { - if gz.zerr == nil { - gz.zr, gz.zerr = gzip.NewReader(gz.body) - } - if gz.zerr != nil { - return 0, gz.zerr - } - } - - gz.body.mu.Lock() - if gz.body.closed { - err = errReadOnClosedResBody - } - gz.body.mu.Unlock() - - if err != nil { - return 0, err - } - return gz.zr.Read(p) -} - -func (gz *gzipReader) Close() error { - return gz.body.Close() -} - -type readerAndCloser struct { - io.Reader - io.Closer -} - -type tlsHandshakeTimeoutError struct{} - -func (tlsHandshakeTimeoutError) Timeout() bool { return true } -func (tlsHandshakeTimeoutError) Temporary() bool { return true } -func (tlsHandshakeTimeoutError) Error() string { return "net/http: TLS handshake timeout" } - -// fakeLocker is a sync.Locker which does nothing. It's used to guard -// test-only fields when not under test, to avoid runtime atomic -// overhead. -type fakeLocker struct{} - -func (fakeLocker) Lock() {} -func (fakeLocker) Unlock() {} - -// clneTLSConfig returns a shallow clone of cfg, or a new zero tls.Config if -// cfg is nil. This is safe to call even if cfg is in active use by a TLS -// client or server. -func cloneTLSConfig(cfg *tls.Config) *tls.Config { - if cfg == nil { - return &tls.Config{} - } - return cfg.Clone() -} - -type connLRU struct { - ll *list.List // list.Element.Value type is of *persistConn - m map[*persistConn]*list.Element -} - -// add adds pc to the head of the linked list. -func (cl *connLRU) add(pc *persistConn) { - if cl.ll == nil { - cl.ll = list.New() - cl.m = make(map[*persistConn]*list.Element) - } - ele := cl.ll.PushFront(pc) - if _, ok := cl.m[pc]; ok { - panic("persistConn was already in LRU") - } - cl.m[pc] = ele -} - -func (cl *connLRU) removeOldest() *persistConn { - ele := cl.ll.Back() - pc := ele.Value.(*persistConn) - cl.ll.Remove(ele) - delete(cl.m, pc) - return pc -} - -// remove removes pc from cl. -func (cl *connLRU) remove(pc *persistConn) { - if ele, ok := cl.m[pc]; ok { - cl.ll.Remove(ele) - delete(cl.m, pc) - } -} - -// len returns the number of items in the cache. -func (cl *connLRU) len() int { - return len(cl.m) -} - -// validPort reports whether p (without the colon) is a valid port in -// a URL, per RFC 3986 Section 3.2.3, which says the port may be -// empty, or only contain digits. -func validPort(p string) bool { - for _, r := range []byte(p) { - if r < '0' || r > '9' { - return false - } - } - return true -} -` - -func Benchmark(b *testing.B) { - b.ReportAllocs() - for i := 0; i < b.N; i++ { - it, err := g.Go.Tokenise(nil, lexerBenchSource) - assert.NoError(b, err) - for t := it(); t != chroma.EOF; t = it() { - } - } -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/lexers.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/lexers.go deleted file mode 100644 index 2897299c8f..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/lexers.go +++ /dev/null @@ -1,59 +0,0 @@ -// Package lexers contains the registry of all lexers. -// -// Sub-packages contain lexer implementations. -package lexers - -// nolint: golint -import ( - "github.com/alecthomas/chroma" - _ "github.com/alecthomas/chroma/lexers/a" - _ "github.com/alecthomas/chroma/lexers/b" - _ "github.com/alecthomas/chroma/lexers/c" - _ "github.com/alecthomas/chroma/lexers/circular" - _ "github.com/alecthomas/chroma/lexers/d" - _ "github.com/alecthomas/chroma/lexers/e" - _ "github.com/alecthomas/chroma/lexers/f" - _ "github.com/alecthomas/chroma/lexers/g" - _ "github.com/alecthomas/chroma/lexers/h" - _ "github.com/alecthomas/chroma/lexers/i" - "github.com/alecthomas/chroma/lexers/internal" - _ "github.com/alecthomas/chroma/lexers/j" - _ "github.com/alecthomas/chroma/lexers/k" - _ "github.com/alecthomas/chroma/lexers/l" - _ "github.com/alecthomas/chroma/lexers/m" - _ "github.com/alecthomas/chroma/lexers/n" - _ "github.com/alecthomas/chroma/lexers/o" - _ "github.com/alecthomas/chroma/lexers/p" - _ "github.com/alecthomas/chroma/lexers/q" - _ "github.com/alecthomas/chroma/lexers/r" - _ "github.com/alecthomas/chroma/lexers/s" - _ "github.com/alecthomas/chroma/lexers/t" - _ "github.com/alecthomas/chroma/lexers/v" - _ "github.com/alecthomas/chroma/lexers/w" - _ "github.com/alecthomas/chroma/lexers/x" - _ "github.com/alecthomas/chroma/lexers/y" -) - -// Registry of Lexers. -var Registry = internal.Registry - -// Names of all lexers, optionally including aliases. -func Names(withAliases bool) []string { return internal.Names(withAliases) } - -// Get a Lexer by name, alias or file extension. -func Get(name string) chroma.Lexer { return internal.Get(name) } - -// MatchMimeType attempts to find a lexer for the given MIME type. -func MatchMimeType(mimeType string) chroma.Lexer { return internal.MatchMimeType(mimeType) } - -// Match returns the first lexer matching filename. -func Match(filename string) chroma.Lexer { return internal.Match(filename) } - -// Analyse text content and return the "best" lexer.. -func Analyse(text string) chroma.Lexer { return internal.Analyse(text) } - -// Register a Lexer with the global registry. -func Register(lexer chroma.Lexer) chroma.Lexer { return internal.Register(lexer) } - -// Fallback lexer if no other is found. -var Fallback = internal.Fallback diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/lexers_test.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/lexers_test.go deleted file mode 100644 index 34496dd859..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/lexers_test.go +++ /dev/null @@ -1,91 +0,0 @@ -package lexers_test - -import ( - "encoding/json" - "io/ioutil" - "os" - "path/filepath" - "strings" - "testing" - - "github.com/alecthomas/assert" - "github.com/alecthomas/chroma" - "github.com/alecthomas/chroma/formatters" - "github.com/alecthomas/chroma/lexers" - "github.com/alecthomas/chroma/lexers/a" - "github.com/alecthomas/chroma/lexers/x" - "github.com/alecthomas/chroma/styles" -) - -func TestCompileAllRegexes(t *testing.T) { - for _, lexer := range lexers.Registry.Lexers { - it, err := lexer.Tokenise(nil, "") - assert.NoError(t, err, "%s failed", lexer.Config().Name) - err = formatters.NoOp.Format(ioutil.Discard, styles.SwapOff, it) - assert.NoError(t, err, "%s failed", lexer.Config().Name) - } -} - -func TestGet(t *testing.T) { - t.Run("ByName", func(t *testing.T) { - assert.Equal(t, lexers.Get("xml"), x.XML) - }) - t.Run("ByAlias", func(t *testing.T) { - assert.Equal(t, lexers.Get("as"), a.Actionscript) - }) - t.Run("ViaFilename", func(t *testing.T) { - assert.Equal(t, lexers.Get("svg"), x.XML) - }) -} - -func BenchmarkGet(b *testing.B) { - for i := 0; i < b.N; i++ { - lexers.Get("go") - } -} - -// Test source files are in the form . and validation data is in the form ..expected. -func TestLexers(t *testing.T) { - files, err := ioutil.ReadDir("testdata") - assert.NoError(t, err) - - for _, file := range files { - ext := filepath.Ext(file.Name())[1:] - if ext != "actual" { - continue - } - - lexer := lexers.Get(strings.TrimSuffix(file.Name(), filepath.Ext(file.Name()))) - assert.NotNil(t, lexer) - - filename := filepath.Join("testdata", file.Name()) - expectedFilename := strings.TrimSuffix(filename, filepath.Ext(filename)) + ".expected" - - lexer = chroma.Coalesce(lexer) - t.Run(lexer.Config().Name, func(t *testing.T) { - // Read and tokenise source text. - actualText, err := ioutil.ReadFile(filename) - assert.NoError(t, err) - actual, err := chroma.Tokenise(lexer, nil, string(actualText)) - assert.NoError(t, err) - - if os.Getenv("RECORD") == "true" { - // Update the expected file with the generated output of this lexer - f, err := os.Create(expectedFilename) - defer f.Close() - assert.NoError(t, err) - assert.NoError(t, formatters.JSON.Format(f, nil, chroma.Literator(actual...))) - } else { - // Read expected JSON into token slice. - var expected []chroma.Token - r, err := os.Open(expectedFilename) - assert.NoError(t, err) - err = json.NewDecoder(r).Decode(&expected) - assert.NoError(t, err) - - // Equal? - assert.Equal(t, expected, actual) - } - }) - } -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/make.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/make.go deleted file mode 100644 index eb9d9e68b5..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/make.go +++ /dev/null @@ -1,54 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - . "github.com/alecthomas/chroma/lexers/b" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Makefile lexer. -var Makefile = internal.Register(MustNewLexer( - &Config{ - Name: "Base Makefile", - Aliases: []string{"make", "makefile", "mf", "bsdmake"}, - Filenames: []string{"*.mak", "*.mk", "Makefile", "makefile", "Makefile.*", "GNUmakefile"}, - MimeTypes: []string{"text/x-makefile"}, - EnsureNL: true, - }, - Rules{ - "root": { - {`^(?:[\t ]+.*\n|\n)+`, Using(Bash), nil}, - {`\$[<@$+%?|*]`, Keyword, nil}, - {`\s+`, Text, nil}, - {`#.*?\n`, Comment, nil}, - {`(export)(\s+)(?=[\w${}\t -]+\n)`, ByGroups(Keyword, Text), Push("export")}, - {`export\s+`, Keyword, nil}, - {`([\w${}().-]+)(\s*)([!?:+]?=)([ \t]*)((?:.*\\\n)+|.*\n)`, ByGroups(NameVariable, Text, Operator, Text, Using(Bash)), nil}, - {`(?s)"(\\\\|\\.|[^"\\])*"`, LiteralStringDouble, nil}, - {`(?s)'(\\\\|\\.|[^'\\])*'`, LiteralStringSingle, nil}, - {`([^\n:]+)(:+)([ \t]*)`, ByGroups(NameFunction, Operator, Text), Push("block-header")}, - {`\$\(`, Keyword, Push("expansion")}, - }, - "expansion": { - {`[^$a-zA-Z_()]+`, Text, nil}, - {`[a-zA-Z_]+`, NameVariable, nil}, - {`\$`, Keyword, nil}, - {`\(`, Keyword, Push()}, - {`\)`, Keyword, Pop(1)}, - }, - "export": { - {`[\w${}-]+`, NameVariable, nil}, - {`\n`, Text, Pop(1)}, - {`\s+`, Text, nil}, - }, - "block-header": { - {`[,|]`, Punctuation, nil}, - {`#.*?\n`, Comment, Pop(1)}, - {`\\\n`, Text, nil}, - {`\$\(`, Keyword, Push("expansion")}, - {`[a-zA-Z_]+`, Name, nil}, - {`\n`, Text, Pop(1)}, - {`.`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mako.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mako.go deleted file mode 100644 index f7c140d534..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mako.go +++ /dev/null @@ -1,60 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" - . "github.com/alecthomas/chroma/lexers/p" // nolint -) - -// Mako lexer. -var Mako = internal.Register(MustNewLexer( - &Config{ - Name: "Mako", - Aliases: []string{"mako"}, - Filenames: []string{"*.mao"}, - MimeTypes: []string{"application/x-mako"}, - }, - Rules{ - "root": { - {`(\s*)(%)(\s*end(?:\w+))(\n|\Z)`, ByGroups(Text, CommentPreproc, Keyword, Other), nil}, - {`(\s*)(%)([^\n]*)(\n|\Z)`, ByGroups(Text, CommentPreproc, Using(Python), Other), nil}, - {`(\s*)(##[^\n]*)(\n|\Z)`, ByGroups(Text, CommentPreproc, Other), nil}, - {`(?s)<%doc>.*?`, CommentPreproc, nil}, - {`(<%)([\w.:]+)`, ByGroups(CommentPreproc, NameBuiltin), Push("tag")}, - {`()`, ByGroups(CommentPreproc, NameBuiltin, CommentPreproc), nil}, - {`<%(?=([\w.:]+))`, CommentPreproc, Push("ondeftags")}, - {`(<%(?:!?))(.*?)(%>)(?s)`, ByGroups(CommentPreproc, Using(Python), CommentPreproc), nil}, - {`(\$\{)(.*?)(\})`, ByGroups(CommentPreproc, Using(Python), CommentPreproc), nil}, - {`(?sx) - (.+?) # anything, followed by: - (?: - (?<=\n)(?=%|\#\#) | # an eval or comment line - (?=\#\*) | # multiline comment - (?=`, CommentPreproc, Pop(1)}, - {`\s+`, Text, nil}, - }, - "attr": { - {`".*?"`, LiteralString, Pop(1)}, - {`'.*?'`, LiteralString, Pop(1)}, - {`[^\s>]+`, LiteralString, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/markdown.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/markdown.go deleted file mode 100644 index dd78ec08d7..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/markdown.go +++ /dev/null @@ -1,48 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/h" - "github.com/alecthomas/chroma/lexers/internal" -) - -// Markdown lexer. -var Markdown = internal.Register(DelegatingLexer(h.HTML, MustNewLexer( - &Config{ - Name: "markdown", - Aliases: []string{"md", "mkd"}, - Filenames: []string{"*.md", "*.mkd", "*.markdown"}, - MimeTypes: []string{"text/x-markdown"}, - }, - Rules{ - "root": { - {`^(#[^#].+\n)`, ByGroups(GenericHeading), nil}, - {`^(#{2,6}.+\n)`, ByGroups(GenericSubheading), nil}, - {`^(\s*)([*-] )(\[[ xX]\])( .+\n)`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil}, - {`^(\s*)([*-])(\s)(.+\n)`, ByGroups(Text, Keyword, Text, UsingSelf("inline")), nil}, - {`^(\s*)([0-9]+\.)( .+\n)`, ByGroups(Text, Keyword, UsingSelf("inline")), nil}, - {`^(\s*>\s)(.+\n)`, ByGroups(Keyword, GenericEmph), nil}, - {"^(```\\n)([\\w\\W]*?)(^```$)", ByGroups(String, Text, String), nil}, - {"^(```)(\\w+)(\\n)([\\w\\W]*?)(^```$)", - UsingByGroup( - internal.Get, - 2, 4, - String, String, String, Text, String, - ), - nil, - }, - Include("inline"), - }, - "inline": { - {`\\.`, Text, nil}, - {`(\s)([*_][^*_]+[*_])(\W|\n)`, ByGroups(Text, GenericEmph, Text), nil}, - {`(\s)((\*\*|__).*?)\3((?=\W|\n))`, ByGroups(Text, GenericStrong, GenericStrong, Text), nil}, - {`(\s)(~~[^~]+~~)((?=\W|\n))`, ByGroups(Text, GenericDeleted, Text), nil}, - {"`[^`]+`", LiteralStringBacktick, nil}, - {`[@#][\w/:]+`, NameEntity, nil}, - {`(!?\[)([^]]+)(\])(\()([^)]+)(\))`, ByGroups(Text, NameTag, Text, Text, NameAttribute, Text), nil}, - {`[^\\\s]+`, Other, nil}, - {`.|\n`, Other, nil}, - }, - }, -))) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mason.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mason.go deleted file mode 100644 index 5c70ab0a90..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mason.go +++ /dev/null @@ -1,43 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - . "github.com/alecthomas/chroma/lexers/h" // nolint - "github.com/alecthomas/chroma/lexers/internal" - . "github.com/alecthomas/chroma/lexers/p" // nolint -) - -// Mason lexer. -var Mason = internal.Register(MustNewLexer( - &Config{ - Name: "Mason", - Aliases: []string{"mason"}, - Filenames: []string{"*.m", "*.mhtml", "*.mc", "*.mi", "autohandler", "dhandler"}, - MimeTypes: []string{"application/x-mason"}, - Priority: 0.1, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`(<%doc>)(.*?)()(?s)`, ByGroups(NameTag, CommentMultiline, NameTag), nil}, - {`(<%(?:def|method))(\s*)(.*?)(>)(.*?)()(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil}, - {`(<%\w+)(.*?)(>)(.*?)()(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using(Perl), NameTag), nil}, - {`(<&[^|])(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using(Perl), NameTag), nil}, - {`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using(Perl), NameTag), nil}, - {``, NameTag, nil}, - {`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using(Perl), NameTag), nil}, - {`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil}, - {`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using(Perl), Other), nil}, - {`(?sx) - (.+?) # anything, followed by: - (?: - (?<=\n)(?=[%#]) | # an eval or comment line - (?=`, `:>`, `/.`, `+`, `-`, `*`, `/`, `^`, `&&`, `||`, `!`, `<>`, `|`, `/;`, `?`, `@`, `//`, `/@`, `@@`, `@@@`, `~~`, `===`, `&`, `<`, `>`, `<=`, `>=`), Operator, nil}, - {Words(``, ``, `,`, `;`, `(`, `)`, `[`, `]`, `{`, `}`), Punctuation, nil}, - {`".*?"`, LiteralString, nil}, - {`\s+`, TextWhitespace, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/matlab.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/matlab.go deleted file mode 100644 index 5b0baa5154..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/matlab.go +++ /dev/null @@ -1,51 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Matlab lexer. -var Matlab = internal.Register(MustNewLexer( - &Config{ - Name: "Matlab", - Aliases: []string{"matlab"}, - Filenames: []string{"*.m"}, - MimeTypes: []string{"text/matlab"}, - }, - Rules{ - "root": { - {`\n`, Text, nil}, - {`^!.*`, LiteralStringOther, nil}, - {`%\{\s*\n`, CommentMultiline, Push("blockcomment")}, - {`%.*$`, Comment, nil}, - {`^\s*function`, Keyword, Push("deffunc")}, - {Words(``, `\b`, `break`, `case`, `catch`, `classdef`, `continue`, `else`, `elseif`, `end`, `enumerated`, `events`, `for`, `function`, `global`, `if`, `methods`, `otherwise`, `parfor`, `persistent`, `properties`, `return`, `spmd`, `switch`, `try`, `while`), Keyword, nil}, - {`(sin|sind|sinh|asin|asind|asinh|cos|cosd|cosh|acos|acosd|acosh|tan|tand|tanh|atan|atand|atan2|atanh|sec|secd|sech|asec|asecd|asech|csc|cscd|csch|acsc|acscd|acsch|cot|cotd|coth|acot|acotd|acoth|hypot|exp|expm1|log|log1p|log10|log2|pow2|realpow|reallog|realsqrt|sqrt|nthroot|nextpow2|abs|angle|complex|conj|imag|real|unwrap|isreal|cplxpair|fix|floor|ceil|round|mod|rem|sign|airy|besselj|bessely|besselh|besseli|besselk|beta|betainc|betaln|ellipj|ellipke|erf|erfc|erfcx|erfinv|expint|gamma|gammainc|gammaln|psi|legendre|cross|dot|factor|isprime|primes|gcd|lcm|rat|rats|perms|nchoosek|factorial|cart2sph|cart2pol|pol2cart|sph2cart|hsv2rgb|rgb2hsv|zeros|ones|eye|repmat|rand|randn|linspace|logspace|freqspace|meshgrid|accumarray|size|length|ndims|numel|disp|isempty|isequal|isequalwithequalnans|cat|reshape|diag|blkdiag|tril|triu|fliplr|flipud|flipdim|rot90|find|end|sub2ind|ind2sub|bsxfun|ndgrid|permute|ipermute|shiftdim|circshift|squeeze|isscalar|isvector|ans|eps|realmax|realmin|pi|i|inf|nan|isnan|isinf|isfinite|j|why|compan|gallery|hadamard|hankel|hilb|invhilb|magic|pascal|rosser|toeplitz|vander|wilkinson)\b`, NameBuiltin, nil}, - {`\.\.\..*$`, Comment, nil}, - {`-|==|~=|<|>|<=|>=|&&|&|~|\|\|?`, Operator, nil}, - {`\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\`, Operator, nil}, - {`\[|\]|\(|\)|\{|\}|:|@|\.|,`, Punctuation, nil}, - {`=|:|;`, Punctuation, nil}, - {`(?<=[\w)\].])\'+`, Operator, nil}, - {`(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`\d+[eEf][+-]?[0-9]+`, LiteralNumberFloat, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`(?|->|<-|\\/|xor|/\\)`, Operator, nil}, - {`(<|>|<=|>=|==|=|!=)`, Operator, nil}, - {`(\+|-|\*|/|div|mod)`, Operator, nil}, - {Words(`\b`, `\b`, `in`, `subset`, `superset`, `union`, `diff`, `symdiff`, `intersect`), Operator, nil}, - {`(\\|\.\.|\+\+)`, Operator, nil}, - {`[|()\[\]{},:;]`, Punctuation, nil}, - {`(true|false)\b`, KeywordConstant, nil}, - {`([+-]?)\d+(\.(?!\.)\d*)?([eE][-+]?\d+)?`, LiteralNumber, nil}, - {`::\s*([^\W\d]\w*)(\s*\([^\)]*\))?`, NameDecorator, nil}, - {`\b([^\W\d]\w*)\b(\()`, ByGroups(NameFunction, Punctuation), nil}, - {`[^\W\d]\w*`, NameOther, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mlir.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mlir.go deleted file mode 100644 index 2ae4b00b06..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mlir.go +++ /dev/null @@ -1,43 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// MLIR lexer. -var Mlir = internal.Register(MustNewLexer( - &Config{ - Name: "MLIR", - Aliases: []string{"mlir"}, - Filenames: []string{"*.mlir"}, - MimeTypes: []string{"text/x-mlir"}, - }, - Rules{ - "root": { - Include("whitespace"), - {`c?"[^"]*?"`, LiteralString, nil}, - {`\^([-a-zA-Z$._][\w\-$.0-9]*)\s*`, NameLabel, nil}, - {`([\w\d_$.]+)\s*=`, NameLabel, nil}, - Include("keyword"), - {`->`, Punctuation, nil}, - {`@([\w_][\w\d_$.]*)`, NameFunction, nil}, - {`[%#][\w\d_$.]+`, NameVariable, nil}, - {`([1-9?][\d?]*\s*x)+`, LiteralNumber, nil}, - {`0[xX][a-fA-F0-9]+`, LiteralNumber, nil}, - {`-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?`, LiteralNumber, nil}, - {`[=<>{}\[\]()*.,!:]|x\b`, Punctuation, nil}, - {`[\w\d]+`, Text, nil}, - }, - "whitespace": { - {`(\n|\s)+`, Text, nil}, - {`//.*?\n`, Comment, nil}, - }, - "keyword": { - {Words(``, ``, `constant`, `return`), KeywordType, nil}, - {Words(``, ``, `func`, `loc`, `memref`, `tensor`, `vector`), KeywordType, nil}, - {`bf16|f16|f32|f64|index`, Keyword, nil}, - {`i[1-9]\d*`, Keyword, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/modula2.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/modula2.go deleted file mode 100644 index 6fadb79f37..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/modula2.go +++ /dev/null @@ -1,115 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Modula-2 lexer. -var Modula2 = internal.Register(MustNewLexer( - &Config{ - Name: "Modula-2", - Aliases: []string{"modula2", "m2"}, - Filenames: []string{"*.def", "*.mod"}, - MimeTypes: []string{"text/x-modula2"}, - DotAll: true, - }, - Rules{ - "whitespace": { - {`\n+`, Text, nil}, - {`\s+`, Text, nil}, - }, - "dialecttags": { - {`\(\*!m2pim\*\)`, CommentSpecial, nil}, - {`\(\*!m2iso\*\)`, CommentSpecial, nil}, - {`\(\*!m2r10\*\)`, CommentSpecial, nil}, - {`\(\*!objm2\*\)`, CommentSpecial, nil}, - {`\(\*!m2iso\+aglet\*\)`, CommentSpecial, nil}, - {`\(\*!m2pim\+gm2\*\)`, CommentSpecial, nil}, - {`\(\*!m2iso\+p1\*\)`, CommentSpecial, nil}, - {`\(\*!m2iso\+xds\*\)`, CommentSpecial, nil}, - }, - "identifiers": { - {`([a-zA-Z_$][\w$]*)`, Name, nil}, - }, - "prefixed_number_literals": { - {`0b[01]+(\'[01]+)*`, LiteralNumberBin, nil}, - {`0[ux][0-9A-F]+(\'[0-9A-F]+)*`, LiteralNumberHex, nil}, - }, - "plain_number_literals": { - {`[0-9]+(\'[0-9]+)*\.[0-9]+(\'[0-9]+)*[eE][+-]?[0-9]+(\'[0-9]+)*`, LiteralNumberFloat, nil}, - {`[0-9]+(\'[0-9]+)*\.[0-9]+(\'[0-9]+)*`, LiteralNumberFloat, nil}, - {`[0-9]+(\'[0-9]+)*`, LiteralNumberInteger, nil}, - }, - "suffixed_number_literals": { - {`[0-7]+B`, LiteralNumberOct, nil}, - {`[0-7]+C`, LiteralNumberOct, nil}, - {`[0-9A-F]+H`, LiteralNumberHex, nil}, - }, - "string_literals": { - {`'(\\\\|\\'|[^'])*'`, LiteralString, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - }, - "digraph_operators": { - {`\*\.`, Operator, nil}, - {`\+>`, Operator, nil}, - {`<>`, Operator, nil}, - {`<=`, Operator, nil}, - {`>=`, Operator, nil}, - {`==`, Operator, nil}, - {`::`, Operator, nil}, - {`:=`, Operator, nil}, - {`\+\+`, Operator, nil}, - {`--`, Operator, nil}, - }, - "unigraph_operators": { - {`[+-]`, Operator, nil}, - {`[*/]`, Operator, nil}, - {`\\`, Operator, nil}, - {`[=#<>]`, Operator, nil}, - {`\^`, Operator, nil}, - {`@`, Operator, nil}, - {`&`, Operator, nil}, - {`~`, Operator, nil}, - {"`", Operator, nil}, - }, - "digraph_punctuation": { - {`\.\.`, Punctuation, nil}, - {`<<`, Punctuation, nil}, - {`>>`, Punctuation, nil}, - {`->`, Punctuation, nil}, - {`\|#`, Punctuation, nil}, - {`##`, Punctuation, nil}, - {`\|\*`, Punctuation, nil}, - }, - "unigraph_punctuation": { - {`[()\[\]{},.:;|]`, Punctuation, nil}, - {`!`, Punctuation, nil}, - {`\?`, Punctuation, nil}, - }, - "comments": { - {`^//.*?\n`, CommentSingle, nil}, - {`\(\*([^$].*?)\*\)`, CommentMultiline, nil}, - {`/\*(.*?)\*/`, CommentMultiline, nil}, - }, - "pragmas": { - {`<\*.*?\*>`, CommentPreproc, nil}, - {`\(\*\$.*?\*\)`, CommentPreproc, nil}, - }, - "root": { - Include("whitespace"), - Include("dialecttags"), - Include("pragmas"), - Include("comments"), - Include("identifiers"), - Include("suffixed_number_literals"), - Include("prefixed_number_literals"), - Include("plain_number_literals"), - Include("string_literals"), - Include("digraph_punctuation"), - Include("digraph_operators"), - Include("unigraph_punctuation"), - Include("unigraph_operators"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/monkeyc.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/monkeyc.go deleted file mode 100644 index 828ff0bff0..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/monkeyc.go +++ /dev/null @@ -1,62 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var MonkeyC = internal.Register(MustNewLexer( - &Config{ - Name: "MonkeyC", - Aliases: []string{"monkeyc"}, - Filenames: []string{"*.mc"}, - MimeTypes: []string{"text/x-monkeyc"}, - }, - Rules{ - "root": { - {`[^\S\n]+`, Text, nil}, - {`\n`, Text, nil}, - {`//(\n|[\w\W]*?[^\\]\n)`, CommentSingle, nil}, - {`/(\\\n)?[*][\w\W]*?[*](\\\n)?/`, CommentMultiline, nil}, - {`/(\\\n)?[*][\w\W]*`, CommentMultiline, nil}, - {`:[a-zA-Z_][\w_\.]*`, StringSymbol, nil}, - {`[{}\[\]\(\),;:\.]`, Punctuation, nil}, - {`[&~\|\^!+\-*\/%=?]`, Operator, nil}, - {`=>|[+-]=|&&|\|\||>>|<<|[<>]=?|[!=]=`, Operator, nil}, - {`\b(and|or|instanceof|has|extends|new)`, OperatorWord, nil}, - {Words(``, `\b`, `NaN`, `null`, `true`, `false`), KeywordConstant, nil}, - {`(using)((?:\s|\\\\s)+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - {`(class)((?:\s|\\\\s)+)`, ByGroups(KeywordDeclaration, Text), Push("class")}, - {`(function)((?:\s|\\\\s)+)`, ByGroups(KeywordDeclaration, Text), Push("function")}, - {`(module)((?:\s|\\\\s)+)`, ByGroups(KeywordDeclaration, Text), Push("module")}, - {`\b(if|else|for|switch|case|while|break|continue|default|do|try|catch|finally|return|throw|extends|function)\b`, Keyword, nil}, - {`\b(const|enum|hidden|public|protected|private|static)\b`, KeywordType, nil}, - {`\bvar\b`, KeywordDeclaration, nil}, - {`\b(Activity(Monitor|Recording)?|Ant(Plus)?|Application|Attention|Background|Communications|Cryptography|FitContributor|Graphics|Gregorian|Lang|Math|Media|Persisted(Content|Locations)|Position|Properties|Sensor(History|Logging)?|Storage|StringUtil|System|Test|Time(r)?|Toybox|UserProfile|WatchUi|Rez|Drawables|Strings|Fonts|method)\b`, NameBuiltin, nil}, - {`\b(me|self|\$)\b`, NameBuiltinPseudo, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`'(\\\\|\\'|[^''])*'`, LiteralStringSingle, nil}, - {`-?(0x[0-9a-fA-F]+l?)`, NumberHex, nil}, - {`-?([0-9]+(\.[0-9]+[df]?|[df]))\b`, NumberFloat, nil}, - {`-?([0-9]+l?)`, NumberInteger, nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - "import": { - {`([a-zA-Z_][\w_\.]*)(?:(\s+)(as)(\s+)([a-zA-Z_][\w_]*))?`, ByGroups(NameNamespace, Text, KeywordNamespace, Text, NameNamespace), nil}, - Default(Pop(1)), - }, - "class": { - {`([a-zA-Z_][\w_\.]*)(?:(\s+)(extends)(\s+)([a-zA-Z_][\w_\.]*))?`, ByGroups(NameClass, Text, KeywordDeclaration, Text, NameClass), nil}, - Default(Pop(1)), - }, - "function": { - {`initialize`, NameFunctionMagic, nil}, - {`[a-zA-Z_][\w_\.]*`, NameFunction, nil}, - Default(Pop(1)), - }, - "module": { - {`[a-zA-Z_][\w_\.]*`, NameNamespace, nil}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mwscript.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mwscript.go deleted file mode 100644 index b86bbdfeef..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/mwscript.go +++ /dev/null @@ -1,53 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// MorrowindScript lexer. -var MorrowindScript = internal.Register(MustNewLexer( - &Config{ - Name: "MorrowindScript", - Aliases: []string{"morrowind", "mwscript"}, - Filenames: []string{}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`;.*$`, Comment, nil}, - {`(["'])(?:(?=(\\?))\2.)*?\1`, LiteralString, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`[0-9]+\.[0-9]*(?!\.)`, LiteralNumberFloat, nil}, - Include("keywords"), - Include("types"), - Include("builtins"), - Include("punct"), - Include("operators"), - {`\n`, Text, nil}, - {`\S+\s+`, Text, nil}, - {`[a-zA-Z0-9_]\w*`, Name, nil}, - }, - "keywords": { - {`(?i)(begin|if|else|elseif|endif|while|endwhile|return|to)\b`, Keyword, nil}, - {`(?i)(end)\b`, Keyword, nil}, - {`(?i)(end)\w+.*$`, Text, nil}, - {`[\w+]->[\w+]`, Operator, nil}, - }, - "builtins": { - {`(?i)(Activate|AddItem|AddSoulGem|AddSpell|AddToLevCreature|AddToLevItem|AddTopic|AIActivate|AIEscort|AIEscortCell|AIFollow|AiFollowCell|AITravel|AIWander|BecomeWerewolf|Cast|ChangeWeather|Choice|ClearForceJump|ClearForceMoveJump|ClearForceRun|ClearForceSneak|ClearInfoActor|Disable|DisableLevitation|DisablePlayerControls|DisablePlayerFighting|DisablePlayerJumping|DisablePlayerLooking|DisablePlayerMagic|DisablePlayerViewSwitch|DisableTeleporting|DisableVanityMode|DontSaveObject|Drop|Enable|EnableBirthMenu|EnableClassMenu|EnableInventoryMenu|EnableLevelUpMenu|EnableLevitation|EnableMagicMenu|EnableMapMenu|EnableNameMenu|EnablePlayerControls|EnablePlayerFighting|EnablePlayerJumping|EnablePlayerLooking|EnablePlayerMagic|EnablePlayerViewSwitch|EnableRaceMenu|EnableRest|EnableStatsMenu|EnableTeleporting|EnableVanityMode|Equip|ExplodeSpell|Face|FadeIn|FadeOut|FadeTo|Fall|ForceGreeting|ForceJump|ForceRun|ForceSneak|Flee|GotoJail|HurtCollidingActor|HurtStandingActor|Journal|Lock|LoopGroup|LowerRank|MenuTest|MessageBox|ModAcrobatics|ModAgility|ModAlarm|ModAlchemy|ModAlteration|ModArmorBonus|ModArmorer|ModAthletics|ModAttackBonus|ModAxe|ModBlock|ModBluntWeapon|ModCastPenalty|ModChameleon|ModConjuration|ModCurrentFatigue|ModCurrentHealth|ModCurrentMagicka|ModDefendBonus|ModDestruction|ModDisposition|ModEnchant|ModEndurance|ModFactionReaction|ModFatigue|ModFight|ModFlee|ModFlying|ModHandToHand|ModHealth|ModHeavyArmor|ModIllusion|ModIntelligence|ModInvisible|ModLightArmor|ModLongBlade|ModLuck|ModMagicka|ModMarksman|ModMediumArmor|ModMercantile|ModMysticism|ModParalysis|ModPCCrimeLevel|ModPCFacRep|ModPersonality|ModRegion|ModReputation|ModResistBlight|ModResistCorprus|ModResistDisease|ModResistFire|ModResistFrost|ModResistMagicka|ModResistNormalWeapons|ModResistParalysis|ModResistPoison|ModResistShock|ModRestoration|ModScale|ModSecurity|ModShortBlade|ModSilence|ModSneak|ModSpear|ModSpeechcraft|ModSpeed|ModStrength|ModSuperJump|ModSwimSpeed|ModUnarmored|ModWaterBreathing|ModWaterLevel|ModWaterWalking|ModWillpower|Move|MoveWorld|PayFine|PayFineThief|PCClearExpelled|PCExpell|PCForce1stPerson|PCForce3rdPerson|PCJoinFaction|PCLowerRank|PCRaiseRank|PlaceAtMe|PlaceAtPC|PlaceItem|PlaceItemCell|PlayBink|PlayGroup|PlayLoopSound3D|PlayLoopSound3DVP|PlaySound|PlaySound3D|PlaySound3DVP|PlaySoundVP|Position|PositionCell|RaiseRank|RemoveEffects|RemoveFromLevCreature|RemoveFromLevItem|RemoveItem|RemoveSoulgem|RemoveSpell|RemoveSpellEffects|ResetActors|Resurrect|Rotate|RotateWorld|Say|StartScript|[S|s]et|SetAcrobatics|SetAgility|SetAlarm|SetAlchemy|SetAlteration|SetAngle|SetArmorBonus|SetArmorer|SetAthletics|SetAtStart|SetAttackBonus|SetAxe|SetBlock|SetBluntWeapon|SetCastPenalty|SetChameleon|SetConjuration|SetDelete|SetDefendBonus|SetDestruction|SetDisposition|SetEnchant|SetEndurance|SetFactionReaction|SetFatigue|SetFight|SetFlee|SetFlying|SetHandToHand|SetHealth|SetHeavyArmor|SetIllusion|SetIntelligence|SetInvisible|SetJournalIndex|SetLightArmor|SetLevel|SetLongBlade|SetLuck|SetMagicka|SetMarksman|SetMediumArmor|SetMercantile|SetMysticism|SetParalysis|SetPCCCrimeLevel|SetPCFacRep|SetPersonality|SetPos|SetReputation|SetResistBlight|SetResistCorprus|SetResistDisease|SetResistFire|SetResistFrost|SetResistMagicka|SetResistNormalWeapons|SetResistParalysis|SetResistPoison|SetResistShock|SetRestoration|SetScale|SetSecurity|SetShortBlade|SetSilence|SetSneak|SetSpear|SetSpeechcraft|SetSpeed|SetStrength|SetSuperJump|SetSwimSpeed|SetUnarmored|SetWaterBreathing|SetWaterlevel|SetWaterWalking|SetWerewolfAcrobatics|SetWillpower|ShowMap|ShowRestMenu|SkipAnim|StartCombat|StopCombat|StopScript|StopSound|StreamMusic|TurnMoonRed|TurnMoonWhite|UndoWerewolf|Unlock|WakeUpPC|CenterOnCell|CenterOnExterior|FillMap|FixMe|ToggleAI|ToggleCollision|ToggleFogOfWar|ToggleGodMode|ToggleMenus|ToggleSky|ToggleWorld|ToggleVanityMode|CellChanged|GetAcrobatics|GetAgility|GetAIPackageDone|GetAlarm|GetAlchemy|GetAlteration|GetAngle|GetArmorBonus|GetArmorer|GetAthletics|GetAttackBonus|GetAttacked|GetArmorType,|GetAxe|GetBlightDisease|GetBlock|GetBluntWeapon|GetButtonPressed|GetCastPenalty|GetChameleon|GetCollidingActor|GetCollidingPC|GetCommonDisease|GetConjuration|GetCurrentAIPackage|GetCurrentTime|GetCurrentWeather|GetDeadCount|GetDefendBonus|GetDestruction|GetDetected|GetDisabled|GetDisposition|GetDistance|GetEffect|GetEnchant|GetEndurance|GetFatigue|GetFight|GetFlee|GetFlying|GetForceJump|GetForceRun|GetForceSneak|GetHandToHand|GetHealth|GetHealthGetRatio|GetHeavyArmor|GetIllusion|GetIntelligence|GetInterior|GetInvisible|GetItemCount|GetJournalIndex|GetLightArmor|GetLineOfSight|GetLOS|GetLevel|GetLocked|GetLongBlade|GetLuck|GetMagicka|GetMarksman|GetMasserPhase|GetSecundaPhase|GetMediumArmor|GetMercantile|GetMysticism|GetParalysis|GetPCCell|GetPCCrimeLevel|GetPCinJail|GetPCJumping|GetPCRank|GetPCRunning|GetPCSleep|GetPCSneaking|GetPCTraveling|GetPersonality|GetPlayerControlsDisabled|GetPlayerFightingDisabled|GetPlayerJumpingDisabled|GetPlayerLookingDisabled|GetPlayerMagicDisabled|GetPos|GetRace|GetReputation|GetResistBlight|GetResistCorprus|GetResistDisease|GetResistFire|GetResistFrost|GetResistMagicka|GetResistNormalWeapons|GetResistParalysis|GetResistPoison|GetResistShock|GetRestoration|GetScale|GetSecondsPassed|GetSecurity|GetShortBlade|GetSilence|GetSneak|GetSoundPlaying|GetSpear|GetSpeechcraft|GetSpeed|GetSpell|GetSpellEffects|GetSpellReadied|GetSquareRoot|GetStandingActor|GetStandingPC|GetStrength|GetSuperJump|GetSwimSpeed|GetTarget|GetUnarmored|GetVanityModeDisabled|GetWaterBreathing|GetWaterLevel|GetWaterWalking|GetWeaponDrawn|GetWeaponType|GetWerewolfKills|GetWillpower|GetWindSpeed|HasItemEquipped|HasSoulgem|HitAttemptOnMe|HitOnMe|IsWerewolf|MenuMode|OnActivate|OnDeath|OnKnockout|OnMurder|PCExpelled|PCGet3rdPerson|PCKnownWerewolf|Random|RepairedOnMe|SameFaction|SayDone|ScriptRunning|AllowWereWolfForceGreeting|Companion|MinimumProfit|NoFlee|NoHello|NoIdle|NoLore|OnPCAdd|OnPCDrop|OnPCEquip|OnPCHitMe|OnPCRepair|PCSkipEquip|OnPCSoulGemUse|StayOutside|CrimeGoldDiscount|CrimeGoldTurnIn|Day|DaysPassed|GameHour|Month|NPCVoiceDistance|PCRace|PCWerewolf|PCVampire|TimeScale|VampClan|Year)\b`, NameBuiltin, nil}, - {`(?i)(sEffectWaterBreathing|sEffectSwiftSwim|sEffectWaterWalking|sEffectShield|sEffectFireShield|sEffectLightningShield|sEffectFrostShield|sEffectBurden|sEffectFeather|sEffectJump|sEffectLevitate|sEffectSlowFall|sEffectLock|sEffectOpen|sEffectFireDamage|sEffectShockDamage|sEffectFrostDamage|sEffectDrainAttribute|sEffectDrainHealth|sEffectDrainSpellpoints|sEffectDrainFatigue|sEffectDrainSkill|sEffectDamageAttribute|sEffectDamageHealth|sEffectDamageMagicka|sEffectDamageFatigue|sEffectDamageSkill|sEffectPoison|sEffectWeaknessToFire|sEffectWeaknessToFrost|sEffectWeaknessToShock|sEffectWeaknessToMagicka|sEffectWeaknessToCommonDisease|sEffectWeaknessToBlightDisease|sEffectWeaknessToCorprusDisease|sEffectWeaknessToPoison|sEffectWeaknessToNormalWeapons|sEffectDisintegrateWeapon|sEffectDisintegrateArmor|sEffectInvisibility|sEffectChameleon|sEffectLight|sEffectSanctuary|sEffectNightEye|sEffectCharm|sEffectParalyze|sEffectSilence|sEffectBlind|sEffectSound|sEffectCalmHumanoid|sEffectCalmCreature|sEffectFrenzyHumanoid|sEffectFrenzyCreature|sEffectDemoralizeHumanoid|sEffectDemoralizeCreature|sEffectRallyHumanoid|sEffectRallyCreature|sEffectDispel|sEffectSoultrap|sEffectTelekinesis|sEffectMark|sEffectRecall|sEffectDivineIntervention|sEffectAlmsiviIntervention|sEffectDetectAnimal|sEffectDetectEnchantment|sEffectDetectKey|sEffectSpellAbsorption|sEffectReflect|sEffectCureCommonDisease|sEffectCureBlightDisease|sEffectCureCorprusDisease|sEffectCurePoison|sEffectCureParalyzation|sEffectRestoreAttribute|sEffectRestoreHealth|sEffectRestoreSpellPoints|sEffectRestoreFatigue|sEffectRestoreSkill|sEffectFortifyAttribute|sEffectFortifyHealth|sEffectFortifySpellpoints|sEffectFortifyFatigue|sEffectFortifySkill|sEffectFortifyMagickaMultiplier|sEffectAbsorbAttribute|sEffectAbsorbHealth|sEffectAbsorbSpellPoints|sEffectAbsorbFatigue|sEffectAbsorbSkill|sEffectResistFire|sEffectResistFrost|sEffectResistShock|sEffectResistMagicka|sEffectResistCommonDisease|sEffectResistBlightDisease|sEffectResistCorprusDisease|sEffectResistPoison|sEffectResistNormalWeapons|sEffectResistParalysis|sEffectRemoveCurse|sEffectTurnUndead|sEffectSummonScamp|sEffectSummonClannfear|sEffectSummonDaedroth|sEffectSummonDremora|sEffectSummonAncestralGhost|sEffectSummonSkeletalMinion|sEffectSummonLeastBonewalker|sEffectSummonGreaterBonewalker|sEffectSummonBonelord|sEffectSummonWingedTwilight|sEffectSummonHunger|sEffectSummonGoldensaint|sEffectSummonFlameAtronach|sEffectSummonFrostAtronach|sEffectSummonStormAtronach|sEffectFortifyAttackBonus|sEffectCommandCreatures|sEffectCommandHumanoids|sEffectBoundDagger|sEffectBoundLongsword|sEffectBoundMace|sEffectBoundBattleAxe|sEffectBoundSpear|sEffectBoundLongbow|sEffectExtraSpell|sEffectBoundCuirass|sEffectBoundHelm|sEffectBoundBoots|sEffectBoundShield|sEffectBoundGloves|sEffectCorpus|sEffectVampirism|sEffectSummonCenturionSphere|sEffectSunDamage|sEffectStuntedMagicka)`, NameBuiltin, nil}, - }, - "types": { - {`(?i)(short|long|float)\b`, KeywordType, nil}, - }, - "punct": { - {`[()]`, Punctuation, nil}, - }, - "operators": { - {`[#=,./%+\-?]`, Operator, nil}, - {`(==|<=|<|>=|>|!=)`, Operator, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/myghty.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/myghty.go deleted file mode 100644 index 02a20eae5e..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/m/myghty.go +++ /dev/null @@ -1,40 +0,0 @@ -package m - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" - . "github.com/alecthomas/chroma/lexers/p" // nolint -) - -// Myghty lexer. -var Myghty = internal.Register(MustNewLexer( - &Config{ - Name: "Myghty", - Aliases: []string{"myghty"}, - Filenames: []string{"*.myt", "autodelegate"}, - MimeTypes: []string{"application/x-myghty"}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`(<%(?:def|method))(\s*)(.*?)(>)(.*?)()(?s)`, ByGroups(NameTag, Text, NameFunction, NameTag, UsingSelf("root"), NameTag), nil}, - {`(<%\w+)(.*?)(>)(.*?)()(?s)`, ByGroups(NameTag, NameFunction, NameTag, Using(Python), NameTag), nil}, - {`(<&[^|])(.*?)(,.*?)?(&>)`, ByGroups(NameTag, NameFunction, Using(Python), NameTag), nil}, - {`(<&\|)(.*?)(,.*?)?(&>)(?s)`, ByGroups(NameTag, NameFunction, Using(Python), NameTag), nil}, - {``, NameTag, nil}, - {`(<%!?)(.*?)(%>)(?s)`, ByGroups(NameTag, Using(Python), NameTag), nil}, - {`(?<=^)#[^\n]*(\n|\Z)`, Comment, nil}, - {`(?<=^)(%)([^\n]*)(\n|\Z)`, ByGroups(NameTag, Using(Python), Other), nil}, - {`(?sx) - (.+?) # anything, followed by: - (?: - (?<=\n)(?=[%#]) | # an eval or comment line - (?==~!@#%^&|`?-]", Operator, nil}, - {`\b(tinyint|smallint|mediumint|int|integer|bigint|date|datetime|time|bit|bool|tinytext|mediumtext|longtext|text|tinyblob|mediumblob|longblob|blob|float|double|double\s+precision|real|numeric|dec|decimal|timestamp|year|char|varchar|varbinary|varcharacter|enum|set)(\b\s*)(\()?`, ByGroups(KeywordType, Text, Punctuation), nil}, - {`\b(add|all|alter|analyze|and|as|asc|asensitive|before|between|bigint|binary|blob|both|by|call|cascade|case|change|char|character|check|collate|column|condition|constraint|continue|convert|create|cross|current_date|current_time|current_timestamp|current_user|cursor|database|databases|day_hour|day_microsecond|day_minute|day_second|dec|decimal|declare|default|delayed|delete|desc|describe|deterministic|distinct|distinctrow|div|double|drop|dual|each|else|elseif|enclosed|escaped|exists|exit|explain|fetch|flush|float|float4|float8|for|force|foreign|from|fulltext|grant|group|having|high_priority|hour_microsecond|hour_minute|hour_second|identified|if|ignore|in|index|infile|inner|inout|insensitive|insert|int|int1|int2|int3|int4|int8|integer|interval|into|is|iterate|join|key|keys|kill|leading|leave|left|like|limit|lines|load|localtime|localtimestamp|lock|long|loop|low_priority|match|minute_microsecond|minute_second|mod|modifies|natural|no_write_to_binlog|not|numeric|on|optimize|option|optionally|or|order|out|outer|outfile|precision|primary|privileges|procedure|purge|raid0|read|reads|real|references|regexp|release|rename|repeat|replace|require|restrict|return|revoke|right|rlike|schema|schemas|second_microsecond|select|sensitive|separator|set|show|smallint|soname|spatial|specific|sql|sql_big_result|sql_calc_found_rows|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|starting|straight_join|table|terminated|then|to|trailing|trigger|undo|union|unique|unlock|unsigned|update|usage|use|user|using|utc_date|utc_time|utc_timestamp|values|varying|when|where|while|with|write|x509|xor|year_month|zerofill)\b`, Keyword, nil}, - {`\b(auto_increment|engine|charset|tables)\b`, KeywordPseudo, nil}, - {`(true|false|null)`, NameConstant, nil}, - {`([a-z_]\w*)(\s*)(\()`, ByGroups(NameFunction, Text, Punctuation), nil}, - {`[a-z_]\w*`, Name, nil}, - {`@[a-z0-9]*[._]*[a-z0-9]*`, NameVariable, nil}, - {`[;:()\[\],.]`, Punctuation, nil}, - }, - "multiline-comments": { - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[^/*]+`, CommentMultiline, nil}, - {`[/*]`, CommentMultiline, nil}, - }, - "string": { - {`[^']+`, LiteralStringSingle, nil}, - {`''`, LiteralStringSingle, nil}, - {`'`, LiteralStringSingle, Pop(1)}, - }, - "double-string": { - {`[^"]+`, LiteralStringDouble, nil}, - {`""`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nasm.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nasm.go deleted file mode 100644 index d769d15752..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nasm.go +++ /dev/null @@ -1,59 +0,0 @@ -package n - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Nasm lexer. -var Nasm = internal.Register(MustNewLexer( - &Config{ - Name: "NASM", - Aliases: []string{"nasm"}, - Filenames: []string{"*.asm", "*.ASM"}, - MimeTypes: []string{"text/x-nasm"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`^\s*%`, CommentPreproc, Push("preproc")}, - Include("whitespace"), - {`[a-z$._?][\w$.?#@~]*:`, NameLabel, nil}, - {`([a-z$._?][\w$.?#@~]*)(\s+)(equ)`, ByGroups(NameConstant, KeywordDeclaration, KeywordDeclaration), Push("instruction-args")}, - {`BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|EXPORT|LIBRARY|MODULE`, Keyword, Push("instruction-args")}, - {`(?:res|d)[bwdqt]|times`, KeywordDeclaration, Push("instruction-args")}, - {`[a-z$._?][\w$.?#@~]*`, NameFunction, Push("instruction-args")}, - {`[\r\n]+`, Text, nil}, - }, - "instruction-args": { - {"\"(\\\\\"|[^\"\\n])*\"|'(\\\\'|[^'\\n])*'|`(\\\\`|[^`\\n])*`", LiteralString, nil}, - {`(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)`, LiteralNumberHex, nil}, - {`[0-7]+q`, LiteralNumberOct, nil}, - {`[01]+b`, LiteralNumberBin, nil}, - {`[0-9]+\.e?[0-9]+`, LiteralNumberFloat, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - Include("punctuation"), - {`r[0-9][0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]`, NameBuiltin, nil}, - {`[a-z$._?][\w$.?#@~]*`, NameVariable, nil}, - {`[\r\n]+`, Text, Pop(1)}, - Include("whitespace"), - }, - "preproc": { - {`[^;\n]+`, CommentPreproc, nil}, - {`;.*?\n`, CommentSingle, Pop(1)}, - {`\n`, CommentPreproc, Pop(1)}, - }, - "whitespace": { - {`\n`, Text, nil}, - {`[ \t]+`, Text, nil}, - {`;.*`, CommentSingle, nil}, - }, - "punctuation": { - {`[,():\[\]]+`, Punctuation, nil}, - {`[&|^<>+*/%~-]+`, Operator, nil}, - {`[$]+`, KeywordConstant, nil}, - {`seg|wrt|strict`, OperatorWord, nil}, - {`byte|[dq]?word`, KeywordType, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/newspeak.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/newspeak.go deleted file mode 100644 index 1a6a37bd21..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/newspeak.go +++ /dev/null @@ -1,55 +0,0 @@ -package n - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Newspeak lexer. -var Newspeak = internal.Register(MustNewLexer( - &Config{ - Name: "Newspeak", - Aliases: []string{"newspeak"}, - Filenames: []string{"*.ns2"}, - MimeTypes: []string{"text/x-newspeak"}, - }, - Rules{ - "root": { - {`\b(Newsqueak2)\b`, KeywordDeclaration, nil}, - {`'[^']*'`, LiteralString, nil}, - {`\b(class)(\s+)(\w+)(\s*)`, ByGroups(KeywordDeclaration, Text, NameClass, Text), nil}, - {`\b(mixin|self|super|private|public|protected|nil|true|false)\b`, Keyword, nil}, - {`(\w+\:)(\s*)([a-zA-Z_]\w+)`, ByGroups(NameFunction, Text, NameVariable), nil}, - {`(\w+)(\s*)(=)`, ByGroups(NameAttribute, Text, Operator), nil}, - {`<\w+>`, CommentSpecial, nil}, - Include("expressionstat"), - Include("whitespace"), - }, - "expressionstat": { - {`(\d+\.\d*|\.\d+|\d+[fF])[fF]?`, LiteralNumberFloat, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`:\w+`, NameVariable, nil}, - {`(\w+)(::)`, ByGroups(NameVariable, Operator), nil}, - {`\w+:`, NameFunction, nil}, - {`\w+`, NameVariable, nil}, - {`\(|\)`, Punctuation, nil}, - {`\[|\]`, Punctuation, nil}, - {`\{|\}`, Punctuation, nil}, - {`(\^|\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-|:)`, Operator, nil}, - {`\.|;`, Punctuation, nil}, - Include("whitespace"), - Include("literals"), - }, - "literals": { - {`\$.`, LiteralString, nil}, - {`'[^']*'`, LiteralString, nil}, - {`#'[^']*'`, LiteralStringSymbol, nil}, - {`#\w+:?`, LiteralStringSymbol, nil}, - {`#(\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-)+`, LiteralStringSymbol, nil}, - }, - "whitespace": { - {`\s+`, Text, nil}, - {`"[^"]*"`, Comment, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nginx.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nginx.go deleted file mode 100644 index 840d100b7e..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nginx.go +++ /dev/null @@ -1,47 +0,0 @@ -package n - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Nginx Configuration File lexer. -var Nginx = internal.Register(MustNewLexer( - &Config{ - Name: "Nginx configuration file", - Aliases: []string{"nginx"}, - Filenames: []string{"nginx.conf"}, - MimeTypes: []string{"text/x-nginx-conf"}, - }, - Rules{ - "root": { - {`(include)(\s+)([^\s;]+)`, ByGroups(Keyword, Text, Name), nil}, - {`[^\s;#]+`, Keyword, Push("stmt")}, - Include("base"), - }, - "block": { - {`\}`, Punctuation, Pop(2)}, - {`[^\s;#]+`, KeywordNamespace, Push("stmt")}, - Include("base"), - }, - "stmt": { - {`\{`, Punctuation, Push("block")}, - {`;`, Punctuation, Pop(1)}, - Include("base"), - }, - "base": { - {`#.*\n`, CommentSingle, nil}, - {`on|off`, NameConstant, nil}, - {`\$[^\s;#()]+`, NameVariable, nil}, - {`([a-z0-9.-]+)(:)([0-9]+)`, ByGroups(Name, Punctuation, LiteralNumberInteger), nil}, - {`[a-z-]+/[a-z-+]+`, LiteralString, nil}, - {`[0-9]+[km]?\b`, LiteralNumberInteger, nil}, - {`(~)(\s*)([^\s{]+)`, ByGroups(Punctuation, Text, LiteralStringRegex), nil}, - {`[:=~]`, Punctuation, nil}, - {`[^\s;#{}$]+`, LiteralString, nil}, - {`/[^\s;#]*`, Name, nil}, - {`\s+`, Text, nil}, - {`[$;]`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nim.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nim.go deleted file mode 100644 index b08c2f94d4..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/n/nim.go +++ /dev/null @@ -1,93 +0,0 @@ -package n - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Nim lexer. -var Nim = internal.Register(MustNewLexer( - &Config{ - Name: "Nim", - Aliases: []string{"nim", "nimrod"}, - Filenames: []string{"*.nim", "*.nimrod"}, - MimeTypes: []string{"text/x-nim"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`#\[[\s\S]*?\]#`, CommentMultiline, nil}, - {`##.*$`, LiteralStringDoc, nil}, - {`#.*$`, Comment, nil}, - {`[*=><+\-/@$~&%!?|\\\[\]]`, Operator, nil}, - {"\\.\\.|\\.|,|\\[\\.|\\.\\]|\\{\\.|\\.\\}|\\(\\.|\\.\\)|\\{|\\}|\\(|\\)|:|\\^|`|;", Punctuation, nil}, - {`(?:[\w]+)"`, LiteralString, Push("rdqs")}, - {`"""`, LiteralString, Push("tdqs")}, - {`"`, LiteralString, Push("dqs")}, - {`'`, LiteralStringChar, Push("chars")}, - {`(a_?n_?d_?|o_?r_?|n_?o_?t_?|x_?o_?r_?|s_?h_?l_?|s_?h_?r_?|d_?i_?v_?|m_?o_?d_?|i_?n_?|n_?o_?t_?i_?n_?|i_?s_?|i_?s_?n_?o_?t_?)\b`, OperatorWord, nil}, - {`(p_?r_?o_?c_?\s)(?![(\[\]])`, Keyword, Push("funcname")}, - {`(a_?d_?d_?r_?|a_?n_?d_?|a_?s_?|a_?s_?m_?|a_?t_?o_?m_?i_?c_?|b_?i_?n_?d_?|b_?l_?o_?c_?k_?|b_?r_?e_?a_?k_?|c_?a_?s_?e_?|c_?a_?s_?t_?|c_?o_?n_?c_?e_?p_?t_?|c_?o_?n_?s_?t_?|c_?o_?n_?t_?i_?n_?u_?e_?|c_?o_?n_?v_?e_?r_?t_?e_?r_?|d_?e_?f_?e_?r_?|d_?i_?s_?c_?a_?r_?d_?|d_?i_?s_?t_?i_?n_?c_?t_?|d_?i_?v_?|d_?o_?|e_?l_?i_?f_?|e_?l_?s_?e_?|e_?n_?d_?|e_?n_?u_?m_?|e_?x_?c_?e_?p_?t_?|e_?x_?p_?o_?r_?t_?|f_?i_?n_?a_?l_?l_?y_?|f_?o_?r_?|f_?u_?n_?c_?|i_?f_?|i_?n_?|y_?i_?e_?l_?d_?|i_?n_?t_?e_?r_?f_?a_?c_?e_?|i_?s_?|i_?s_?n_?o_?t_?|i_?t_?e_?r_?a_?t_?o_?r_?|l_?e_?t_?|m_?a_?c_?r_?o_?|m_?e_?t_?h_?o_?d_?|m_?i_?x_?i_?n_?|m_?o_?d_?|n_?o_?t_?|n_?o_?t_?i_?n_?|o_?b_?j_?e_?c_?t_?|o_?f_?|o_?r_?|o_?u_?t_?|p_?r_?o_?c_?|p_?t_?r_?|r_?a_?i_?s_?e_?|r_?e_?f_?|r_?e_?t_?u_?r_?n_?|s_?h_?a_?r_?e_?d_?|s_?h_?l_?|s_?h_?r_?|s_?t_?a_?t_?i_?c_?|t_?e_?m_?p_?l_?a_?t_?e_?|t_?r_?y_?|t_?u_?p_?l_?e_?|t_?y_?p_?e_?|w_?h_?e_?n_?|w_?h_?i_?l_?e_?|w_?i_?t_?h_?|w_?i_?t_?h_?o_?u_?t_?|x_?o_?r_?)\b`, Keyword, nil}, - {`(f_?r_?o_?m_?|i_?m_?p_?o_?r_?t_?|i_?n_?c_?l_?u_?d_?e_?)\b`, KeywordNamespace, nil}, - {`(v_?a_?r)\b`, KeywordDeclaration, nil}, - {`(i_?n_?t_?|i_?n_?t_?8_?|i_?n_?t_?1_?6_?|i_?n_?t_?3_?2_?|i_?n_?t_?6_?4_?|f_?l_?o_?a_?t_?|f_?l_?o_?a_?t_?3_?2_?|f_?l_?o_?a_?t_?6_?4_?|b_?o_?o_?l_?|c_?h_?a_?r_?|r_?a_?n_?g_?e_?|a_?r_?r_?a_?y_?|s_?e_?q_?|s_?e_?t_?|s_?t_?r_?i_?n_?g_?)\b`, KeywordType, nil}, - {`(n_?i_?l_?|t_?r_?u_?e_?|f_?a_?l_?s_?e_?)\b`, KeywordPseudo, nil}, - {`\b_\b`, Name, nil}, // Standalone _ used as discardable variable identifier - {`\b((?![_\d])\w)(((?!_)\w)|(_(?!_)\w))*`, Name, nil}, - {`[0-9][0-9_]*(?=([e.]|\'f(32|64)))`, LiteralNumberFloat, Push("float-suffix", "float-number")}, - {`0x[a-f0-9][a-f0-9_]*`, LiteralNumberHex, Push("int-suffix")}, - {`0b[01][01_]*`, LiteralNumberBin, Push("int-suffix")}, - {`0o[0-7][0-7_]*`, LiteralNumberOct, Push("int-suffix")}, - {`[0-9][0-9_]*`, LiteralNumberInteger, Push("int-suffix")}, - {`\s+`, Text, nil}, - {`.+$`, Error, nil}, - }, - "chars": { - {`\\([\\abcefnrtvl"\']|x[a-f0-9]{2}|[0-9]{1,3})`, LiteralStringEscape, nil}, - {`'`, LiteralStringChar, Pop(1)}, - {`.`, LiteralStringChar, nil}, - }, - "strings": { - {`(? <= < >= > *")...), Operator, nil}, - {`[;:]`, Punctuation, nil}, - }, - "comment": { - {`\*/`, CommentMultiline, Pop(1)}, - {`.|\n`, CommentMultiline, nil}, - }, - "paren": { - {`\)`, Punctuation, Pop(1)}, - Include("root"), - }, - "list": { - {`\]`, Punctuation, Pop(1)}, - Include("root"), - }, - "qstring": { - {`"`, StringDouble, Pop(1)}, - {`\${`, StringInterpol, Push("interpol")}, - {`\\.`, StringEscape, nil}, - {`.|\n`, StringDouble, nil}, - }, - "istring": { - {`''\$`, StringEscape, nil}, // "$" - {`'''`, StringEscape, nil}, // "''" - {`''\\.`, StringEscape, nil}, // "\." - {`''`, StringSingle, Pop(1)}, - {`\${`, StringInterpol, Push("interpol")}, - // The next rule is important: "$" escapes any symbol except "{"! - {`\$.`, StringSingle, nil}, // "$." - {`.|\n`, StringSingle, nil}, - }, - "scope": { - {`}:`, Punctuation, Pop(1)}, - {`}`, Punctuation, Pop(1)}, - {`in` + nixb, Keyword, Pop(1)}, - {`\${`, StringInterpol, Push("interpol")}, - Include("root"), // "==" has to be above "=" - {Words(``, ``, strings.Fields("= ? ,")...), Operator, nil}, - }, - "interpol": { - {`}`, StringInterpol, Pop(1)}, - Include("root"), - }, - "id": { - {`[a-zA-Z_][a-zA-Z0-9_'-]*`, Name, nil}, - }, - "uri": { - {`[a-zA-Z][a-zA-Z0-9+.-]*:[a-zA-Z0-9%/?:@&=+$,_.!~*'-]+`, StringDoc, nil}, - }, - "path": { - {`[a-zA-Z0-9._+-]*(/[a-zA-Z0-9._+-]+)+`, StringRegex, nil}, - {`~(/[a-zA-Z0-9._+-]+)+/?`, StringRegex, nil}, - {`<[a-zA-Z0-9._+-]+(/[a-zA-Z0-9._+-]+)*>`, StringRegex, nil}, - }, - "int": { - {`-?[0-9]+` + nixb, NumberInteger, nil}, - }, - "float": { - {`-?(([1-9][0-9]*\.[0-9]*)|(0?\.[0-9]+))([Ee][+-]?[0-9]+)?` + nixb, NumberFloat, nil}, - }, - "space": { - {`[ \t\r\n]+`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/o/objectivec.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/o/objectivec.go deleted file mode 100644 index e3d0b1c4fc..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/o/objectivec.go +++ /dev/null @@ -1,165 +0,0 @@ -package o - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Objective-C lexer. -var ObjectiveC = internal.Register(MustNewLexer( - &Config{ - Name: "Objective-C", - Aliases: []string{"objective-c", "objectivec", "obj-c", "objc"}, - Filenames: []string{"*.m", "*.h"}, - MimeTypes: []string{"text/x-objective-c"}, - }, - Rules{ - "statements": { - {`@"`, LiteralString, Push("string")}, - {`@(YES|NO)`, LiteralNumber, nil}, - {`@'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'`, LiteralStringChar, nil}, - {`@(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?`, LiteralNumberFloat, nil}, - {`@(\d+\.\d*|\.\d+|\d+[fF])[fF]?`, LiteralNumberFloat, nil}, - {`@0x[0-9a-fA-F]+[Ll]?`, LiteralNumberHex, nil}, - {`@0[0-7]+[Ll]?`, LiteralNumberOct, nil}, - {`@\d+[Ll]?`, LiteralNumberInteger, nil}, - {`@\(`, Literal, Push("literal_number")}, - {`@\[`, Literal, Push("literal_array")}, - {`@\{`, Literal, Push("literal_dictionary")}, - {Words(``, `\b`, `@selector`, `@private`, `@protected`, `@public`, `@encode`, `@synchronized`, `@try`, `@throw`, `@catch`, `@finally`, `@end`, `@property`, `@synthesize`, `__bridge`, `__bridge_transfer`, `__autoreleasing`, `__block`, `__weak`, `__strong`, `weak`, `strong`, `copy`, `retain`, `assign`, `unsafe_unretained`, `atomic`, `nonatomic`, `readonly`, `readwrite`, `setter`, `getter`, `typeof`, `in`, `out`, `inout`, `release`, `class`, `@dynamic`, `@optional`, `@required`, `@autoreleasepool`), Keyword, nil}, - {Words(``, `\b`, `id`, `instancetype`, `Class`, `IMP`, `SEL`, `BOOL`, `IBOutlet`, `IBAction`, `unichar`), KeywordType, nil}, - {`@(true|false|YES|NO)\n`, NameBuiltin, nil}, - {`(YES|NO|nil|self|super)\b`, NameBuiltin, nil}, - {`(Boolean|UInt8|SInt8|UInt16|SInt16|UInt32|SInt32)\b`, KeywordType, nil}, - {`(TRUE|FALSE)\b`, NameBuiltin, nil}, - {`(@interface|@implementation)(\s+)`, ByGroups(Keyword, Text), Push("#pop", "oc_classname")}, - {`(@class|@protocol)(\s+)`, ByGroups(Keyword, Text), Push("#pop", "oc_forward_classname")}, - {`@`, Punctuation, nil}, - {`(L?)(")`, ByGroups(LiteralStringAffix, LiteralString), Push("string")}, - {`(L?)(')(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])(')`, ByGroups(LiteralStringAffix, LiteralStringChar, LiteralStringChar, LiteralStringChar), nil}, - {`(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*`, LiteralNumberFloat, nil}, - {`(\d+\.\d*|\.\d+|\d+[fF])[fF]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-fA-F]+[LlUu]*`, LiteralNumberHex, nil}, - {`0[0-7]+[LlUu]*`, LiteralNumberOct, nil}, - {`\d+[LlUu]*`, LiteralNumberInteger, nil}, - {`\*/`, Error, nil}, - {`[~!%^&*+=|?:<>/-]`, Operator, nil}, - {`[()\[\],.]`, Punctuation, nil}, - {Words(``, `\b`, `asm`, `auto`, `break`, `case`, `const`, `continue`, `default`, `do`, `else`, `enum`, `extern`, `for`, `goto`, `if`, `register`, `restricted`, `return`, `sizeof`, `static`, `struct`, `switch`, `typedef`, `union`, `volatile`, `while`), Keyword, nil}, - {`(bool|int|long|float|short|double|char|unsigned|signed|void)\b`, KeywordType, nil}, - {Words(``, `\b`, `inline`, `_inline`, `__inline`, `naked`, `restrict`, `thread`, `typename`), KeywordReserved, nil}, - {`(__m(128i|128d|128|64))\b`, KeywordReserved, nil}, - {Words(`__`, `\b`, `asm`, `int8`, `based`, `except`, `int16`, `stdcall`, `cdecl`, `fastcall`, `int32`, `declspec`, `finally`, `int64`, `try`, `leave`, `wchar_t`, `w64`, `unaligned`, `raise`, `noop`, `identifier`, `forceinline`, `assume`), KeywordReserved, nil}, - {`(true|false|NULL)\b`, NameBuiltin, nil}, - {`([a-zA-Z_]\w*)(\s*)(:)(?!:)`, ByGroups(NameLabel, Text, Punctuation), nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - "oc_classname": { - {`([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{)`, ByGroups(NameClass, Text, NameClass, Text, Punctuation), Push("#pop", "oc_ivars")}, - {`([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?`, ByGroups(NameClass, Text, NameClass), Pop(1)}, - {`([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))(\s*)(\{)`, ByGroups(NameClass, Text, NameLabel, Text, Punctuation), Push("#pop", "oc_ivars")}, - {`([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))`, ByGroups(NameClass, Text, NameLabel), Pop(1)}, - {`([a-zA-Z$_][\w$]*)(\s*)(\{)`, ByGroups(NameClass, Text, Punctuation), Push("#pop", "oc_ivars")}, - {`([a-zA-Z$_][\w$]*)`, NameClass, Pop(1)}, - }, - "oc_forward_classname": { - {`([a-zA-Z$_][\w$]*)(\s*,\s*)`, ByGroups(NameClass, Text), Push("oc_forward_classname")}, - {`([a-zA-Z$_][\w$]*)(\s*;?)`, ByGroups(NameClass, Text), Pop(1)}, - }, - "oc_ivars": { - Include("whitespace"), - Include("statements"), - {`;`, Punctuation, nil}, - {`\{`, Punctuation, Push()}, - {`\}`, Punctuation, Pop(1)}, - }, - "root": { - {`^([-+])(\s*)(\(.*?\))?(\s*)([a-zA-Z$_][\w$]*:?)`, ByGroups(Punctuation, Text, UsingSelf("root"), Text, NameFunction), Push("method")}, - Include("whitespace"), - {`((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;{]*)(\{)`, ByGroups(UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), Push("function")}, - {`((?:[\w*\s])+?(?:\s|[*]))([a-zA-Z_]\w*)(\s*\([^;]*?\))([^;]*)(;)`, ByGroups(UsingSelf("root"), NameFunction, UsingSelf("root"), UsingSelf("root"), Punctuation), nil}, - Default(Push("statement")), - }, - "method": { - Include("whitespace"), - {`,`, Punctuation, nil}, - {`\.\.\.`, Punctuation, nil}, - {`(\(.*?\))(\s*)([a-zA-Z$_][\w$]*)`, ByGroups(UsingSelf("root"), Text, NameVariable), nil}, - {`[a-zA-Z$_][\w$]*:`, NameFunction, nil}, - {`;`, Punctuation, Pop(1)}, - {`\{`, Punctuation, Push("function")}, - Default(Pop(1)), - }, - "literal_number": { - {`\(`, Punctuation, Push("literal_number_inner")}, - {`\)`, Literal, Pop(1)}, - Include("statement"), - }, - "literal_number_inner": { - {`\(`, Punctuation, Push()}, - {`\)`, Punctuation, Pop(1)}, - Include("statement"), - }, - "literal_array": { - {`\[`, Punctuation, Push("literal_array_inner")}, - {`\]`, Literal, Pop(1)}, - Include("statement"), - }, - "literal_array_inner": { - {`\[`, Punctuation, Push()}, - {`\]`, Punctuation, Pop(1)}, - Include("statement"), - }, - "literal_dictionary": { - {`\}`, Literal, Pop(1)}, - Include("statement"), - }, - "whitespace": { - {`^#if\s+0`, CommentPreproc, Push("if0")}, - {`^#`, CommentPreproc, Push("macro")}, - {`^(\s*(?:/[*].*?[*]/\s*)?)(#if\s+0)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("if0")}, - {`^(\s*(?:/[*].*?[*]/\s*)?)(#)`, ByGroups(UsingSelf("root"), CommentPreproc), Push("macro")}, - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`\\\n`, Text, nil}, - {`//(\n|[\w\W]*?[^\\]\n)`, CommentSingle, nil}, - {`/(\\\n)?[*][\w\W]*?[*](\\\n)?/`, CommentMultiline, nil}, - {`/(\\\n)?[*][\w\W]*`, CommentMultiline, nil}, - }, - "statement": { - Include("whitespace"), - Include("statements"), - {`[{}]`, Punctuation, nil}, - {`;`, Punctuation, Pop(1)}, - }, - "function": { - Include("whitespace"), - Include("statements"), - {`;`, Punctuation, nil}, - {`\{`, Punctuation, Push()}, - {`\}`, Punctuation, Pop(1)}, - }, - "string": { - {`"`, LiteralString, Pop(1)}, - {`\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})`, LiteralStringEscape, nil}, - {`[^\\"\n]+`, LiteralString, nil}, - {`\\\n`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - }, - "macro": { - {`(include)(\s*(?:/[*].*?[*]/\s*)?)([^\n]+)`, ByGroups(CommentPreproc, Text, CommentPreprocFile), nil}, - {`[^/\n]+`, CommentPreproc, nil}, - {`/[*](.|\n)*?[*]/`, CommentMultiline, nil}, - {`//.*?\n`, CommentSingle, Pop(1)}, - {`/`, CommentPreproc, nil}, - {`(?<=\\)\n`, CommentPreproc, nil}, - {`\n`, CommentPreproc, Pop(1)}, - }, - "if0": { - {`^\s*#if.*?(?|\\[<|\\[|\\?\\?|\\?|>\\}|>]|>|=|<-|<|;;|;|:>|:=|::|:|\\.\\.|\\.|->|-\\.|-|,|\\+|\\*|\\)|\\(|&&|&|#|!=)", Operator, nil}, - {`([=<>@^|&+\*/$%-]|[!?~])?[!$%&*+\./:<=>?@^|~-]`, Operator, nil}, - {`\b(and|asr|land|lor|lsl|lxor|mod|or)\b`, OperatorWord, nil}, - {`\b(unit|int|float|bool|string|char|list|array)\b`, KeywordType, nil}, - {`[^\W\d][\w']*`, Name, nil}, - {`-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)`, LiteralNumberFloat, nil}, - {`0[xX][\da-fA-F][\da-fA-F_]*`, LiteralNumberHex, nil}, - {`0[oO][0-7][0-7_]*`, LiteralNumberOct, nil}, - {`0[bB][01][01_]*`, LiteralNumberBin, nil}, - {`\d[\d_]*`, LiteralNumberInteger, nil}, - {`'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'`, LiteralStringChar, nil}, - {`'.'`, LiteralStringChar, nil}, - {`'`, Keyword, nil}, - {`"`, LiteralStringDouble, Push("string")}, - {`[~?][a-z][\w\']*:`, NameVariable, nil}, - }, - "comment": { - {`[^(*)]+`, Comment, nil}, - {`\(\*`, Comment, Push()}, - {`\*\)`, Comment, Pop(1)}, - {`[(*)]`, Comment, nil}, - }, - "string": { - {`[^\\"]+`, LiteralStringDouble, nil}, - Include("escape-sequence"), - {`\\\n`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "dotted": { - {`\s+`, Text, nil}, - {`\.`, Punctuation, nil}, - {`[A-Z][\w\']*(?=\s*\.)`, NameNamespace, nil}, - {`[A-Z][\w\']*`, NameClass, Pop(1)}, - {`[a-z_][\w\']*`, Name, Pop(1)}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/o/octave.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/o/octave.go deleted file mode 100644 index c23b586f23..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/o/octave.go +++ /dev/null @@ -1,46 +0,0 @@ -package o - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Octave lexer. -var Octave = internal.Register(MustNewLexer( - &Config{ - Name: "Octave", - Aliases: []string{"octave"}, - Filenames: []string{"*.m"}, - MimeTypes: []string{"text/octave"}, - }, - Rules{ - "root": { - {`[%#].*$`, Comment, nil}, - {`^\s*function`, Keyword, Push("deffunc")}, - {Words(``, `\b`, `__FILE__`, `__LINE__`, `break`, `case`, `catch`, `classdef`, `continue`, `do`, `else`, `elseif`, `end`, `end_try_catch`, `end_unwind_protect`, `endclassdef`, `endevents`, `endfor`, `endfunction`, `endif`, `endmethods`, `endproperties`, `endswitch`, `endwhile`, `events`, `for`, `function`, `get`, `global`, `if`, `methods`, `otherwise`, `persistent`, `properties`, `return`, `set`, `static`, `switch`, `try`, `until`, `unwind_protect`, `unwind_protect_cleanup`, `while`), Keyword, nil}, - {Words(``, `\b`, `addlistener`, `addpath`, `addproperty`, `all`, `and`, `any`, `argnames`, `argv`, `assignin`, `atexit`, `autoload`, `available_graphics_toolkits`, `beep_on_error`, `bitand`, `bitmax`, `bitor`, `bitshift`, `bitxor`, `cat`, `cell`, `cellstr`, `char`, `class`, `clc`, `columns`, `command_line_path`, `completion_append_char`, `completion_matches`, `complex`, `confirm_recursive_rmdir`, `cputime`, `crash_dumps_octave_core`, `ctranspose`, `cumprod`, `cumsum`, `debug_on_error`, `debug_on_interrupt`, `debug_on_warning`, `default_save_options`, `dellistener`, `diag`, `diff`, `disp`, `doc_cache_file`, `do_string_escapes`, `double`, `drawnow`, `e`, `echo_executing_commands`, `eps`, `eq`, `errno`, `errno_list`, `error`, `eval`, `evalin`, `exec`, `exist`, `exit`, `eye`, `false`, `fclear`, `fclose`, `fcntl`, `fdisp`, `feof`, `ferror`, `feval`, `fflush`, `fgetl`, `fgets`, `fieldnames`, `file_in_loadpath`, `file_in_path`, `filemarker`, `filesep`, `find_dir_in_path`, `fixed_point_format`, `fnmatch`, `fopen`, `fork`, `formula`, `fprintf`, `fputs`, `fread`, `freport`, `frewind`, `fscanf`, `fseek`, `fskipl`, `ftell`, `functions`, `fwrite`, `ge`, `genpath`, `get`, `getegid`, `getenv`, `geteuid`, `getgid`, `getpgrp`, `getpid`, `getppid`, `getuid`, `glob`, `gt`, `gui_mode`, `history_control`, `history_file`, `history_size`, `history_timestamp_format_string`, `home`, `horzcat`, `hypot`, `ifelse`, `ignore_function_time_stamp`, `inferiorto`, `info_file`, `info_program`, `inline`, `input`, `intmax`, `intmin`, `ipermute`, `is_absolute_filename`, `isargout`, `isbool`, `iscell`, `iscellstr`, `ischar`, `iscomplex`, `isempty`, `isfield`, `isfloat`, `isglobal`, `ishandle`, `isieee`, `isindex`, `isinteger`, `islogical`, `ismatrix`, `ismethod`, `isnull`, `isnumeric`, `isobject`, `isreal`, `is_rooted_relative_filename`, `issorted`, `isstruct`, `isvarname`, `kbhit`, `keyboard`, `kill`, `lasterr`, `lasterror`, `lastwarn`, `ldivide`, `le`, `length`, `link`, `linspace`, `logical`, `lstat`, `lt`, `make_absolute_filename`, `makeinfo_program`, `max_recursion_depth`, `merge`, `methods`, `mfilename`, `minus`, `mislocked`, `mkdir`, `mkfifo`, `mkstemp`, `mldivide`, `mlock`, `mouse_wheel_zoom`, `mpower`, `mrdivide`, `mtimes`, `munlock`, `nargin`, `nargout`, `native_float_format`, `ndims`, `ne`, `nfields`, `nnz`, `norm`, `not`, `numel`, `nzmax`, `octave_config_info`, `octave_core_file_limit`, `octave_core_file_name`, `octave_core_file_options`, `ones`, `or`, `output_max_field_width`, `output_precision`, `page_output_immediately`, `page_screen_output`, `path`, `pathsep`, `pause`, `pclose`, `permute`, `pi`, `pipe`, `plus`, `popen`, `power`, `print_empty_dimensions`, `printf`, `print_struct_array_contents`, `prod`, `program_invocation_name`, `program_name`, `putenv`, `puts`, `pwd`, `quit`, `rats`, `rdivide`, `readdir`, `readlink`, `read_readline_init_file`, `realmax`, `realmin`, `rehash`, `rename`, `repelems`, `re_read_readline_init_file`, `reset`, `reshape`, `resize`, `restoredefaultpath`, `rethrow`, `rmdir`, `rmfield`, `rmpath`, `rows`, `save_header_format_string`, `save_precision`, `saving_history`, `scanf`, `set`, `setenv`, `shell_cmd`, `sighup_dumps_octave_core`, `sigterm_dumps_octave_core`, `silent_functions`, `single`, `size`, `size_equal`, `sizemax`, `sizeof`, `sleep`, `source`, `sparse_auto_mutate`, `split_long_rows`, `sprintf`, `squeeze`, `sscanf`, `stat`, `stderr`, `stdin`, `stdout`, `strcmp`, `strcmpi`, `string_fill_char`, `strncmp`, `strncmpi`, `struct`, `struct_levels_to_print`, `strvcat`, `subsasgn`, `subsref`, `sum`, `sumsq`, `superiorto`, `suppress_verbose_help_message`, `symlink`, `system`, `tic`, `tilde_expand`, `times`, `tmpfile`, `tmpnam`, `toc`, `toupper`, `transpose`, `true`, `typeinfo`, `umask`, `uminus`, `uname`, `undo_string_escapes`, `unlink`, `uplus`, `upper`, `usage`, `usleep`, `vec`, `vectorize`, `vertcat`, `waitpid`, `warning`, `warranty`, `whos_line_format`, `yes_or_no`, `zeros`, `inf`, `Inf`, `nan`, `NaN`, `close`, `load`, `who`, `whos`, `accumarray`, `accumdim`, `acosd`, `acotd`, `acscd`, `addtodate`, `allchild`, `ancestor`, `anova`, `arch_fit`, `arch_rnd`, `arch_test`, `area`, `arma_rnd`, `arrayfun`, `ascii`, `asctime`, `asecd`, `asind`, `assert`, `atand`, `autoreg_matrix`, `autumn`, `axes`, `axis`, `bar`, `barh`, `bartlett`, `bartlett_test`, `beep`, `betacdf`, `betainv`, `betapdf`, `betarnd`, `bicgstab`, `bicubic`, `binary`, `binocdf`, `binoinv`, `binopdf`, `binornd`, `bitcmp`, `bitget`, `bitset`, `blackman`, `blanks`, `blkdiag`, `bone`, `box`, `brighten`, `calendar`, `cast`, `cauchy_cdf`, `cauchy_inv`, `cauchy_pdf`, `cauchy_rnd`, `caxis`, `celldisp`, `center`, `cgs`, `chisquare_test_homogeneity`, `chisquare_test_independence`, `circshift`, `cla`, `clabel`, `clf`, `clock`, `cloglog`, `closereq`, `colon`, `colorbar`, `colormap`, `colperm`, `comet`, `common_size`, `commutation_matrix`, `compan`, `compare_versions`, `compass`, `computer`, `cond`, `condest`, `contour`, `contourc`, `contourf`, `contrast`, `conv`, `convhull`, `cool`, `copper`, `copyfile`, `cor`, `corrcoef`, `cor_test`, `cosd`, `cotd`, `cov`, `cplxpair`, `cross`, `cscd`, `cstrcat`, `csvread`, `csvwrite`, `ctime`, `cumtrapz`, `curl`, `cut`, `cylinder`, `date`, `datenum`, `datestr`, `datetick`, `datevec`, `dblquad`, `deal`, `deblank`, `deconv`, `delaunay`, `delaunayn`, `delete`, `demo`, `detrend`, `diffpara`, `diffuse`, `dir`, `discrete_cdf`, `discrete_inv`, `discrete_pdf`, `discrete_rnd`, `display`, `divergence`, `dlmwrite`, `dos`, `dsearch`, `dsearchn`, `duplication_matrix`, `durbinlevinson`, `ellipsoid`, `empirical_cdf`, `empirical_inv`, `empirical_pdf`, `empirical_rnd`, `eomday`, `errorbar`, `etime`, `etreeplot`, `example`, `expcdf`, `expinv`, `expm`, `exppdf`, `exprnd`, `ezcontour`, `ezcontourf`, `ezmesh`, `ezmeshc`, `ezplot`, `ezpolar`, `ezsurf`, `ezsurfc`, `factor`, `factorial`, `fail`, `fcdf`, `feather`, `fftconv`, `fftfilt`, `fftshift`, `figure`, `fileattrib`, `fileparts`, `fill`, `findall`, `findobj`, `findstr`, `finv`, `flag`, `flipdim`, `fliplr`, `flipud`, `fpdf`, `fplot`, `fractdiff`, `freqz`, `freqz_plot`, `frnd`, `fsolve`, `f_test_regression`, `ftp`, `fullfile`, `fzero`, `gamcdf`, `gaminv`, `gampdf`, `gamrnd`, `gca`, `gcbf`, `gcbo`, `gcf`, `genvarname`, `geocdf`, `geoinv`, `geopdf`, `geornd`, `getfield`, `ginput`, `glpk`, `gls`, `gplot`, `gradient`, `graphics_toolkit`, `gray`, `grid`, `griddata`, `griddatan`, `gtext`, `gunzip`, `gzip`, `hadamard`, `hamming`, `hankel`, `hanning`, `hggroup`, `hidden`, `hilb`, `hist`, `histc`, `hold`, `hot`, `hotelling_test`, `housh`, `hsv`, `hurst`, `hygecdf`, `hygeinv`, `hygepdf`, `hygernd`, `idivide`, `ifftshift`, `image`, `imagesc`, `imfinfo`, `imread`, `imshow`, `imwrite`, `index`, `info`, `inpolygon`, `inputname`, `interpft`, `interpn`, `intersect`, `invhilb`, `iqr`, `isa`, `isdefinite`, `isdir`, `is_duplicate_entry`, `isequal`, `isequalwithequalnans`, `isfigure`, `ishermitian`, `ishghandle`, `is_leap_year`, `isletter`, `ismac`, `ismember`, `ispc`, `isprime`, `isprop`, `isscalar`, `issquare`, `isstrprop`, `issymmetric`, `isunix`, `is_valid_file_id`, `isvector`, `jet`, `kendall`, `kolmogorov_smirnov_cdf`, `kolmogorov_smirnov_test`, `kruskal_wallis_test`, `krylov`, `kurtosis`, `laplace_cdf`, `laplace_inv`, `laplace_pdf`, `laplace_rnd`, `legend`, `legendre`, `license`, `line`, `linkprop`, `list_primes`, `loadaudio`, `loadobj`, `logistic_cdf`, `logistic_inv`, `logistic_pdf`, `logistic_rnd`, `logit`, `loglog`, `loglogerr`, `logm`, `logncdf`, `logninv`, `lognpdf`, `lognrnd`, `logspace`, `lookfor`, `ls_command`, `lsqnonneg`, `magic`, `mahalanobis`, `manova`, `matlabroot`, `mcnemar_test`, `mean`, `meansq`, `median`, `menu`, `mesh`, `meshc`, `meshgrid`, `meshz`, `mexext`, `mget`, `mkpp`, `mode`, `moment`, `movefile`, `mpoles`, `mput`, `namelengthmax`, `nargchk`, `nargoutchk`, `nbincdf`, `nbininv`, `nbinpdf`, `nbinrnd`, `nchoosek`, `ndgrid`, `newplot`, `news`, `nonzeros`, `normcdf`, `normest`, `norminv`, `normpdf`, `normrnd`, `now`, `nthroot`, `null`, `ocean`, `ols`, `onenormest`, `optimget`, `optimset`, `orderfields`, `orient`, `orth`, `pack`, `pareto`, `parseparams`, `pascal`, `patch`, `pathdef`, `pcg`, `pchip`, `pcolor`, `pcr`, `peaks`, `periodogram`, `perl`, `perms`, `pie`, `pink`, `planerot`, `playaudio`, `plot`, `plotmatrix`, `plotyy`, `poisscdf`, `poissinv`, `poisspdf`, `poissrnd`, `polar`, `poly`, `polyaffine`, `polyarea`, `polyderiv`, `polyfit`, `polygcd`, `polyint`, `polyout`, `polyreduce`, `polyval`, `polyvalm`, `postpad`, `powerset`, `ppder`, `ppint`, `ppjumps`, `ppplot`, `ppval`, `pqpnonneg`, `prepad`, `primes`, `print`, `print_usage`, `prism`, `probit`, `qp`, `qqplot`, `quadcc`, `quadgk`, `quadl`, `quadv`, `quiver`, `qzhess`, `rainbow`, `randi`, `range`, `rank`, `ranks`, `rat`, `reallog`, `realpow`, `realsqrt`, `record`, `rectangle_lw`, `rectangle_sw`, `rectint`, `refresh`, `refreshdata`, `regexptranslate`, `repmat`, `residue`, `ribbon`, `rindex`, `roots`, `rose`, `rosser`, `rotdim`, `rref`, `run`, `run_count`, `rundemos`, `run_test`, `runtests`, `saveas`, `saveaudio`, `saveobj`, `savepath`, `scatter`, `secd`, `semilogx`, `semilogxerr`, `semilogy`, `semilogyerr`, `setaudio`, `setdiff`, `setfield`, `setxor`, `shading`, `shift`, `shiftdim`, `sign_test`, `sinc`, `sind`, `sinetone`, `sinewave`, `skewness`, `slice`, `sombrero`, `sortrows`, `spaugment`, `spconvert`, `spdiags`, `spearman`, `spectral_adf`, `spectral_xdf`, `specular`, `speed`, `spencer`, `speye`, `spfun`, `sphere`, `spinmap`, `spline`, `spones`, `sprand`, `sprandn`, `sprandsym`, `spring`, `spstats`, `spy`, `sqp`, `stairs`, `statistics`, `std`, `stdnormal_cdf`, `stdnormal_inv`, `stdnormal_pdf`, `stdnormal_rnd`, `stem`, `stft`, `strcat`, `strchr`, `strjust`, `strmatch`, `strread`, `strsplit`, `strtok`, `strtrim`, `strtrunc`, `structfun`, `studentize`, `subplot`, `subsindex`, `subspace`, `substr`, `substruct`, `summer`, `surf`, `surface`, `surfc`, `surfl`, `surfnorm`, `svds`, `swapbytes`, `sylvester_matrix`, `symvar`, `synthesis`, `table`, `tand`, `tar`, `tcdf`, `tempdir`, `tempname`, `test`, `text`, `textread`, `textscan`, `tinv`, `title`, `toeplitz`, `tpdf`, `trace`, `trapz`, `treelayout`, `treeplot`, `triangle_lw`, `triangle_sw`, `tril`, `trimesh`, `triplequad`, `triplot`, `trisurf`, `triu`, `trnd`, `tsearchn`, `t_test`, `t_test_regression`, `type`, `unidcdf`, `unidinv`, `unidpdf`, `unidrnd`, `unifcdf`, `unifinv`, `unifpdf`, `unifrnd`, `union`, `unique`, `unix`, `unmkpp`, `unpack`, `untabify`, `untar`, `unwrap`, `unzip`, `u_test`, `validatestring`, `vander`, `var`, `var_test`, `vech`, `ver`, `version`, `view`, `voronoi`, `voronoin`, `waitforbuttonpress`, `wavread`, `wavwrite`, `wblcdf`, `wblinv`, `wblpdf`, `wblrnd`, `weekday`, `welch_test`, `what`, `white`, `whitebg`, `wienrnd`, `wilcoxon_test`, `wilkinson`, `winter`, `xlabel`, `xlim`, `ylabel`, `yulewalker`, `zip`, `zlabel`, `z_test`, `airy`, `amd`, `balance`, `besselh`, `besseli`, `besselj`, `besselk`, `bessely`, `bitpack`, `bsxfun`, `builtin`, `ccolamd`, `cellfun`, `cellslices`, `chol`, `choldelete`, `cholinsert`, `cholinv`, `cholshift`, `cholupdate`, `colamd`, `colloc`, `convhulln`, `convn`, `csymamd`, `cummax`, `cummin`, `daspk`, `daspk_options`, `dasrt`, `dasrt_options`, `dassl`, `dassl_options`, `dbclear`, `dbdown`, `dbstack`, `dbstatus`, `dbstop`, `dbtype`, `dbup`, `dbwhere`, `det`, `dlmread`, `dmperm`, `dot`, `eig`, `eigs`, `endgrent`, `endpwent`, `etree`, `fft`, `fftn`, `fftw`, `filter`, `find`, `full`, `gcd`, `getgrent`, `getgrgid`, `getgrnam`, `getpwent`, `getpwnam`, `getpwuid`, `getrusage`, `givens`, `gmtime`, `gnuplot_binary`, `hess`, `ifft`, `ifftn`, `inv`, `isdebugmode`, `issparse`, `kron`, `localtime`, `lookup`, `lsode`, `lsode_options`, `lu`, `luinc`, `luupdate`, `matrix_type`, `max`, `min`, `mktime`, `pinv`, `qr`, `qrdelete`, `qrinsert`, `qrshift`, `qrupdate`, `quad`, `quad_options`, `qz`, `rand`, `rande`, `randg`, `randn`, `randp`, `randperm`, `rcond`, `regexp`, `regexpi`, `regexprep`, `schur`, `setgrent`, `setpwent`, `sort`, `spalloc`, `sparse`, `spparms`, `sprank`, `sqrtm`, `strfind`, `strftime`, `strptime`, `strrep`, `svd`, `svd_driver`, `syl`, `symamd`, `symbfact`, `symrcm`, `time`, `tsearch`, `typecast`, `urlread`, `urlwrite`, `abs`, `acos`, `acosh`, `acot`, `acoth`, `acsc`, `acsch`, `angle`, `arg`, `asec`, `asech`, `asin`, `asinh`, `atan`, `atanh`, `beta`, `betainc`, `betaln`, `bincoeff`, `cbrt`, `ceil`, `conj`, `cos`, `cosh`, `cot`, `coth`, `csc`, `csch`, `erf`, `erfc`, `erfcx`, `erfinv`, `exp`, `finite`, `fix`, `floor`, `fmod`, `gamma`, `gammainc`, `gammaln`, `imag`, `isalnum`, `isalpha`, `isascii`, `iscntrl`, `isdigit`, `isfinite`, `isgraph`, `isinf`, `islower`, `isna`, `isnan`, `isprint`, `ispunct`, `isspace`, `isupper`, `isxdigit`, `lcm`, `lgamma`, `log`, `lower`, `mod`, `real`, `rem`, `round`, `roundb`, `sec`, `sech`, `sign`, `sin`, `sinh`, `sqrt`, `tan`, `tanh`, `toascii`, `tolower`, `xor`), NameBuiltin, nil}, - {Words(``, `\b`, `EDITOR`, `EXEC_PATH`, `I`, `IMAGE_PATH`, `NA`, `OCTAVE_HOME`, `OCTAVE_VERSION`, `PAGER`, `PAGER_FLAGS`, `SEEK_CUR`, `SEEK_END`, `SEEK_SET`, `SIG`, `S_ISBLK`, `S_ISCHR`, `S_ISDIR`, `S_ISFIFO`, `S_ISLNK`, `S_ISREG`, `S_ISSOCK`, `WCONTINUE`, `WCOREDUMP`, `WEXITSTATUS`, `WIFCONTINUED`, `WIFEXITED`, `WIFSIGNALED`, `WIFSTOPPED`, `WNOHANG`, `WSTOPSIG`, `WTERMSIG`, `WUNTRACED`), NameConstant, nil}, - {`-=|!=|!|/=|--`, Operator, nil}, - {`-|==|~=|<|>|<=|>=|&&|&|~|\|\|?`, Operator, nil}, - {`\*=|\+=|\^=|\/=|\\=|\*\*|\+\+|\.\*\*`, Operator, nil}, - {`\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\`, Operator, nil}, - {`[\[\](){}:@.,]`, Punctuation, nil}, - {`=|:|;`, Punctuation, nil}, - {`"[^"]*"`, LiteralString, nil}, - {`(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`\d+[eEf][+-]?[0-9]+`, LiteralNumberFloat, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`(?<=[\w)\].])\'+`, Operator, nil}, - {`(?=|>|&&|\|\|`, Operator, nil}, - {`\$(f[asn]|t|vp[rtd]|children)`, NameVariableMagic, nil}, - {Words(``, `\b`, `PI`, `undef`), KeywordConstant, nil}, - {`(use|include)((?:\s|\\\\s)+)`, ByGroups(KeywordNamespace, Text), Push("includes")}, - {`(module)(\s*)([^\s\(]+)`, ByGroups(KeywordNamespace, Text, NameNamespace), nil}, - {`(function)(\s*)([^\s\(]+)`, ByGroups(KeywordDeclaration, Text, NameFunction), nil}, - {`\b(true|false)\b`, Literal, nil}, - {`\b(function|module|include|use|for|intersection_for|if|else|return)\b`, Keyword, nil}, - {`\b(circle|square|polygon|text|sphere|cube|cylinder|polyhedron|translate|rotate|scale|resize|mirror|multmatrix|color|offset|hull|minkowski|union|difference|intersection|abs|sign|sin|cos|tan|acos|asin|atan|atan2|floor|round|ceil|ln|log|pow|sqrt|exp|rands|min|max|concat|lookup|str|chr|search|version|version_num|norm|cross|parent_module|echo|import|import_dxf|dxf_linear_extrude|linear_extrude|rotate_extrude|surface|projection|render|dxf_cross|dxf_dim|let|assign|len)\b`, NameBuiltin, nil}, - {`\bchildren\b`, NameBuiltinPseudo, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`-?\d+(\.\d+)?(e[+-]?\d+)?`, Number, nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - "includes": { - {"(<)([^>]*)(>)", ByGroups(Punctuation, CommentPreprocFile, Punctuation), nil}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/o/org.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/o/org.go deleted file mode 100644 index 1064eaf0f0..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/o/org.go +++ /dev/null @@ -1,102 +0,0 @@ -package o - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Org mode lexer. -var Org = internal.Register(MustNewLexer( - &Config{ - Name: "Org Mode", - Aliases: []string{"org", "orgmode"}, - Filenames: []string{"*.org"}, - MimeTypes: []string{"text/org"}, // https://lists.gnu.org/r/emacs-orgmode/2017-09/msg00087.html - }, - Rules{ - "root": { - {`^# .*$`, Comment, nil}, - // Headings - {`^(\*)( COMMENT)( .*)$`, ByGroups(GenericHeading, NameEntity, GenericStrong), nil}, - {`^(\*\*+)( COMMENT)( .*)$`, ByGroups(GenericSubheading, NameEntity, Text), nil}, - {`^(\*)( DONE)( .*)$`, ByGroups(GenericHeading, LiteralStringRegex, GenericStrong), nil}, - {`^(\*\*+)( DONE)( .*)$`, ByGroups(GenericSubheading, LiteralStringRegex, Text), nil}, - {`^(\*)( TODO)( .*)$`, ByGroups(GenericHeading, Error, GenericStrong), nil}, - {`^(\*\*+)( TODO)( .*)$`, ByGroups(GenericSubheading, Error, Text), nil}, - {`^(\*)( .+?)( :[a-zA-Z0-9_@:]+:)$`, ByGroups(GenericHeading, GenericStrong, GenericEmph), nil}, // Level 1 heading with tags - {`^(\*)( .+)$`, ByGroups(GenericHeading, GenericStrong), nil}, // // Level 1 heading with NO tags - {`^(\*\*+)( .+?)( :[a-zA-Z0-9_@:]+:)$`, ByGroups(GenericSubheading, Text, GenericEmph), nil}, // Level 2+ heading with tags - {`^(\*\*+)( .+)$`, ByGroups(GenericSubheading, Text), nil}, // Level 2+ heading with NO tags - // Checkbox lists - {`^( *)([+-] )(\[[ X]\])( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil}, - {`^( +)(\* )(\[[ X]\])( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil}, - // Definition lists - {`^( *)([+-] )([^ \n]+ ::)( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil}, - {`^( +)(\* )([^ \n]+ ::)( .+)$`, ByGroups(Text, Keyword, Keyword, UsingSelf("inline")), nil}, - // Unordered lists - {`^( *)([+-] )(.+)$`, ByGroups(Text, Keyword, UsingSelf("inline")), nil}, - {`^( +)(\* )(.+)$`, ByGroups(Text, Keyword, UsingSelf("inline")), nil}, - // Ordered lists - {`^( *)([0-9]+[.)])( \[@[0-9]+\])( .+)$`, ByGroups(Text, Keyword, GenericEmph, UsingSelf("inline")), nil}, - {`^( *)([0-9]+[.)])( .+)$`, ByGroups(Text, Keyword, UsingSelf("inline")), nil}, - // Dynamic Blocks - {`(?i)^( *#\+begin: )([^ ]+)([\w\W]*?\n)([\w\W]*?)(^ *#\+end: *$)`, ByGroups(Comment, CommentSpecial, Comment, UsingSelf("inline"), Comment), nil}, - // Blocks - // - Comment Blocks - {`(?i)^( *#\+begin_comment *\n)([\w\W]*?)(^ *#\+end_comment *$)`, ByGroups(Comment, Comment, Comment), nil}, - // - Src Blocks - {`(?i)^( *#\+begin_src )([^ \n]+)(.*?\n)([\w\W]*?)(^ *#\+end_src *$)`, - UsingByGroup( - internal.Get, - 2, 4, - Comment, CommentSpecial, Comment, Text, Comment, - ), - nil, - }, - // - Export Blocks - {`(?i)^( *#\+begin_export )(\w+)( *\n)([\w\W]*?)(^ *#\+end_export *$)`, - UsingByGroup( - internal.Get, - 2, 4, - Comment, CommentSpecial, Text, Text, Comment, - ), - nil, - }, - // - Org Special, Example, Verse, etc. Blocks - {`(?i)^( *#\+begin_)(\w+)( *\n)([\w\W]*?)(^ *#\+end_\2)( *$)`, ByGroups(Comment, Comment, Text, Text, Comment, Text), nil}, - // Keywords - {`^(#\+\w+)(:.*)$`, ByGroups(CommentSpecial, Comment), nil}, // Other Org keywords like #+title - // Properties and Drawers - {`(?i)^( *:\w+: *\n)([\w\W]*?)(^ *:end: *$)`, ByGroups(Comment, CommentSpecial, Comment), nil}, - // Line break operator - {`^(.*)(\\\\)$`, ByGroups(UsingSelf("inline"), Operator), nil}, - // Deadline/Scheduled - {`(?i)^( *(?:DEADLINE|SCHEDULED): )(<[^<>]+?> *)$`, ByGroups(Comment, CommentSpecial), nil}, // DEADLINE/SCHEDULED: - // DONE state CLOSED - {`(?i)^( *CLOSED: )(\[[^][]+?\] *)$`, ByGroups(Comment, CommentSpecial), nil}, // CLOSED: [datestamp] - // All other lines - Include("inline"), - }, - "inline": { - {`(\s)*(\*[^ \n*][^*]+?[^ \n*]\*)((?=\W|\n|$))`, ByGroups(Text, GenericStrong, Text), nil}, // Bold - {`(\s)*(/[^/]+?/)((?=\W|\n|$))`, ByGroups(Text, GenericEmph, Text), nil}, // Italic - {`(\s)*(=[^\n=]+?=)((?=\W|\n|$))`, ByGroups(Text, NameClass, Text), nil}, // Verbatim - {`(\s)*(~[^\n~]+?~)((?=\W|\n|$))`, ByGroups(Text, NameClass, Text), nil}, // Code - {`(\s)*(\+[^+]+?\+)((?=\W|\n|$))`, ByGroups(Text, GenericDeleted, Text), nil}, // Strikethrough - {`(\s)*(_[^_]+?_)((?=\W|\n|$))`, ByGroups(Text, GenericUnderline, Text), nil}, // Underline - {`(<)([^<>]+?)(>)`, ByGroups(Text, String, Text), nil}, // - {`[{]{3}[^}]+[}]{3}`, NameBuiltin, nil}, // {{{macro(foo,1)}}} - {`([^[])(\[fn:)([^]]+?)(\])([^]])`, ByGroups(Text, NameBuiltinPseudo, LiteralString, NameBuiltinPseudo, Text), nil}, // [fn:1] - // Links - {`(\[\[)([^][]+?)(\]\[)([^][]+)(\]\])`, ByGroups(Text, NameAttribute, Text, NameTag, Text), nil}, // [[link][descr]] - {`(\[\[)([^][]+?)(\]\])`, ByGroups(Text, NameAttribute, Text), nil}, // [[link]] - {`(<<)([^<>]+?)(>>)`, ByGroups(Text, NameAttribute, Text), nil}, // <> - // Tables - {`^( *)(\|[ -].*?[ -]\|)$`, ByGroups(Text, String), nil}, - // Blank lines, newlines - {`\n`, Text, nil}, - // Any other text - {`.`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pacman.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pacman.go deleted file mode 100644 index 807b67c564..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pacman.go +++ /dev/null @@ -1,26 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Pacmanconf lexer. -var Pacmanconf = internal.Register(MustNewLexer( - &Config{ - Name: "PacmanConf", - Aliases: []string{"pacmanconf"}, - Filenames: []string{"pacman.conf"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`#.*$`, CommentSingle, nil}, - {`^\s*\[.*?\]\s*$`, Keyword, nil}, - {`(\w+)(\s*)(=)`, ByGroups(NameAttribute, Text, Operator), nil}, - {`^(\s*)(\w+)(\s*)$`, ByGroups(Text, NameAttribute, Text), nil}, - {Words(``, `\b`, `$repo`, `$arch`, `%o`, `%u`), NameVariable, nil}, - {`.`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/perl.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/perl.go deleted file mode 100644 index 0a2b35b9a3..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/perl.go +++ /dev/null @@ -1,138 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Perl lexer. -var Perl = internal.Register(MustNewLexer( - &Config{ - Name: "Perl", - Aliases: []string{"perl", "pl"}, - Filenames: []string{"*.pl", "*.pm", "*.t"}, - MimeTypes: []string{"text/x-perl", "application/x-perl"}, - DotAll: true, - }, - Rules{ - "balanced-regex": { - {`/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*`, LiteralStringRegex, Pop(1)}, - {`!(\\\\|\\[^\\]|[^\\!])*![egimosx]*`, LiteralStringRegex, Pop(1)}, - {`\\(\\\\|[^\\])*\\[egimosx]*`, LiteralStringRegex, Pop(1)}, - {`\{(\\\\|\\[^\\]|[^\\}])*\}[egimosx]*`, LiteralStringRegex, Pop(1)}, - {`<(\\\\|\\[^\\]|[^\\>])*>[egimosx]*`, LiteralStringRegex, Pop(1)}, - {`\[(\\\\|\\[^\\]|[^\\\]])*\][egimosx]*`, LiteralStringRegex, Pop(1)}, - {`\((\\\\|\\[^\\]|[^\\)])*\)[egimosx]*`, LiteralStringRegex, Pop(1)}, - {`@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*`, LiteralStringRegex, Pop(1)}, - {`%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*`, LiteralStringRegex, Pop(1)}, - {`\$(\\\\|\\[^\\]|[^\\$])*\$[egimosx]*`, LiteralStringRegex, Pop(1)}, - }, - "root": { - {`\A\#!.+?$`, CommentHashbang, nil}, - {`\#.*?$`, CommentSingle, nil}, - {`^=[a-zA-Z0-9]+\s+.*?\n=cut`, CommentMultiline, nil}, - {Words(``, `\b`, `case`, `continue`, `do`, `else`, `elsif`, `for`, `foreach`, `if`, `last`, `my`, `next`, `our`, `redo`, `reset`, `then`, `unless`, `until`, `while`, `print`, `new`, `BEGIN`, `CHECK`, `INIT`, `END`, `return`), Keyword, nil}, - {`(format)(\s+)(\w+)(\s*)(=)(\s*\n)`, ByGroups(Keyword, Text, Name, Text, Punctuation, Text), Push("format")}, - {`(eq|lt|gt|le|ge|ne|not|and|or|cmp)\b`, OperatorWord, nil}, - {`s/(\\\\|\\[^\\]|[^\\/])*/(\\\\|\\[^\\]|[^\\/])*/[egimosx]*`, LiteralStringRegex, nil}, - {`s!(\\\\|\\!|[^!])*!(\\\\|\\!|[^!])*![egimosx]*`, LiteralStringRegex, nil}, - {`s\\(\\\\|[^\\])*\\(\\\\|[^\\])*\\[egimosx]*`, LiteralStringRegex, nil}, - {`s@(\\\\|\\[^\\]|[^\\@])*@(\\\\|\\[^\\]|[^\\@])*@[egimosx]*`, LiteralStringRegex, nil}, - {`s%(\\\\|\\[^\\]|[^\\%])*%(\\\\|\\[^\\]|[^\\%])*%[egimosx]*`, LiteralStringRegex, nil}, - {`s\{(\\\\|\\[^\\]|[^\\}])*\}\s*`, LiteralStringRegex, Push("balanced-regex")}, - {`s<(\\\\|\\[^\\]|[^\\>])*>\s*`, LiteralStringRegex, Push("balanced-regex")}, - {`s\[(\\\\|\\[^\\]|[^\\\]])*\]\s*`, LiteralStringRegex, Push("balanced-regex")}, - {`s\((\\\\|\\[^\\]|[^\\)])*\)\s*`, LiteralStringRegex, Push("balanced-regex")}, - {`m?/(\\\\|\\[^\\]|[^\\/\n])*/[gcimosx]*`, LiteralStringRegex, nil}, - {`m(?=[/!\\{<\[(@%$])`, LiteralStringRegex, Push("balanced-regex")}, - {`((?<==~)|(?<=\())\s*/(\\\\|\\[^\\]|[^\\/])*/[gcimosx]*`, LiteralStringRegex, nil}, - {`\s+`, Text, nil}, - {Words(``, `\b`, `abs`, `accept`, `alarm`, `atan2`, `bind`, `binmode`, `bless`, `caller`, `chdir`, `chmod`, `chomp`, `chop`, `chown`, `chr`, `chroot`, `close`, `closedir`, `connect`, `continue`, `cos`, `crypt`, `dbmclose`, `dbmopen`, `defined`, `delete`, `die`, `dump`, `each`, `endgrent`, `endhostent`, `endnetent`, `endprotoent`, `endpwent`, `endservent`, `eof`, `eval`, `exec`, `exists`, `exit`, `exp`, `fcntl`, `fileno`, `flock`, `fork`, `format`, `formline`, `getc`, `getgrent`, `getgrgid`, `getgrnam`, `gethostbyaddr`, `gethostbyname`, `gethostent`, `getlogin`, `getnetbyaddr`, `getnetbyname`, `getnetent`, `getpeername`, `getpgrp`, `getppid`, `getpriority`, `getprotobyname`, `getprotobynumber`, `getprotoent`, `getpwent`, `getpwnam`, `getpwuid`, `getservbyname`, `getservbyport`, `getservent`, `getsockname`, `getsockopt`, `glob`, `gmtime`, `goto`, `grep`, `hex`, `import`, `index`, `int`, `ioctl`, `join`, `keys`, `kill`, `last`, `lc`, `lcfirst`, `length`, `link`, `listen`, `local`, `localtime`, `log`, `lstat`, `map`, `mkdir`, `msgctl`, `msgget`, `msgrcv`, `msgsnd`, `my`, `next`, `oct`, `open`, `opendir`, `ord`, `our`, `pack`, `pipe`, `pop`, `pos`, `printf`, `prototype`, `push`, `quotemeta`, `rand`, `read`, `readdir`, `readline`, `readlink`, `readpipe`, `recv`, `redo`, `ref`, `rename`, `reverse`, `rewinddir`, `rindex`, `rmdir`, `scalar`, `seek`, `seekdir`, `select`, `semctl`, `semget`, `semop`, `send`, `setgrent`, `sethostent`, `setnetent`, `setpgrp`, `setpriority`, `setprotoent`, `setpwent`, `setservent`, `setsockopt`, `shift`, `shmctl`, `shmget`, `shmread`, `shmwrite`, `shutdown`, `sin`, `sleep`, `socket`, `socketpair`, `sort`, `splice`, `split`, `sprintf`, `sqrt`, `srand`, `stat`, `study`, `substr`, `symlink`, `syscall`, `sysopen`, `sysread`, `sysseek`, `system`, `syswrite`, `tell`, `telldir`, `tie`, `tied`, `time`, `times`, `tr`, `truncate`, `uc`, `ucfirst`, `umask`, `undef`, `unlink`, `unpack`, `unshift`, `untie`, `utime`, `values`, `vec`, `wait`, `waitpid`, `wantarray`, `warn`, `write`), NameBuiltin, nil}, - {`((__(DATA|DIE|WARN)__)|(STD(IN|OUT|ERR)))\b`, NameBuiltinPseudo, nil}, - {`(<<)([\'"]?)([a-zA-Z_]\w*)(\2;?\n.*?\n)(\3)(\n)`, ByGroups(LiteralString, LiteralString, LiteralStringDelimiter, LiteralString, LiteralStringDelimiter, Text), nil}, - {`__END__`, CommentPreproc, Push("end-part")}, - {`\$\^[ADEFHILMOPSTWX]`, NameVariableGlobal, nil}, - {"\\$[\\\\\\\"\\[\\]'&`+*.,;=%~?@$!<>(^|/-](?!\\w)", NameVariableGlobal, nil}, - {`[$@%#]+`, NameVariable, Push("varname")}, - {`0_?[0-7]+(_[0-7]+)*`, LiteralNumberOct, nil}, - {`0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*`, LiteralNumberHex, nil}, - {`0b[01]+(_[01]+)*`, LiteralNumberBin, nil}, - {`(?i)(\d*(_\d*)*\.\d+(_\d*)*|\d+(_\d*)*\.\d+(_\d*)*)(e[+-]?\d+)?`, LiteralNumberFloat, nil}, - {`(?i)\d+(_\d*)*e[+-]?\d+(_\d*)*`, LiteralNumberFloat, nil}, - {`\d+(_\d+)*`, LiteralNumberInteger, nil}, - {`'(\\\\|\\[^\\]|[^'\\])*'`, LiteralString, nil}, - {`"(\\\\|\\[^\\]|[^"\\])*"`, LiteralString, nil}, - {"`(\\\\\\\\|\\\\[^\\\\]|[^`\\\\])*`", LiteralStringBacktick, nil}, - {`<([^\s>]+)>`, LiteralStringRegex, nil}, - {`(q|qq|qw|qr|qx)\{`, LiteralStringOther, Push("cb-string")}, - {`(q|qq|qw|qr|qx)\(`, LiteralStringOther, Push("rb-string")}, - {`(q|qq|qw|qr|qx)\[`, LiteralStringOther, Push("sb-string")}, - {`(q|qq|qw|qr|qx)\<`, LiteralStringOther, Push("lt-string")}, - {`(q|qq|qw|qr|qx)([\W_])(.|\n)*?\2`, LiteralStringOther, nil}, - {`(package)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)`, ByGroups(Keyword, Text, NameNamespace), nil}, - {`(use|require|no)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)`, ByGroups(Keyword, Text, NameNamespace), nil}, - {`(sub)(\s+)`, ByGroups(Keyword, Text), Push("funcname")}, - {Words(``, `\b`, `no`, `package`, `require`, `use`), Keyword, nil}, - {`(\[\]|\*\*|::|<<|>>|>=|<=>|<=|={3}|!=|=~|!~|&&?|\|\||\.{1,3})`, Operator, nil}, - {`[-+/*%=<>&^|!\\~]=?`, Operator, nil}, - {`[()\[\]:;,<>/?{}]`, Punctuation, nil}, - {`(?=\w)`, Name, Push("name")}, - }, - "format": { - {`\.\n`, LiteralStringInterpol, Pop(1)}, - {`[^\n]*\n`, LiteralStringInterpol, nil}, - }, - "varname": { - {`\s+`, Text, nil}, - {`\{`, Punctuation, Pop(1)}, - {`\)|,`, Punctuation, Pop(1)}, - {`\w+::`, NameNamespace, nil}, - {`[\w:]+`, NameVariable, Pop(1)}, - }, - "name": { - {`[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*(::)?(?=\s*->)`, NameNamespace, Pop(1)}, - {`[a-zA-Z_]\w*(::[a-zA-Z_]\w*)*::`, NameNamespace, Pop(1)}, - {`[\w:]+`, Name, Pop(1)}, - {`[A-Z_]+(?=\W)`, NameConstant, Pop(1)}, - {`(?=\W)`, Text, Pop(1)}, - }, - "funcname": { - {`[a-zA-Z_]\w*[!?]?`, NameFunction, nil}, - {`\s+`, Text, nil}, - {`(\([$@%]*\))(\s*)`, ByGroups(Punctuation, Text), nil}, - {`;`, Punctuation, Pop(1)}, - {`.*?\{`, Punctuation, Pop(1)}, - }, - "cb-string": { - {`\\[{}\\]`, LiteralStringOther, nil}, - {`\\`, LiteralStringOther, nil}, - {`\{`, LiteralStringOther, Push("cb-string")}, - {`\}`, LiteralStringOther, Pop(1)}, - {`[^{}\\]+`, LiteralStringOther, nil}, - }, - "rb-string": { - {`\\[()\\]`, LiteralStringOther, nil}, - {`\\`, LiteralStringOther, nil}, - {`\(`, LiteralStringOther, Push("rb-string")}, - {`\)`, LiteralStringOther, Pop(1)}, - {`[^()]+`, LiteralStringOther, nil}, - }, - "sb-string": { - {`\\[\[\]\\]`, LiteralStringOther, nil}, - {`\\`, LiteralStringOther, nil}, - {`\[`, LiteralStringOther, Push("sb-string")}, - {`\]`, LiteralStringOther, Pop(1)}, - {`[^\[\]]+`, LiteralStringOther, nil}, - }, - "lt-string": { - {`\\[<>\\]`, LiteralStringOther, nil}, - {`\\`, LiteralStringOther, nil}, - {`\<`, LiteralStringOther, Push("lt-string")}, - {`\>`, LiteralStringOther, Pop(1)}, - {`[^<>]+`, LiteralStringOther, nil}, - }, - "end-part": { - {`.+`, CommentPreproc, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pig.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pig.go deleted file mode 100644 index 0dbc591ad1..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pig.go +++ /dev/null @@ -1,57 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Pig lexer. -var Pig = internal.Register(MustNewLexer( - &Config{ - Name: "Pig", - Aliases: []string{"pig"}, - Filenames: []string{"*.pig"}, - MimeTypes: []string{"text/x-pig"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`--.*`, Comment, nil}, - {`/\*[\w\W]*?\*/`, CommentMultiline, nil}, - {`\\\n`, Text, nil}, - {`\\`, Text, nil}, - {`\'(?:\\[ntbrf\\\']|\\u[0-9a-f]{4}|[^\'\\\n\r])*\'`, LiteralString, nil}, - Include("keywords"), - Include("types"), - Include("builtins"), - Include("punct"), - Include("operators"), - {`[0-9]*\.[0-9]+(e[0-9]+)?[fd]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-f]+`, LiteralNumberHex, nil}, - {`[0-9]+L?`, LiteralNumberInteger, nil}, - {`\n`, Text, nil}, - {`([a-z_]\w*)(\s*)(\()`, ByGroups(NameFunction, Text, Punctuation), nil}, - {`[()#:]`, Text, nil}, - {`[^(:#\'")\s]+`, Text, nil}, - {`\S+\s+`, Text, nil}, - }, - "keywords": { - {`(assert|and|any|all|arrange|as|asc|bag|by|cache|CASE|cat|cd|cp|%declare|%default|define|dense|desc|describe|distinct|du|dump|eval|exex|explain|filter|flatten|foreach|full|generate|group|help|if|illustrate|import|inner|input|into|is|join|kill|left|limit|load|ls|map|matches|mkdir|mv|not|null|onschema|or|order|outer|output|parallel|pig|pwd|quit|register|returns|right|rm|rmf|rollup|run|sample|set|ship|split|stderr|stdin|stdout|store|stream|through|union|using|void)\b`, Keyword, nil}, - }, - "builtins": { - {`(AVG|BinStorage|cogroup|CONCAT|copyFromLocal|copyToLocal|COUNT|cross|DIFF|MAX|MIN|PigDump|PigStorage|SIZE|SUM|TextLoader|TOKENIZE)\b`, NameBuiltin, nil}, - }, - "types": { - {`(bytearray|BIGINTEGER|BIGDECIMAL|chararray|datetime|double|float|int|long|tuple)\b`, KeywordType, nil}, - }, - "punct": { - {`[;(){}\[\]]`, Punctuation, nil}, - }, - "operators": { - {`[#=,./%+\-?]`, Operator, nil}, - {`(eq|gt|lt|gte|lte|neq|matches)\b`, Operator, nil}, - {`(==|<=|<|>=|>|!=)`, Operator, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pkgconfig.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pkgconfig.go deleted file mode 100644 index 0a4872e765..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/pkgconfig.go +++ /dev/null @@ -1,41 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Pkgconfig lexer. -var Pkgconfig = internal.Register(MustNewLexer( - &Config{ - Name: "PkgConfig", - Aliases: []string{"pkgconfig"}, - Filenames: []string{"*.pc"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`#.*$`, CommentSingle, nil}, - {`^(\w+)(=)`, ByGroups(NameAttribute, Operator), nil}, - {`^([\w.]+)(:)`, ByGroups(NameTag, Punctuation), Push("spvalue")}, - Include("interp"), - {`[^${}#=:\n.]+`, Text, nil}, - {`.`, Text, nil}, - }, - "interp": { - {`\$\$`, Text, nil}, - {`\$\{`, LiteralStringInterpol, Push("curly")}, - }, - "curly": { - {`\}`, LiteralStringInterpol, Pop(1)}, - {`\w+`, NameAttribute, nil}, - }, - "spvalue": { - Include("interp"), - {`#.*$`, CommentSingle, Pop(1)}, - {`\n`, Text, Pop(1)}, - {`[^${}#\n]+`, Text, nil}, - {`.`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/plaintext.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/plaintext.go deleted file mode 100644 index 7b252930fb..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/plaintext.go +++ /dev/null @@ -1,17 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var Plaintext = internal.Register(MustNewLexer( - &Config{ - Name: "plaintext", - Aliases: []string{"text", "plain", "no-highlight"}, - Filenames: []string{"*.txt"}, - MimeTypes: []string{"text/plain"}, - Priority: 0.1, - }, - internal.PlaintextRules, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/plsql.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/plsql.go deleted file mode 100644 index a6068fd221..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/plsql.go +++ /dev/null @@ -1,58 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Pl/Pgsql lexer. -var PLpgSQL = internal.Register(MustNewLexer( - &Config{ - Name: "PL/pgSQL", - Aliases: []string{"plpgsql"}, - Filenames: []string{}, - MimeTypes: []string{"text/x-plpgsql"}, - NotMultiline: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\%[a-z]\w*\b`, NameBuiltin, nil}, - {`:=`, Operator, nil}, - {`\<\<[a-z]\w*\>\>`, NameLabel, nil}, - {`\#[a-z]\w*\b`, KeywordPseudo, nil}, - {`\s+`, Text, nil}, - {`--.*\n?`, CommentSingle, nil}, - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`(bigint|bigserial|bit|bit\s+varying|bool|boolean|box|bytea|char|character|character\s+varying|cidr|circle|date|decimal|double\s+precision|float4|float8|inet|int|int2|int4|int8|integer|interval|json|jsonb|line|lseg|macaddr|money|numeric|path|pg_lsn|point|polygon|real|serial|serial2|serial4|serial8|smallint|smallserial|text|time|timestamp|timestamptz|timetz|tsquery|tsvector|txid_snapshot|uuid|varbit|varchar|with\s+time\s+zone|without\s+time\s+zone|xml|anyarray|anyelement|anyenum|anynonarray|anyrange|cstring|fdw_handler|internal|language_handler|opaque|record|void)\b`, NameBuiltin, nil}, - {Words(``, `\b`, `ABORT`, `ABSOLUTE`, `ACCESS`, `ACTION`, `ADD`, `ADMIN`, `AFTER`, `AGGREGATE`, `ALL`, `ALSO`, `ALTER`, `ALWAYS`, `ANALYSE`, `ANALYZE`, `AND`, `ANY`, `ARRAY`, `AS`, `ASC`, `ASSERTION`, `ASSIGNMENT`, `ASYMMETRIC`, `AT`, `ATTRIBUTE`, `AUTHORIZATION`, `BACKWARD`, `BEFORE`, `BEGIN`, `BETWEEN`, `BIGINT`, `BINARY`, `BIT`, `BOOLEAN`, `BOTH`, `BY`, `CACHE`, `CALLED`, `CASCADE`, `CASCADED`, `CASE`, `CAST`, `CATALOG`, `CHAIN`, `CHAR`, `CHARACTER`, `CHARACTERISTICS`, `CHECK`, `CHECKPOINT`, `CLASS`, `CLOSE`, `CLUSTER`, `COALESCE`, `COLLATE`, `COLLATION`, `COLUMN`, `COMMENT`, `COMMENTS`, `COMMIT`, `COMMITTED`, `CONCURRENTLY`, `CONFIGURATION`, `CONNECTION`, `CONSTRAINT`, `CONSTRAINTS`, `CONTENT`, `CONTINUE`, `CONVERSION`, `COPY`, `COST`, `CREATE`, `CROSS`, `CSV`, `CURRENT`, `CURRENT_CATALOG`, `CURRENT_DATE`, `CURRENT_ROLE`, `CURRENT_SCHEMA`, `CURRENT_TIME`, `CURRENT_TIMESTAMP`, `CURRENT_USER`, `CURSOR`, `CYCLE`, `DATA`, `DATABASE`, `DAY`, `DEALLOCATE`, `DEC`, `DECIMAL`, `DECLARE`, `DEFAULT`, `DEFAULTS`, `DEFERRABLE`, `DEFERRED`, `DEFINER`, `DELETE`, `DELIMITER`, `DELIMITERS`, `DESC`, `DICTIONARY`, `DISABLE`, `DISCARD`, `DISTINCT`, `DO`, `DOCUMENT`, `DOMAIN`, `DOUBLE`, `DROP`, `EACH`, `ELSE`, `ENABLE`, `ENCODING`, `ENCRYPTED`, `END`, `ENUM`, `ESCAPE`, `EVENT`, `EXCEPT`, `EXCLUDE`, `EXCLUDING`, `EXCLUSIVE`, `EXECUTE`, `EXISTS`, `EXPLAIN`, `EXTENSION`, `EXTERNAL`, `EXTRACT`, `FALSE`, `FAMILY`, `FETCH`, `FILTER`, `FIRST`, `FLOAT`, `FOLLOWING`, `FOR`, `FORCE`, `FOREIGN`, `FORWARD`, `FREEZE`, `FROM`, `FULL`, `FUNCTION`, `FUNCTIONS`, `GLOBAL`, `GRANT`, `GRANTED`, `GREATEST`, `GROUP`, `HANDLER`, `HAVING`, `HEADER`, `HOLD`, `HOUR`, `IDENTITY`, `IF`, `ILIKE`, `IMMEDIATE`, `IMMUTABLE`, `IMPLICIT`, `IN`, `INCLUDING`, `INCREMENT`, `INDEX`, `INDEXES`, `INHERIT`, `INHERITS`, `INITIALLY`, `INLINE`, `INNER`, `INOUT`, `INPUT`, `INSENSITIVE`, `INSERT`, `INSTEAD`, `INT`, `INTEGER`, `INTERSECT`, `INTERVAL`, `INTO`, `INVOKER`, `IS`, `ISNULL`, `ISOLATION`, `JOIN`, `KEY`, `LABEL`, `LANGUAGE`, `LARGE`, `LAST`, `LATERAL`, `LC_COLLATE`, `LC_CTYPE`, `LEADING`, `LEAKPROOF`, `LEAST`, `LEFT`, `LEVEL`, `LIKE`, `LIMIT`, `LISTEN`, `LOAD`, `LOCAL`, `LOCALTIME`, `LOCALTIMESTAMP`, `LOCATION`, `LOCK`, `MAPPING`, `MATCH`, `MATERIALIZED`, `MAXVALUE`, `MINUTE`, `MINVALUE`, `MODE`, `MONTH`, `MOVE`, `NAME`, `NAMES`, `NATIONAL`, `NATURAL`, `NCHAR`, `NEXT`, `NO`, `NONE`, `NOT`, `NOTHING`, `NOTIFY`, `NOTNULL`, `NOWAIT`, `NULL`, `NULLIF`, `NULLS`, `NUMERIC`, `OBJECT`, `OF`, `OFF`, `OFFSET`, `OIDS`, `ON`, `ONLY`, `OPERATOR`, `OPTION`, `OPTIONS`, `OR`, `ORDER`, `ORDINALITY`, `OUT`, `OUTER`, `OVER`, `OVERLAPS`, `OVERLAY`, `OWNED`, `OWNER`, `PARSER`, `PARTIAL`, `PARTITION`, `PASSING`, `PASSWORD`, `PLACING`, `PLANS`, `POLICY`, `POSITION`, `PRECEDING`, `PRECISION`, `PREPARE`, `PREPARED`, `PRESERVE`, `PRIMARY`, `PRIOR`, `PRIVILEGES`, `PROCEDURAL`, `PROCEDURE`, `PROGRAM`, `QUOTE`, `RANGE`, `READ`, `REAL`, `REASSIGN`, `RECHECK`, `RECURSIVE`, `REF`, `REFERENCES`, `REFRESH`, `REINDEX`, `RELATIVE`, `RELEASE`, `RENAME`, `REPEATABLE`, `REPLACE`, `REPLICA`, `RESET`, `RESTART`, `RESTRICT`, `RETURNING`, `RETURNS`, `REVOKE`, `RIGHT`, `ROLE`, `ROLLBACK`, `ROW`, `ROWS`, `RULE`, `SAVEPOINT`, `SCHEMA`, `SCROLL`, `SEARCH`, `SECOND`, `SECURITY`, `SELECT`, `SEQUENCE`, `SEQUENCES`, `SERIALIZABLE`, `SERVER`, `SESSION`, `SESSION_USER`, `SET`, `SETOF`, `SHARE`, `SHOW`, `SIMILAR`, `SIMPLE`, `SMALLINT`, `SNAPSHOT`, `SOME`, `STABLE`, `STANDALONE`, `START`, `STATEMENT`, `STATISTICS`, `STDIN`, `STDOUT`, `STORAGE`, `STRICT`, `STRIP`, `SUBSTRING`, `SYMMETRIC`, `SYSID`, `SYSTEM`, `TABLE`, `TABLES`, `TABLESPACE`, `TEMP`, `TEMPLATE`, `TEMPORARY`, `TEXT`, `THEN`, `TIME`, `TIMESTAMP`, `TO`, `TRAILING`, `TRANSACTION`, `TREAT`, `TRIGGER`, `TRIM`, `TRUE`, `TRUNCATE`, `TRUSTED`, `TYPE`, `TYPES`, `UNBOUNDED`, `UNCOMMITTED`, `UNENCRYPTED`, `UNION`, `UNIQUE`, `UNKNOWN`, `UNLISTEN`, `UNLOGGED`, `UNTIL`, `UPDATE`, `USER`, `USING`, `VACUUM`, `VALID`, `VALIDATE`, `VALIDATOR`, `VALUE`, `VALUES`, `VARCHAR`, `VARIADIC`, `VARYING`, `VERBOSE`, `VERSION`, `VIEW`, `VIEWS`, `VOLATILE`, `WHEN`, `WHERE`, `WHITESPACE`, `WINDOW`, `WITH`, `WITHIN`, `WITHOUT`, `WORK`, `WRAPPER`, `WRITE`, `XML`, `XMLATTRIBUTES`, `XMLCONCAT`, `XMLELEMENT`, `XMLEXISTS`, `XMLFOREST`, `XMLPARSE`, `XMLPI`, `XMLROOT`, `XMLSERIALIZE`, `YEAR`, `YES`, `ZONE`, `ALIAS`, `CONSTANT`, `DIAGNOSTICS`, `ELSIF`, `EXCEPTION`, `EXIT`, `FOREACH`, `GET`, `LOOP`, `NOTICE`, `OPEN`, `PERFORM`, `QUERY`, `RAISE`, `RETURN`, `REVERSE`, `SQLSTATE`, `WHILE`), Keyword, nil}, - {"[+*/<>=~!@#%^&|`?-]+", Operator, nil}, - {`::`, Operator, nil}, - {`\$\d+`, NameVariable, nil}, - {`([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`((?:E|U&)?)(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("string")}, - {`((?:U&)?)(")`, ByGroups(LiteralStringAffix, LiteralStringName), Push("quoted-ident")}, - // { `(?s)(\$)([^$]*)(\$)(.*?)(\$)(\2)(\$)`, ?? ??, nil }, - {`[a-z_]\w*`, Name, nil}, - {`:(['"]?)[a-z]\w*\b\1`, NameVariable, nil}, - {`[;:()\[\]{},.]`, Punctuation, nil}, - }, - "multiline-comments": { - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[^/*]+`, CommentMultiline, nil}, - {`[/*]`, CommentMultiline, nil}, - }, - "string": { - {`[^']+`, LiteralStringSingle, nil}, - {`''`, LiteralStringSingle, nil}, - {`'`, LiteralStringSingle, Pop(1)}, - }, - "quoted-ident": { - {`[^"]+`, LiteralStringName, nil}, - {`""`, LiteralStringName, nil}, - {`"`, LiteralStringName, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/postgres.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/postgres.go deleted file mode 100644 index 3afa54debb..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/postgres.go +++ /dev/null @@ -1,77 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Postgresql Sql Dialect lexer. -var PostgreSQL = internal.Register(MustNewLexer( - &Config{ - Name: "PostgreSQL SQL dialect", - Aliases: []string{"postgresql", "postgres"}, - Filenames: []string{}, - MimeTypes: []string{"text/x-postgresql"}, - NotMultiline: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`--.*\n?`, CommentSingle, nil}, - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`(bigint|bigserial|bit|bit\s+varying|bool|boolean|box|bytea|char|character|character\s+varying|cidr|circle|date|decimal|double\s+precision|float4|float8|inet|int|int2|int4|int8|integer|interval|json|jsonb|line|lseg|macaddr|money|numeric|path|pg_lsn|point|polygon|real|serial|serial2|serial4|serial8|smallint|smallserial|text|time|timestamp|timestamptz|timetz|tsquery|tsvector|txid_snapshot|uuid|varbit|varchar|with\s+time\s+zone|without\s+time\s+zone|xml|anyarray|anyelement|anyenum|anynonarray|anyrange|cstring|fdw_handler|internal|language_handler|opaque|record|void)\b`, NameBuiltin, nil}, - {`(?s)(DO)(\s+)(?:(LANGUAGE)?(\s+)('?)(\w+)?('?)(\s+))?(\$)([^$]*)(\$)(.*?)(\$)(\10)(\$)`, - UsingByGroup( - internal.Get, - 6, 12, - Keyword, Text, Keyword, Text, // DO LANGUAGE - StringSingle, StringSingle, StringSingle, Text, // 'plpgsql' - StringHeredoc, StringHeredoc, StringHeredoc, // $tag$ - StringHeredoc, // (code block) - StringHeredoc, StringHeredoc, StringHeredoc, // $tag$ - ), - nil, - }, - {Words(``, `\b`, `ABORT`, `ABSOLUTE`, `ACCESS`, `ACTION`, `ADD`, `ADMIN`, `AFTER`, `AGGREGATE`, `ALL`, `ALSO`, `ALTER`, `ALWAYS`, `ANALYSE`, `ANALYZE`, `AND`, `ANY`, `ARRAY`, `AS`, `ASC`, `ASSERTION`, `ASSIGNMENT`, `ASYMMETRIC`, `AT`, `ATTRIBUTE`, `AUTHORIZATION`, `BACKWARD`, `BEFORE`, `BEGIN`, `BETWEEN`, `BIGINT`, `BINARY`, `BIT`, `BOOLEAN`, `BOTH`, `BY`, `CACHE`, `CALLED`, `CASCADE`, `CASCADED`, `CASE`, `CAST`, `CATALOG`, `CHAIN`, `CHAR`, `CHARACTER`, `CHARACTERISTICS`, `CHECK`, `CHECKPOINT`, `CLASS`, `CLOSE`, `CLUSTER`, `COALESCE`, `COLLATE`, `COLLATION`, `COLUMN`, `COMMENT`, `COMMENTS`, `COMMIT`, `COMMITTED`, `CONCURRENTLY`, `CONFIGURATION`, `CONNECTION`, `CONSTRAINT`, `CONSTRAINTS`, `CONTENT`, `CONTINUE`, `CONVERSION`, `COPY`, `COST`, `CREATE`, `CROSS`, `CSV`, `CURRENT`, `CURRENT_CATALOG`, `CURRENT_DATE`, `CURRENT_ROLE`, `CURRENT_SCHEMA`, `CURRENT_TIME`, `CURRENT_TIMESTAMP`, `CURRENT_USER`, `CURSOR`, `CYCLE`, `DATA`, `DATABASE`, `DAY`, `DEALLOCATE`, `DEC`, `DECIMAL`, `DECLARE`, `DEFAULT`, `DEFAULTS`, `DEFERRABLE`, `DEFERRED`, `DEFINER`, `DELETE`, `DELIMITER`, `DELIMITERS`, `DESC`, `DICTIONARY`, `DISABLE`, `DISCARD`, `DISTINCT`, `DO`, `DOCUMENT`, `DOMAIN`, `DOUBLE`, `DROP`, `EACH`, `ELSE`, `ENABLE`, `ENCODING`, `ENCRYPTED`, `END`, `ENUM`, `ESCAPE`, `EVENT`, `EXCEPT`, `EXCLUDE`, `EXCLUDING`, `EXCLUSIVE`, `EXECUTE`, `EXISTS`, `EXPLAIN`, `EXTENSION`, `EXTERNAL`, `EXTRACT`, `FALSE`, `FAMILY`, `FETCH`, `FILTER`, `FIRST`, `FLOAT`, `FOLLOWING`, `FOR`, `FORCE`, `FOREIGN`, `FORWARD`, `FREEZE`, `FROM`, `FULL`, `FUNCTION`, `FUNCTIONS`, `GLOBAL`, `GRANT`, `GRANTED`, `GREATEST`, `GROUP`, `HANDLER`, `HAVING`, `HEADER`, `HOLD`, `HOUR`, `IDENTITY`, `IF`, `ILIKE`, `IMMEDIATE`, `IMMUTABLE`, `IMPLICIT`, `IN`, `INCLUDING`, `INCREMENT`, `INDEX`, `INDEXES`, `INHERIT`, `INHERITS`, `INITIALLY`, `INLINE`, `INNER`, `INOUT`, `INPUT`, `INSENSITIVE`, `INSERT`, `INSTEAD`, `INT`, `INTEGER`, `INTERSECT`, `INTERVAL`, `INTO`, `INVOKER`, `IS`, `ISNULL`, `ISOLATION`, `JOIN`, `KEY`, `LABEL`, `LANGUAGE`, `LARGE`, `LAST`, `LATERAL`, `LC_COLLATE`, `LC_CTYPE`, `LEADING`, `LEAKPROOF`, `LEAST`, `LEFT`, `LEVEL`, `LIKE`, `LIMIT`, `LISTEN`, `LOAD`, `LOCAL`, `LOCALTIME`, `LOCALTIMESTAMP`, `LOCATION`, `LOCK`, `MAPPING`, `MATCH`, `MATERIALIZED`, `MAXVALUE`, `MINUTE`, `MINVALUE`, `MODE`, `MONTH`, `MOVE`, `NAME`, `NAMES`, `NATIONAL`, `NATURAL`, `NCHAR`, `NEXT`, `NO`, `NONE`, `NOT`, `NOTHING`, `NOTIFY`, `NOTNULL`, `NOWAIT`, `NULL`, `NULLIF`, `NULLS`, `NUMERIC`, `OBJECT`, `OF`, `OFF`, `OFFSET`, `OIDS`, `ON`, `ONLY`, `OPERATOR`, `OPTION`, `OPTIONS`, `OR`, `ORDER`, `ORDINALITY`, `OUT`, `OUTER`, `OVER`, `OVERLAPS`, `OVERLAY`, `OWNED`, `OWNER`, `PARSER`, `PARTIAL`, `PARTITION`, `PASSING`, `PASSWORD`, `PLACING`, `PLANS`, `POLICY`, `POSITION`, `PRECEDING`, `PRECISION`, `PREPARE`, `PREPARED`, `PRESERVE`, `PRIMARY`, `PRIOR`, `PRIVILEGES`, `PROCEDURAL`, `PROCEDURE`, `PROGRAM`, `QUOTE`, `RANGE`, `READ`, `REAL`, `REASSIGN`, `RECHECK`, `RECURSIVE`, `REF`, `REFERENCES`, `REFRESH`, `REINDEX`, `RELATIVE`, `RELEASE`, `RENAME`, `REPEATABLE`, `REPLACE`, `REPLICA`, `RESET`, `RESTART`, `RESTRICT`, `RETURNING`, `RETURNS`, `REVOKE`, `RIGHT`, `ROLE`, `ROLLBACK`, `ROW`, `ROWS`, `RULE`, `SAVEPOINT`, `SCHEMA`, `SCROLL`, `SEARCH`, `SECOND`, `SECURITY`, `SELECT`, `SEQUENCE`, `SEQUENCES`, `SERIALIZABLE`, `SERVER`, `SESSION`, `SESSION_USER`, `SET`, `SETOF`, `SHARE`, `SHOW`, `SIMILAR`, `SIMPLE`, `SMALLINT`, `SNAPSHOT`, `SOME`, `STABLE`, `STANDALONE`, `START`, `STATEMENT`, `STATISTICS`, `STDIN`, `STDOUT`, `STORAGE`, `STRICT`, `STRIP`, `SUBSTRING`, `SYMMETRIC`, `SYSID`, `SYSTEM`, `TABLE`, `TABLES`, `TABLESPACE`, `TEMP`, `TEMPLATE`, `TEMPORARY`, `TEXT`, `THEN`, `TIME`, `TIMESTAMP`, `TO`, `TRAILING`, `TRANSACTION`, `TREAT`, `TRIGGER`, `TRIM`, `TRUE`, `TRUNCATE`, `TRUSTED`, `TYPE`, `TYPES`, `UNBOUNDED`, `UNCOMMITTED`, `UNENCRYPTED`, `UNION`, `UNIQUE`, `UNKNOWN`, `UNLISTEN`, `UNLOGGED`, `UNTIL`, `UPDATE`, `USER`, `USING`, `VACUUM`, `VALID`, `VALIDATE`, `VALIDATOR`, `VALUE`, `VALUES`, `VARCHAR`, `VARIADIC`, `VARYING`, `VERBOSE`, `VERSION`, `VIEW`, `VIEWS`, `VOLATILE`, `WHEN`, `WHERE`, `WHITESPACE`, `WINDOW`, `WITH`, `WITHIN`, `WITHOUT`, `WORK`, `WRAPPER`, `WRITE`, `XML`, `XMLATTRIBUTES`, `XMLCONCAT`, `XMLELEMENT`, `XMLEXISTS`, `XMLFOREST`, `XMLPARSE`, `XMLPI`, `XMLROOT`, `XMLSERIALIZE`, `YEAR`, `YES`, `ZONE`), Keyword, nil}, - {"[+*/<>=~!@#%^&|`?-]+", Operator, nil}, - {`::`, Operator, nil}, - {`\$\d+`, NameVariable, nil}, - {`([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`((?:E|U&)?)(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("string")}, - {`((?:U&)?)(")`, ByGroups(LiteralStringAffix, LiteralStringName), Push("quoted-ident")}, - {`(?s)(\$)([^$]*)(\$)(.*?)(\$)(\2)(\$)(\s+)(LANGUAGE)?(\s+)('?)(\w+)?('?)`, - UsingByGroup(internal.Get, - 12, 4, - StringHeredoc, StringHeredoc, StringHeredoc, // $tag$ - StringHeredoc, // (code block) - StringHeredoc, StringHeredoc, StringHeredoc, // $tag$ - Text, Keyword, Text, // LANGUAGE - StringSingle, StringSingle, StringSingle, // 'type' - ), - nil, - }, - {`(?s)(\$)([^$]*)(\$)(.*?)(\$)(\2)(\$)`, LiteralStringHeredoc, nil}, - {`[a-z_]\w*`, Name, nil}, - {`:(['"]?)[a-z]\w*\b\1`, NameVariable, nil}, - {`[;:()\[\]{},.]`, Punctuation, nil}, - }, - "multiline-comments": { - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[^/*]+`, CommentMultiline, nil}, - {`[/*]`, CommentMultiline, nil}, - }, - "string": { - {`[^']+`, LiteralStringSingle, nil}, - {`''`, LiteralStringSingle, nil}, - {`'`, LiteralStringSingle, Pop(1)}, - }, - "quoted-ident": { - {`[^"]+`, LiteralStringName, nil}, - {`""`, LiteralStringName, nil}, - {`"`, LiteralStringName, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/postscript.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/postscript.go deleted file mode 100644 index 0cfa3a5f12..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/postscript.go +++ /dev/null @@ -1,46 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Postscript lexer. -var Postscript = internal.Register(MustNewLexer( - &Config{ - Name: "PostScript", - Aliases: []string{"postscript", "postscr"}, - Filenames: []string{"*.ps", "*.eps"}, - MimeTypes: []string{"application/postscript"}, - }, - Rules{ - "root": { - {`^%!.+\n`, CommentPreproc, nil}, - {`%%.*\n`, CommentSpecial, nil}, - {`(^%.*\n){2,}`, CommentMultiline, nil}, - {`%.*\n`, CommentSingle, nil}, - {`\(`, LiteralString, Push("stringliteral")}, - {`[{}<>\[\]]`, Punctuation, nil}, - {`<[0-9A-Fa-f]+>(?=[()<>\[\]{}/%\s])`, LiteralNumberHex, nil}, - {`[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?(?=[()<>\[\]{}/%\s])`, LiteralNumberOct, nil}, - {`(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?(?=[()<>\[\]{}/%\s])`, LiteralNumberFloat, nil}, - {`(\-|\+)?[0-9]+(?=[()<>\[\]{}/%\s])`, LiteralNumberInteger, nil}, - {`\/[^()<>\[\]{}/%\s]+(?=[()<>\[\]{}/%\s])`, NameVariable, nil}, - {`[^()<>\[\]{}/%\s]+(?=[()<>\[\]{}/%\s])`, NameFunction, nil}, - {`(false|true)(?=[()<>\[\]{}/%\s])`, KeywordConstant, nil}, - {`(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?)(?=[()<>\[\]{}/%\s])`, KeywordReserved, nil}, - {Words(``, `(?=[()<>\[\]{}/%\s])`, `abs`, `add`, `aload`, `arc`, `arcn`, `array`, `atan`, `begin`, `bind`, `ceiling`, `charpath`, `clip`, `closepath`, `concat`, `concatmatrix`, `copy`, `cos`, `currentlinewidth`, `currentmatrix`, `currentpoint`, `curveto`, `cvi`, `cvs`, `def`, `defaultmatrix`, `dict`, `dictstackoverflow`, `div`, `dtransform`, `dup`, `end`, `exch`, `exec`, `exit`, `exp`, `fill`, `findfont`, `floor`, `get`, `getinterval`, `grestore`, `gsave`, `gt`, `identmatrix`, `idiv`, `idtransform`, `index`, `invertmatrix`, `itransform`, `length`, `lineto`, `ln`, `load`, `log`, `loop`, `matrix`, `mod`, `moveto`, `mul`, `neg`, `newpath`, `pathforall`, `pathbbox`, `pop`, `print`, `pstack`, `put`, `quit`, `rand`, `rangecheck`, `rcurveto`, `repeat`, `restore`, `rlineto`, `rmoveto`, `roll`, `rotate`, `round`, `run`, `save`, `scale`, `scalefont`, `setdash`, `setfont`, `setgray`, `setlinecap`, `setlinejoin`, `setlinewidth`, `setmatrix`, `setrgbcolor`, `shfill`, `show`, `showpage`, `sin`, `sqrt`, `stack`, `stringwidth`, `stroke`, `strokepath`, `sub`, `syntaxerror`, `transform`, `translate`, `truncate`, `typecheck`, `undefined`, `undefinedfilename`, `undefinedresult`), NameBuiltin, nil}, - {`\s+`, Text, nil}, - }, - "stringliteral": { - {`[^()\\]+`, LiteralString, nil}, - {`\\`, LiteralStringEscape, Push("escape")}, - {`\(`, LiteralString, Push()}, - {`\)`, LiteralString, Pop(1)}, - }, - "escape": { - {`[0-8]{3}|n|r|t|b|f|\\|\(|\)`, LiteralStringEscape, Pop(1)}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/povray.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/povray.go deleted file mode 100644 index 6f1bb52493..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/povray.go +++ /dev/null @@ -1,35 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Povray lexer. -var Povray = internal.Register(MustNewLexer( - &Config{ - Name: "POVRay", - Aliases: []string{"pov"}, - Filenames: []string{"*.pov", "*.inc"}, - MimeTypes: []string{"text/x-povray"}, - }, - Rules{ - "root": { - {`/\*[\w\W]*?\*/`, CommentMultiline, nil}, - {`//.*\n`, CommentSingle, nil}, - {`(?s)"(?:\\.|[^"\\])+"`, LiteralStringDouble, nil}, - {Words(`#`, `\b`, `break`, `case`, `debug`, `declare`, `default`, `define`, `else`, `elseif`, `end`, `error`, `fclose`, `fopen`, `for`, `if`, `ifdef`, `ifndef`, `include`, `local`, `macro`, `range`, `read`, `render`, `statistics`, `switch`, `undef`, `version`, `warning`, `while`, `write`), CommentPreproc, nil}, - {Words(`\b`, `\b`, `aa_level`, `aa_threshold`, `abs`, `acos`, `acosh`, `adaptive`, `adc_bailout`, `agate`, `agate_turb`, `all`, `alpha`, `ambient`, `ambient_light`, `angle`, `aperture`, `arc_angle`, `area_light`, `asc`, `asin`, `asinh`, `assumed_gamma`, `atan`, `atan2`, `atanh`, `atmosphere`, `atmospheric_attenuation`, `attenuating`, `average`, `background`, `black_hole`, `blue`, `blur_samples`, `bounded_by`, `box_mapping`, `bozo`, `break`, `brick`, `brick_size`, `brightness`, `brilliance`, `bumps`, `bumpy1`, `bumpy2`, `bumpy3`, `bump_map`, `bump_size`, `case`, `caustics`, `ceil`, `checker`, `chr`, `clipped_by`, `clock`, `color`, `color_map`, `colour`, `colour_map`, `component`, `composite`, `concat`, `confidence`, `conic_sweep`, `constant`, `control0`, `control1`, `cos`, `cosh`, `count`, `crackle`, `crand`, `cube`, `cubic_spline`, `cylindrical_mapping`, `debug`, `declare`, `default`, `degrees`, `dents`, `diffuse`, `direction`, `distance`, `distance_maximum`, `div`, `dust`, `dust_type`, `eccentricity`, `else`, `emitting`, `end`, `error`, `error_bound`, `exp`, `exponent`, `fade_distance`, `fade_power`, `falloff`, `falloff_angle`, `false`, `file_exists`, `filter`, `finish`, `fisheye`, `flatness`, `flip`, `floor`, `focal_point`, `fog`, `fog_alt`, `fog_offset`, `fog_type`, `frequency`, `gif`, `global_settings`, `glowing`, `gradient`, `granite`, `gray_threshold`, `green`, `halo`, `hexagon`, `hf_gray_16`, `hierarchy`, `hollow`, `hypercomplex`, `if`, `ifdef`, `iff`, `image_map`, `incidence`, `include`, `int`, `interpolate`, `inverse`, `ior`, `irid`, `irid_wavelength`, `jitter`, `lambda`, `leopard`, `linear`, `linear_spline`, `linear_sweep`, `location`, `log`, `looks_like`, `look_at`, `low_error_factor`, `mandel`, `map_type`, `marble`, `material_map`, `matrix`, `max`, `max_intersections`, `max_iteration`, `max_trace_level`, `max_value`, `metallic`, `min`, `minimum_reuse`, `mod`, `mortar`, `nearest_count`, `no`, `normal`, `normal_map`, `no_shadow`, `number_of_waves`, `octaves`, `off`, `offset`, `omega`, `omnimax`, `on`, `once`, `onion`, `open`, `orthographic`, `panoramic`, `pattern1`, `pattern2`, `pattern3`, `perspective`, `pgm`, `phase`, `phong`, `phong_size`, `pi`, `pigment`, `pigment_map`, `planar_mapping`, `png`, `point_at`, `pot`, `pow`, `ppm`, `precision`, `pwr`, `quadratic_spline`, `quaternion`, `quick_color`, `quick_colour`, `quilted`, `radial`, `radians`, `radiosity`, `radius`, `rainbow`, `ramp_wave`, `rand`, `range`, `reciprocal`, `recursion_limit`, `red`, `reflection`, `refraction`, `render`, `repeat`, `rgb`, `rgbf`, `rgbft`, `rgbt`, `right`, `ripples`, `rotate`, `roughness`, `samples`, `scale`, `scallop_wave`, `scattering`, `seed`, `shadowless`, `sin`, `sine_wave`, `sinh`, `sky`, `sky_sphere`, `slice`, `slope_map`, `smooth`, `specular`, `spherical_mapping`, `spiral`, `spiral1`, `spiral2`, `spotlight`, `spotted`, `sqr`, `sqrt`, `statistics`, `str`, `strcmp`, `strength`, `strlen`, `strlwr`, `strupr`, `sturm`, `substr`, `switch`, `sys`, `t`, `tan`, `tanh`, `test_camera_1`, `test_camera_2`, `test_camera_3`, `test_camera_4`, `texture`, `texture_map`, `tga`, `thickness`, `threshold`, `tightness`, `tile2`, `tiles`, `track`, `transform`, `translate`, `transmit`, `triangle_wave`, `true`, `ttf`, `turbulence`, `turb_depth`, `type`, `ultra_wide_angle`, `up`, `use_color`, `use_colour`, `use_index`, `u_steps`, `val`, `variance`, `vaxis_rotate`, `vcross`, `vdot`, `version`, `vlength`, `vnormalize`, `volume_object`, `volume_rendered`, `vol_with_light`, `vrotate`, `v_steps`, `warning`, `warp`, `water_level`, `waves`, `while`, `width`, `wood`, `wrinkles`, `yes`), Keyword, nil}, - {Words(``, `\b`, `bicubic_patch`, `blob`, `box`, `camera`, `cone`, `cubic`, `cylinder`, `difference`, `disc`, `height_field`, `intersection`, `julia_fractal`, `lathe`, `light_source`, `merge`, `mesh`, `object`, `plane`, `poly`, `polygon`, `prism`, `quadric`, `quartic`, `smooth_triangle`, `sor`, `sphere`, `superellipsoid`, `text`, `torus`, `triangle`, `union`), NameBuiltin, nil}, - {`[\[\](){}<>;,]`, Punctuation, nil}, - {`[-+*/=]`, Operator, nil}, - {`\b(x|y|z|u|v)\b`, NameBuiltinPseudo, nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - {`[0-9]+\.[0-9]*`, LiteralNumberFloat, nil}, - {`\.[0-9]+`, LiteralNumberFloat, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`\s+`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/powershell.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/powershell.go deleted file mode 100644 index 10eba4f955..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/powershell.go +++ /dev/null @@ -1,66 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Powershell lexer. -var Powershell = internal.Register(MustNewLexer( - &Config{ - Name: "PowerShell", - Aliases: []string{"powershell", "posh", "ps1", "psm1"}, - Filenames: []string{"*.ps1", "*.psm1"}, - MimeTypes: []string{"text/x-powershell"}, - DotAll: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\(`, Punctuation, Push("child")}, - {`\s+`, Text, nil}, - {`^(\s*#[#\s]*)(\.(?:component|description|example|externalhelp|forwardhelpcategory|forwardhelptargetname|functionality|inputs|link|notes|outputs|parameter|remotehelprunspace|role|synopsis))([^\n]*$)`, ByGroups(Comment, LiteralStringDoc, Comment), nil}, - {`#[^\n]*?$`, Comment, nil}, - {`(<|<)#`, CommentMultiline, Push("multline")}, - {`(?i)([A-Z]:)`, Name, nil}, - {`@"\n`, LiteralStringHeredoc, Push("heredoc-double")}, - {`@'\n.*?\n'@`, LiteralStringHeredoc, nil}, - {"`[\\'\"$@-]", Punctuation, nil}, - {`"`, LiteralStringDouble, Push("string")}, - {`'([^']|'')*'`, LiteralStringSingle, nil}, - {`(\$|@@|@)((global|script|private|env):)?\w+`, NameVariable, nil}, - {`(while|validateset|validaterange|validatepattern|validatelength|validatecount|until|trap|switch|return|ref|process|param|parameter|in|if|global:|function|foreach|for|finally|filter|end|elseif|else|dynamicparam|do|default|continue|cmdletbinding|break|begin|alias|\?|%|#script|#private|#local|#global|mandatory|parametersetname|position|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|helpmessage|try|catch|throw)\b`, Keyword, nil}, - {`-(and|as|band|bnot|bor|bxor|casesensitive|ccontains|ceq|cge|cgt|cle|clike|clt|cmatch|cne|cnotcontains|cnotlike|cnotmatch|contains|creplace|eq|exact|f|file|ge|gt|icontains|ieq|ige|igt|ile|ilike|ilt|imatch|ine|inotcontains|inotlike|inotmatch|ireplace|is|isnot|le|like|lt|match|ne|not|notcontains|notlike|notmatch|or|regex|replace|wildcard)\b`, Operator, nil}, - {`(write|where|watch|wait|use|update|unregister|unpublish|unprotect|unlock|uninstall|undo|unblock|trace|test|tee|take|sync|switch|suspend|submit|stop|step|start|split|sort|skip|show|set|send|select|search|scroll|save|revoke|resume|restore|restart|resolve|resize|reset|request|repair|rename|remove|register|redo|receive|read|push|publish|protect|pop|ping|out|optimize|open|new|move|mount|merge|measure|lock|limit|join|invoke|install|initialize|import|hide|group|grant|get|format|foreach|find|export|expand|exit|enter|enable|edit|dismount|disconnect|disable|deny|debug|cxnew|copy|convertto|convertfrom|convert|connect|confirm|compress|complete|compare|close|clear|checkpoint|block|backup|assert|approve|aggregate|add)-[a-z_]\w*\b`, NameBuiltin, nil}, - {`(ac|asnp|cat|cd|cfs|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|curl|cvpa|dbp|del|diff|dir|dnsn|ebp|echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fhx|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps|gpv|group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md|measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri|rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|wget|where|wjb|write)\s`, NameBuiltin, nil}, - {"\\[[a-z_\\[][\\w. `,\\[\\]]*\\]", NameConstant, nil}, - {`-[a-z_]\w*`, Name, nil}, - {`\w+`, Name, nil}, - {"[.,;@{}\\[\\]$()=+*/\\\\&%!~?^`|<>-]|::", Punctuation, nil}, - }, - "child": { - {`\)`, Punctuation, Pop(1)}, - Include("root"), - }, - "multline": { - {`[^#&.]+`, CommentMultiline, nil}, - {`#(>|>)`, CommentMultiline, Pop(1)}, - {`\.(component|description|example|externalhelp|forwardhelpcategory|forwardhelptargetname|functionality|inputs|link|notes|outputs|parameter|remotehelprunspace|role|synopsis)`, LiteralStringDoc, nil}, - {`[#&.]`, CommentMultiline, nil}, - }, - "string": { - {"`[0abfnrtv'\\\"$`]", LiteralStringEscape, nil}, - {"[^$`\"]+", LiteralStringDouble, nil}, - {`\$\(`, Punctuation, Push("child")}, - {`""`, LiteralStringDouble, nil}, - {"[`$]", LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "heredoc-double": { - {`\n"@`, LiteralStringHeredoc, Pop(1)}, - {`\$\(`, Punctuation, Push("child")}, - {`[^@\n]+"]`, LiteralStringHeredoc, nil}, - {`.`, LiteralStringHeredoc, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/prolog.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/prolog.go deleted file mode 100644 index 08b48121b3..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/prolog.go +++ /dev/null @@ -1,50 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Prolog lexer. -var Prolog = internal.Register(MustNewLexer( - &Config{ - Name: "Prolog", - Aliases: []string{"prolog"}, - Filenames: []string{"*.ecl", "*.prolog", "*.pro", "*.pl"}, - MimeTypes: []string{"text/x-prolog"}, - }, - Rules{ - "root": { - {`/\*`, CommentMultiline, Push("nested-comment")}, - {`%.*`, CommentSingle, nil}, - {`0\'.`, LiteralStringChar, nil}, - {`0b[01]+`, LiteralNumberBin, nil}, - {`0o[0-7]+`, LiteralNumberOct, nil}, - {`0x[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`\d\d?\'[a-zA-Z0-9]+`, LiteralNumberInteger, nil}, - {`(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`[\[\](){}|.,;!]`, Punctuation, nil}, - {`:-|-->`, Punctuation, nil}, - {`"(?:\\x[0-9a-fA-F]+\\|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\[0-7]+\\|\\["\nabcefnrstv]|[^\\"])*"`, LiteralStringDouble, nil}, - {`'(?:''|[^'])*'`, LiteralStringAtom, nil}, - {`is\b`, Operator, nil}, - {`(<|>|=<|>=|==|=:=|=|/|//|\*|\+|-)(?=\s|[a-zA-Z0-9\[])`, Operator, nil}, - {`(mod|div|not)\b`, Operator, nil}, - {`_`, Keyword, nil}, - {`([a-z]+)(:)`, ByGroups(NameNamespace, Punctuation), nil}, - {`([a-zÀ-῿぀-퟿-￯][\w$À-῿぀-퟿-￯]*)(\s*)(:-|-->)`, ByGroups(NameFunction, Text, Operator), nil}, - {`([a-zÀ-῿぀-퟿-￯][\w$À-῿぀-퟿-￯]*)(\s*)(\()`, ByGroups(NameFunction, Text, Punctuation), nil}, - {`[a-zÀ-῿぀-퟿-￯][\w$À-῿぀-퟿-￯]*`, LiteralStringAtom, nil}, - {`[#&*+\-./:<=>?@\\^~¡-¿‐-〿]+`, LiteralStringAtom, nil}, - {`[A-Z_]\w*`, NameVariable, nil}, - {`\s+|[ -‏￰-￾￯]`, Text, nil}, - }, - "nested-comment": { - {`\*/`, CommentMultiline, Pop(1)}, - {`/\*`, CommentMultiline, Push()}, - {`[^*/]+`, CommentMultiline, nil}, - {`[*/]`, CommentMultiline, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/protobuf.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/protobuf.go deleted file mode 100644 index 30140131c8..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/protobuf.go +++ /dev/null @@ -1,53 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// ProtocolBuffer lexer. -var ProtocolBuffer = internal.Register(MustNewLexer( - &Config{ - Name: "Protocol Buffer", - Aliases: []string{"protobuf", "proto"}, - Filenames: []string{"*.proto"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`[ \t]+`, Text, nil}, - {`[,;{}\[\]()<>]`, Punctuation, nil}, - {`/(\\\n)?/(\n|(.|\n)*?[^\\]\n)`, CommentSingle, nil}, - {`/(\\\n)?\*(.|\n)*?\*(\\\n)?/`, CommentMultiline, nil}, - {Words(`\b`, `\b`, `import`, `option`, `optional`, `required`, `repeated`, `default`, `packed`, `ctype`, `extensions`, `to`, `max`, `rpc`, `returns`, `oneof`), Keyword, nil}, - {Words(``, `\b`, `int32`, `int64`, `uint32`, `uint64`, `sint32`, `sint64`, `fixed32`, `fixed64`, `sfixed32`, `sfixed64`, `float`, `double`, `bool`, `string`, `bytes`), KeywordType, nil}, - {`(true|false)\b`, KeywordConstant, nil}, - {`(package)(\s+)`, ByGroups(KeywordNamespace, Text), Push("package")}, - {`(message|extend)(\s+)`, ByGroups(KeywordDeclaration, Text), Push("message")}, - {`(enum|group|service)(\s+)`, ByGroups(KeywordDeclaration, Text), Push("type")}, - {`\".*?\"`, LiteralString, nil}, - {`\'.*?\'`, LiteralString, nil}, - {`(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*`, LiteralNumberFloat, nil}, - {`(\d+\.\d*|\.\d+|\d+[fF])[fF]?`, LiteralNumberFloat, nil}, - {`(\-?(inf|nan))\b`, LiteralNumberFloat, nil}, - {`0x[0-9a-fA-F]+[LlUu]*`, LiteralNumberHex, nil}, - {`0[0-7]+[LlUu]*`, LiteralNumberOct, nil}, - {`\d+[LlUu]*`, LiteralNumberInteger, nil}, - {`[+-=]`, Operator, nil}, - {`([a-zA-Z_][\w.]*)([ \t]*)(=)`, ByGroups(Name, Text, Operator), nil}, - {`[a-zA-Z_][\w.]*`, Name, nil}, - }, - "package": { - {`[a-zA-Z_]\w*`, NameNamespace, Pop(1)}, - Default(Pop(1)), - }, - "message": { - {`[a-zA-Z_]\w*`, NameClass, Pop(1)}, - Default(Pop(1)), - }, - "type": { - {`[a-zA-Z_]\w*`, Name, Pop(1)}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/puppet.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/puppet.go deleted file mode 100644 index a1db0d27bd..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/puppet.go +++ /dev/null @@ -1,56 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Puppet lexer. -var Puppet = internal.Register(MustNewLexer( - &Config{ - Name: "Puppet", - Aliases: []string{"puppet"}, - Filenames: []string{"*.pp"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - Include("comments"), - Include("keywords"), - Include("names"), - Include("numbers"), - Include("operators"), - Include("strings"), - {`[]{}:(),;[]`, Punctuation, nil}, - {`[^\S\n]+`, Text, nil}, - }, - "comments": { - {`\s*#.*$`, Comment, nil}, - {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil}, - }, - "operators": { - {`(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)`, Operator, nil}, - {`(in|and|or|not)\b`, OperatorWord, nil}, - }, - "names": { - {`[a-zA-Z_]\w*`, NameAttribute, nil}, - {`(\$\S+)(\[)(\S+)(\])`, ByGroups(NameVariable, Punctuation, LiteralString, Punctuation), nil}, - {`\$\S+`, NameVariable, nil}, - }, - "numbers": { - {`(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?`, LiteralNumberFloat, nil}, - {`\d+[eE][+-]?[0-9]+j?`, LiteralNumberFloat, nil}, - {`0[0-7]+j?`, LiteralNumberOct, nil}, - {`0[xX][a-fA-F0-9]+`, LiteralNumberHex, nil}, - {`\d+L`, LiteralNumberIntegerLong, nil}, - {`\d+j?`, LiteralNumberInteger, nil}, - }, - "keywords": { - {Words(`(?i)`, `\b`, `absent`, `alert`, `alias`, `audit`, `augeas`, `before`, `case`, `check`, `class`, `computer`, `configured`, `contained`, `create_resources`, `crit`, `cron`, `debug`, `default`, `define`, `defined`, `directory`, `else`, `elsif`, `emerg`, `err`, `exec`, `extlookup`, `fail`, `false`, `file`, `filebucket`, `fqdn_rand`, `generate`, `host`, `if`, `import`, `include`, `info`, `inherits`, `inline_template`, `installed`, `interface`, `k5login`, `latest`, `link`, `loglevel`, `macauthorization`, `mailalias`, `maillist`, `mcx`, `md5`, `mount`, `mounted`, `nagios_command`, `nagios_contact`, `nagios_contactgroup`, `nagios_host`, `nagios_hostdependency`, `nagios_hostescalation`, `nagios_hostextinfo`, `nagios_hostgroup`, `nagios_service`, `nagios_servicedependency`, `nagios_serviceescalation`, `nagios_serviceextinfo`, `nagios_servicegroup`, `nagios_timeperiod`, `node`, `noop`, `notice`, `notify`, `package`, `present`, `purged`, `realize`, `regsubst`, `resources`, `role`, `router`, `running`, `schedule`, `scheduled_task`, `search`, `selboolean`, `selmodule`, `service`, `sha1`, `shellquote`, `split`, `sprintf`, `ssh_authorized_key`, `sshkey`, `stage`, `stopped`, `subscribe`, `tag`, `tagged`, `template`, `tidy`, `true`, `undef`, `unmounted`, `user`, `versioncmp`, `vlan`, `warning`, `yumrepo`, `zfs`, `zone`, `zpool`), Keyword, nil}, - }, - "strings": { - {`"([^"])*"`, LiteralString, nil}, - {`'(\\'|[^'])*'`, LiteralString, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/python.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/python.go deleted file mode 100644 index 77f2c8db6d..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/p/python.go +++ /dev/null @@ -1,137 +0,0 @@ -package p - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Python lexer. -var Python = internal.Register(MustNewLexer( - &Config{ - Name: "Python", - Aliases: []string{"python", "py", "sage"}, - Filenames: []string{"*.py", "*.pyw", "*.sc", "SConstruct", "SConscript", "*.tac", "*.sage"}, - MimeTypes: []string{"text/x-python", "application/x-python"}, - }, - Rules{ - "root": { - {`\n`, Text, nil}, - {`^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")`, ByGroups(Text, LiteralStringAffix, LiteralStringDoc), nil}, - {`^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')`, ByGroups(Text, LiteralStringAffix, LiteralStringDoc), nil}, - {`[^\S\n]+`, Text, nil}, - {`\A#!.+$`, CommentHashbang, nil}, - {`#.*$`, CommentSingle, nil}, - {`[]{}:(),;[]`, Punctuation, nil}, - {`\\\n`, Text, nil}, - {`\\`, Text, nil}, - {`(in|is|and|or|not)\b`, OperatorWord, nil}, - {`!=|==|<<|>>|[-~+/*%=<>&^|.]`, Operator, nil}, - Include("keywords"), - {`(def)((?:\s|\\\s)+)`, ByGroups(Keyword, Text), Push("funcname")}, - {`(class)((?:\s|\\\s)+)`, ByGroups(Keyword, Text), Push("classname")}, - {`(from)((?:\s|\\\s)+)`, ByGroups(KeywordNamespace, Text), Push("fromimport")}, - {`(import)((?:\s|\\\s)+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - Include("builtins"), - Include("magicfuncs"), - Include("magicvars"), - Include("backtick"), - {`([rR]|[uUbB][rR]|[rR][uUbB])(""")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Push("tdqs")}, - {`([rR]|[uUbB][rR]|[rR][uUbB])(''')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("tsqs")}, - {`([rR]|[uUbB][rR]|[rR][uUbB])(")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Push("dqs")}, - {`([rR]|[uUbB][rR]|[rR][uUbB])(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("sqs")}, - {`([uUbB]?)(""")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Combined("stringescape", "tdqs")}, - {`([uUbB]?)(''')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Combined("stringescape", "tsqs")}, - {`([uUbB]?)(")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Combined("stringescape", "dqs")}, - {`([uUbB]?)(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Combined("stringescape", "sqs")}, - Include("name"), - Include("numbers"), - }, - "keywords": { - {Words(``, `\b`, `assert`, `break`, `continue`, `del`, `elif`, `else`, `except`, `exec`, `finally`, `for`, `global`, `if`, `lambda`, `pass`, `print`, `raise`, `return`, `try`, `while`, `yield`, `yield from`, `as`, `with`), Keyword, nil}, - }, - "builtins": { - {Words(`(?>|[-~+/*%=<>&^|.]`, Operator, nil}, - Include("keywords"), - {`(def)((?:\s|\\\s)+)`, ByGroups(Keyword, Text), Push("funcname")}, - {`(class)((?:\s|\\\s)+)`, ByGroups(Keyword, Text), Push("classname")}, - {`(from)((?:\s|\\\s)+)`, ByGroups(KeywordNamespace, Text), Push("fromimport")}, - {`(import)((?:\s|\\\s)+)`, ByGroups(KeywordNamespace, Text), Push("import")}, - Include("builtins"), - Include("magicfuncs"), - Include("magicvars"), - Include("backtick"), - {`([rR]|[uUbB][rR]|[rR][uUbB])(""")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Push("tdqs")}, - {`([rR]|[uUbB][rR]|[rR][uUbB])(''')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("tsqs")}, - {`([rR]|[uUbB][rR]|[rR][uUbB])(")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Push("dqs")}, - {`([rR]|[uUbB][rR]|[rR][uUbB])(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Push("sqs")}, - {`([uUbB]?)(""")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Combined("stringescape", "tdqs")}, - {`([uUbB]?)(''')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Combined("stringescape", "tsqs")}, - {`([uUbB]?)(")`, ByGroups(LiteralStringAffix, LiteralStringDouble), Combined("stringescape", "dqs")}, - {`([uUbB]?)(')`, ByGroups(LiteralStringAffix, LiteralStringSingle), Combined("stringescape", "sqs")}, - Include("name"), - Include("numbers"), - }, - "keywords": { - {Words(``, `\b`, `assert`, `async`, `await`, `break`, `continue`, `del`, `elif`, `else`, `except`, `finally`, `for`, `global`, `if`, `lambda`, `pass`, `raise`, `nonlocal`, `return`, `try`, `while`, `yield`, `yield from`, `as`, `with`), Keyword, nil}, - {Words(``, `\b`, `True`, `False`, `None`), KeywordConstant, nil}, - }, - "builtins": { - {Words(`(?=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}`, LiteralStringInterpol, nil}, - {`[^\\\'"%{\n]+`, LiteralStringSingle, nil}, - {`[\'"\\]`, LiteralStringSingle, nil}, - {`%|(\{{1,2})`, LiteralStringSingle, nil}, - }, - "strings-double": { - {`%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]`, LiteralStringInterpol, nil}, - {`\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\![sra])?(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}`, LiteralStringInterpol, nil}, - {`[^\\\'"%{\n]+`, LiteralStringDouble, nil}, - {`[\'"\\]`, LiteralStringDouble, nil}, - {`%|(\{{1,2})`, LiteralStringDouble, nil}, - }, - "dqs": { - {`"`, LiteralStringDouble, Pop(1)}, - {`\\\\|\\"|\\\n`, LiteralStringEscape, nil}, - Include("strings-double"), - }, - "sqs": { - {`'`, LiteralStringSingle, Pop(1)}, - {`\\\\|\\'|\\\n`, LiteralStringEscape, nil}, - Include("strings-single"), - }, - "tdqs": { - {`"""`, LiteralStringDouble, Pop(1)}, - Include("strings-double"), - {`\n`, LiteralStringDouble, nil}, - }, - "tsqs": { - {`'''`, LiteralStringSingle, Pop(1)}, - Include("strings-single"), - {`\n`, LiteralStringSingle, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/q/qbasic.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/q/qbasic.go deleted file mode 100644 index fd47c08003..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/q/qbasic.go +++ /dev/null @@ -1,67 +0,0 @@ -package q - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Qbasic lexer. -var Qbasic = internal.Register(MustNewLexer( - &Config{ - Name: "QBasic", - Aliases: []string{"qbasic", "basic"}, - Filenames: []string{"*.BAS", "*.bas"}, - MimeTypes: []string{"text/basic"}, - }, - Rules{ - "root": { - {`\n+`, Text, nil}, - {`\s+`, TextWhitespace, nil}, - {`^(\s*)(\d*)(\s*)(REM .*)$`, ByGroups(TextWhitespace, NameLabel, TextWhitespace, CommentSingle), nil}, - {`^(\s*)(\d+)(\s*)`, ByGroups(TextWhitespace, NameLabel, TextWhitespace), nil}, - {`(?=[\s]*)(\w+)(?=[\s]*=)`, NameVariableGlobal, nil}, - {`(?=[^"]*)\'.*$`, CommentSingle, nil}, - {`"[^\n"]*"`, LiteralStringDouble, nil}, - {`(END)(\s+)(FUNCTION|IF|SELECT|SUB)`, ByGroups(KeywordReserved, TextWhitespace, KeywordReserved), nil}, - {`(DECLARE)(\s+)([A-Z]+)(\s+)(\S+)`, ByGroups(KeywordDeclaration, TextWhitespace, NameVariable, TextWhitespace, Name), nil}, - {`(DIM)(\s+)(SHARED)(\s+)([^\s(]+)`, ByGroups(KeywordDeclaration, TextWhitespace, NameVariable, TextWhitespace, NameVariableGlobal), nil}, - {`(DIM)(\s+)([^\s(]+)`, ByGroups(KeywordDeclaration, TextWhitespace, NameVariableGlobal), nil}, - {`^(\s*)([a-zA-Z_]+)(\s*)(\=)`, ByGroups(TextWhitespace, NameVariableGlobal, TextWhitespace, Operator), nil}, - {`(GOTO|GOSUB)(\s+)(\w+\:?)`, ByGroups(KeywordReserved, TextWhitespace, NameLabel), nil}, - {`(SUB)(\s+)(\w+\:?)`, ByGroups(KeywordReserved, TextWhitespace, NameLabel), nil}, - Include("declarations"), - Include("functions"), - Include("metacommands"), - Include("operators"), - Include("statements"), - Include("keywords"), - {`[a-zA-Z_]\w*[$@#&!]`, NameVariableGlobal, nil}, - {`[a-zA-Z_]\w*\:`, NameLabel, nil}, - {`\-?\d*\.\d+[@|#]?`, LiteralNumberFloat, nil}, - {`\-?\d+[@|#]`, LiteralNumberFloat, nil}, - {`\-?\d+#?`, LiteralNumberIntegerLong, nil}, - {`\-?\d+#?`, LiteralNumberInteger, nil}, - {`!=|==|:=|\.=|<<|>>|[-~+/\\*%=<>&^|?:!.]`, Operator, nil}, - {`[\[\]{}(),;]`, Punctuation, nil}, - {`[\w]+`, NameVariableGlobal, nil}, - }, - "declarations": { - {`\b(DATA|LET)(?=\(|\b)`, KeywordDeclaration, nil}, - }, - "functions": { - {`\b(ABS|ASC|ATN|CDBL|CHR\$|CINT|CLNG|COMMAND\$|COS|CSNG|CSRLIN|CVD|CVDMBF|CVI|CVL|CVS|CVSMBF|DATE\$|ENVIRON\$|EOF|ERDEV|ERDEV\$|ERL|ERR|EXP|FILEATTR|FIX|FRE|FREEFILE|HEX\$|INKEY\$|INP|INPUT\$|INSTR|INT|IOCTL\$|LBOUND|LCASE\$|LEFT\$|LEN|LOC|LOF|LOG|LPOS|LTRIM\$|MID\$|MKD\$|MKDMBF\$|MKI\$|MKL\$|MKS\$|MKSMBF\$|OCT\$|PEEK|PEN|PLAY|PMAP|POINT|POS|RIGHT\$|RND|RTRIM\$|SADD|SCREEN|SEEK|SETMEM|SGN|SIN|SPACE\$|SPC|SQR|STICK|STR\$|STRIG|STRING\$|TAB|TAN|TIME\$|TIMER|UBOUND|UCASE\$|VAL|VARPTR|VARPTR\$|VARSEG)(?=\(|\b)`, KeywordReserved, nil}, - }, - "metacommands": { - {`\b(\$DYNAMIC|\$INCLUDE|\$STATIC)(?=\(|\b)`, KeywordConstant, nil}, - }, - "operators": { - {`\b(AND|EQV|IMP|NOT|OR|XOR)(?=\(|\b)`, OperatorWord, nil}, - }, - "statements": { - {`\b(BEEP|BLOAD|BSAVE|CALL|CALL\ ABSOLUTE|CALL\ INTERRUPT|CALLS|CHAIN|CHDIR|CIRCLE|CLEAR|CLOSE|CLS|COLOR|COM|COMMON|CONST|DATA|DATE\$|DECLARE|DEF\ FN|DEF\ SEG|DEFDBL|DEFINT|DEFLNG|DEFSNG|DEFSTR|DEF|DIM|DO|LOOP|DRAW|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|NEXT|FUNCTION|GET|GOSUB|GOTO|IF|THEN|INPUT|INPUT\ \#|IOCTL|KEY|KEY|KILL|LET|LINE|LINE\ INPUT|LINE\ INPUT\ \#|LOCATE|LOCK|UNLOCK|LPRINT|LSET|MID\$|MKDIR|NAME|ON\ COM|ON\ ERROR|ON\ KEY|ON\ PEN|ON\ PLAY|ON\ STRIG|ON\ TIMER|ON\ UEVENT|ON|OPEN|OPEN\ COM|OPTION\ BASE|OUT|PAINT|PALETTE|PCOPY|PEN|PLAY|POKE|PRESET|PRINT|PRINT\ \#|PRINT\ USING|PSET|PUT|PUT|RANDOMIZE|READ|REDIM|REM|RESET|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SCREEN|SEEK|SELECT\ CASE|SHARED|SHELL|SLEEP|SOUND|STATIC|STOP|STRIG|SUB|SWAP|SYSTEM|TIME\$|TIMER|TROFF|TRON|TYPE|UEVENT|UNLOCK|VIEW|WAIT|WHILE|WEND|WIDTH|WINDOW|WRITE)\b`, KeywordReserved, nil}, - }, - "keywords": { - {`\b(ACCESS|ALIAS|ANY|APPEND|AS|BASE|BINARY|BYVAL|CASE|CDECL|DOUBLE|ELSE|ELSEIF|ENDIF|INTEGER|IS|LIST|LOCAL|LONG|LOOP|MOD|NEXT|OFF|ON|OUTPUT|RANDOM|SIGNAL|SINGLE|STEP|STRING|THEN|TO|UNTIL|USING|WEND)\b`, Keyword, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/r.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/r.go deleted file mode 100644 index c2d3f56c72..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/r.go +++ /dev/null @@ -1,66 +0,0 @@ -package r - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// R/S lexer. -var R = internal.Register(MustNewLexer( - &Config{ - Name: "R", - Aliases: []string{"splus", "s", "r"}, - Filenames: []string{"*.S", "*.R", "*.r", ".Rhistory", ".Rprofile", ".Renviron"}, - MimeTypes: []string{"text/S-plus", "text/S", "text/x-r-source", "text/x-r", "text/x-R", "text/x-r-history", "text/x-r-profile"}, - }, - Rules{ - "comments": { - {`#.*$`, CommentSingle, nil}, - }, - "valid_name": { - {"(?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:(?:[a-zA-z]|[_.][^0-9])[\\w_.]*)", Name, nil}, - }, - "punctuation": { - {`\[{1,2}|\]{1,2}|\(|\)|;|,`, Punctuation, nil}, - }, - "keywords": { - {`(if|else|for|while|repeat|in|next|break|return|switch|function)(?![\w.])`, KeywordReserved, nil}, - }, - "operators": { - {`<>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\?`, Operator, nil}, - {`\*|\+|\^|/|!|%[^%]*%|=|~|\$|@|:{1,3}`, Operator, nil}, - }, - "builtin_symbols": { - {`(NULL|NA(_(integer|real|complex|character)_)?|letters|LETTERS|Inf|TRUE|FALSE|NaN|pi|\.\.(\.|[0-9]+))(?![\w.])`, KeywordConstant, nil}, - {`(T|F)\b`, NameBuiltinPseudo, nil}, - }, - "numbers": { - {`0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?`, LiteralNumberHex, nil}, - {`[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)([eE][+-]?[0-9]+)?[Li]?`, LiteralNumber, nil}, - }, - "statements": { - Include("comments"), - {`\s+`, Text, nil}, - {`\'`, LiteralString, Push("string_squote")}, - {`\"`, LiteralString, Push("string_dquote")}, - Include("builtin_symbols"), - Include("valid_name"), - Include("numbers"), - Include("keywords"), - Include("punctuation"), - Include("operators"), - }, - "root": { - {"((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:(?:[a-zA-z]|[_.][^0-9])[\\w_.]*))\\s*(?=\\()", NameFunction, nil}, - Include("statements"), - {`\{|\}`, Punctuation, nil}, - {`.`, Text, nil}, - }, - "string_squote": { - {`([^\'\\]|\\.)*\'`, LiteralString, Pop(1)}, - }, - "string_dquote": { - {`([^"\\]|\\.)*"`, LiteralString, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/racket.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/racket.go deleted file mode 100644 index cf27ea10ca..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/racket.go +++ /dev/null @@ -1,102 +0,0 @@ -package r - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Racket lexer. -var Racket = internal.Register(MustNewLexer( - &Config{ - Name: "Racket", - Aliases: []string{"racket", "rkt"}, - Filenames: []string{"*.rkt", "*.rktd", "*.rktl"}, - MimeTypes: []string{"text/x-racket", "application/x-racket"}, - }, - Rules{ - "root": { - {`[)\]}]`, Error, nil}, - {`(?!\Z)`, Text, Push("unquoted-datum")}, - }, - "datum": { - {`(?s)#;|#![ /]([^\\\n]|\\.)*`, Comment, nil}, - {`;[^\n\r…

]*`, CommentSingle, nil}, - {`#\|`, CommentMultiline, Push("block-comment")}, - {`\s+`, Text, nil}, - {"(?i)(?:#e)?(?:#d)?(?:#e)?[-+]?\\d+(?=[()[\\]{}\",\\'`;\\s])", LiteralNumberInteger, Pop(1)}, - {"(?i)(?:#e)?(?:#d)?(?:#e)?[-+]?(\\d+(\\.\\d*)?|\\.\\d+)([deflst][-+]?\\d+)?(?=[()[\\]{}\",\\'`;\\s])", LiteralNumberFloat, Pop(1)}, - {"(?i)(?:#e)?(?:#d)?(?:#e)?[-+]?((?:(?:\\d+(?:/\\d+|\\.\\d*)?|\\.\\d+)(?:[defls][-+]?\\d+)?)([-+](?:(?:\\d+(?:/\\d+|\\.\\d*)?|\\.\\d+)(?:[defls][-+]?\\d+)?)?i)?|[-+](?:(?:\\d+(?:/\\d+|\\.\\d*)?|\\.\\d+)(?:[defls][-+]?\\d+)?)?i)(?=[()[\\]{}\",\\'`;\\s])", LiteralNumber, Pop(1)}, - {"(?i)(#d)?((?:[-+]?(?:(?:(?:\\d+(?:/\\d+|\\.\\d*)?|\\.\\d+)|(?:\\d+#+(?:\\.#*|/\\d+#*)?|\\.\\d+#+|\\d+(?:\\.\\d*#+|/\\d+#+)))(?:[defls][-+]?\\d+)?)|[-+](?:(?:inf|nan)\\.[0f]))([-+](?:(?:(?:(?:\\d+(?:/\\d+|\\.\\d*)?|\\.\\d+)|(?:\\d+#+(?:\\.#*|/\\d+#*)?|\\.\\d+#+|\\d+(?:\\.\\d*#+|/\\d+#+)))(?:[defls][-+]?\\d+)?)|(?:(?:inf|nan)\\.[0f]))?i)?|[-+](?:(?:(?:(?:\\d+(?:/\\d+|\\.\\d*)?|\\.\\d+)|(?:\\d+#+(?:\\.#*|/\\d+#*)?|\\.\\d+#+|\\d+(?:\\.\\d*#+|/\\d+#+)))(?:[defls][-+]?\\d+)?)|(?:(?:inf|nan)\\.[0f]))?i|(?:[-+]?(?:(?:(?:\\d+(?:/\\d+|\\.\\d*)?|\\.\\d+)|(?:\\d+#+(?:\\.#*|/\\d+#*)?|\\.\\d+#+|\\d+(?:\\.\\d*#+|/\\d+#+)))(?:[defls][-+]?\\d+)?)|[-+](?:(?:inf|nan)\\.[0f]))@(?:[-+]?(?:(?:(?:\\d+(?:/\\d+|\\.\\d*)?|\\.\\d+)|(?:\\d+#+(?:\\.#*|/\\d+#*)?|\\.\\d+#+|\\d+(?:\\.\\d*#+|/\\d+#+)))(?:[defls][-+]?\\d+)?)|[-+](?:(?:inf|nan)\\.[0f])))(?=[()[\\]{}\",\\'`;\\s])", LiteralNumberFloat, Pop(1)}, - {"(?i)(([-+]?(?:(?:\\d+(?:/\\d+|\\.\\d*)?|\\.\\d+)|(?:\\d+#+(?:\\.#*|/\\d+#*)?|\\.\\d+#+|\\d+(?:\\.\\d*#+|/\\d+#+)))t[-+]?\\d+)|[-+](inf|nan)\\.t)(?=[()[\\]{}\",\\'`;\\s])", LiteralNumberFloat, Pop(1)}, - {"(?i)(#[ei])?#b(?:\\|[^|]*\\||\\\\[\\w\\W]|[^|\\\\()[\\]{}\",\\'`;\\s]+)+", LiteralNumberBin, Pop(1)}, - {"(?i)(#[ei])?#o(?:\\|[^|]*\\||\\\\[\\w\\W]|[^|\\\\()[\\]{}\",\\'`;\\s]+)+", LiteralNumberOct, Pop(1)}, - {"(?i)(#[ei])?#x(?:\\|[^|]*\\||\\\\[\\w\\W]|[^|\\\\()[\\]{}\",\\'`;\\s]+)+", LiteralNumberHex, Pop(1)}, - {"(?i)(#d)?#i(?:\\|[^|]*\\||\\\\[\\w\\W]|[^|\\\\()[\\]{}\",\\'`;\\s]+)+", LiteralNumberFloat, Pop(1)}, - {`#?"`, LiteralStringDouble, Push("#pop", "string")}, - {`#<<(.+)\n(^(?!\1$).*$\n)*^\1$`, LiteralStringHeredoc, Pop(1)}, - {`#\\(u[\da-fA-F]{1,4}|U[\da-fA-F]{1,8})`, LiteralStringChar, Pop(1)}, - {`(?is)#\\([0-7]{3}|[a-z]+|.)`, LiteralStringChar, Pop(1)}, - {`(?s)#[pr]x#?"(\\?.)*?"`, LiteralStringRegex, Pop(1)}, - {`#(true|false|[tTfF])`, NameConstant, Pop(1)}, - {"#:(?:\\|[^|]*\\||\\\\[\\w\\W]|[^|\\\\()[\\]{}\",\\'`;\\s]+)+", KeywordDeclaration, Pop(1)}, - {`(#lang |#!)(\S+)`, ByGroups(KeywordNamespace, NameNamespace), nil}, - {`#reader`, KeywordNamespace, Push("quoted-datum")}, - {"(?i)\\.(?=[()[\\]{}\",\\'`;\\s])|#c[is]|#['`]|#,@?", Operator, nil}, - {`'|#[s&]|#hash(eqv?)?|#\d*(?=[([{])`, Operator, Push("#pop", "quoted-datum")}, - }, - "datum*": { - {"`|,@?", Operator, nil}, - {"(?:\\|[^|]*\\||\\\\[\\w\\W]|[^|\\\\()[\\]{}\",\\'`;\\s]+)+", LiteralStringSymbol, Pop(1)}, - {`[|\\]`, Error, nil}, - Default(Pop(1)), - }, - "list": { - {`[)\]}]`, Punctuation, Pop(1)}, - }, - "unquoted-datum": { - Include("datum"), - {"quote(?=[()[\\]{}\",\\'`;\\s])", Keyword, Push("#pop", "quoted-datum")}, - {"`", Operator, Push("#pop", "quasiquoted-datum")}, - {"quasiquote(?=[()[\\]{}\",\\'`;\\s])", Keyword, Push("#pop", "quasiquoted-datum")}, - {`[([{]`, Punctuation, Push("#pop", "unquoted-list")}, - {Words(``, "(?=[()[\\]{}\",\\'`;\\s])", `#%app`, `#%datum`, `#%declare`, `#%expression`, `#%module-begin`, `#%plain-app`, `#%plain-lambda`, `#%plain-module-begin`, `#%printing-module-begin`, `#%provide`, `#%require`, `#%stratified-body`, `#%top`, `#%top-interaction`, `#%variable-reference`, `->`, `->*`, `->*m`, `->d`, `->dm`, `->i`, `->m`, `...`, `:do-in`, `==`, `=>`, `_`, `absent`, `abstract`, `all-defined-out`, `all-from-out`, `and`, `any`, `augment`, `augment*`, `augment-final`, `augment-final*`, `augride`, `augride*`, `begin`, `begin-for-syntax`, `begin0`, `case`, `case->`, `case->m`, `case-lambda`, `class`, `class*`, `class-field-accessor`, `class-field-mutator`, `class/c`, `class/derived`, `combine-in`, `combine-out`, `command-line`, `compound-unit`, `compound-unit/infer`, `cond`, `cons/dc`, `contract`, `contract-out`, `contract-struct`, `contracted`, `define`, `define-compound-unit`, `define-compound-unit/infer`, `define-contract-struct`, `define-custom-hash-types`, `define-custom-set-types`, `define-for-syntax`, `define-local-member-name`, `define-logger`, `define-match-expander`, `define-member-name`, `define-module-boundary-contract`, `define-namespace-anchor`, `define-opt/c`, `define-sequence-syntax`, `define-serializable-class`, `define-serializable-class*`, `define-signature`, `define-signature-form`, `define-struct`, `define-struct/contract`, `define-struct/derived`, `define-syntax`, `define-syntax-rule`, `define-syntaxes`, `define-unit`, `define-unit-binding`, `define-unit-from-context`, `define-unit/contract`, `define-unit/new-import-export`, `define-unit/s`, `define-values`, `define-values-for-export`, `define-values-for-syntax`, `define-values/invoke-unit`, `define-values/invoke-unit/infer`, `define/augment`, `define/augment-final`, `define/augride`, `define/contract`, `define/final-prop`, `define/match`, `define/overment`, `define/override`, `define/override-final`, `define/private`, `define/public`, `define/public-final`, `define/pubment`, `define/subexpression-pos-prop`, `define/subexpression-pos-prop/name`, `delay`, `delay/idle`, `delay/name`, `delay/strict`, `delay/sync`, `delay/thread`, `do`, `else`, `except`, `except-in`, `except-out`, `export`, `extends`, `failure-cont`, `false`, `false/c`, `field`, `field-bound?`, `file`, `flat-murec-contract`, `flat-rec-contract`, `for`, `for*`, `for*/and`, `for*/async`, `for*/first`, `for*/fold`, `for*/fold/derived`, `for*/hash`, `for*/hasheq`, `for*/hasheqv`, `for*/last`, `for*/list`, `for*/lists`, `for*/mutable-set`, `for*/mutable-seteq`, `for*/mutable-seteqv`, `for*/or`, `for*/product`, `for*/set`, `for*/seteq`, `for*/seteqv`, `for*/stream`, `for*/sum`, `for*/vector`, `for*/weak-set`, `for*/weak-seteq`, `for*/weak-seteqv`, `for-label`, `for-meta`, `for-syntax`, `for-template`, `for/and`, `for/async`, `for/first`, `for/fold`, `for/fold/derived`, `for/hash`, `for/hasheq`, `for/hasheqv`, `for/last`, `for/list`, `for/lists`, `for/mutable-set`, `for/mutable-seteq`, `for/mutable-seteqv`, `for/or`, `for/product`, `for/set`, `for/seteq`, `for/seteqv`, `for/stream`, `for/sum`, `for/vector`, `for/weak-set`, `for/weak-seteq`, `for/weak-seteqv`, `gen:custom-write`, `gen:dict`, `gen:equal+hash`, `gen:set`, `gen:stream`, `generic`, `get-field`, `hash/dc`, `if`, `implies`, `import`, `include`, `include-at/relative-to`, `include-at/relative-to/reader`, `include/reader`, `inherit`, `inherit-field`, `inherit/inner`, `inherit/super`, `init`, `init-depend`, `init-field`, `init-rest`, `inner`, `inspect`, `instantiate`, `interface`, `interface*`, `invariant-assertion`, `invoke-unit`, `invoke-unit/infer`, `lambda`, `lazy`, `let`, `let*`, `let*-values`, `let-syntax`, `let-syntaxes`, `let-values`, `let/cc`, `let/ec`, `letrec`, `letrec-syntax`, `letrec-syntaxes`, `letrec-syntaxes+values`, `letrec-values`, `lib`, `link`, `local`, `local-require`, `log-debug`, `log-error`, `log-fatal`, `log-info`, `log-warning`, `match`, `match*`, `match*/derived`, `match-define`, `match-define-values`, `match-lambda`, `match-lambda*`, `match-lambda**`, `match-let`, `match-let*`, `match-let*-values`, `match-let-values`, `match-letrec`, `match-letrec-values`, `match/derived`, `match/values`, `member-name-key`, `mixin`, `module`, `module*`, `module+`, `nand`, `new`, `nor`, `object-contract`, `object/c`, `only`, `only-in`, `only-meta-in`, `open`, `opt/c`, `or`, `overment`, `overment*`, `override`, `override*`, `override-final`, `override-final*`, `parameterize`, `parameterize*`, `parameterize-break`, `parametric->/c`, `place`, `place*`, `place/context`, `planet`, `prefix`, `prefix-in`, `prefix-out`, `private`, `private*`, `prompt-tag/c`, `protect-out`, `provide`, `provide-signature-elements`, `provide/contract`, `public`, `public*`, `public-final`, `public-final*`, `pubment`, `pubment*`, `quasiquote`, `quasisyntax`, `quasisyntax/loc`, `quote`, `quote-syntax`, `quote-syntax/prune`, `recontract-out`, `recursive-contract`, `relative-in`, `rename`, `rename-in`, `rename-inner`, `rename-out`, `rename-super`, `require`, `send`, `send*`, `send+`, `send-generic`, `send/apply`, `send/keyword-apply`, `set!`, `set!-values`, `set-field!`, `shared`, `stream`, `stream*`, `stream-cons`, `struct`, `struct*`, `struct-copy`, `struct-field-index`, `struct-out`, `struct/c`, `struct/ctc`, `struct/dc`, `submod`, `super`, `super-instantiate`, `super-make-object`, `super-new`, `syntax`, `syntax-case`, `syntax-case*`, `syntax-id-rules`, `syntax-rules`, `syntax/loc`, `tag`, `this`, `this%`, `thunk`, `thunk*`, `time`, `unconstrained-domain->`, `unit`, `unit-from-context`, `unit/c`, `unit/new-import-export`, `unit/s`, `unless`, `unquote`, `unquote-splicing`, `unsyntax`, `unsyntax-splicing`, `values/drop`, `when`, `with-continuation-mark`, `with-contract`, `with-contract-continuation-mark`, `with-handlers`, `with-handlers*`, `with-method`, `with-syntax`, `λ`), Keyword, Pop(1)}, - {Words(``, "(?=[()[\\]{}\",\\'`;\\s])", `*`, `*list/c`, `+`, `-`, `/`, `<`, ``, `>/c`, `>=`, `>=/c`, `abort-current-continuation`, `abs`, `absolute-path?`, `acos`, `add-between`, `add1`, `alarm-evt`, `always-evt`, `and/c`, `andmap`, `angle`, `any/c`, `append`, `append*`, `append-map`, `apply`, `argmax`, `argmin`, `arithmetic-shift`, `arity-at-least`, `arity-at-least-value`, `arity-at-least?`, `arity-checking-wrapper`, `arity-includes?`, `arity=?`, `arrow-contract-info`, `arrow-contract-info-accepts-arglist`, `arrow-contract-info-chaperone-procedure`, `arrow-contract-info-check-first-order`, `arrow-contract-info?`, `asin`, `assf`, `assoc`, `assq`, `assv`, `atan`, `bad-number-of-results`, `banner`, `base->-doms/c`, `base->-rngs/c`, `base->?`, `between/c`, `bitwise-and`, `bitwise-bit-field`, `bitwise-bit-set?`, `bitwise-ior`, `bitwise-not`, `bitwise-xor`, `blame-add-car-context`, `blame-add-cdr-context`, `blame-add-context`, `blame-add-missing-party`, `blame-add-nth-arg-context`, `blame-add-range-context`, `blame-add-unknown-context`, `blame-context`, `blame-contract`, `blame-fmt->-string`, `blame-missing-party?`, `blame-negative`, `blame-original?`, `blame-positive`, `blame-replace-negative`, `blame-source`, `blame-swap`, `blame-swapped?`, `blame-update`, `blame-value`, `blame?`, `boolean=?`, `boolean?`, `bound-identifier=?`, `box`, `box-cas!`, `box-immutable`, `box-immutable/c`, `box/c`, `box?`, `break-enabled`, `break-parameterization?`, `break-thread`, `build-chaperone-contract-property`, `build-compound-type-name`, `build-contract-property`, `build-flat-contract-property`, `build-list`, `build-path`, `build-path/convention-type`, `build-string`, `build-vector`, `byte-pregexp`, `byte-pregexp?`, `byte-ready?`, `byte-regexp`, `byte-regexp?`, `byte?`, `bytes`, `bytes->immutable-bytes`, `bytes->list`, `bytes->path`, `bytes->path-element`, `bytes->string/latin-1`, `bytes->string/locale`, `bytes->string/utf-8`, `bytes-append`, `bytes-append*`, `bytes-close-converter`, `bytes-convert`, `bytes-convert-end`, `bytes-converter?`, `bytes-copy`, `bytes-copy!`, `bytes-environment-variable-name?`, `bytes-fill!`, `bytes-join`, `bytes-length`, `bytes-no-nuls?`, `bytes-open-converter`, `bytes-ref`, `bytes-set!`, `bytes-utf-8-index`, `bytes-utf-8-length`, `bytes-utf-8-ref`, `bytes?`, `bytes?`, `caaaar`, `caaadr`, `caaar`, `caadar`, `caaddr`, `caadr`, `caar`, `cadaar`, `cadadr`, `cadar`, `caddar`, `cadddr`, `caddr`, `cadr`, `call-in-nested-thread`, `call-with-atomic-output-file`, `call-with-break-parameterization`, `call-with-composable-continuation`, `call-with-continuation-barrier`, `call-with-continuation-prompt`, `call-with-current-continuation`, `call-with-default-reading-parameterization`, `call-with-escape-continuation`, `call-with-exception-handler`, `call-with-file-lock/timeout`, `call-with-immediate-continuation-mark`, `call-with-input-bytes`, `call-with-input-file`, `call-with-input-file*`, `call-with-input-string`, `call-with-output-bytes`, `call-with-output-file`, `call-with-output-file*`, `call-with-output-string`, `call-with-parameterization`, `call-with-semaphore`, `call-with-semaphore/enable-break`, `call-with-values`, `call/cc`, `call/ec`, `car`, `cartesian-product`, `cdaaar`, `cdaadr`, `cdaar`, `cdadar`, `cdaddr`, `cdadr`, `cdar`, `cddaar`, `cddadr`, `cddar`, `cdddar`, `cddddr`, `cdddr`, `cddr`, `cdr`, `ceiling`, `channel-get`, `channel-put`, `channel-put-evt`, `channel-put-evt?`, `channel-try-get`, `channel/c`, `channel?`, `chaperone-box`, `chaperone-channel`, `chaperone-continuation-mark-key`, `chaperone-contract-property?`, `chaperone-contract?`, `chaperone-evt`, `chaperone-hash`, `chaperone-hash-set`, `chaperone-of?`, `chaperone-procedure`, `chaperone-procedure*`, `chaperone-prompt-tag`, `chaperone-struct`, `chaperone-struct-type`, `chaperone-vector`, `chaperone?`, `char->integer`, `char-alphabetic?`, `char-blank?`, `char-ci<=?`, `char-ci=?`, `char-ci>?`, `char-downcase`, `char-foldcase`, `char-general-category`, `char-graphic?`, `char-in`, `char-in/c`, `char-iso-control?`, `char-lower-case?`, `char-numeric?`, `char-punctuation?`, `char-ready?`, `char-symbolic?`, `char-title-case?`, `char-titlecase`, `char-upcase`, `char-upper-case?`, `char-utf-8-length`, `char-whitespace?`, `char<=?`, `char=?`, `char>?`, `char?`, `check-duplicate-identifier`, `check-duplicates`, `checked-procedure-check-and-extract`, `choice-evt`, `class->interface`, `class-info`, `class-seal`, `class-unseal`, `class?`, `cleanse-path`, `close-input-port`, `close-output-port`, `coerce-chaperone-contract`, `coerce-chaperone-contracts`, `coerce-contract`, `coerce-contract/f`, `coerce-contracts`, `coerce-flat-contract`, `coerce-flat-contracts`, `collect-garbage`, `collection-file-path`, `collection-path`, `combinations`, `compile`, `compile-allow-set!-undefined`, `compile-context-preservation-enabled`, `compile-enforce-module-constants`, `compile-syntax`, `compiled-expression-recompile`, `compiled-expression?`, `compiled-module-expression?`, `complete-path?`, `complex?`, `compose`, `compose1`, `conjoin`, `conjugate`, `cons`, `cons/c`, `cons?`, `const`, `continuation-mark-key/c`, `continuation-mark-key?`, `continuation-mark-set->context`, `continuation-mark-set->list`, `continuation-mark-set->list*`, `continuation-mark-set-first`, `continuation-mark-set?`, `continuation-marks`, `continuation-prompt-available?`, `continuation-prompt-tag?`, `continuation?`, `contract-continuation-mark-key`, `contract-custom-write-property-proc`, `contract-exercise`, `contract-first-order`, `contract-first-order-passes?`, `contract-late-neg-projection`, `contract-name`, `contract-proc`, `contract-projection`, `contract-property?`, `contract-random-generate`, `contract-random-generate-fail`, `contract-random-generate-fail?`, `contract-random-generate-get-current-environment`, `contract-random-generate-stash`, `contract-random-generate/choose`, `contract-stronger?`, `contract-struct-exercise`, `contract-struct-generate`, `contract-struct-late-neg-projection`, `contract-struct-list-contract?`, `contract-val-first-projection`, `contract?`, `convert-stream`, `copy-directory/files`, `copy-file`, `copy-port`, `cos`, `cosh`, `count`, `current-blame-format`, `current-break-parameterization`, `current-code-inspector`, `current-command-line-arguments`, `current-compile`, `current-compiled-file-roots`, `current-continuation-marks`, `current-contract-region`, `current-custodian`, `current-directory`, `current-directory-for-user`, `current-drive`, `current-environment-variables`, `current-error-port`, `current-eval`, `current-evt-pseudo-random-generator`, `current-force-delete-permissions`, `current-future`, `current-gc-milliseconds`, `current-get-interaction-input-port`, `current-inexact-milliseconds`, `current-input-port`, `current-inspector`, `current-library-collection-links`, `current-library-collection-paths`, `current-load`, `current-load-extension`, `current-load-relative-directory`, `current-load/use-compiled`, `current-locale`, `current-logger`, `current-memory-use`, `current-milliseconds`, `current-module-declare-name`, `current-module-declare-source`, `current-module-name-resolver`, `current-module-path-for-load`, `current-namespace`, `current-output-port`, `current-parameterization`, `current-plumber`, `current-preserved-thread-cell-values`, `current-print`, `current-process-milliseconds`, `current-prompt-read`, `current-pseudo-random-generator`, `current-read-interaction`, `current-reader-guard`, `current-readtable`, `current-seconds`, `current-security-guard`, `current-subprocess-custodian-mode`, `current-thread`, `current-thread-group`, `current-thread-initial-stack-size`, `current-write-relative-directory`, `curry`, `curryr`, `custodian-box-value`, `custodian-box?`, `custodian-limit-memory`, `custodian-managed-list`, `custodian-memory-accounting-available?`, `custodian-require-memory`, `custodian-shutdown-all`, `custodian?`, `custom-print-quotable-accessor`, `custom-print-quotable?`, `custom-write-accessor`, `custom-write-property-proc`, `custom-write?`, `date`, `date*`, `date*-nanosecond`, `date*-time-zone-name`, `date*?`, `date-day`, `date-dst?`, `date-hour`, `date-minute`, `date-month`, `date-second`, `date-time-zone-offset`, `date-week-day`, `date-year`, `date-year-day`, `date?`, `datum->syntax`, `datum-intern-literal`, `default-continuation-prompt-tag`, `degrees->radians`, `delete-directory`, `delete-directory/files`, `delete-file`, `denominator`, `dict->list`, `dict-can-functional-set?`, `dict-can-remove-keys?`, `dict-clear`, `dict-clear!`, `dict-copy`, `dict-count`, `dict-empty?`, `dict-for-each`, `dict-has-key?`, `dict-implements/c`, `dict-implements?`, `dict-iter-contract`, `dict-iterate-first`, `dict-iterate-key`, `dict-iterate-next`, `dict-iterate-value`, `dict-key-contract`, `dict-keys`, `dict-map`, `dict-mutable?`, `dict-ref`, `dict-ref!`, `dict-remove`, `dict-remove!`, `dict-set`, `dict-set!`, `dict-set*`, `dict-set*!`, `dict-update`, `dict-update!`, `dict-value-contract`, `dict-values`, `dict?`, `directory-exists?`, `directory-list`, `disjoin`, `display`, `display-lines`, `display-lines-to-file`, `display-to-file`, `displayln`, `double-flonum?`, `drop`, `drop-common-prefix`, `drop-right`, `dropf`, `dropf-right`, `dump-memory-stats`, `dup-input-port`, `dup-output-port`, `dynamic->*`, `dynamic-get-field`, `dynamic-object/c`, `dynamic-place`, `dynamic-place*`, `dynamic-require`, `dynamic-require-for-syntax`, `dynamic-send`, `dynamic-set-field!`, `dynamic-wind`, `eighth`, `empty`, `empty-sequence`, `empty-stream`, `empty?`, `environment-variables-copy`, `environment-variables-names`, `environment-variables-ref`, `environment-variables-set!`, `environment-variables?`, `eof`, `eof-evt`, `eof-object?`, `ephemeron-value`, `ephemeron?`, `eprintf`, `eq-contract-val`, `eq-contract?`, `eq-hash-code`, `eq?`, `equal-contract-val`, `equal-contract?`, `equal-hash-code`, `equal-secondary-hash-code`, `equal<%>`, `equal?`, `equal?/recur`, `eqv-hash-code`, `eqv?`, `error`, `error-display-handler`, `error-escape-handler`, `error-print-context-length`, `error-print-source-location`, `error-print-width`, `error-value->string-handler`, `eval`, `eval-jit-enabled`, `eval-syntax`, `even?`, `evt/c`, `evt?`, `exact->inexact`, `exact-ceiling`, `exact-floor`, `exact-integer?`, `exact-nonnegative-integer?`, `exact-positive-integer?`, `exact-round`, `exact-truncate`, `exact?`, `executable-yield-handler`, `exit`, `exit-handler`, `exn`, `exn-continuation-marks`, `exn-message`, `exn:break`, `exn:break-continuation`, `exn:break:hang-up`, `exn:break:hang-up?`, `exn:break:terminate`, `exn:break:terminate?`, `exn:break?`, `exn:fail`, `exn:fail:contract`, `exn:fail:contract:arity`, `exn:fail:contract:arity?`, `exn:fail:contract:blame`, `exn:fail:contract:blame-object`, `exn:fail:contract:blame?`, `exn:fail:contract:continuation`, `exn:fail:contract:continuation?`, `exn:fail:contract:divide-by-zero`, `exn:fail:contract:divide-by-zero?`, `exn:fail:contract:non-fixnum-result`, `exn:fail:contract:non-fixnum-result?`, `exn:fail:contract:variable`, `exn:fail:contract:variable-id`, `exn:fail:contract:variable?`, `exn:fail:contract?`, `exn:fail:filesystem`, `exn:fail:filesystem:errno`, `exn:fail:filesystem:errno-errno`, `exn:fail:filesystem:errno?`, `exn:fail:filesystem:exists`, `exn:fail:filesystem:exists?`, `exn:fail:filesystem:missing-module`, `exn:fail:filesystem:missing-module-path`, `exn:fail:filesystem:missing-module?`, `exn:fail:filesystem:version`, `exn:fail:filesystem:version?`, `exn:fail:filesystem?`, `exn:fail:network`, `exn:fail:network:errno`, `exn:fail:network:errno-errno`, `exn:fail:network:errno?`, `exn:fail:network?`, `exn:fail:object`, `exn:fail:object?`, `exn:fail:out-of-memory`, `exn:fail:out-of-memory?`, `exn:fail:read`, `exn:fail:read-srclocs`, `exn:fail:read:eof`, `exn:fail:read:eof?`, `exn:fail:read:non-char`, `exn:fail:read:non-char?`, `exn:fail:read?`, `exn:fail:syntax`, `exn:fail:syntax-exprs`, `exn:fail:syntax:missing-module`, `exn:fail:syntax:missing-module-path`, `exn:fail:syntax:missing-module?`, `exn:fail:syntax:unbound`, `exn:fail:syntax:unbound?`, `exn:fail:syntax?`, `exn:fail:unsupported`, `exn:fail:unsupported?`, `exn:fail:user`, `exn:fail:user?`, `exn:fail?`, `exn:misc:match?`, `exn:missing-module-accessor`, `exn:missing-module?`, `exn:srclocs-accessor`, `exn:srclocs?`, `exn?`, `exp`, `expand`, `expand-once`, `expand-syntax`, `expand-syntax-once`, `expand-syntax-to-top-form`, `expand-to-top-form`, `expand-user-path`, `explode-path`, `expt`, `externalizable<%>`, `failure-result/c`, `false?`, `field-names`, `fifth`, `file->bytes`, `file->bytes-lines`, `file->lines`, `file->list`, `file->string`, `file->value`, `file-exists?`, `file-name-from-path`, `file-or-directory-identity`, `file-or-directory-modify-seconds`, `file-or-directory-permissions`, `file-position`, `file-position*`, `file-size`, `file-stream-buffer-mode`, `file-stream-port?`, `file-truncate`, `filename-extension`, `filesystem-change-evt`, `filesystem-change-evt-cancel`, `filesystem-change-evt?`, `filesystem-root-list`, `filter`, `filter-map`, `filter-not`, `filter-read-input-port`, `find-executable-path`, `find-files`, `find-library-collection-links`, `find-library-collection-paths`, `find-relative-path`, `find-system-path`, `findf`, `first`, `first-or/c`, `fixnum?`, `flat-contract`, `flat-contract-predicate`, `flat-contract-property?`, `flat-contract?`, `flat-named-contract`, `flatten`, `floating-point-bytes->real`, `flonum?`, `floor`, `flush-output`, `fold-files`, `foldl`, `foldr`, `for-each`, `force`, `format`, `fourth`, `fprintf`, `free-identifier=?`, `free-label-identifier=?`, `free-template-identifier=?`, `free-transformer-identifier=?`, `fsemaphore-count`, `fsemaphore-post`, `fsemaphore-try-wait?`, `fsemaphore-wait`, `fsemaphore?`, `future`, `future?`, `futures-enabled?`, `gcd`, `generate-member-key`, `generate-temporaries`, `generic-set?`, `generic?`, `gensym`, `get-output-bytes`, `get-output-string`, `get-preference`, `get/build-late-neg-projection`, `get/build-val-first-projection`, `getenv`, `global-port-print-handler`, `group-by`, `group-execute-bit`, `group-read-bit`, `group-write-bit`, `guard-evt`, `handle-evt`, `handle-evt?`, `has-blame?`, `has-contract?`, `hash`, `hash->list`, `hash-clear`, `hash-clear!`, `hash-copy`, `hash-copy-clear`, `hash-count`, `hash-empty?`, `hash-eq?`, `hash-equal?`, `hash-eqv?`, `hash-for-each`, `hash-has-key?`, `hash-iterate-first`, `hash-iterate-key`, `hash-iterate-key+value`, `hash-iterate-next`, `hash-iterate-pair`, `hash-iterate-value`, `hash-keys`, `hash-map`, `hash-placeholder?`, `hash-ref`, `hash-ref!`, `hash-remove`, `hash-remove!`, `hash-set`, `hash-set!`, `hash-set*`, `hash-set*!`, `hash-update`, `hash-update!`, `hash-values`, `hash-weak?`, `hash/c`, `hash?`, `hasheq`, `hasheqv`, `identifier-binding`, `identifier-binding-symbol`, `identifier-label-binding`, `identifier-prune-lexical-context`, `identifier-prune-to-source-module`, `identifier-remove-from-definition-context`, `identifier-template-binding`, `identifier-transformer-binding`, `identifier?`, `identity`, `if/c`, `imag-part`, `immutable?`, `impersonate-box`, `impersonate-channel`, `impersonate-continuation-mark-key`, `impersonate-hash`, `impersonate-hash-set`, `impersonate-procedure`, `impersonate-procedure*`, `impersonate-prompt-tag`, `impersonate-struct`, `impersonate-vector`, `impersonator-contract?`, `impersonator-ephemeron`, `impersonator-of?`, `impersonator-prop:application-mark`, `impersonator-prop:blame`, `impersonator-prop:contracted`, `impersonator-property-accessor-procedure?`, `impersonator-property?`, `impersonator?`, `implementation?`, `implementation?/c`, `in-bytes`, `in-bytes-lines`, `in-combinations`, `in-cycle`, `in-dict`, `in-dict-keys`, `in-dict-pairs`, `in-dict-values`, `in-directory`, `in-hash`, `in-hash-keys`, `in-hash-pairs`, `in-hash-values`, `in-immutable-hash`, `in-immutable-hash-keys`, `in-immutable-hash-pairs`, `in-immutable-hash-values`, `in-immutable-set`, `in-indexed`, `in-input-port-bytes`, `in-input-port-chars`, `in-lines`, `in-list`, `in-mlist`, `in-mutable-hash`, `in-mutable-hash-keys`, `in-mutable-hash-pairs`, `in-mutable-hash-values`, `in-mutable-set`, `in-naturals`, `in-parallel`, `in-permutations`, `in-port`, `in-producer`, `in-range`, `in-sequences`, `in-set`, `in-slice`, `in-stream`, `in-string`, `in-syntax`, `in-value`, `in-values*-sequence`, `in-values-sequence`, `in-vector`, `in-weak-hash`, `in-weak-hash-keys`, `in-weak-hash-pairs`, `in-weak-hash-values`, `in-weak-set`, `inexact->exact`, `inexact-real?`, `inexact?`, `infinite?`, `input-port-append`, `input-port?`, `inspector?`, `instanceof/c`, `integer->char`, `integer->integer-bytes`, `integer-bytes->integer`, `integer-in`, `integer-length`, `integer-sqrt`, `integer-sqrt/remainder`, `integer?`, `interface->method-names`, `interface-extension?`, `interface?`, `internal-definition-context-binding-identifiers`, `internal-definition-context-introduce`, `internal-definition-context-seal`, `internal-definition-context?`, `is-a?`, `is-a?/c`, `keyword->string`, `keyword-apply`, `keywordbytes`, `list->mutable-set`, `list->mutable-seteq`, `list->mutable-seteqv`, `list->set`, `list->seteq`, `list->seteqv`, `list->string`, `list->vector`, `list->weak-set`, `list->weak-seteq`, `list->weak-seteqv`, `list-contract?`, `list-prefix?`, `list-ref`, `list-set`, `list-tail`, `list-update`, `list/c`, `list?`, `listen-port-number?`, `listof`, `load`, `load-extension`, `load-on-demand-enabled`, `load-relative`, `load-relative-extension`, `load/cd`, `load/use-compiled`, `local-expand`, `local-expand/capture-lifts`, `local-transformer-expand`, `local-transformer-expand/capture-lifts`, `locale-string-encoding`, `log`, `log-all-levels`, `log-level-evt`, `log-level?`, `log-max-level`, `log-message`, `log-receiver?`, `logger-name`, `logger?`, `magnitude`, `make-arity-at-least`, `make-base-empty-namespace`, `make-base-namespace`, `make-bytes`, `make-channel`, `make-chaperone-contract`, `make-continuation-mark-key`, `make-continuation-prompt-tag`, `make-contract`, `make-custodian`, `make-custodian-box`, `make-custom-hash`, `make-custom-hash-types`, `make-custom-set`, `make-custom-set-types`, `make-date`, `make-date*`, `make-derived-parameter`, `make-directory`, `make-directory*`, `make-do-sequence`, `make-empty-namespace`, `make-environment-variables`, `make-ephemeron`, `make-exn`, `make-exn:break`, `make-exn:break:hang-up`, `make-exn:break:terminate`, `make-exn:fail`, `make-exn:fail:contract`, `make-exn:fail:contract:arity`, `make-exn:fail:contract:blame`, `make-exn:fail:contract:continuation`, `make-exn:fail:contract:divide-by-zero`, `make-exn:fail:contract:non-fixnum-result`, `make-exn:fail:contract:variable`, `make-exn:fail:filesystem`, `make-exn:fail:filesystem:errno`, `make-exn:fail:filesystem:exists`, `make-exn:fail:filesystem:missing-module`, `make-exn:fail:filesystem:version`, `make-exn:fail:network`, `make-exn:fail:network:errno`, `make-exn:fail:object`, `make-exn:fail:out-of-memory`, `make-exn:fail:read`, `make-exn:fail:read:eof`, `make-exn:fail:read:non-char`, `make-exn:fail:syntax`, `make-exn:fail:syntax:missing-module`, `make-exn:fail:syntax:unbound`, `make-exn:fail:unsupported`, `make-exn:fail:user`, `make-file-or-directory-link`, `make-flat-contract`, `make-fsemaphore`, `make-generic`, `make-handle-get-preference-locked`, `make-hash`, `make-hash-placeholder`, `make-hasheq`, `make-hasheq-placeholder`, `make-hasheqv`, `make-hasheqv-placeholder`, `make-immutable-custom-hash`, `make-immutable-hash`, `make-immutable-hasheq`, `make-immutable-hasheqv`, `make-impersonator-property`, `make-input-port`, `make-input-port/read-to-peek`, `make-inspector`, `make-keyword-procedure`, `make-known-char-range-list`, `make-limited-input-port`, `make-list`, `make-lock-file-name`, `make-log-receiver`, `make-logger`, `make-mixin-contract`, `make-mutable-custom-set`, `make-none/c`, `make-object`, `make-output-port`, `make-parameter`, `make-parent-directory*`, `make-phantom-bytes`, `make-pipe`, `make-pipe-with-specials`, `make-placeholder`, `make-plumber`, `make-polar`, `make-prefab-struct`, `make-primitive-class`, `make-proj-contract`, `make-pseudo-random-generator`, `make-reader-graph`, `make-readtable`, `make-rectangular`, `make-rename-transformer`, `make-resolved-module-path`, `make-security-guard`, `make-semaphore`, `make-set!-transformer`, `make-shared-bytes`, `make-sibling-inspector`, `make-special-comment`, `make-srcloc`, `make-string`, `make-struct-field-accessor`, `make-struct-field-mutator`, `make-struct-type`, `make-struct-type-property`, `make-syntax-delta-introducer`, `make-syntax-introducer`, `make-temporary-file`, `make-tentative-pretty-print-output-port`, `make-thread-cell`, `make-thread-group`, `make-vector`, `make-weak-box`, `make-weak-custom-hash`, `make-weak-custom-set`, `make-weak-hash`, `make-weak-hasheq`, `make-weak-hasheqv`, `make-will-executor`, `map`, `match-equality-test`, `matches-arity-exactly?`, `max`, `mcar`, `mcdr`, `mcons`, `member`, `member-name-key-hash-code`, `member-name-key=?`, `member-name-key?`, `memf`, `memq`, `memv`, `merge-input`, `method-in-interface?`, `min`, `mixin-contract`, `module->exports`, `module->imports`, `module->language-info`, `module->namespace`, `module-compiled-cross-phase-persistent?`, `module-compiled-exports`, `module-compiled-imports`, `module-compiled-language-info`, `module-compiled-name`, `module-compiled-submodules`, `module-declared?`, `module-path-index-join`, `module-path-index-resolve`, `module-path-index-split`, `module-path-index-submodule`, `module-path-index?`, `module-path?`, `module-predefined?`, `module-provide-protected?`, `modulo`, `mpair?`, `mutable-set`, `mutable-seteq`, `mutable-seteqv`, `n->th`, `nack-guard-evt`, `namespace-anchor->empty-namespace`, `namespace-anchor->namespace`, `namespace-anchor?`, `namespace-attach-module`, `namespace-attach-module-declaration`, `namespace-base-phase`, `namespace-mapped-symbols`, `namespace-module-identifier`, `namespace-module-registry`, `namespace-require`, `namespace-require/constant`, `namespace-require/copy`, `namespace-require/expansion-time`, `namespace-set-variable-value!`, `namespace-symbol->identifier`, `namespace-syntax-introduce`, `namespace-undefine-variable!`, `namespace-unprotect-module`, `namespace-variable-value`, `namespace?`, `nan?`, `natural-number/c`, `negate`, `negative?`, `never-evt`, `new-∀/c`, `new-∃/c`, `newline`, `ninth`, `non-empty-listof`, `non-empty-string?`, `none/c`, `normal-case-path`, `normalize-arity`, `normalize-path`, `normalized-arity?`, `not`, `not/c`, `null`, `null?`, `number->string`, `number?`, `numerator`, `object%`, `object->vector`, `object-info`, `object-interface`, `object-method-arity-includes?`, `object-name`, `object-or-false=?`, `object=?`, `object?`, `odd?`, `one-of/c`, `open-input-bytes`, `open-input-file`, `open-input-output-file`, `open-input-string`, `open-output-bytes`, `open-output-file`, `open-output-nowhere`, `open-output-string`, `or/c`, `order-of-magnitude`, `ormap`, `other-execute-bit`, `other-read-bit`, `other-write-bit`, `output-port?`, `pair?`, `parameter-procedure=?`, `parameter/c`, `parameter?`, `parameterization?`, `parse-command-line`, `partition`, `path->bytes`, `path->complete-path`, `path->directory-path`, `path->string`, `path-add-suffix`, `path-convention-type`, `path-element->bytes`, `path-element->string`, `path-element?`, `path-for-some-system?`, `path-list-string->path-list`, `path-only`, `path-replace-suffix`, `path-string?`, `pathbytes`, `port->bytes-lines`, `port->lines`, `port->list`, `port->string`, `port-closed-evt`, `port-closed?`, `port-commit-peeked`, `port-count-lines!`, `port-count-lines-enabled`, `port-counts-lines?`, `port-display-handler`, `port-file-identity`, `port-file-unlock`, `port-next-location`, `port-number?`, `port-print-handler`, `port-progress-evt`, `port-provides-progress-evts?`, `port-read-handler`, `port-try-file-lock?`, `port-write-handler`, `port-writes-atomic?`, `port-writes-special?`, `port?`, `positive?`, `predicate/c`, `prefab-key->struct-type`, `prefab-key?`, `prefab-struct-key`, `preferences-lock-file-mode`, `pregexp`, `pregexp?`, `pretty-display`, `pretty-format`, `pretty-print`, `pretty-print-.-symbol-without-bars`, `pretty-print-abbreviate-read-macros`, `pretty-print-columns`, `pretty-print-current-style-table`, `pretty-print-depth`, `pretty-print-exact-as-decimal`, `pretty-print-extend-style-table`, `pretty-print-handler`, `pretty-print-newline`, `pretty-print-post-print-hook`, `pretty-print-pre-print-hook`, `pretty-print-print-hook`, `pretty-print-print-line`, `pretty-print-remap-stylable`, `pretty-print-show-inexactness`, `pretty-print-size-hook`, `pretty-print-style-table?`, `pretty-printing`, `pretty-write`, `primitive-closure?`, `primitive-result-arity`, `primitive?`, `print`, `print-as-expression`, `print-boolean-long-form`, `print-box`, `print-graph`, `print-hash-table`, `print-mpair-curly-braces`, `print-pair-curly-braces`, `print-reader-abbreviations`, `print-struct`, `print-syntax-width`, `print-unreadable`, `print-vector-length`, `printable/c`, `printable<%>`, `printf`, `println`, `procedure->method`, `procedure-arity`, `procedure-arity-includes/c`, `procedure-arity-includes?`, `procedure-arity?`, `procedure-closure-contents-eq?`, `procedure-extract-target`, `procedure-keywords`, `procedure-reduce-arity`, `procedure-reduce-keyword-arity`, `procedure-rename`, `procedure-result-arity`, `procedure-specialize`, `procedure-struct-type?`, `procedure?`, `process`, `process*`, `process*/ports`, `process/ports`, `processor-count`, `progress-evt?`, `promise-forced?`, `promise-running?`, `promise/c`, `promise/name?`, `promise?`, `prop:arity-string`, `prop:arrow-contract`, `prop:arrow-contract-get-info`, `prop:arrow-contract?`, `prop:blame`, `prop:chaperone-contract`, `prop:checked-procedure`, `prop:contract`, `prop:contracted`, `prop:custom-print-quotable`, `prop:custom-write`, `prop:dict`, `prop:dict/contract`, `prop:equal+hash`, `prop:evt`, `prop:exn:missing-module`, `prop:exn:srclocs`, `prop:expansion-contexts`, `prop:flat-contract`, `prop:impersonator-of`, `prop:input-port`, `prop:liberal-define-context`, `prop:object-name`, `prop:opt-chaperone-contract`, `prop:opt-chaperone-contract-get-test`, `prop:opt-chaperone-contract?`, `prop:orc-contract`, `prop:orc-contract-get-subcontracts`, `prop:orc-contract?`, `prop:output-port`, `prop:place-location`, `prop:procedure`, `prop:recursive-contract`, `prop:recursive-contract-unroll`, `prop:recursive-contract?`, `prop:rename-transformer`, `prop:sequence`, `prop:set!-transformer`, `prop:stream`, `proper-subset?`, `pseudo-random-generator->vector`, `pseudo-random-generator-vector?`, `pseudo-random-generator?`, `put-preferences`, `putenv`, `quotient`, `quotient/remainder`, `radians->degrees`, `raise`, `raise-argument-error`, `raise-arguments-error`, `raise-arity-error`, `raise-blame-error`, `raise-contract-error`, `raise-mismatch-error`, `raise-not-cons-blame-error`, `raise-range-error`, `raise-result-error`, `raise-syntax-error`, `raise-type-error`, `raise-user-error`, `random`, `random-seed`, `range`, `rational?`, `rationalize`, `read`, `read-accept-bar-quote`, `read-accept-box`, `read-accept-compiled`, `read-accept-dot`, `read-accept-graph`, `read-accept-infix-dot`, `read-accept-lang`, `read-accept-quasiquote`, `read-accept-reader`, `read-byte`, `read-byte-or-special`, `read-bytes`, `read-bytes!`, `read-bytes!-evt`, `read-bytes-avail!`, `read-bytes-avail!*`, `read-bytes-avail!-evt`, `read-bytes-avail!/enable-break`, `read-bytes-evt`, `read-bytes-line`, `read-bytes-line-evt`, `read-case-sensitive`, `read-cdot`, `read-char`, `read-char-or-special`, `read-curly-brace-as-paren`, `read-curly-brace-with-tag`, `read-decimal-as-inexact`, `read-eval-print-loop`, `read-language`, `read-line`, `read-line-evt`, `read-on-demand-source`, `read-square-bracket-as-paren`, `read-square-bracket-with-tag`, `read-string`, `read-string!`, `read-string!-evt`, `read-string-evt`, `read-syntax`, `read-syntax/recursive`, `read/recursive`, `readtable-mapping`, `readtable?`, `real->decimal-string`, `real->double-flonum`, `real->floating-point-bytes`, `real->single-flonum`, `real-in`, `real-part`, `real?`, `reencode-input-port`, `reencode-output-port`, `regexp`, `regexp-match`, `regexp-match*`, `regexp-match-evt`, `regexp-match-exact?`, `regexp-match-peek`, `regexp-match-peek-immediate`, `regexp-match-peek-positions`, `regexp-match-peek-positions*`, `regexp-match-peek-positions-immediate`, `regexp-match-peek-positions-immediate/end`, `regexp-match-peek-positions/end`, `regexp-match-positions`, `regexp-match-positions*`, `regexp-match-positions/end`, `regexp-match/end`, `regexp-match?`, `regexp-max-lookbehind`, `regexp-quote`, `regexp-replace`, `regexp-replace*`, `regexp-replace-quote`, `regexp-replaces`, `regexp-split`, `regexp-try-match`, `regexp?`, `relative-path?`, `relocate-input-port`, `relocate-output-port`, `remainder`, `remf`, `remf*`, `remove`, `remove*`, `remove-duplicates`, `remq`, `remq*`, `remv`, `remv*`, `rename-contract`, `rename-file-or-directory`, `rename-transformer-target`, `rename-transformer?`, `replace-evt`, `reroot-path`, `resolve-path`, `resolved-module-path-name`, `resolved-module-path?`, `rest`, `reverse`, `round`, `second`, `seconds->date`, `security-guard?`, `semaphore-peek-evt`, `semaphore-peek-evt?`, `semaphore-post`, `semaphore-try-wait?`, `semaphore-wait`, `semaphore-wait/enable-break`, `semaphore?`, `sequence->list`, `sequence->stream`, `sequence-add-between`, `sequence-andmap`, `sequence-append`, `sequence-count`, `sequence-filter`, `sequence-fold`, `sequence-for-each`, `sequence-generate`, `sequence-generate*`, `sequence-length`, `sequence-map`, `sequence-ormap`, `sequence-ref`, `sequence-tail`, `sequence/c`, `sequence?`, `set`, `set!-transformer-procedure`, `set!-transformer?`, `set->list`, `set->stream`, `set-add`, `set-add!`, `set-box!`, `set-clear`, `set-clear!`, `set-copy`, `set-copy-clear`, `set-count`, `set-empty?`, `set-eq?`, `set-equal?`, `set-eqv?`, `set-first`, `set-for-each`, `set-implements/c`, `set-implements?`, `set-intersect`, `set-intersect!`, `set-map`, `set-mcar!`, `set-mcdr!`, `set-member?`, `set-mutable?`, `set-phantom-bytes!`, `set-port-next-location!`, `set-remove`, `set-remove!`, `set-rest`, `set-some-basic-contracts!`, `set-subtract`, `set-subtract!`, `set-symmetric-difference`, `set-symmetric-difference!`, `set-union`, `set-union!`, `set-weak?`, `set/c`, `set=?`, `set?`, `seteq`, `seteqv`, `seventh`, `sgn`, `shared-bytes`, `shell-execute`, `shrink-path-wrt`, `shuffle`, `simple-form-path`, `simplify-path`, `sin`, `single-flonum?`, `sinh`, `sixth`, `skip-projection-wrapper?`, `sleep`, `some-system-path->string`, `sort`, `special-comment-value`, `special-comment?`, `special-filter-input-port`, `split-at`, `split-at-right`, `split-common-prefix`, `split-path`, `splitf-at`, `splitf-at-right`, `sqr`, `sqrt`, `srcloc`, `srcloc->string`, `srcloc-column`, `srcloc-line`, `srcloc-position`, `srcloc-source`, `srcloc-span`, `srcloc?`, `stop-after`, `stop-before`, `stream->list`, `stream-add-between`, `stream-andmap`, `stream-append`, `stream-count`, `stream-empty?`, `stream-filter`, `stream-first`, `stream-fold`, `stream-for-each`, `stream-length`, `stream-map`, `stream-ormap`, `stream-ref`, `stream-rest`, `stream-tail`, `stream/c`, `stream?`, `string`, `string->bytes/latin-1`, `string->bytes/locale`, `string->bytes/utf-8`, `string->immutable-string`, `string->keyword`, `string->list`, `string->number`, `string->path`, `string->path-element`, `string->some-system-path`, `string->symbol`, `string->uninterned-symbol`, `string->unreadable-symbol`, `string-append`, `string-append*`, `string-ci<=?`, `string-ci=?`, `string-ci>?`, `string-contains?`, `string-copy`, `string-copy!`, `string-downcase`, `string-environment-variable-name?`, `string-fill!`, `string-foldcase`, `string-join`, `string-len/c`, `string-length`, `string-locale-ci?`, `string-locale-downcase`, `string-locale-upcase`, `string-locale?`, `string-no-nuls?`, `string-normalize-nfc`, `string-normalize-nfd`, `string-normalize-nfkc`, `string-normalize-nfkd`, `string-normalize-spaces`, `string-port?`, `string-prefix?`, `string-ref`, `string-replace`, `string-set!`, `string-split`, `string-suffix?`, `string-titlecase`, `string-trim`, `string-upcase`, `string-utf-8-length`, `string<=?`, `string=?`, `string>?`, `string?`, `struct->vector`, `struct-accessor-procedure?`, `struct-constructor-procedure?`, `struct-info`, `struct-mutator-procedure?`, `struct-predicate-procedure?`, `struct-type-info`, `struct-type-make-constructor`, `struct-type-make-predicate`, `struct-type-property-accessor-procedure?`, `struct-type-property/c`, `struct-type-property?`, `struct-type?`, `struct:arity-at-least`, `struct:arrow-contract-info`, `struct:date`, `struct:date*`, `struct:exn`, `struct:exn:break`, `struct:exn:break:hang-up`, `struct:exn:break:terminate`, `struct:exn:fail`, `struct:exn:fail:contract`, `struct:exn:fail:contract:arity`, `struct:exn:fail:contract:blame`, `struct:exn:fail:contract:continuation`, `struct:exn:fail:contract:divide-by-zero`, `struct:exn:fail:contract:non-fixnum-result`, `struct:exn:fail:contract:variable`, `struct:exn:fail:filesystem`, `struct:exn:fail:filesystem:errno`, `struct:exn:fail:filesystem:exists`, `struct:exn:fail:filesystem:missing-module`, `struct:exn:fail:filesystem:version`, `struct:exn:fail:network`, `struct:exn:fail:network:errno`, `struct:exn:fail:object`, `struct:exn:fail:out-of-memory`, `struct:exn:fail:read`, `struct:exn:fail:read:eof`, `struct:exn:fail:read:non-char`, `struct:exn:fail:syntax`, `struct:exn:fail:syntax:missing-module`, `struct:exn:fail:syntax:unbound`, `struct:exn:fail:unsupported`, `struct:exn:fail:user`, `struct:srcloc`, `struct:wrapped-extra-arg-arrow`, `struct?`, `sub1`, `subbytes`, `subclass?`, `subclass?/c`, `subprocess`, `subprocess-group-enabled`, `subprocess-kill`, `subprocess-pid`, `subprocess-status`, `subprocess-wait`, `subprocess?`, `subset?`, `substring`, `suggest/c`, `symbol->string`, `symbol-interned?`, `symbol-unreadable?`, `symboldatum`, `syntax->list`, `syntax-arm`, `syntax-column`, `syntax-debug-info`, `syntax-disarm`, `syntax-e`, `syntax-line`, `syntax-local-bind-syntaxes`, `syntax-local-certifier`, `syntax-local-context`, `syntax-local-expand-expression`, `syntax-local-get-shadower`, `syntax-local-identifier-as-binding`, `syntax-local-introduce`, `syntax-local-lift-context`, `syntax-local-lift-expression`, `syntax-local-lift-module`, `syntax-local-lift-module-end-declaration`, `syntax-local-lift-provide`, `syntax-local-lift-require`, `syntax-local-lift-values-expression`, `syntax-local-make-definition-context`, `syntax-local-make-delta-introducer`, `syntax-local-module-defined-identifiers`, `syntax-local-module-exports`, `syntax-local-module-required-identifiers`, `syntax-local-name`, `syntax-local-phase-level`, `syntax-local-submodules`, `syntax-local-transforming-module-provides?`, `syntax-local-value`, `syntax-local-value/immediate`, `syntax-original?`, `syntax-position`, `syntax-property`, `syntax-property-preserved?`, `syntax-property-symbol-keys`, `syntax-protect`, `syntax-rearm`, `syntax-recertify`, `syntax-shift-phase-level`, `syntax-source`, `syntax-source-module`, `syntax-span`, `syntax-taint`, `syntax-tainted?`, `syntax-track-origin`, `syntax-transforming-module-expression?`, `syntax-transforming-with-lifts?`, `syntax-transforming?`, `syntax/c`, `syntax?`, `system`, `system*`, `system*/exit-code`, `system-big-endian?`, `system-idle-evt`, `system-language+country`, `system-library-subpath`, `system-path-convention-type`, `system-type`, `system/exit-code`, `tail-marks-match?`, `take`, `take-common-prefix`, `take-right`, `takef`, `takef-right`, `tan`, `tanh`, `tcp-abandon-port`, `tcp-accept`, `tcp-accept-evt`, `tcp-accept-ready?`, `tcp-accept/enable-break`, `tcp-addresses`, `tcp-close`, `tcp-connect`, `tcp-connect/enable-break`, `tcp-listen`, `tcp-listener?`, `tcp-port?`, `tentative-pretty-print-port-cancel`, `tentative-pretty-print-port-transfer`, `tenth`, `terminal-port?`, `the-unsupplied-arg`, `third`, `thread`, `thread-cell-ref`, `thread-cell-set!`, `thread-cell-values?`, `thread-cell?`, `thread-dead-evt`, `thread-dead?`, `thread-group?`, `thread-receive`, `thread-receive-evt`, `thread-resume`, `thread-resume-evt`, `thread-rewind-receive`, `thread-running?`, `thread-send`, `thread-suspend`, `thread-suspend-evt`, `thread-try-receive`, `thread-wait`, `thread/suspend-to-kill`, `thread?`, `time-apply`, `touch`, `transplant-input-port`, `transplant-output-port`, `true`, `truncate`, `udp-addresses`, `udp-bind!`, `udp-bound?`, `udp-close`, `udp-connect!`, `udp-connected?`, `udp-multicast-interface`, `udp-multicast-join-group!`, `udp-multicast-leave-group!`, `udp-multicast-loopback?`, `udp-multicast-set-interface!`, `udp-multicast-set-loopback!`, `udp-multicast-set-ttl!`, `udp-multicast-ttl`, `udp-open-socket`, `udp-receive!`, `udp-receive!*`, `udp-receive!-evt`, `udp-receive!/enable-break`, `udp-receive-ready-evt`, `udp-send`, `udp-send*`, `udp-send-evt`, `udp-send-ready-evt`, `udp-send-to`, `udp-send-to*`, `udp-send-to-evt`, `udp-send-to/enable-break`, `udp-send/enable-break`, `udp?`, `unbox`, `uncaught-exception-handler`, `unit?`, `unspecified-dom`, `unsupplied-arg?`, `use-collection-link-paths`, `use-compiled-file-paths`, `use-user-specific-search-paths`, `user-execute-bit`, `user-read-bit`, `user-write-bit`, `value-blame`, `value-contract`, `values`, `variable-reference->empty-namespace`, `variable-reference->module-base-phase`, `variable-reference->module-declaration-inspector`, `variable-reference->module-path-index`, `variable-reference->module-source`, `variable-reference->namespace`, `variable-reference->phase`, `variable-reference->resolved-module-path`, `variable-reference-constant?`, `variable-reference?`, `vector`, `vector->immutable-vector`, `vector->list`, `vector->pseudo-random-generator`, `vector->pseudo-random-generator!`, `vector->values`, `vector-append`, `vector-argmax`, `vector-argmin`, `vector-copy`, `vector-copy!`, `vector-count`, `vector-drop`, `vector-drop-right`, `vector-fill!`, `vector-filter`, `vector-filter-not`, `vector-immutable`, `vector-immutable/c`, `vector-immutableof`, `vector-length`, `vector-map`, `vector-map!`, `vector-member`, `vector-memq`, `vector-memv`, `vector-ref`, `vector-set!`, `vector-set*!`, `vector-set-performance-stats!`, `vector-split-at`, `vector-split-at-right`, `vector-take`, `vector-take-right`, `vector/c`, `vector?`, `vectorof`, `version`, `void`, `void?`, `weak-box-value`, `weak-box?`, `weak-set`, `weak-seteq`, `weak-seteqv`, `will-execute`, `will-executor?`, `will-register`, `will-try-execute`, `with-input-from-bytes`, `with-input-from-file`, `with-input-from-string`, `with-output-to-bytes`, `with-output-to-file`, `with-output-to-string`, `would-be-future`, `wrap-evt`, `wrapped-extra-arg-arrow`, `wrapped-extra-arg-arrow-extra-neg-party-argument`, `wrapped-extra-arg-arrow-real-func`, `wrapped-extra-arg-arrow?`, `writable<%>`, `write`, `write-byte`, `write-bytes`, `write-bytes-avail`, `write-bytes-avail*`, `write-bytes-avail-evt`, `write-bytes-avail/enable-break`, `write-char`, `write-special`, `write-special-avail*`, `write-special-evt`, `write-string`, `write-to-file`, `writeln`, `xor`, `zero?`, `~.a`, `~.s`, `~.v`, `~a`, `~e`, `~r`, `~s`, `~v`), NameBuiltin, Pop(1)}, - {"(?:\\|[^|]*\\||\\\\[\\w\\W]|[^|\\\\()[\\]{}\",\\'`;\\s]+)+", Name, Pop(1)}, - Include("datum*"), - }, - "unquoted-list": { - Include("list"), - {`(?!\Z)`, Text, Push("unquoted-datum")}, - }, - "quasiquoted-datum": { - Include("datum"), - {`,@?`, Operator, Push("#pop", "unquoted-datum")}, - {"unquote(-splicing)?(?=[()[\\]{}\",\\'`;\\s])", Keyword, Push("#pop", "unquoted-datum")}, - {`[([{]`, Punctuation, Push("#pop", "quasiquoted-list")}, - Include("datum*"), - }, - "quasiquoted-list": { - Include("list"), - {`(?!\Z)`, Text, Push("quasiquoted-datum")}, - }, - "quoted-datum": { - Include("datum"), - {`[([{]`, Punctuation, Push("#pop", "quoted-list")}, - Include("datum*"), - }, - "quoted-list": { - Include("list"), - {`(?!\Z)`, Text, Push("quoted-datum")}, - }, - "block-comment": { - {`#\|`, CommentMultiline, Push()}, - {`\|#`, CommentMultiline, Pop(1)}, - {`[^#|]+|.`, CommentMultiline, nil}, - }, - "string": { - {`"`, LiteralStringDouble, Pop(1)}, - {`(?s)\\([0-7]{1,3}|x[\da-fA-F]{1,2}|u[\da-fA-F]{1,4}|U[\da-fA-F]{1,8}|.)`, LiteralStringEscape, nil}, - {`[^\\"]+`, LiteralStringDouble, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/ragel.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/ragel.go deleted file mode 100644 index 3da0ea70a3..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/ragel.go +++ /dev/null @@ -1,76 +0,0 @@ -package r - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Ragel lexer. -var Ragel = internal.Register(MustNewLexer( - &Config{ - Name: "Ragel", - Aliases: []string{"ragel"}, - Filenames: []string{}, - MimeTypes: []string{}, - }, - Rules{ - "whitespace": { - {`\s+`, TextWhitespace, nil}, - }, - "comments": { - {`\#.*$`, Comment, nil}, - }, - "keywords": { - {`(access|action|alphtype)\b`, Keyword, nil}, - {`(getkey|write|machine|include)\b`, Keyword, nil}, - {`(any|ascii|extend|alpha|digit|alnum|lower|upper)\b`, Keyword, nil}, - {`(xdigit|cntrl|graph|print|punct|space|zlen|empty)\b`, Keyword, nil}, - }, - "numbers": { - {`0x[0-9A-Fa-f]+`, LiteralNumberHex, nil}, - {`[+-]?[0-9]+`, LiteralNumberInteger, nil}, - }, - "literals": { - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralString, nil}, - {`\[(\\\\|\\\]|[^\]])*\]`, LiteralString, nil}, - {`/(?!\*)(\\\\|\\/|[^/])*/`, LiteralStringRegex, nil}, - }, - "identifiers": { - {`[a-zA-Z_]\w*`, NameVariable, nil}, - }, - "operators": { - {`,`, Operator, nil}, - {`\||&|--?`, Operator, nil}, - {`\.|<:|:>>?`, Operator, nil}, - {`:`, Operator, nil}, - {`->`, Operator, nil}, - {`(>|\$|%|<|@|<>)(/|eof\b)`, Operator, nil}, - {`(>|\$|%|<|@|<>)(!|err\b)`, Operator, nil}, - {`(>|\$|%|<|@|<>)(\^|lerr\b)`, Operator, nil}, - {`(>|\$|%|<|@|<>)(~|to\b)`, Operator, nil}, - {`(>|\$|%|<|@|<>)(\*|from\b)`, Operator, nil}, - {`>|@|\$|%`, Operator, nil}, - {`\*|\?|\+|\{[0-9]*,[0-9]*\}`, Operator, nil}, - {`!|\^`, Operator, nil}, - {`\(|\)`, Operator, nil}, - }, - "root": { - Include("literals"), - Include("whitespace"), - Include("comments"), - Include("keywords"), - Include("numbers"), - Include("identifiers"), - Include("operators"), - {`\{`, Punctuation, Push("host")}, - {`=`, Operator, nil}, - {`;`, Punctuation, nil}, - }, - "host": { - {`([^{}\'"/#]+|[^\\]\\[{}]|"(\\\\|\\"|[^"])*"|'(\\\\|\\'|[^'])*'|//.*$\n?|/\*(.|\n)*?\*/|\#.*$\n?|/(?!\*)(\\\\|\\/|[^/])*/|/)+`, Other, nil}, - {`\{`, Punctuation, Push()}, - {`\}`, Punctuation, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/reasonml.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/reasonml.go deleted file mode 100644 index 0bceb186e1..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/reasonml.go +++ /dev/null @@ -1,67 +0,0 @@ -package r - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Reasonml lexer. -var Reasonml = internal.Register(MustNewLexer( - &Config{ - Name: "ReasonML", - Aliases: []string{"reason", "reasonml"}, - Filenames: []string{"*.re", "*.rei"}, - MimeTypes: []string{"text/x-reasonml"}, - }, - Rules{ - "escape-sequence": { - {`\\[\\"\'ntbr]`, LiteralStringEscape, nil}, - {`\\[0-9]{3}`, LiteralStringEscape, nil}, - {`\\x[0-9a-fA-F]{2}`, LiteralStringEscape, nil}, - }, - "root": { - {`\s+`, Text, nil}, - {`false|true|\(\)|\[\]`, NameBuiltinPseudo, nil}, - {`\b([A-Z][\w\']*)(?=\s*\.)`, NameNamespace, Push("dotted")}, - {`\b([A-Z][\w\']*)`, NameClass, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`\/\*(?![\/])`, CommentMultiline, Push("comment")}, - {`\b(as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|false|for|fun|esfun|function|functor|if|in|include|inherit|initializer|lazy|let|switch|module|pub|mutable|new|nonrec|object|of|open|pri|rec|sig|struct|then|to|true|try|type|val|virtual|when|while|with)\b`, Keyword, nil}, - {"(~|\\}|\\|]|\\||\\|\\||\\{<|\\{|`|_|]|\\[\\||\\[>|\\[<|\\[|\\?\\?|\\?|>\\}|>]|>|=|<-|<|;;|;|:>|:=|::|:|\\.\\.\\.|\\.\\.|\\.|=>|-\\.|-|,|\\+|\\*|\\)|\\(|&&|&|#|!=)", OperatorWord, nil}, - {`([=<>@^|&+\*/$%-]|[!?~])?[!$%&*+\./:<=>?@^|~-]`, Operator, nil}, - {`\b(and|asr|land|lor|lsl|lsr|lxor|mod|or)\b`, OperatorWord, nil}, - {`\b(unit|int|float|bool|string|char|list|array)\b`, KeywordType, nil}, - {`[^\W\d][\w']*`, Name, nil}, - {`-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)`, LiteralNumberFloat, nil}, - {`0[xX][\da-fA-F][\da-fA-F_]*`, LiteralNumberHex, nil}, - {`0[oO][0-7][0-7_]*`, LiteralNumberOct, nil}, - {`0[bB][01][01_]*`, LiteralNumberBin, nil}, - {`\d[\d_]*`, LiteralNumberInteger, nil}, - {`'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'`, LiteralStringChar, nil}, - {`'.'`, LiteralStringChar, nil}, - {`'`, Keyword, nil}, - {`"`, LiteralStringDouble, Push("string")}, - {`[~?][a-z][\w\']*:`, NameVariable, nil}, - }, - "comment": { - {`[^\/*]+`, CommentMultiline, nil}, - {`\/\*`, CommentMultiline, Push()}, - {`\*\/`, CommentMultiline, Pop(1)}, - {`[\*]`, CommentMultiline, nil}, - }, - "string": { - {`[^\\"]+`, LiteralStringDouble, nil}, - Include("escape-sequence"), - {`\\\n`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "dotted": { - {`\s+`, Text, nil}, - {`\.`, Punctuation, nil}, - {`[A-Z][\w\']*(?=\s*\.)`, NameNamespace, nil}, - {`[A-Z][\w\']*`, NameClass, Pop(1)}, - {`[a-z_][\w\']*`, Name, Pop(1)}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/regedit.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/regedit.go deleted file mode 100644 index 7ee9cb5816..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/regedit.go +++ /dev/null @@ -1,32 +0,0 @@ -package r - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Reg lexer. -var Reg = internal.Register(MustNewLexer( - &Config{ - Name: "reg", - Aliases: []string{"registry"}, - Filenames: []string{"*.reg"}, - MimeTypes: []string{"text/x-windows-registry"}, - }, - Rules{ - "root": { - {`Windows Registry Editor.*`, Text, nil}, - {`\s+`, Text, nil}, - {`[;#].*`, CommentSingle, nil}, - {`(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$`, ByGroups(Keyword, Operator, NameBuiltin, Keyword), nil}, - {`("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)`, ByGroups(NameAttribute, Text, Operator, Text), Push("value")}, - {`(.*?)([ \t]*)(=)([ \t]*)`, ByGroups(NameAttribute, Text, Operator, Text), Push("value")}, - }, - "value": { - {`-`, Operator, Pop(1)}, - {`(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)`, ByGroups(NameVariable, Punctuation, LiteralNumber), Pop(1)}, - {`.+`, LiteralString, Pop(1)}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rexx.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rexx.go deleted file mode 100644 index 1f5550a53d..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rexx.go +++ /dev/null @@ -1,59 +0,0 @@ -package r - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Rexx lexer. -var Rexx = internal.Register(MustNewLexer( - &Config{ - Name: "Rexx", - Aliases: []string{"rexx", "arexx"}, - Filenames: []string{"*.rexx", "*.rex", "*.rx", "*.arexx"}, - MimeTypes: []string{"text/x-rexx"}, - NotMultiline: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\s`, TextWhitespace, nil}, - {`/\*`, CommentMultiline, Push("comment")}, - {`"`, LiteralString, Push("string_double")}, - {`'`, LiteralString, Push("string_single")}, - {`[0-9]+(\.[0-9]+)?(e[+-]?[0-9])?`, LiteralNumber, nil}, - {`([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b`, ByGroups(NameFunction, TextWhitespace, Operator, TextWhitespace, KeywordDeclaration), nil}, - {`([a-z_]\w*)(\s*)(:)`, ByGroups(NameLabel, TextWhitespace, Operator), nil}, - Include("function"), - Include("keyword"), - Include("operator"), - {`[a-z_]\w*`, Text, nil}, - }, - "function": { - {Words(``, `(\s*)(\()`, `abbrev`, `abs`, `address`, `arg`, `b2x`, `bitand`, `bitor`, `bitxor`, `c2d`, `c2x`, `center`, `charin`, `charout`, `chars`, `compare`, `condition`, `copies`, `d2c`, `d2x`, `datatype`, `date`, `delstr`, `delword`, `digits`, `errortext`, `form`, `format`, `fuzz`, `insert`, `lastpos`, `left`, `length`, `linein`, `lineout`, `lines`, `max`, `min`, `overlay`, `pos`, `queued`, `random`, `reverse`, `right`, `sign`, `sourceline`, `space`, `stream`, `strip`, `substr`, `subword`, `symbol`, `time`, `trace`, `translate`, `trunc`, `value`, `verify`, `word`, `wordindex`, `wordlength`, `wordpos`, `words`, `x2b`, `x2c`, `x2d`, `xrange`), ByGroups(NameBuiltin, TextWhitespace, Operator), nil}, - }, - "keyword": { - {`(address|arg|by|call|do|drop|else|end|exit|for|forever|if|interpret|iterate|leave|nop|numeric|off|on|options|parse|pull|push|queue|return|say|select|signal|to|then|trace|until|while)\b`, KeywordReserved, nil}, - }, - "operator": { - {`(-|//|/|\(|\)|\*\*|\*|\\<<|\\<|\\==|\\=|\\>>|\\>|\\|\|\||\||&&|&|%|\+|<<=|<<|<=|<>|<|==|=|><|>=|>>=|>>|>|¬<<|¬<|¬==|¬=|¬>>|¬>|¬|\.|,)`, Operator, nil}, - }, - "string_double": { - {`[^"\n]+`, LiteralString, nil}, - {`""`, LiteralString, nil}, - {`"`, LiteralString, Pop(1)}, - {`\n`, Text, Pop(1)}, - }, - "string_single": { - {`[^\'\n]`, LiteralString, nil}, - {`\'\'`, LiteralString, nil}, - {`\'`, LiteralString, Pop(1)}, - {`\n`, Text, Pop(1)}, - }, - "comment": { - {`[^*]+`, CommentMultiline, nil}, - {`\*/`, CommentMultiline, Pop(1)}, - {`\*`, CommentMultiline, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rst.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rst.go deleted file mode 100644 index f09dad0929..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rst.go +++ /dev/null @@ -1,86 +0,0 @@ -package r - -import ( - "strings" - - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Restructuredtext lexer. -var Restructuredtext = internal.Register(MustNewLexer( - &Config{ - Name: "reStructuredText", - Aliases: []string{"rst", "rest", "restructuredtext"}, - Filenames: []string{"*.rst", "*.rest"}, - MimeTypes: []string{"text/x-rst", "text/prs.fallenstein.rst"}, - }, - Rules{ - "root": { - {"^(=+|-+|`+|:+|\\.+|\\'+|\"+|~+|\\^+|_+|\\*+|\\++|#+)([ \\t]*\\n)(.+)(\\n)(\\1)(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text, GenericHeading, Text), nil}, - {"^(\\S.*)(\\n)(={3,}|-{3,}|`{3,}|:{3,}|\\.{3,}|\\'{3,}|\"{3,}|~{3,}|\\^{3,}|_{3,}|\\*{3,}|\\+{3,}|#{3,})(\\n)", ByGroups(GenericHeading, Text, GenericHeading, Text), nil}, - {`^(\s*)([-*+])( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, - {`^(\s*)([0-9#ivxlcmIVXLCM]+\.)( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, - {`^(\s*)(\(?[0-9#ivxlcmIVXLCM]+\))( .+\n(?:\1 .+\n)*)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, - {`^(\s*)([A-Z]+\.)( .+\n(?:\1 .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, - {`^(\s*)(\(?[A-Za-z]+\))( .+\n(?:\1 .+\n)+)`, ByGroups(Text, LiteralNumber, UsingSelf("inline")), nil}, - {`^(\s*)(\|)( .+\n(?:\| .+\n)*)`, ByGroups(Text, Operator, UsingSelf("inline")), nil}, - {`^( *\.\.)(\s*)((?:source)?code(?:-block)?)(::)([ \t]*)([^\n]+)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\8.*|)\n)+)`, EmitterFunc(rstCodeBlock), nil}, - {`^( *\.\.)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil}, - {`^( *\.\.)(\s*)(_(?:[^:\\]|\\.)+:)(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil}, - {`^( *\.\.)(\s*)(\[.+\])(.*?)$`, ByGroups(Punctuation, Text, NameTag, UsingSelf("inline")), nil}, - {`^( *\.\.)(\s*)(\|.+\|)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))`, ByGroups(Punctuation, Text, NameTag, Text, OperatorWord, Punctuation, Text, UsingSelf("inline")), nil}, - {`^ *\.\..*(\n( +.*\n|\n)+)?`, CommentPreproc, nil}, - {`^( *)(:[a-zA-Z-]+:)(\s*)$`, ByGroups(Text, NameClass, Text), nil}, - {`^( *)(:.*?:)([ \t]+)(.*?)$`, ByGroups(Text, NameClass, Text, NameFunction), nil}, - {`^(\S.*(?)(`__?)", ByGroups(LiteralString, LiteralStringInterpol, LiteralString), nil}, - {"`.+?`__?", LiteralString, nil}, - {"(`.+?`)(:[a-zA-Z0-9:-]+?:)?", ByGroups(NameVariable, NameAttribute), nil}, - {"(:[a-zA-Z0-9:-]+?:)(`.+?`)", ByGroups(NameAttribute, NameVariable), nil}, - {`\*\*.+?\*\*`, GenericStrong, nil}, - {`\*.+?\*`, GenericEmph, nil}, - {`\[.*?\]_`, LiteralString, nil}, - {`<.+?>`, NameTag, nil}, - {"[^\\\\\\n\\[*`:]+", Text, nil}, - {`.`, Text, nil}, - }, - "literal": { - {"[^`]+", LiteralString, nil}, - {"``((?=$)|(?=[-/:.,; \\n\\x00\\\u2010\\\u2011\\\u2012\\\u2013\\\u2014\\\u00a0\\'\\\"\\)\\]\\}\\>\\\u2019\\\u201d\\\u00bb\\!\\?]))", LiteralString, Pop(1)}, - {"`", LiteralString, nil}, - }, - }, -)) - -func rstCodeBlock(groups []string, lexer Lexer) Iterator { - iterators := []Iterator{} - tokens := []Token{ - {Punctuation, groups[1]}, - {Text, groups[2]}, - {OperatorWord, groups[3]}, - {Punctuation, groups[4]}, - {Text, groups[5]}, - {Keyword, groups[6]}, - {Text, groups[7]}, - } - code := strings.Join(groups[8:], "") - lexer = internal.Get(groups[6]) - if lexer == nil { - tokens = append(tokens, Token{String, code}) - iterators = append(iterators, Literator(tokens...)) - } else { - sub, err := lexer.Tokenise(nil, code) - if err != nil { - panic(err) - } - iterators = append(iterators, Literator(tokens...), sub) - } - return Concaterator(iterators...) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/ruby.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/ruby.go deleted file mode 100644 index 6af8db2049..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/ruby.go +++ /dev/null @@ -1,250 +0,0 @@ -package r - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Ruby lexer. -var Ruby = internal.Register(MustNewLexer( - &Config{ - Name: "Ruby", - Aliases: []string{"rb", "ruby", "duby"}, - Filenames: []string{"*.rb", "*.rbw", "Rakefile", "*.rake", "*.gemspec", "*.rbx", "*.duby", "Gemfile"}, - MimeTypes: []string{"text/x-ruby", "application/x-ruby"}, - DotAll: true, - }, - Rules{ - "root": { - {`\A#!.+?$`, CommentHashbang, nil}, - {`#.*?$`, CommentSingle, nil}, - {`=begin\s.*?\n=end.*?$`, CommentMultiline, nil}, - {Words(``, `\b`, `BEGIN`, `END`, `alias`, `begin`, `break`, `case`, `defined?`, `do`, `else`, `elsif`, `end`, `ensure`, `for`, `if`, `in`, `next`, `redo`, `rescue`, `raise`, `retry`, `return`, `super`, `then`, `undef`, `unless`, `until`, `when`, `while`, `yield`), Keyword, nil}, - {`(module)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)`, ByGroups(Keyword, Text, NameNamespace), nil}, - {`(def)(\s+)`, ByGroups(Keyword, Text), Push("funcname")}, - {"def(?=[*%&^`~+-/\\[<>=])", Keyword, Push("funcname")}, - {`(class)(\s+)`, ByGroups(Keyword, Text), Push("classname")}, - {Words(``, `\b`, `initialize`, `new`, `loop`, `include`, `extend`, `raise`, `attr_reader`, `attr_writer`, `attr_accessor`, `attr`, `catch`, `throw`, `private`, `module_function`, `public`, `protected`, `true`, `false`, `nil`), KeywordPseudo, nil}, - {`(not|and|or)\b`, OperatorWord, nil}, - {Words(``, `\?`, `autoload`, `block_given`, `const_defined`, `eql`, `equal`, `frozen`, `include`, `instance_of`, `is_a`, `iterator`, `kind_of`, `method_defined`, `nil`, `private_method_defined`, `protected_method_defined`, `public_method_defined`, `respond_to`, `tainted`), NameBuiltin, nil}, - {`(chomp|chop|exit|gsub|sub)!`, NameBuiltin, nil}, - {Words(`(?~!:])|(?<=(?:\s|;)when\s)|(?<=(?:\s|;)or\s)|(?<=(?:\s|;)and\s)|(?<=\.index\s)|(?<=\.scan\s)|(?<=\.sub\s)|(?<=\.sub!\s)|(?<=\.gsub\s)|(?<=\.gsub!\s)|(?<=\.match\s)|(?<=(?:\s|;)if\s)|(?<=(?:\s|;)elsif\s)|(?<=^when\s)|(?<=^index\s)|(?<=^scan\s)|(?<=^sub\s)|(?<=^gsub\s)|(?<=^sub!\s)|(?<=^gsub!\s)|(?<=^match\s)|(?<=^if\s)|(?<=^elsif\s))(\s*)(/)`, ByGroups(Text, LiteralStringRegex), Push("multiline-regex")}, - {`(?<=\(|,|\[)/`, LiteralStringRegex, Push("multiline-regex")}, - {`(\s+)(/)(?![\s=])`, ByGroups(Text, LiteralStringRegex), Push("multiline-regex")}, - {`(0_?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?`, ByGroups(LiteralNumberOct, Text, Operator), nil}, - {`(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?`, ByGroups(LiteralNumberHex, Text, Operator), nil}, - {`(0b[01]+(?:_[01]+)*)(\s*)([/?])?`, ByGroups(LiteralNumberBin, Text, Operator), nil}, - {`([\d]+(?:_\d+)*)(\s*)([/?])?`, ByGroups(LiteralNumberInteger, Text, Operator), nil}, - {`@@[a-zA-Z_]\w*`, NameVariableClass, nil}, - {`@[a-zA-Z_]\w*`, NameVariableInstance, nil}, - {`\$\w+`, NameVariableGlobal, nil}, - {"\\$[!@&`\\'+~=/\\\\,;.<>_*$?:\"^-]", NameVariableGlobal, nil}, - {`\$-[0adFiIlpvw]`, NameVariableGlobal, nil}, - {`::`, Operator, nil}, - Include("strings"), - {`\?(\\[MC]-)*(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)`, LiteralStringChar, nil}, - {`[A-Z]\w+`, NameConstant, nil}, - {Words(`(\.|::)`, ``, `*`, `**`, `-`, `+`, `-@`, `+@`, `/`, `%`, `&`, `|`, `^`, "`", `~`, `[]`, `[]=`, `<<`, `>>`, `<`, `<>`, `<=>`, `>`, `>=`, `==`, `===`), ByGroups(Operator, NameOperator), nil}, - {"(\\.|::)([a-zA-Z_]\\w*[!?]?|[*%&^`~+\\-/\\[<>=])", ByGroups(Operator, Name), nil}, - {`[a-zA-Z_]\w*[!?]?`, Name, nil}, - {`(\[|\]|\*\*|<>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\.{1,3})`, Operator, nil}, - {`[-+/*%=<>&!^|~]=?`, Operator, nil}, - {`[(){};,/?:\\]`, Punctuation, nil}, - {`\s+`, Text, nil}, - }, - "funcname": { - {`\(`, Punctuation, Push("defexpr")}, - {"(?:([a-zA-Z_]\\w*)(\\.))?([a-zA-Z_]\\w*[!?]?|\\*\\*?|[-+]@?|[/%&|^`~]|\\[\\]=?|<<|>>|<=?>|>=?|===?)", ByGroups(NameClass, Operator, NameFunction), Pop(1)}, - Default(Pop(1)), - }, - "classname": { - {`\(`, Punctuation, Push("defexpr")}, - {`<<`, Operator, Pop(1)}, - {`[A-Z_]\w*`, NameClass, Pop(1)}, - Default(Pop(1)), - }, - "defexpr": { - {`(\))(\.|::)?`, ByGroups(Punctuation, Operator), Pop(1)}, - {`\(`, Operator, Push()}, - Include("root"), - }, - "in-intp": { - {`\{`, LiteralStringInterpol, Push()}, - {`\}`, LiteralStringInterpol, Pop(1)}, - Include("root"), - }, - "string-intp": { - {`#\{`, LiteralStringInterpol, Push("in-intp")}, - {`#@@?[a-zA-Z_]\w*`, LiteralStringInterpol, nil}, - {`#\$[a-zA-Z_]\w*`, LiteralStringInterpol, nil}, - }, - "string-intp-escaped": { - Include("string-intp"), - {`\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})`, LiteralStringEscape, nil}, - }, - "interpolated-regex": { - Include("string-intp"), - {`[\\#]`, LiteralStringRegex, nil}, - {`[^\\#]+`, LiteralStringRegex, nil}, - }, - "interpolated-string": { - Include("string-intp"), - {`[\\#]`, LiteralStringOther, nil}, - {`[^\\#]+`, LiteralStringOther, nil}, - }, - "multiline-regex": { - Include("string-intp"), - {`\\\\`, LiteralStringRegex, nil}, - {`\\/`, LiteralStringRegex, nil}, - {`[\\#]`, LiteralStringRegex, nil}, - {`[^\\/#]+`, LiteralStringRegex, nil}, - {`/[mixounse]*`, LiteralStringRegex, Pop(1)}, - }, - "end-part": { - {`.+`, CommentPreproc, Pop(1)}, - }, - "strings": { - {`\:@{0,2}[a-zA-Z_]\w*[!?]?`, LiteralStringSymbol, nil}, - {Words(`\:@{0,2}`, ``, `*`, `**`, `-`, `+`, `-@`, `+@`, `/`, `%`, `&`, `|`, `^`, "`", `~`, `[]`, `[]=`, `<<`, `>>`, `<`, `<>`, `<=>`, `>`, `>=`, `==`, `===`), LiteralStringSymbol, nil}, - {`:'(\\\\|\\'|[^'])*'`, LiteralStringSymbol, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`:"`, LiteralStringSymbol, Push("simple-sym")}, - {`([a-zA-Z_]\w*)(:)(?!:)`, ByGroups(LiteralStringSymbol, Punctuation), nil}, - {`"`, LiteralStringDouble, Push("simple-string")}, - {"(?&!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)`, ByGroups(Text, LiteralStringOther, None), nil}, - {`^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)`, ByGroups(Text, LiteralStringOther, None), nil}, - {`(%([^a-zA-Z0-9\s]))((?:\\\2|(?!\2).)*)(\2)`, String, nil}, - }, - "simple-string": { - Include("string-intp-escaped"), - {`[^\\"#]+`, LiteralStringDouble, nil}, - {`[\\#]`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "simple-sym": { - Include("string-intp-escaped"), - {`[^\\"#]+`, LiteralStringSymbol, nil}, - {`[\\#]`, LiteralStringSymbol, nil}, - {`"`, LiteralStringSymbol, Pop(1)}, - }, - "simple-backtick": { - Include("string-intp-escaped"), - {"[^\\\\`#]+", LiteralStringBacktick, nil}, - {`[\\#]`, LiteralStringBacktick, nil}, - {"`", LiteralStringBacktick, Pop(1)}, - }, - "cb-intp-string": { - {`\\[\\{}]`, LiteralStringOther, nil}, - {`\{`, LiteralStringOther, Push()}, - {`\}`, LiteralStringOther, Pop(1)}, - Include("string-intp-escaped"), - {`[\\#{}]`, LiteralStringOther, nil}, - {`[^\\#{}]+`, LiteralStringOther, nil}, - }, - "cb-string": { - {`\\[\\{}]`, LiteralStringOther, nil}, - {`\{`, LiteralStringOther, Push()}, - {`\}`, LiteralStringOther, Pop(1)}, - {`[\\#{}]`, LiteralStringOther, nil}, - {`[^\\#{}]+`, LiteralStringOther, nil}, - }, - "cb-regex": { - {`\\[\\{}]`, LiteralStringRegex, nil}, - {`\{`, LiteralStringRegex, Push()}, - {`\}[mixounse]*`, LiteralStringRegex, Pop(1)}, - Include("string-intp"), - {`[\\#{}]`, LiteralStringRegex, nil}, - {`[^\\#{}]+`, LiteralStringRegex, nil}, - }, - "sb-intp-string": { - {`\\[\\\[\]]`, LiteralStringOther, nil}, - {`\[`, LiteralStringOther, Push()}, - {`\]`, LiteralStringOther, Pop(1)}, - Include("string-intp-escaped"), - {`[\\#\[\]]`, LiteralStringOther, nil}, - {`[^\\#\[\]]+`, LiteralStringOther, nil}, - }, - "sb-string": { - {`\\[\\\[\]]`, LiteralStringOther, nil}, - {`\[`, LiteralStringOther, Push()}, - {`\]`, LiteralStringOther, Pop(1)}, - {`[\\#\[\]]`, LiteralStringOther, nil}, - {`[^\\#\[\]]+`, LiteralStringOther, nil}, - }, - "sb-regex": { - {`\\[\\\[\]]`, LiteralStringRegex, nil}, - {`\[`, LiteralStringRegex, Push()}, - {`\][mixounse]*`, LiteralStringRegex, Pop(1)}, - Include("string-intp"), - {`[\\#\[\]]`, LiteralStringRegex, nil}, - {`[^\\#\[\]]+`, LiteralStringRegex, nil}, - }, - "pa-intp-string": { - {`\\[\\()]`, LiteralStringOther, nil}, - {`\(`, LiteralStringOther, Push()}, - {`\)`, LiteralStringOther, Pop(1)}, - Include("string-intp-escaped"), - {`[\\#()]`, LiteralStringOther, nil}, - {`[^\\#()]+`, LiteralStringOther, nil}, - }, - "pa-string": { - {`\\[\\()]`, LiteralStringOther, nil}, - {`\(`, LiteralStringOther, Push()}, - {`\)`, LiteralStringOther, Pop(1)}, - {`[\\#()]`, LiteralStringOther, nil}, - {`[^\\#()]+`, LiteralStringOther, nil}, - }, - "pa-regex": { - {`\\[\\()]`, LiteralStringRegex, nil}, - {`\(`, LiteralStringRegex, Push()}, - {`\)[mixounse]*`, LiteralStringRegex, Pop(1)}, - Include("string-intp"), - {`[\\#()]`, LiteralStringRegex, nil}, - {`[^\\#()]+`, LiteralStringRegex, nil}, - }, - "ab-intp-string": { - {`\\[\\<>]`, LiteralStringOther, nil}, - {`<`, LiteralStringOther, Push()}, - {`>`, LiteralStringOther, Pop(1)}, - Include("string-intp-escaped"), - {`[\\#<>]`, LiteralStringOther, nil}, - {`[^\\#<>]+`, LiteralStringOther, nil}, - }, - "ab-string": { - {`\\[\\<>]`, LiteralStringOther, nil}, - {`<`, LiteralStringOther, Push()}, - {`>`, LiteralStringOther, Pop(1)}, - {`[\\#<>]`, LiteralStringOther, nil}, - {`[^\\#<>]+`, LiteralStringOther, nil}, - }, - "ab-regex": { - {`\\[\\<>]`, LiteralStringRegex, nil}, - {`<`, LiteralStringRegex, Push()}, - {`>[mixounse]*`, LiteralStringRegex, Pop(1)}, - Include("string-intp"), - {`[\\#<>]`, LiteralStringRegex, nil}, - {`[^\\#<>]+`, LiteralStringRegex, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rust.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rust.go deleted file mode 100644 index 191d1becab..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/r/rust.go +++ /dev/null @@ -1,135 +0,0 @@ -package r - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Rust lexer. -var Rust = internal.Register(MustNewLexer( - &Config{ - Name: "Rust", - Aliases: []string{"rust"}, - Filenames: []string{"*.rs", "*.rs.in"}, - MimeTypes: []string{"text/rust"}, - EnsureNL: true, - }, - Rules{ - "root": { - {`#![^[\r\n].*$`, CommentPreproc, nil}, - Default(Push("base")), - }, - "base": { - {`\n`, TextWhitespace, nil}, - {`\s+`, TextWhitespace, nil}, - {`//!.*?\n`, LiteralStringDoc, nil}, - {`///(\n|[^/].*?\n)`, LiteralStringDoc, nil}, - {`//(.*?)\n`, CommentSingle, nil}, - {`/\*\*(\n|[^/*])`, LiteralStringDoc, Push("doccomment")}, - {`/\*!`, LiteralStringDoc, Push("doccomment")}, - {`/\*`, CommentMultiline, Push("comment")}, - {`r#*"(?:\\.|[^\\\r\n;])*"#*`, LiteralString, nil}, - {`"(?:\\.|[^\\\r\n"])*"`, LiteralString, nil}, - {`\$([a-zA-Z_]\w*|\(,?|\),?|,?)`, CommentPreproc, nil}, - {Words(``, `\b`, `as`, `box`, `const`, `crate`, `else`, `extern`, `for`, `if`, `impl`, `in`, `loop`, `match`, `move`, `mut`, `pub`, `ref`, `return`, `static`, `super`, `trait`, `unsafe`, `use`, `where`, `while`), Keyword, nil}, - {Words(``, `\b`, `abstract`, `alignof`, `become`, `do`, `final`, `macro`, `offsetof`, `override`, `priv`, `proc`, `pure`, `sizeof`, `typeof`, `unsized`, `virtual`, `yield`), KeywordReserved, nil}, - {`(true|false)\b`, KeywordConstant, nil}, - {`mod\b`, Keyword, Push("modname")}, - {`let\b`, KeywordDeclaration, nil}, - {`fn\b`, Keyword, Push("funcname")}, - {`(struct|enum|type|union)\b`, Keyword, Push("typename")}, - {`(default)(\s+)(type|fn)\b`, ByGroups(Keyword, Text, Keyword), nil}, - {Words(``, `\b`, `u8`, `u16`, `u32`, `u64`, `i8`, `i16`, `i32`, `i64`, `usize`, `isize`, `f32`, `f64`, `str`, `bool`), KeywordType, nil}, - {`self\b`, NameBuiltinPseudo, nil}, - {Words(``, `\b`, `Copy`, `Send`, `Sized`, `Sync`, `Drop`, `Fn`, `FnMut`, `FnOnce`, `Box`, `ToOwned`, `Clone`, `PartialEq`, `PartialOrd`, `Eq`, `Ord`, `AsRef`, `AsMut`, `Into`, `From`, `Default`, `Iterator`, `Extend`, `IntoIterator`, `DoubleEndedIterator`, `ExactSizeIterator`, `Option`, `Some`, `None`, `Result`, `Ok`, `Err`, `SliceConcatExt`, `String`, `ToString`, `Vec`), NameBuiltin, nil}, - {`::\b`, Text, nil}, - {`(?::|->)`, Text, Push("typename")}, - {`(break|continue)(\s*)(\'[A-Za-z_]\w*)?`, ByGroups(Keyword, TextWhitespace, NameLabel), nil}, - {`'(\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)'`, LiteralStringChar, nil}, - {`b'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\0|\\u\{[0-9a-fA-F]{1,6}\}|.)'`, LiteralStringChar, nil}, - {`0b[01_]+`, LiteralNumberBin, Push("number_lit")}, - {`0o[0-7_]+`, LiteralNumberOct, Push("number_lit")}, - {`0[xX][0-9a-fA-F_]+`, LiteralNumberHex, Push("number_lit")}, - {`[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)`, LiteralNumberFloat, Push("number_lit")}, - {`[0-9][0-9_]*`, LiteralNumberInteger, Push("number_lit")}, - {`b"`, LiteralString, Push("bytestring")}, - {`b?r(#*)".*?"\1`, LiteralString, nil}, - {`'static`, NameBuiltin, nil}, - {`'[a-zA-Z_]\w*`, NameAttribute, nil}, - {`[{}()\[\],.;]`, Punctuation, nil}, - {`[+\-*/%&|<>^!~@=:?]`, Operator, nil}, - {`(r#)?[a-zA-Z_]\w*`, Name, nil}, - {`#!?\[`, CommentPreproc, Push("attribute[")}, - {`([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\s*)(\{)`, ByGroups(CommentPreproc, Punctuation, TextWhitespace, Name, TextWhitespace, Punctuation), Push("macro{")}, - {`([A-Za-z_]\w*)(!)(\s*)([A-Za-z_]\w*)?(\()`, ByGroups(CommentPreproc, Punctuation, TextWhitespace, Name, Punctuation), Push("macro(")}, - }, - "comment": { - {`[^*/]+`, CommentMultiline, nil}, - {`/\*`, CommentMultiline, Push()}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[*/]`, CommentMultiline, nil}, - }, - "doccomment": { - {`[^*/]+`, LiteralStringDoc, nil}, - {`/\*`, LiteralStringDoc, Push()}, - {`\*/`, LiteralStringDoc, Pop(1)}, - {`[*/]`, LiteralStringDoc, nil}, - }, - "modname": { - {`\s+`, Text, nil}, - {`[a-zA-Z_]\w*`, NameNamespace, Pop(1)}, - Default(Pop(1)), - }, - "funcname": { - {`\s+`, Text, nil}, - {`[a-zA-Z_]\w*`, NameFunction, Pop(1)}, - Default(Pop(1)), - }, - "typename": { - {`\s+`, Text, nil}, - {`&`, KeywordPseudo, nil}, - {Words(``, `\b`, `Copy`, `Send`, `Sized`, `Sync`, `Drop`, `Fn`, `FnMut`, `FnOnce`, `Box`, `ToOwned`, `Clone`, `PartialEq`, `PartialOrd`, `Eq`, `Ord`, `AsRef`, `AsMut`, `Into`, `From`, `Default`, `Iterator`, `Extend`, `IntoIterator`, `DoubleEndedIterator`, `ExactSizeIterator`, `Option`, `Some`, `None`, `Result`, `Ok`, `Err`, `SliceConcatExt`, `String`, `ToString`, `Vec`), NameBuiltin, nil}, - {Words(``, `\b`, `u8`, `u16`, `u32`, `u64`, `i8`, `i16`, `i32`, `i64`, `usize`, `isize`, `f32`, `f64`, `str`, `bool`), KeywordType, nil}, - {`[a-zA-Z_]\w*`, NameClass, Pop(1)}, - Default(Pop(1)), - }, - "number_lit": { - {`[ui](8|16|32|64|size)`, Keyword, Pop(1)}, - {`f(32|64)`, Keyword, Pop(1)}, - Default(Pop(1)), - }, - "string": { - {`"`, LiteralString, Pop(1)}, - {`\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0|\\u\{[0-9a-fA-F]{1,6}\}`, LiteralStringEscape, nil}, - {`[^\\"]+`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - }, - "bytestring": { - {`\\x[89a-fA-F][0-9a-fA-F]`, LiteralStringEscape, nil}, - Include("string"), - }, - "macro{": { - {`\{`, Operator, Push()}, - {`\}`, Operator, Pop(1)}, - }, - "macro(": { - {`\(`, Operator, Push()}, - {`\)`, Operator, Pop(1)}, - }, - "attribute_common": { - {`"`, LiteralString, Push("string")}, - {`\[`, CommentPreproc, Push("attribute[")}, - {`\(`, CommentPreproc, Push("attribute(")}, - }, - "attribute[": { - Include("attribute_common"), - {`\];?`, CommentPreproc, Pop(1)}, - {`[^"\]]+`, CommentPreproc, nil}, - }, - "attribute(": { - Include("attribute_common"), - {`\);?`, CommentPreproc, Pop(1)}, - {`[^")]+`, CommentPreproc, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sas.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sas.go deleted file mode 100644 index 47a67ed801..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sas.go +++ /dev/null @@ -1,94 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Sas lexer. -var Sas = internal.Register(MustNewLexer( - &Config{ - Name: "SAS", - Aliases: []string{"sas"}, - Filenames: []string{"*.SAS", "*.sas"}, - MimeTypes: []string{"text/x-sas", "text/sas", "application/x-sas"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - Include("comments"), - Include("proc-data"), - Include("cards-datalines"), - Include("logs"), - Include("general"), - {`.`, Text, nil}, - {`\\\n`, Text, nil}, - {`\n`, Text, nil}, - }, - "comments": { - {`^\s*\*.*?;`, Comment, nil}, - {`/\*.*?\*/`, Comment, nil}, - {`^\s*\*(.|\n)*?;`, CommentMultiline, nil}, - {`/[*](.|\n)*?[*]/`, CommentMultiline, nil}, - }, - "proc-data": { - {`(^|;)\s*(proc \w+|data|run|quit)[\s;]`, KeywordReserved, nil}, - }, - "cards-datalines": { - {`^\s*(datalines|cards)\s*;\s*$`, Keyword, Push("data")}, - }, - "data": { - {`(.|\n)*^\s*;\s*$`, Other, Pop(1)}, - }, - "logs": { - {`\n?^\s*%?put `, Keyword, Push("log-messages")}, - }, - "log-messages": { - {`NOTE(:|-).*`, Generic, Pop(1)}, - {`WARNING(:|-).*`, GenericEmph, Pop(1)}, - {`ERROR(:|-).*`, GenericError, Pop(1)}, - Include("general"), - }, - "general": { - Include("keywords"), - Include("vars-strings"), - Include("special"), - Include("numbers"), - }, - "keywords": { - {Words(`\b`, `\b`, `abort`, `array`, `attrib`, `by`, `call`, `cards`, `cards4`, `catname`, `continue`, `datalines`, `datalines4`, `delete`, `delim`, `delimiter`, `display`, `dm`, `drop`, `endsas`, `error`, `file`, `filename`, `footnote`, `format`, `goto`, `in`, `infile`, `informat`, `input`, `keep`, `label`, `leave`, `length`, `libname`, `link`, `list`, `lostcard`, `merge`, `missing`, `modify`, `options`, `output`, `out`, `page`, `put`, `redirect`, `remove`, `rename`, `replace`, `retain`, `return`, `select`, `set`, `skip`, `startsas`, `stop`, `title`, `update`, `waitsas`, `where`, `window`, `x`, `systask`), Keyword, nil}, - {Words(`\b`, `\b`, `add`, `and`, `alter`, `as`, `cascade`, `check`, `create`, `delete`, `describe`, `distinct`, `drop`, `foreign`, `from`, `group`, `having`, `index`, `insert`, `into`, `in`, `key`, `like`, `message`, `modify`, `msgtype`, `not`, `null`, `on`, `or`, `order`, `primary`, `references`, `reset`, `restrict`, `select`, `set`, `table`, `unique`, `update`, `validate`, `view`, `where`), Keyword, nil}, - {Words(`\b`, `\b`, `do`, `if`, `then`, `else`, `end`, `until`, `while`), Keyword, nil}, - {Words(`%`, `\b`, `bquote`, `nrbquote`, `cmpres`, `qcmpres`, `compstor`, `datatyp`, `display`, `do`, `else`, `end`, `eval`, `global`, `goto`, `if`, `index`, `input`, `keydef`, `label`, `left`, `length`, `let`, `local`, `lowcase`, `macro`, `mend`, `nrquote`, `nrstr`, `put`, `qleft`, `qlowcase`, `qscan`, `qsubstr`, `qsysfunc`, `qtrim`, `quote`, `qupcase`, `scan`, `str`, `substr`, `superq`, `syscall`, `sysevalf`, `sysexec`, `sysfunc`, `sysget`, `syslput`, `sysprod`, `sysrc`, `sysrput`, `then`, `to`, `trim`, `unquote`, `until`, `upcase`, `verify`, `while`, `window`), NameBuiltin, nil}, - {Words(`\b`, `\(`, `abs`, `addr`, `airy`, `arcos`, `arsin`, `atan`, `attrc`, `attrn`, `band`, `betainv`, `blshift`, `bnot`, `bor`, `brshift`, `bxor`, `byte`, `cdf`, `ceil`, `cexist`, `cinv`, `close`, `cnonct`, `collate`, `compbl`, `compound`, `compress`, `cos`, `cosh`, `css`, `curobs`, `cv`, `daccdb`, `daccdbsl`, `daccsl`, `daccsyd`, `dacctab`, `dairy`, `date`, `datejul`, `datepart`, `datetime`, `day`, `dclose`, `depdb`, `depdbsl`, `depsl`, `depsyd`, `deptab`, `dequote`, `dhms`, `dif`, `digamma`, `dim`, `dinfo`, `dnum`, `dopen`, `doptname`, `doptnum`, `dread`, `dropnote`, `dsname`, `erf`, `erfc`, `exist`, `exp`, `fappend`, `fclose`, `fcol`, `fdelete`, `fetch`, `fetchobs`, `fexist`, `fget`, `fileexist`, `filename`, `fileref`, `finfo`, `finv`, `fipname`, `fipnamel`, `fipstate`, `floor`, `fnonct`, `fnote`, `fopen`, `foptname`, `foptnum`, `fpoint`, `fpos`, `fput`, `fread`, `frewind`, `frlen`, `fsep`, `fuzz`, `fwrite`, `gaminv`, `gamma`, `getoption`, `getvarc`, `getvarn`, `hbound`, `hms`, `hosthelp`, `hour`, `ibessel`, `index`, `indexc`, `indexw`, `input`, `inputc`, `inputn`, `int`, `intck`, `intnx`, `intrr`, `irr`, `jbessel`, `juldate`, `kurtosis`, `lag`, `lbound`, `left`, `length`, `lgamma`, `libname`, `libref`, `log`, `log10`, `log2`, `logpdf`, `logpmf`, `logsdf`, `lowcase`, `max`, `mdy`, `mean`, `min`, `minute`, `mod`, `month`, `mopen`, `mort`, `n`, `netpv`, `nmiss`, `normal`, `note`, `npv`, `open`, `ordinal`, `pathname`, `pdf`, `peek`, `peekc`, `pmf`, `point`, `poisson`, `poke`, `probbeta`, `probbnml`, `probchi`, `probf`, `probgam`, `probhypr`, `probit`, `probnegb`, `probnorm`, `probt`, `put`, `putc`, `putn`, `qtr`, `quote`, `ranbin`, `rancau`, `ranexp`, `rangam`, `range`, `rank`, `rannor`, `ranpoi`, `rantbl`, `rantri`, `ranuni`, `repeat`, `resolve`, `reverse`, `rewind`, `right`, `round`, `saving`, `scan`, `sdf`, `second`, `sign`, `sin`, `sinh`, `skewness`, `soundex`, `spedis`, `sqrt`, `std`, `stderr`, `stfips`, `stname`, `stnamel`, `substr`, `sum`, `symget`, `sysget`, `sysmsg`, `sysprod`, `sysrc`, `system`, `tan`, `tanh`, `time`, `timepart`, `tinv`, `tnonct`, `today`, `translate`, `tranwrd`, `trigamma`, `trim`, `trimn`, `trunc`, `uniform`, `upcase`, `uss`, `var`, `varfmt`, `varinfmt`, `varlabel`, `varlen`, `varname`, `varnum`, `varray`, `varrayx`, `vartype`, `verify`, `vformat`, `vformatd`, `vformatdx`, `vformatn`, `vformatnx`, `vformatw`, `vformatwx`, `vformatx`, `vinarray`, `vinarrayx`, `vinformat`, `vinformatd`, `vinformatdx`, `vinformatn`, `vinformatnx`, `vinformatw`, `vinformatwx`, `vinformatx`, `vlabel`, `vlabelx`, `vlength`, `vlengthx`, `vname`, `vnamex`, `vtype`, `vtypex`, `weekday`, `year`, `yyq`, `zipfips`, `zipname`, `zipnamel`, `zipstate`), NameBuiltin, nil}, - }, - "vars-strings": { - {`&[a-z_]\w{0,31}\.?`, NameVariable, nil}, - {`%[a-z_]\w{0,31}`, NameFunction, nil}, - {`\'`, LiteralString, Push("string_squote")}, - {`"`, LiteralString, Push("string_dquote")}, - }, - "string_squote": { - {`'`, LiteralString, Pop(1)}, - {`\\\\|\\"|\\\n`, LiteralStringEscape, nil}, - {`[^$\'\\]+`, LiteralString, nil}, - {`[$\'\\]`, LiteralString, nil}, - }, - "string_dquote": { - {`"`, LiteralString, Pop(1)}, - {`\\\\|\\"|\\\n`, LiteralStringEscape, nil}, - {`&`, NameVariable, Push("validvar")}, - {`[^$&"\\]+`, LiteralString, nil}, - {`[$"\\]`, LiteralString, nil}, - }, - "validvar": { - {`[a-z_]\w{0,31}\.?`, NameVariable, Pop(1)}, - }, - "numbers": { - {`\b[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)(E[+-]?[0-9]+)?i?\b`, LiteralNumber, nil}, - }, - "special": { - {`(null|missing|_all_|_automatic_|_character_|_n_|_infile_|_name_|_null_|_numeric_|_user_|_webout_)`, KeywordConstant, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sass.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sass.go deleted file mode 100644 index 6200f6a375..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sass.go +++ /dev/null @@ -1,144 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Sass lexer. -var Sass = internal.Register(MustNewLexer( - &Config{ - Name: "Sass", - Aliases: []string{"sass"}, - Filenames: []string{"*.sass"}, - MimeTypes: []string{"text/x-sass"}, - CaseInsensitive: true, - }, - Rules{ - // "root": { - // }, - "root": { - {`[ \t]*\n`, Text, nil}, - // { `[ \t]*`, ?? ??, nil }, - // { `//[^\n]*`, ?? .callback at 0x106936048> ??, Push("root") }, - // { `/\*[^\n]*`, ?? .callback at 0x1069360d0> ??, Push("root") }, - {`@import`, Keyword, Push("import")}, - {`@for`, Keyword, Push("for")}, - {`@(debug|warn|if|while)`, Keyword, Push("value")}, - {`(@mixin)( [\w-]+)`, ByGroups(Keyword, NameFunction), Push("value")}, - {`(@include)( [\w-]+)`, ByGroups(Keyword, NameDecorator), Push("value")}, - {`@extend`, Keyword, Push("selector")}, - {`@[\w-]+`, Keyword, Push("selector")}, - {`=[\w-]+`, NameFunction, Push("value")}, - {`\+[\w-]+`, NameDecorator, Push("value")}, - {`([!$][\w-]\w*)([ \t]*(?:(?:\|\|)?=|:))`, ByGroups(NameVariable, Operator), Push("value")}, - {`:`, NameAttribute, Push("old-style-attr")}, - {`(?=.+?[=:]([^a-z]|$))`, NameAttribute, Push("new-style-attr")}, - Default(Push("selector")), - }, - "single-comment": { - {`.+`, CommentSingle, nil}, - {`\n`, Text, Push("root")}, - }, - "multi-comment": { - {`.+`, CommentMultiline, nil}, - {`\n`, Text, Push("root")}, - }, - "import": { - {`[ \t]+`, Text, nil}, - {`\S+`, LiteralString, nil}, - {`\n`, Text, Push("root")}, - }, - "old-style-attr": { - {`[^\s:="\[]+`, NameAttribute, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`[ \t]*=`, Operator, Push("value")}, - Default(Push("value")), - }, - "new-style-attr": { - {`[^\s:="\[]+`, NameAttribute, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`[ \t]*[=:]`, Operator, Push("value")}, - }, - "inline-comment": { - {`(\\#|#(?=[^\n{])|\*(?=[^\n/])|[^\n#*])+`, CommentMultiline, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`\*/`, Comment, Pop(1)}, - }, - "value": { - {`[ \t]+`, Text, nil}, - {`[!$][\w-]+`, NameVariable, nil}, - {`url\(`, LiteralStringOther, Push("string-url")}, - {`[a-z_-][\w-]*(?=\()`, NameFunction, nil}, - {Words(``, `\b`, `align-content`, `align-items`, `align-self`, `alignment-baseline`, `all`, `animation`, `animation-delay`, `animation-direction`, `animation-duration`, `animation-fill-mode`, `animation-iteration-count`, `animation-name`, `animation-play-state`, `animation-timing-function`, `appearance`, `azimuth`, `backface-visibility`, `background`, `background-attachment`, `background-blend-mode`, `background-clip`, `background-color`, `background-image`, `background-origin`, `background-position`, `background-repeat`, `background-size`, `baseline-shift`, `bookmark-label`, `bookmark-level`, `bookmark-state`, `border`, `border-bottom`, `border-bottom-color`, `border-bottom-left-radius`, `border-bottom-right-radius`, `border-bottom-style`, `border-bottom-width`, `border-boundary`, `border-collapse`, `border-color`, `border-image`, `border-image-outset`, `border-image-repeat`, `border-image-slice`, `border-image-source`, `border-image-width`, `border-left`, `border-left-color`, `border-left-style`, `border-left-width`, `border-radius`, `border-right`, `border-right-color`, `border-right-style`, `border-right-width`, `border-spacing`, `border-style`, `border-top`, `border-top-color`, `border-top-left-radius`, `border-top-right-radius`, `border-top-style`, `border-top-width`, `border-width`, `bottom`, `box-decoration-break`, `box-shadow`, `box-sizing`, `box-snap`, `box-suppress`, `break-after`, `break-before`, `break-inside`, `caption-side`, `caret`, `caret-animation`, `caret-color`, `caret-shape`, `chains`, `clear`, `clip`, `clip-path`, `clip-rule`, `color`, `color-interpolation-filters`, `column-count`, `column-fill`, `column-gap`, `column-rule`, `column-rule-color`, `column-rule-style`, `column-rule-width`, `column-span`, `column-width`, `columns`, `content`, `counter-increment`, `counter-reset`, `counter-set`, `crop`, `cue`, `cue-after`, `cue-before`, `cursor`, `direction`, `display`, `dominant-baseline`, `elevation`, `empty-cells`, `filter`, `flex`, `flex-basis`, `flex-direction`, `flex-flow`, `flex-grow`, `flex-shrink`, `flex-wrap`, `float`, `float-defer`, `float-offset`, `float-reference`, `flood-color`, `flood-opacity`, `flow`, `flow-from`, `flow-into`, `font`, `font-family`, `font-feature-settings`, `font-kerning`, `font-language-override`, `font-size`, `font-size-adjust`, `font-stretch`, `font-style`, `font-synthesis`, `font-variant`, `font-variant-alternates`, `font-variant-caps`, `font-variant-east-asian`, `font-variant-ligatures`, `font-variant-numeric`, `font-variant-position`, `font-weight`, `footnote-display`, `footnote-policy`, `glyph-orientation-vertical`, `grid`, `grid-area`, `grid-auto-columns`, `grid-auto-flow`, `grid-auto-rows`, `grid-column`, `grid-column-end`, `grid-column-gap`, `grid-column-start`, `grid-gap`, `grid-row`, `grid-row-end`, `grid-row-gap`, `grid-row-start`, `grid-template`, `grid-template-areas`, `grid-template-columns`, `grid-template-rows`, `hanging-punctuation`, `height`, `hyphenate-character`, `hyphenate-limit-chars`, `hyphenate-limit-last`, `hyphenate-limit-lines`, `hyphenate-limit-zone`, `hyphens`, `image-orientation`, `image-resolution`, `initial-letter`, `initial-letter-align`, `initial-letter-wrap`, `isolation`, `justify-content`, `justify-items`, `justify-self`, `left`, `letter-spacing`, `lighting-color`, `line-break`, `line-grid`, `line-height`, `line-snap`, `list-style`, `list-style-image`, `list-style-position`, `list-style-type`, `margin`, `margin-bottom`, `margin-left`, `margin-right`, `margin-top`, `marker-side`, `marquee-direction`, `marquee-loop`, `marquee-speed`, `marquee-style`, `mask`, `mask-border`, `mask-border-mode`, `mask-border-outset`, `mask-border-repeat`, `mask-border-slice`, `mask-border-source`, `mask-border-width`, `mask-clip`, `mask-composite`, `mask-image`, `mask-mode`, `mask-origin`, `mask-position`, `mask-repeat`, `mask-size`, `mask-type`, `max-height`, `max-lines`, `max-width`, `min-height`, `min-width`, `mix-blend-mode`, `motion`, `motion-offset`, `motion-path`, `motion-rotation`, `move-to`, `nav-down`, `nav-left`, `nav-right`, `nav-up`, `object-fit`, `object-position`, `offset-after`, `offset-before`, `offset-end`, `offset-start`, `opacity`, `order`, `orphans`, `outline`, `outline-color`, `outline-offset`, `outline-style`, `outline-width`, `overflow`, `overflow-style`, `overflow-wrap`, `overflow-x`, `overflow-y`, `padding`, `padding-bottom`, `padding-left`, `padding-right`, `padding-top`, `page`, `page-break-after`, `page-break-before`, `page-break-inside`, `page-policy`, `pause`, `pause-after`, `pause-before`, `perspective`, `perspective-origin`, `pitch`, `pitch-range`, `play-during`, `polar-angle`, `polar-distance`, `position`, `presentation-level`, `quotes`, `region-fragment`, `resize`, `rest`, `rest-after`, `rest-before`, `richness`, `right`, `rotation`, `rotation-point`, `ruby-align`, `ruby-merge`, `ruby-position`, `running`, `scroll-snap-coordinate`, `scroll-snap-destination`, `scroll-snap-points-x`, `scroll-snap-points-y`, `scroll-snap-type`, `shape-image-threshold`, `shape-inside`, `shape-margin`, `shape-outside`, `size`, `speak`, `speak-as`, `speak-header`, `speak-numeral`, `speak-punctuation`, `speech-rate`, `stress`, `string-set`, `tab-size`, `table-layout`, `text-align`, `text-align-last`, `text-combine-upright`, `text-decoration`, `text-decoration-color`, `text-decoration-line`, `text-decoration-skip`, `text-decoration-style`, `text-emphasis`, `text-emphasis-color`, `text-emphasis-position`, `text-emphasis-style`, `text-indent`, `text-justify`, `text-orientation`, `text-overflow`, `text-shadow`, `text-space-collapse`, `text-space-trim`, `text-spacing`, `text-transform`, `text-underline-position`, `text-wrap`, `top`, `transform`, `transform-origin`, `transform-style`, `transition`, `transition-delay`, `transition-duration`, `transition-property`, `transition-timing-function`, `unicode-bidi`, `user-select`, `vertical-align`, `visibility`, `voice-balance`, `voice-duration`, `voice-family`, `voice-pitch`, `voice-range`, `voice-rate`, `voice-stress`, `voice-volume`, `volume`, `white-space`, `widows`, `width`, `will-change`, `word-break`, `word-spacing`, `word-wrap`, `wrap-after`, `wrap-before`, `wrap-flow`, `wrap-inside`, `wrap-through`, `writing-mode`, `z-index`, `above`, `absolute`, `always`, `armenian`, `aural`, `auto`, `avoid`, `baseline`, `behind`, `below`, `bidi-override`, `blink`, `block`, `bold`, `bolder`, `both`, `capitalize`, `center-left`, `center-right`, `center`, `circle`, `cjk-ideographic`, `close-quote`, `collapse`, `condensed`, `continuous`, `crop`, `crosshair`, `cross`, `cursive`, `dashed`, `decimal-leading-zero`, `decimal`, `default`, `digits`, `disc`, `dotted`, `double`, `e-resize`, `embed`, `extra-condensed`, `extra-expanded`, `expanded`, `fantasy`, `far-left`, `far-right`, `faster`, `fast`, `fixed`, `georgian`, `groove`, `hebrew`, `help`, `hidden`, `hide`, `higher`, `high`, `hiragana-iroha`, `hiragana`, `icon`, `inherit`, `inline-table`, `inline`, `inset`, `inside`, `invert`, `italic`, `justify`, `katakana-iroha`, `katakana`, `landscape`, `larger`, `large`, `left-side`, `leftwards`, `level`, `lighter`, `line-through`, `list-item`, `loud`, `lower-alpha`, `lower-greek`, `lower-roman`, `lowercase`, `ltr`, `lower`, `low`, `medium`, `message-box`, `middle`, `mix`, `monospace`, `n-resize`, `narrower`, `ne-resize`, `no-close-quote`, `no-open-quote`, `no-repeat`, `none`, `normal`, `nowrap`, `nw-resize`, `oblique`, `once`, `open-quote`, `outset`, `outside`, `overline`, `pointer`, `portrait`, `px`, `relative`, `repeat-x`, `repeat-y`, `repeat`, `rgb`, `ridge`, `right-side`, `rightwards`, `s-resize`, `sans-serif`, `scroll`, `se-resize`, `semi-condensed`, `semi-expanded`, `separate`, `serif`, `show`, `silent`, `slow`, `slower`, `small-caps`, `small-caption`, `smaller`, `soft`, `solid`, `spell-out`, `square`, `static`, `status-bar`, `super`, `sw-resize`, `table-caption`, `table-cell`, `table-column`, `table-column-group`, `table-footer-group`, `table-header-group`, `table-row`, `table-row-group`, `text`, `text-bottom`, `text-top`, `thick`, `thin`, `transparent`, `ultra-condensed`, `ultra-expanded`, `underline`, `upper-alpha`, `upper-latin`, `upper-roman`, `uppercase`, `url`, `visible`, `w-resize`, `wait`, `wider`, `x-fast`, `x-high`, `x-large`, `x-loud`, `x-low`, `x-small`, `x-soft`, `xx-large`, `xx-small`, `yes`), NameConstant, nil}, - {Words(``, `\b`, `aliceblue`, `antiquewhite`, `aqua`, `aquamarine`, `azure`, `beige`, `bisque`, `black`, `blanchedalmond`, `blue`, `blueviolet`, `brown`, `burlywood`, `cadetblue`, `chartreuse`, `chocolate`, `coral`, `cornflowerblue`, `cornsilk`, `crimson`, `cyan`, `darkblue`, `darkcyan`, `darkgoldenrod`, `darkgray`, `darkgreen`, `darkgrey`, `darkkhaki`, `darkmagenta`, `darkolivegreen`, `darkorange`, `darkorchid`, `darkred`, `darksalmon`, `darkseagreen`, `darkslateblue`, `darkslategray`, `darkslategrey`, `darkturquoise`, `darkviolet`, `deeppink`, `deepskyblue`, `dimgray`, `dimgrey`, `dodgerblue`, `firebrick`, `floralwhite`, `forestgreen`, `fuchsia`, `gainsboro`, `ghostwhite`, `gold`, `goldenrod`, `gray`, `green`, `greenyellow`, `grey`, `honeydew`, `hotpink`, `indianred`, `indigo`, `ivory`, `khaki`, `lavender`, `lavenderblush`, `lawngreen`, `lemonchiffon`, `lightblue`, `lightcoral`, `lightcyan`, `lightgoldenrodyellow`, `lightgray`, `lightgreen`, `lightgrey`, `lightpink`, `lightsalmon`, `lightseagreen`, `lightskyblue`, `lightslategray`, `lightslategrey`, `lightsteelblue`, `lightyellow`, `lime`, `limegreen`, `linen`, `magenta`, `maroon`, `mediumaquamarine`, `mediumblue`, `mediumorchid`, `mediumpurple`, `mediumseagreen`, `mediumslateblue`, `mediumspringgreen`, `mediumturquoise`, `mediumvioletred`, `midnightblue`, `mintcream`, `mistyrose`, `moccasin`, `navajowhite`, `navy`, `oldlace`, `olive`, `olivedrab`, `orange`, `orangered`, `orchid`, `palegoldenrod`, `palegreen`, `paleturquoise`, `palevioletred`, `papayawhip`, `peachpuff`, `peru`, `pink`, `plum`, `powderblue`, `purple`, `rebeccapurple`, `red`, `rosybrown`, `royalblue`, `saddlebrown`, `salmon`, `sandybrown`, `seagreen`, `seashell`, `sienna`, `silver`, `skyblue`, `slateblue`, `slategray`, `slategrey`, `snow`, `springgreen`, `steelblue`, `tan`, `teal`, `thistle`, `tomato`, `turquoise`, `violet`, `wheat`, `white`, `whitesmoke`, `yellow`, `yellowgreen`, `transparent`), NameEntity, nil}, - {Words(``, `\b`, `black`, `silver`, `gray`, `white`, `maroon`, `red`, `purple`, `fuchsia`, `green`, `lime`, `olive`, `yellow`, `navy`, `blue`, `teal`, `aqua`), NameBuiltin, nil}, - {`\!(important|default)`, NameException, nil}, - {`(true|false)`, NamePseudo, nil}, - {`(and|or|not)`, OperatorWord, nil}, - {`/\*`, CommentMultiline, Push("inline-comment")}, - {`//[^\n]*`, CommentSingle, nil}, - {`\#[a-z0-9]{1,6}`, LiteralNumberHex, nil}, - {`(-?\d+)(\%|[a-z]+)?`, ByGroups(LiteralNumberInteger, KeywordType), nil}, - {`(-?\d*\.\d+)(\%|[a-z]+)?`, ByGroups(LiteralNumberFloat, KeywordType), nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`[~^*!&%<>|+=@:,./?-]+`, Operator, nil}, - {`[\[\]()]+`, Punctuation, nil}, - {`"`, LiteralStringDouble, Push("string-double")}, - {`'`, LiteralStringSingle, Push("string-single")}, - {`[a-z_-][\w-]*`, Name, nil}, - {`\n`, Text, Push("root")}, - }, - "interpolation": { - {`\}`, LiteralStringInterpol, Pop(1)}, - Include("value"), - }, - "selector": { - {`[ \t]+`, Text, nil}, - {`\:`, NameDecorator, Push("pseudo-class")}, - {`\.`, NameClass, Push("class")}, - {`\#`, NameNamespace, Push("id")}, - {`[\w-]+`, NameTag, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`&`, Keyword, nil}, - {`[~^*!&\[\]()<>|+=@:;,./?-]`, Operator, nil}, - {`"`, LiteralStringDouble, Push("string-double")}, - {`'`, LiteralStringSingle, Push("string-single")}, - {`\n`, Text, Push("root")}, - }, - "string-double": { - {`(\\.|#(?=[^\n{])|[^\n"#])+`, LiteralStringDouble, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "string-single": { - {`(\\.|#(?=[^\n{])|[^\n'#])+`, LiteralStringSingle, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`'`, LiteralStringSingle, Pop(1)}, - }, - "string-url": { - {`(\\#|#(?=[^\n{])|[^\n#)])+`, LiteralStringOther, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`\)`, LiteralStringOther, Pop(1)}, - }, - "pseudo-class": { - {`[\w-]+`, NameDecorator, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - Default(Pop(1)), - }, - "class": { - {`[\w-]+`, NameClass, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - Default(Pop(1)), - }, - "id": { - {`[\w-]+`, NameNamespace, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - Default(Pop(1)), - }, - "for": { - {`(from|to|through)`, OperatorWord, nil}, - Include("value"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scala.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scala.go deleted file mode 100644 index 20932de24e..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scala.go +++ /dev/null @@ -1,112 +0,0 @@ -package s - -import ( - "fmt" - - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var ( - scalaOp = "[-~\\^\\*!%&\\\\<>\\|+=:/?@\xa6-\xa7\xa9\xac\xae\xb0-\xb1\xb6\xd7\xf7\u03f6\u0482\u0606-\u0608\u060e-\u060f\u06e9\u06fd-\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0c7f\u0cf1-\u0cf2\u0d79\u0f01-\u0f03\u0f13-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcf\u109e-\u109f\u1360\u1390-\u1399\u1940\u19e0-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2044\u2052\u207a-\u207c\u208a-\u208c\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a-\u213b\u2140-\u2144\u214a-\u214d\u214f\u2190-\u2328\u232b-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b54\u2ce5-\u2cea\u2e80-\u2ffb\u3004\u3012-\u3013\u3020\u3036-\u3037\u303e-\u303f\u3190-\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ufb29\ufdfd\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe4\uffe8-\uffee\ufffc-\ufffd]+" - scalaUpper = "[A-Z\\$_\xc0-\xd6\xd8-\xde\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u0386\u0388-\u038f\u0391-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0531-\u0556\u10a0-\u10c5\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59-\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c6f\u2c72\u2c75\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\uff21-\uff3a]" - scalaLetter = `[a-zA-Z\\$_ªµºÀ-ÖØ-öø-ʯͰ-ͳͶ-ͷͻ-ͽΆΈ-ϵϷ-ҁҊ-Ֆա-ևא-ײء-ؿف-يٮ-ٯٱ-ۓەۮ-ۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪऄ-हऽॐक़-ॡॲ-ॿঅ-হঽৎড়-ৡৰ-ৱਅ-ਹਖ਼-ਫ਼ੲ-ੴઅ-હઽૐ-ૡଅ-ହଽଡ଼-ୡୱஃ-ஹௐఅ-ఽౘ-ౡಅ-ಹಽೞ-ೡഅ-ഽൠ-ൡൺ-ൿඅ-ෆก-ะา-ำเ-ๅກ-ະາ-ຳຽ-ໄໜ-ༀཀ-ཬྈ-ྋက-ဪဿၐ-ၕၚ-ၝၡၥ-ၦၮ-ၰၵ-ႁႎႠ-ჺᄀ-ፚᎀ-ᎏᎠ-ᙬᙯ-ᙶᚁ-ᚚᚠ-ᛪᛮ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝰក-ឳៜᠠ-ᡂᡄ-ᢨᢪ-ᤜᥐ-ᦩᧁ-ᧇᨀ-ᨖᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮ-ᮯᰀ-ᰣᱍ-ᱏᱚ-ᱷᴀ-ᴫᵢ-ᵷᵹ-ᶚḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼⁱⁿℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⱼⲀ-ⳤⴀ-ⵥⶀ-ⷞ〆-〇〡-〩〸-〺〼ぁ-ゖゟァ-ヺヿ-ㆎㆠ-ㆷㇰ-ㇿ㐀-䶵一-ꀔꀖ-ꒌꔀ-ꘋꘐ-ꘟꘪ-ꙮꚀ-ꚗꜢ-ꝯꝱ-ꞇꞋ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꤊ-ꤥꤰ-ꥆꨀ-ꨨꩀ-ꩂꩄ-ꩋ가-힣豈-יִײַ-ﬨשׁ-ﴽﵐ-ﷻﹰ-ﻼA-Za-zヲ-ッア-ンᅠ-ᅵ]` - scalaIDRest = fmt.Sprintf(`%s(?:%s|[0-9])*(?:(?<=_)%s)?`, scalaLetter, scalaLetter, scalaOp) -) - -// Scala lexer. -var Scala = internal.Register(MustNewLexer( - &Config{ - Name: "Scala", - Aliases: []string{"scala"}, - Filenames: []string{"*.scala"}, - MimeTypes: []string{"text/x-scala"}, - DotAll: true, - }, - Rules{ - "root": { - {`(class|trait|object)(\s+)`, ByGroups(Keyword, Text), Push("class")}, - {`[^\S\n]+`, Text, nil}, - {`//.*?\n`, CommentSingle, nil}, - {`/\*`, CommentMultiline, Push("comment")}, - {`@` + scalaIDRest, NameDecorator, nil}, - {`(abstract|ca(?:se|tch)|d(?:ef|o)|e(?:lse|xtends)|f(?:inal(?:ly)?|or(?:Some)?)|i(?:f|mplicit)|lazy|match|new|override|pr(?:ivate|otected)|re(?:quires|turn)|s(?:ealed|uper)|t(?:h(?:is|row)|ry)|va[lr]|w(?:hile|ith)|yield)\b|(<[%:-]|=>|>:|[#=@_⇒←])(\b|(?=\s)|$)`, Keyword, nil}, - {`:(?!` + scalaOp + `%s)`, Keyword, Push("type")}, - {fmt.Sprintf("%s%s\\b", scalaUpper, scalaIDRest), NameClass, nil}, - {`(true|false|null)\b`, KeywordConstant, nil}, - {`(import|package)(\s+)`, ByGroups(Keyword, Text), Push("import")}, - {`(type)(\s+)`, ByGroups(Keyword, Text), Push("type")}, - {`""".*?"""(?!")`, LiteralString, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'`, LiteralStringChar, nil}, - {"'" + scalaIDRest, TextSymbol, nil}, - {`[fs]"""`, LiteralString, Push("interptriplestring")}, - {`[fs]"`, LiteralString, Push("interpstring")}, - {`raw"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {scalaIDRest, Name, nil}, - {"`[^`]+`", Name, nil}, - {`\[`, Operator, Push("typeparam")}, - {`[(){};,.#]`, Operator, nil}, - {scalaOp, Operator, nil}, - {`([0-9][0-9]*\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?`, LiteralNumberFloat, nil}, - {`0x[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`[0-9]+L?`, LiteralNumberInteger, nil}, - {`\n`, Text, nil}, - }, - "class": { - {fmt.Sprintf("(%s|%s|`[^`]+`)(\\s*)(\\[)", scalaIDRest, scalaOp), ByGroups(NameClass, Text, Operator), Push("typeparam")}, - {`\s+`, Text, nil}, - {`\{`, Operator, Pop(1)}, - {`\(`, Operator, Pop(1)}, - {`//.*?\n`, CommentSingle, Pop(1)}, - {fmt.Sprintf("%s|%s|`[^`]+`", scalaIDRest, scalaOp), NameClass, Pop(1)}, - }, - "type": { - {`\s+`, Text, nil}, - {`<[%:]|>:|[#_]|forSome|type`, Keyword, nil}, - {`([,);}]|=>|=|⇒)(\s*)`, ByGroups(Operator, Text), Pop(1)}, - {`[({]`, Operator, Push()}, - {fmt.Sprintf("((?:%s|%s|`[^`]+`)(?:\\.(?:%s|%s|`[^`]+`))*)(\\s*)(\\[)", scalaIDRest, scalaOp, scalaIDRest, scalaOp), ByGroups(KeywordType, Text, Operator), Push("#pop", "typeparam")}, - {fmt.Sprintf("((?:%s|%s|`[^`]+`)(?:\\.(?:%s|%s|`[^`]+`))*)(\\s*)$", scalaIDRest, scalaOp, scalaIDRest, scalaOp), ByGroups(KeywordType, Text), Pop(1)}, - {`//.*?\n`, CommentSingle, Pop(1)}, - {fmt.Sprintf("\\.|%s|%s|`[^`]+`", scalaIDRest, scalaOp), KeywordType, nil}, - }, - "typeparam": { - {`[\s,]+`, Text, nil}, - {`<[%:]|=>|>:|[#_⇒]|forSome|type`, Keyword, nil}, - {`([\])}])`, Operator, Pop(1)}, - {`[(\[{]`, Operator, Push()}, - {fmt.Sprintf("\\.|%s|%s|`[^`]+`", scalaIDRest, scalaOp), KeywordType, nil}, - }, - "comment": { - {`[^/*]+`, CommentMultiline, nil}, - {`/\*`, CommentMultiline, Push()}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[*/]`, CommentMultiline, nil}, - }, - "import": { - {fmt.Sprintf("(%s|\\.)+", scalaIDRest), NameNamespace, Pop(1)}, - }, - "interpstringcommon": { - {`[^"$\\]+`, LiteralString, nil}, - {`\$\$`, LiteralString, nil}, - {`\$` + scalaLetter + `(?:` + scalaLetter + `|\d)*`, LiteralStringInterpol, nil}, - {`\$\{`, LiteralStringInterpol, Push("interpbrace")}, - {`\\.`, LiteralString, nil}, - }, - "interptriplestring": { - {`"""(?!")`, LiteralString, Pop(1)}, - {`"`, LiteralString, nil}, - Include("interpstringcommon"), - }, - "interpstring": { - {`"`, LiteralString, Pop(1)}, - Include("interpstringcommon"), - }, - "interpbrace": { - {`\}`, LiteralStringInterpol, Pop(1)}, - {`\{`, LiteralStringInterpol, Push()}, - Include("root"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scheme.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scheme.go deleted file mode 100644 index b721d68d37..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scheme.go +++ /dev/null @@ -1,53 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// nolint - -// Scheme lexer. -var SchemeLang = internal.Register(MustNewLexer( - &Config{ - Name: "Scheme", - Aliases: []string{"scheme", "scm"}, - Filenames: []string{"*.scm", "*.ss"}, - MimeTypes: []string{"text/x-scheme", "application/x-scheme"}, - }, - Rules{ - "root": { - {`;.*$`, CommentSingle, nil}, - {`#\|`, CommentMultiline, Push("multiline-comment")}, - {`#;\s*\(`, Comment, Push("commented-form")}, - {`#!r6rs`, Comment, nil}, - {`\s+`, Text, nil}, - {`-?\d+\.\d+`, LiteralNumberFloat, nil}, - {`-?\d+`, LiteralNumberInteger, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`'[\w!$%&*+,/:<=>?@^~|-]+`, LiteralStringSymbol, nil}, - {`#\\([()/'\"._!§$%& ?=+-]|[a-zA-Z0-9]+)`, LiteralStringChar, nil}, - {`(#t|#f)`, NameConstant, nil}, - {"('|#|`|,@|,|\\.)", Operator, nil}, - {`(lambda |define |if |else |cond |and |or |case |let |let\* |letrec |begin |do |delay |set\! |\=\> |quote |quasiquote |unquote |unquote\-splicing |define\-syntax |let\-syntax |letrec\-syntax |syntax\-rules )`, Keyword, nil}, - {`(?<='\()[\w!$%&*+,/:<=>?@^~|-]+`, NameVariable, nil}, - {`(?<=#\()[\w!$%&*+,/:<=>?@^~|-]+`, NameVariable, nil}, - {`(?<=\()(\* |\+ |\- |\/ |\< |\<\= |\= |\> |\>\= |abs |acos |angle |append |apply |asin |assoc |assq |assv |atan |boolean\? |caaaar |caaadr |caaar |caadar |caaddr |caadr |caar |cadaar |cadadr |cadar |caddar |cadddr |caddr |cadr |call\-with\-current\-continuation |call\-with\-input\-file |call\-with\-output\-file |call\-with\-values |call\/cc |car |cdaaar |cdaadr |cdaar |cdadar |cdaddr |cdadr |cdar |cddaar |cddadr |cddar |cdddar |cddddr |cdddr |cddr |cdr |ceiling |char\-\>integer |char\-alphabetic\? |char\-ci\<\=\? |char\-ci\<\? |char\-ci\=\? |char\-ci\>\=\? |char\-ci\>\? |char\-downcase |char\-lower\-case\? |char\-numeric\? |char\-ready\? |char\-upcase |char\-upper\-case\? |char\-whitespace\? |char\<\=\? |char\<\? |char\=\? |char\>\=\? |char\>\? |char\? |close\-input\-port |close\-output\-port |complex\? |cons |cos |current\-input\-port |current\-output\-port |denominator |display |dynamic\-wind |eof\-object\? |eq\? |equal\? |eqv\? |eval |even\? |exact\-\>inexact |exact\? |exp |expt |floor |for\-each |force |gcd |imag\-part |inexact\-\>exact |inexact\? |input\-port\? |integer\-\>char |integer\? |interaction\-environment |lcm |length |list |list\-\>string |list\-\>vector |list\-ref |list\-tail |list\? |load |log |magnitude |make\-polar |make\-rectangular |make\-string |make\-vector |map |max |member |memq |memv |min |modulo |negative\? |newline |not |null\-environment |null\? |number\-\>string |number\? |numerator |odd\? |open\-input\-file |open\-output\-file |output\-port\? |pair\? |peek\-char |port\? |positive\? |procedure\? |quotient |rational\? |rationalize |read |read\-char |real\-part |real\? |remainder |reverse |round |scheme\-report\-environment |set\-car\! |set\-cdr\! |sin |sqrt |string |string\-\>list |string\-\>number |string\-\>symbol |string\-append |string\-ci\<\=\? |string\-ci\<\? |string\-ci\=\? |string\-ci\>\=\? |string\-ci\>\? |string\-copy |string\-fill\! |string\-length |string\-ref |string\-set\! |string\<\=\? |string\<\? |string\=\? |string\>\=\? |string\>\? |string\? |substring |symbol\-\>string |symbol\? |tan |transcript\-off |transcript\-on |truncate |values |vector |vector\-\>list |vector\-fill\! |vector\-length |vector\-ref |vector\-set\! |vector\? |with\-input\-from\-file |with\-output\-to\-file |write |write\-char |zero\? )`, NameBuiltin, nil}, - {`(?<=\()[\w!$%&*+,/:<=>?@^~|-]+`, NameFunction, nil}, - {`[\w!$%&*+,/:<=>?@^~|-]+`, NameVariable, nil}, - {`(\(|\))`, Punctuation, nil}, - {`(\[|\])`, Punctuation, nil}, - }, - "multiline-comment": { - {`#\|`, CommentMultiline, Push()}, - {`\|#`, CommentMultiline, Pop(1)}, - {`[^|#]+`, CommentMultiline, nil}, - {`[|#]`, CommentMultiline, nil}, - }, - "commented-form": { - {`\(`, Comment, Push()}, - {`\)`, Comment, Pop(1)}, - {`[^()]+`, Comment, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scilab.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scilab.go deleted file mode 100644 index 87fa66cc0e..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/scilab.go +++ /dev/null @@ -1,44 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Scilab lexer. -var Scilab = internal.Register(MustNewLexer( - &Config{ - Name: "Scilab", - Aliases: []string{"scilab"}, - Filenames: []string{"*.sci", "*.sce", "*.tst"}, - MimeTypes: []string{"text/scilab"}, - }, - Rules{ - "root": { - {`//.*?$`, CommentSingle, nil}, - {`^\s*function`, Keyword, Push("deffunc")}, - {Words(``, `\b`, `__FILE__`, `__LINE__`, `break`, `case`, `catch`, `classdef`, `continue`, `do`, `else`, `elseif`, `end`, `end_try_catch`, `end_unwind_protect`, `endclassdef`, `endevents`, `endfor`, `endfunction`, `endif`, `endmethods`, `endproperties`, `endswitch`, `endwhile`, `events`, `for`, `function`, `get`, `global`, `if`, `methods`, `otherwise`, `persistent`, `properties`, `return`, `set`, `static`, `switch`, `try`, `until`, `unwind_protect`, `unwind_protect_cleanup`, `while`), Keyword, nil}, - {Words(``, `\b`, `!!_invoke_`, `%H5Object_e`, `%H5Object_fieldnames`, `%H5Object_p`, `%XMLAttr_6`, `%XMLAttr_e`, `%XMLAttr_i_XMLElem`, `%XMLAttr_length`, `%XMLAttr_p`, `%XMLAttr_size`, `%XMLDoc_6`, `%XMLDoc_e`, `%XMLDoc_i_XMLList`, `%XMLDoc_p`, `%XMLElem_6`, `%XMLElem_e`, `%XMLElem_i_XMLDoc`, `%XMLElem_i_XMLElem`, `%XMLElem_i_XMLList`, `%XMLElem_p`, `%XMLList_6`, `%XMLList_e`, `%XMLList_i_XMLElem`, `%XMLList_i_XMLList`, `%XMLList_length`, `%XMLList_p`, `%XMLList_size`, `%XMLNs_6`, `%XMLNs_e`, `%XMLNs_i_XMLElem`, `%XMLNs_p`, `%XMLSet_6`, `%XMLSet_e`, `%XMLSet_length`, `%XMLSet_p`, `%XMLSet_size`, `%XMLValid_p`, `%_EClass_6`, `%_EClass_e`, `%_EClass_p`, `%_EObj_0`, `%_EObj_1__EObj`, `%_EObj_1_b`, `%_EObj_1_c`, `%_EObj_1_i`, `%_EObj_1_s`, `%_EObj_2__EObj`, `%_EObj_2_b`, `%_EObj_2_c`, `%_EObj_2_i`, `%_EObj_2_s`, `%_EObj_3__EObj`, `%_EObj_3_b`, `%_EObj_3_c`, `%_EObj_3_i`, `%_EObj_3_s`, `%_EObj_4__EObj`, `%_EObj_4_b`, `%_EObj_4_c`, `%_EObj_4_i`, `%_EObj_4_s`, `%_EObj_5`, `%_EObj_6`, `%_EObj_a__EObj`, `%_EObj_a_b`, `%_EObj_a_c`, `%_EObj_a_i`, `%_EObj_a_s`, `%_EObj_d__EObj`, `%_EObj_d_b`, `%_EObj_d_c`, `%_EObj_d_i`, `%_EObj_d_s`, `%_EObj_disp`, `%_EObj_e`, `%_EObj_g__EObj`, `%_EObj_g_b`, `%_EObj_g_c`, `%_EObj_g_i`, `%_EObj_g_s`, `%_EObj_h__EObj`, `%_EObj_h_b`, `%_EObj_h_c`, `%_EObj_h_i`, `%_EObj_h_s`, `%_EObj_i__EObj`, `%_EObj_j__EObj`, `%_EObj_j_b`, `%_EObj_j_c`, `%_EObj_j_i`, `%_EObj_j_s`, `%_EObj_k__EObj`, `%_EObj_k_b`, `%_EObj_k_c`, `%_EObj_k_i`, `%_EObj_k_s`, `%_EObj_l__EObj`, `%_EObj_l_b`, `%_EObj_l_c`, `%_EObj_l_i`, `%_EObj_l_s`, `%_EObj_m__EObj`, `%_EObj_m_b`, `%_EObj_m_c`, `%_EObj_m_i`, `%_EObj_m_s`, `%_EObj_n__EObj`, `%_EObj_n_b`, `%_EObj_n_c`, `%_EObj_n_i`, `%_EObj_n_s`, `%_EObj_o__EObj`, `%_EObj_o_b`, `%_EObj_o_c`, `%_EObj_o_i`, `%_EObj_o_s`, `%_EObj_p`, `%_EObj_p__EObj`, `%_EObj_p_b`, `%_EObj_p_c`, `%_EObj_p_i`, `%_EObj_p_s`, `%_EObj_q__EObj`, `%_EObj_q_b`, `%_EObj_q_c`, `%_EObj_q_i`, `%_EObj_q_s`, `%_EObj_r__EObj`, `%_EObj_r_b`, `%_EObj_r_c`, `%_EObj_r_i`, `%_EObj_r_s`, `%_EObj_s__EObj`, `%_EObj_s_b`, `%_EObj_s_c`, `%_EObj_s_i`, `%_EObj_s_s`, `%_EObj_t`, `%_EObj_x__EObj`, `%_EObj_x_b`, `%_EObj_x_c`, `%_EObj_x_i`, `%_EObj_x_s`, `%_EObj_y__EObj`, `%_EObj_y_b`, `%_EObj_y_c`, `%_EObj_y_i`, `%_EObj_y_s`, `%_EObj_z__EObj`, `%_EObj_z_b`, `%_EObj_z_c`, `%_EObj_z_i`, `%_EObj_z_s`, `%_eigs`, `%_load`, `%b_1__EObj`, `%b_2__EObj`, `%b_3__EObj`, `%b_4__EObj`, `%b_a__EObj`, `%b_d__EObj`, `%b_g__EObj`, `%b_h__EObj`, `%b_i_XMLList`, `%b_i__EObj`, `%b_j__EObj`, `%b_k__EObj`, `%b_l__EObj`, `%b_m__EObj`, `%b_n__EObj`, `%b_o__EObj`, `%b_p__EObj`, `%b_q__EObj`, `%b_r__EObj`, `%b_s__EObj`, `%b_x__EObj`, `%b_y__EObj`, `%b_z__EObj`, `%c_1__EObj`, `%c_2__EObj`, `%c_3__EObj`, `%c_4__EObj`, `%c_a__EObj`, `%c_d__EObj`, `%c_g__EObj`, `%c_h__EObj`, `%c_i_XMLAttr`, `%c_i_XMLDoc`, `%c_i_XMLElem`, `%c_i_XMLList`, `%c_i__EObj`, `%c_j__EObj`, `%c_k__EObj`, `%c_l__EObj`, `%c_m__EObj`, `%c_n__EObj`, `%c_o__EObj`, `%c_p__EObj`, `%c_q__EObj`, `%c_r__EObj`, `%c_s__EObj`, `%c_x__EObj`, `%c_y__EObj`, `%c_z__EObj`, `%ce_i_XMLList`, `%fptr_i_XMLList`, `%h_i_XMLList`, `%hm_i_XMLList`, `%i_1__EObj`, `%i_2__EObj`, `%i_3__EObj`, `%i_4__EObj`, `%i_a__EObj`, `%i_abs`, `%i_cumprod`, `%i_cumsum`, `%i_d__EObj`, `%i_diag`, `%i_g__EObj`, `%i_h__EObj`, `%i_i_XMLList`, `%i_i__EObj`, `%i_j__EObj`, `%i_k__EObj`, `%i_l__EObj`, `%i_m__EObj`, `%i_matrix`, `%i_max`, `%i_maxi`, `%i_min`, `%i_mini`, `%i_mput`, `%i_n__EObj`, `%i_o__EObj`, `%i_p`, `%i_p__EObj`, `%i_prod`, `%i_q__EObj`, `%i_r__EObj`, `%i_s__EObj`, `%i_sum`, `%i_tril`, `%i_triu`, `%i_x__EObj`, `%i_y__EObj`, `%i_z__EObj`, `%ip_i_XMLList`, `%l_i_XMLList`, `%l_i__EObj`, `%lss_i_XMLList`, `%mc_i_XMLList`, `%msp_full`, `%msp_i_XMLList`, `%msp_spget`, `%p_i_XMLList`, `%ptr_i_XMLList`, `%r_i_XMLList`, `%s_1__EObj`, `%s_2__EObj`, `%s_3__EObj`, `%s_4__EObj`, `%s_a__EObj`, `%s_d__EObj`, `%s_g__EObj`, `%s_h__EObj`, `%s_i_XMLList`, `%s_i__EObj`, `%s_j__EObj`, `%s_k__EObj`, `%s_l__EObj`, `%s_m__EObj`, `%s_n__EObj`, `%s_o__EObj`, `%s_p__EObj`, `%s_q__EObj`, `%s_r__EObj`, `%s_s__EObj`, `%s_x__EObj`, `%s_y__EObj`, `%s_z__EObj`, `%sp_i_XMLList`, `%spb_i_XMLList`, `%st_i_XMLList`, `Calendar`, `ClipBoard`, `Matplot`, `Matplot1`, `PlaySound`, `TCL_DeleteInterp`, `TCL_DoOneEvent`, `TCL_EvalFile`, `TCL_EvalStr`, `TCL_ExistArray`, `TCL_ExistInterp`, `TCL_ExistVar`, `TCL_GetVar`, `TCL_GetVersion`, `TCL_SetVar`, `TCL_UnsetVar`, `TCL_UpVar`, `_`, `_code2str`, `_d`, `_str2code`, `about`, `abs`, `acos`, `addModulePreferences`, `addcolor`, `addf`, `addhistory`, `addinter`, `addlocalizationdomain`, `amell`, `and`, `argn`, `arl2_ius`, `ascii`, `asin`, `atan`, `backslash`, `balanc`, `banner`, `base2dec`, `basename`, `bdiag`, `beep`, `besselh`, `besseli`, `besselj`, `besselk`, `bessely`, `beta`, `bezout`, `bfinit`, `blkfc1i`, `blkslvi`, `bool2s`, `browsehistory`, `browsevar`, `bsplin3val`, `buildDoc`, `buildouttb`, `bvode`, `c_link`, `call`, `callblk`, `captions`, `cd`, `cdfbet`, `cdfbin`, `cdfchi`, `cdfchn`, `cdff`, `cdffnc`, `cdfgam`, `cdfnbn`, `cdfnor`, `cdfpoi`, `cdft`, `ceil`, `champ`, `champ1`, `chdir`, `chol`, `clc`, `clean`, `clear`, `clearfun`, `clearglobal`, `closeEditor`, `closeEditvar`, `closeXcos`, `code2str`, `coeff`, `color`, `comp`, `completion`, `conj`, `contour2di`, `contr`, `conv2`, `convstr`, `copy`, `copyfile`, `corr`, `cos`, `coserror`, `createdir`, `cshep2d`, `csvDefault`, `csvIsnum`, `csvRead`, `csvStringToDouble`, `csvTextScan`, `csvWrite`, `ctree2`, `ctree3`, `ctree4`, `cumprod`, `cumsum`, `curblock`, `curblockc`, `daskr`, `dasrt`, `dassl`, `data2sig`, `datatipCreate`, `datatipManagerMode`, `datatipMove`, `datatipRemove`, `datatipSetDisplay`, `datatipSetInterp`, `datatipSetOrientation`, `datatipSetStyle`, `datatipToggle`, `dawson`, `dct`, `debug`, `dec2base`, `deff`, `definedfields`, `degree`, `delbpt`, `delete`, `deletefile`, `delip`, `delmenu`, `det`, `dgettext`, `dhinf`, `diag`, `diary`, `diffobjs`, `disp`, `dispbpt`, `displayhistory`, `disposefftwlibrary`, `dlgamma`, `dnaupd`, `dneupd`, `double`, `drawaxis`, `drawlater`, `drawnow`, `driver`, `dsaupd`, `dsearch`, `dseupd`, `dst`, `duplicate`, `editvar`, `emptystr`, `end_scicosim`, `ereduc`, `erf`, `erfc`, `erfcx`, `erfi`, `errcatch`, `errclear`, `error`, `eval_cshep2d`, `exec`, `execstr`, `exists`, `exit`, `exp`, `expm`, `exportUI`, `export_to_hdf5`, `eye`, `fadj2sp`, `fec`, `feval`, `fft`, `fftw`, `fftw_flags`, `fftw_forget_wisdom`, `fftwlibraryisloaded`, `figure`, `file`, `filebrowser`, `fileext`, `fileinfo`, `fileparts`, `filesep`, `find`, `findBD`, `findfiles`, `fire_closing_finished`, `floor`, `format`, `fort`, `fprintfMat`, `freq`, `frexp`, `fromc`, `fromjava`, `fscanfMat`, `fsolve`, `fstair`, `full`, `fullpath`, `funcprot`, `funptr`, `gamma`, `gammaln`, `geom3d`, `get`, `getURL`, `get_absolute_file_path`, `get_fftw_wisdom`, `getblocklabel`, `getcallbackobject`, `getdate`, `getdebuginfo`, `getdefaultlanguage`, `getdrives`, `getdynlibext`, `getenv`, `getfield`, `gethistory`, `gethistoryfile`, `getinstalledlookandfeels`, `getio`, `getlanguage`, `getlongpathname`, `getlookandfeel`, `getmd5`, `getmemory`, `getmodules`, `getos`, `getpid`, `getrelativefilename`, `getscicosvars`, `getscilabmode`, `getshortpathname`, `gettext`, `getvariablesonstack`, `getversion`, `glist`, `global`, `glue`, `grand`, `graphicfunction`, `grayplot`, `grep`, `gsort`, `gstacksize`, `h5attr`, `h5close`, `h5cp`, `h5dataset`, `h5dump`, `h5exists`, `h5flush`, `h5get`, `h5group`, `h5isArray`, `h5isAttr`, `h5isCompound`, `h5isFile`, `h5isGroup`, `h5isList`, `h5isRef`, `h5isSet`, `h5isSpace`, `h5isType`, `h5isVlen`, `h5label`, `h5ln`, `h5ls`, `h5mount`, `h5mv`, `h5open`, `h5read`, `h5readattr`, `h5rm`, `h5umount`, `h5write`, `h5writeattr`, `havewindow`, `helpbrowser`, `hess`, `hinf`, `historymanager`, `historysize`, `host`, `htmlDump`, `htmlRead`, `htmlReadStr`, `htmlWrite`, `iconvert`, `ieee`, `ilib_verbose`, `imag`, `impl`, `import_from_hdf5`, `imult`, `inpnvi`, `int`, `int16`, `int2d`, `int32`, `int3d`, `int8`, `interp`, `interp2d`, `interp3d`, `intg`, `intppty`, `inttype`, `inv`, `invoke_lu`, `is_handle_valid`, `is_hdf5_file`, `isalphanum`, `isascii`, `isdef`, `isdigit`, `isdir`, `isequal`, `isequalbitwise`, `iserror`, `isfile`, `isglobal`, `isletter`, `isnum`, `isreal`, `iswaitingforinput`, `jallowClassReloading`, `jarray`, `jautoTranspose`, `jautoUnwrap`, `javaclasspath`, `javalibrarypath`, `jcast`, `jcompile`, `jconvMatrixMethod`, `jcreatejar`, `jdeff`, `jdisableTrace`, `jenableTrace`, `jexists`, `jgetclassname`, `jgetfield`, `jgetfields`, `jgetinfo`, `jgetmethods`, `jimport`, `jinvoke`, `jinvoke_db`, `jnewInstance`, `jremove`, `jsetfield`, `junwrap`, `junwraprem`, `jwrap`, `jwrapinfloat`, `kron`, `lasterror`, `ldiv`, `ldivf`, `legendre`, `length`, `lib`, `librarieslist`, `libraryinfo`, `light`, `linear_interpn`, `lines`, `link`, `linmeq`, `list`, `listvar_in_hdf5`, `load`, `loadGui`, `loadScicos`, `loadXcos`, `loadfftwlibrary`, `loadhistory`, `log`, `log1p`, `lsq`, `lsq_splin`, `lsqrsolve`, `lsslist`, `lstcat`, `lstsize`, `ltitr`, `lu`, `ludel`, `lufact`, `luget`, `lusolve`, `macr2lst`, `macr2tree`, `matfile_close`, `matfile_listvar`, `matfile_open`, `matfile_varreadnext`, `matfile_varwrite`, `matrix`, `max`, `maxfiles`, `mclearerr`, `mclose`, `meof`, `merror`, `messagebox`, `mfprintf`, `mfscanf`, `mget`, `mgeti`, `mgetl`, `mgetstr`, `min`, `mlist`, `mode`, `model2blk`, `mopen`, `move`, `movefile`, `mprintf`, `mput`, `mputl`, `mputstr`, `mscanf`, `mseek`, `msprintf`, `msscanf`, `mtell`, `mtlb_mode`, `mtlb_sparse`, `mucomp`, `mulf`, `name2rgb`, `nearfloat`, `newaxes`, `newest`, `newfun`, `nnz`, `norm`, `notify`, `number_properties`, `ode`, `odedc`, `ones`, `openged`, `opentk`, `optim`, `or`, `ordmmd`, `parallel_concurrency`, `parallel_run`, `param3d`, `param3d1`, `part`, `pathconvert`, `pathsep`, `phase_simulation`, `plot2d`, `plot2d1`, `plot2d2`, `plot2d3`, `plot2d4`, `plot3d`, `plot3d1`, `plotbrowser`, `pointer_xproperty`, `poly`, `ppol`, `pppdiv`, `predef`, `preferences`, `print`, `printf`, `printfigure`, `printsetupbox`, `prod`, `progressionbar`, `prompt`, `pwd`, `qld`, `qp_solve`, `qr`, `raise_window`, `rand`, `rankqr`, `rat`, `rcond`, `rdivf`, `read`, `read4b`, `read_csv`, `readb`, `readgateway`, `readmps`, `real`, `realtime`, `realtimeinit`, `regexp`, `relocate_handle`, `remez`, `removeModulePreferences`, `removedir`, `removelinehistory`, `res_with_prec`, `resethistory`, `residu`, `resume`, `return`, `ricc`, `rlist`, `roots`, `rotate_axes`, `round`, `rpem`, `rtitr`, `rubberbox`, `save`, `saveGui`, `saveafterncommands`, `saveconsecutivecommands`, `savehistory`, `schur`, `sci_haltscicos`, `sci_tree2`, `sci_tree3`, `sci_tree4`, `sciargs`, `scicos_debug`, `scicos_debug_count`, `scicos_time`, `scicosim`, `scinotes`, `sctree`, `semidef`, `set`, `set_blockerror`, `set_fftw_wisdom`, `set_xproperty`, `setbpt`, `setdefaultlanguage`, `setenv`, `setfield`, `sethistoryfile`, `setlanguage`, `setlookandfeel`, `setmenu`, `sfact`, `sfinit`, `show_window`, `sident`, `sig2data`, `sign`, `simp`, `simp_mode`, `sin`, `size`, `slash`, `sleep`, `sorder`, `sparse`, `spchol`, `spcompack`, `spec`, `spget`, `splin`, `splin2d`, `splin3d`, `splitURL`, `spones`, `sprintf`, `sqrt`, `stacksize`, `str2code`, `strcat`, `strchr`, `strcmp`, `strcspn`, `strindex`, `string`, `stringbox`, `stripblanks`, `strncpy`, `strrchr`, `strrev`, `strsplit`, `strspn`, `strstr`, `strsubst`, `strtod`, `strtok`, `subf`, `sum`, `svd`, `swap_handles`, `symfcti`, `syredi`, `system_getproperty`, `system_setproperty`, `ta2lpd`, `tan`, `taucs_chdel`, `taucs_chfact`, `taucs_chget`, `taucs_chinfo`, `taucs_chsolve`, `tempname`, `testmatrix`, `timer`, `tlist`, `tohome`, `tokens`, `toolbar`, `toprint`, `tr_zer`, `tril`, `triu`, `type`, `typename`, `uiDisplayTree`, `uicontextmenu`, `uicontrol`, `uigetcolor`, `uigetdir`, `uigetfile`, `uigetfont`, `uimenu`, `uint16`, `uint32`, `uint8`, `uipopup`, `uiputfile`, `uiwait`, `ulink`, `umf_ludel`, `umf_lufact`, `umf_luget`, `umf_luinfo`, `umf_lusolve`, `umfpack`, `unglue`, `unix`, `unsetmenu`, `unzoom`, `updatebrowsevar`, `usecanvas`, `useeditor`, `user`, `var2vec`, `varn`, `vec2var`, `waitbar`, `warnBlockByUID`, `warning`, `what`, `where`, `whereis`, `who`, `winsid`, `with_module`, `writb`, `write`, `write4b`, `write_csv`, `x_choose`, `x_choose_modeless`, `x_dialog`, `x_mdialog`, `xarc`, `xarcs`, `xarrows`, `xchange`, `xchoicesi`, `xclick`, `xcos`, `xcosAddToolsMenu`, `xcosConfigureXmlFile`, `xcosDiagramToScilab`, `xcosPalCategoryAdd`, `xcosPalDelete`, `xcosPalDisable`, `xcosPalEnable`, `xcosPalGenerateIcon`, `xcosPalGet`, `xcosPalLoad`, `xcosPalMove`, `xcosSimulationStarted`, `xcosUpdateBlock`, `xdel`, `xend`, `xfarc`, `xfarcs`, `xfpoly`, `xfpolys`, `xfrect`, `xget`, `xgetmouse`, `xgraduate`, `xgrid`, `xinit`, `xlfont`, `xls_open`, `xls_read`, `xmlAddNs`, `xmlAppend`, `xmlAsNumber`, `xmlAsText`, `xmlDTD`, `xmlDelete`, `xmlDocument`, `xmlDump`, `xmlElement`, `xmlFormat`, `xmlGetNsByHref`, `xmlGetNsByPrefix`, `xmlGetOpenDocs`, `xmlIsValidObject`, `xmlName`, `xmlNs`, `xmlRead`, `xmlReadStr`, `xmlRelaxNG`, `xmlRemove`, `xmlSchema`, `xmlSetAttributes`, `xmlValidate`, `xmlWrite`, `xmlXPath`, `xname`, `xpause`, `xpoly`, `xpolys`, `xrect`, `xrects`, `xs2bmp`, `xs2emf`, `xs2eps`, `xs2gif`, `xs2jpg`, `xs2pdf`, `xs2png`, `xs2ppm`, `xs2ps`, `xs2svg`, `xsegs`, `xset`, `xstring`, `xstringb`, `xtitle`, `zeros`, `znaupd`, `zneupd`, `zoom_rect`, `abort`, `apropos`, `break`, `case`, `catch`, `continue`, `do`, `else`, `elseif`, `end`, `endfunction`, `for`, `function`, `help`, `if`, `pause`, `quit`, `select`, `then`, `try`, `while`, `!_deff_wrapper`, `%0_i_st`, `%3d_i_h`, `%Block_xcosUpdateBlock`, `%TNELDER_p`, `%TNELDER_string`, `%TNMPLOT_p`, `%TNMPLOT_string`, `%TOPTIM_p`, `%TOPTIM_string`, `%TSIMPLEX_p`, `%TSIMPLEX_string`, `%_EVoid_p`, `%_gsort`, `%_listvarinfile`, `%_rlist`, `%_save`, `%_sodload`, `%_strsplit`, `%_unwrap`, `%ar_p`, `%asn`, `%b_a_b`, `%b_a_s`, `%b_c_s`, `%b_c_spb`, `%b_cumprod`, `%b_cumsum`, `%b_d_s`, `%b_diag`, `%b_e`, `%b_f_s`, `%b_f_spb`, `%b_g_s`, `%b_g_spb`, `%b_grand`, `%b_h_s`, `%b_h_spb`, `%b_i_b`, `%b_i_ce`, `%b_i_h`, `%b_i_hm`, `%b_i_s`, `%b_i_sp`, `%b_i_spb`, `%b_i_st`, `%b_iconvert`, `%b_l_b`, `%b_l_s`, `%b_m_b`, `%b_m_s`, `%b_matrix`, `%b_n_hm`, `%b_o_hm`, `%b_p_s`, `%b_prod`, `%b_r_b`, `%b_r_s`, `%b_s_b`, `%b_s_s`, `%b_string`, `%b_sum`, `%b_tril`, `%b_triu`, `%b_x_b`, `%b_x_s`, `%bicg`, `%bicgstab`, `%c_a_c`, `%c_b_c`, `%c_b_s`, `%c_diag`, `%c_dsearch`, `%c_e`, `%c_eye`, `%c_f_s`, `%c_grand`, `%c_i_c`, `%c_i_ce`, `%c_i_h`, `%c_i_hm`, `%c_i_lss`, `%c_i_r`, `%c_i_s`, `%c_i_st`, `%c_matrix`, `%c_n_l`, `%c_n_st`, `%c_o_l`, `%c_o_st`, `%c_ones`, `%c_rand`, `%c_tril`, `%c_triu`, `%cblock_c_cblock`, `%cblock_c_s`, `%cblock_e`, `%cblock_f_cblock`, `%cblock_p`, `%cblock_size`, `%ce_6`, `%ce_c_ce`, `%ce_e`, `%ce_f_ce`, `%ce_i_ce`, `%ce_i_s`, `%ce_i_st`, `%ce_matrix`, `%ce_p`, `%ce_size`, `%ce_string`, `%ce_t`, `%cgs`, `%champdat_i_h`, `%choose`, `%diagram_xcos`, `%dir_p`, `%fptr_i_st`, `%grand_perm`, `%grayplot_i_h`, `%h_i_st`, `%hmS_k_hmS_generic`, `%hm_1_hm`, `%hm_1_s`, `%hm_2_hm`, `%hm_2_s`, `%hm_3_hm`, `%hm_3_s`, `%hm_4_hm`, `%hm_4_s`, `%hm_5`, `%hm_a_hm`, `%hm_a_r`, `%hm_a_s`, `%hm_abs`, `%hm_and`, `%hm_bool2s`, `%hm_c_hm`, `%hm_ceil`, `%hm_conj`, `%hm_cos`, `%hm_cumprod`, `%hm_cumsum`, `%hm_d_hm`, `%hm_d_s`, `%hm_degree`, `%hm_dsearch`, `%hm_e`, `%hm_exp`, `%hm_eye`, `%hm_f_hm`, `%hm_find`, `%hm_floor`, `%hm_g_hm`, `%hm_grand`, `%hm_gsort`, `%hm_h_hm`, `%hm_i_b`, `%hm_i_ce`, `%hm_i_h`, `%hm_i_hm`, `%hm_i_i`, `%hm_i_p`, `%hm_i_r`, `%hm_i_s`, `%hm_i_st`, `%hm_iconvert`, `%hm_imag`, `%hm_int`, `%hm_isnan`, `%hm_isreal`, `%hm_j_hm`, `%hm_j_s`, `%hm_k_hm`, `%hm_k_s`, `%hm_log`, `%hm_m_p`, `%hm_m_r`, `%hm_m_s`, `%hm_matrix`, `%hm_max`, `%hm_mean`, `%hm_median`, `%hm_min`, `%hm_n_b`, `%hm_n_c`, `%hm_n_hm`, `%hm_n_i`, `%hm_n_p`, `%hm_n_s`, `%hm_o_b`, `%hm_o_c`, `%hm_o_hm`, `%hm_o_i`, `%hm_o_p`, `%hm_o_s`, `%hm_ones`, `%hm_or`, `%hm_p`, `%hm_prod`, `%hm_q_hm`, `%hm_r_s`, `%hm_rand`, `%hm_real`, `%hm_round`, `%hm_s`, `%hm_s_hm`, `%hm_s_r`, `%hm_s_s`, `%hm_sign`, `%hm_sin`, `%hm_size`, `%hm_sqrt`, `%hm_stdev`, `%hm_string`, `%hm_sum`, `%hm_x_hm`, `%hm_x_p`, `%hm_x_s`, `%hm_zeros`, `%i_1_s`, `%i_2_s`, `%i_3_s`, `%i_4_s`, `%i_Matplot`, `%i_a_i`, `%i_a_s`, `%i_and`, `%i_ascii`, `%i_b_s`, `%i_bezout`, `%i_champ`, `%i_champ1`, `%i_contour`, `%i_contour2d`, `%i_d_i`, `%i_d_s`, `%i_dsearch`, `%i_e`, `%i_fft`, `%i_g_i`, `%i_gcd`, `%i_grand`, `%i_h_i`, `%i_i_ce`, `%i_i_h`, `%i_i_hm`, `%i_i_i`, `%i_i_s`, `%i_i_st`, `%i_j_i`, `%i_j_s`, `%i_l_s`, `%i_lcm`, `%i_length`, `%i_m_i`, `%i_m_s`, `%i_mfprintf`, `%i_mprintf`, `%i_msprintf`, `%i_n_s`, `%i_o_s`, `%i_or`, `%i_p_i`, `%i_p_s`, `%i_plot2d`, `%i_plot2d1`, `%i_plot2d2`, `%i_q_s`, `%i_r_i`, `%i_r_s`, `%i_round`, `%i_s_i`, `%i_s_s`, `%i_sign`, `%i_string`, `%i_x_i`, `%i_x_s`, `%ip_a_s`, `%ip_i_st`, `%ip_m_s`, `%ip_n_ip`, `%ip_o_ip`, `%ip_p`, `%ip_part`, `%ip_s_s`, `%ip_string`, `%k`, `%l_i_h`, `%l_i_s`, `%l_i_st`, `%l_isequal`, `%l_n_c`, `%l_n_l`, `%l_n_m`, `%l_n_p`, `%l_n_s`, `%l_n_st`, `%l_o_c`, `%l_o_l`, `%l_o_m`, `%l_o_p`, `%l_o_s`, `%l_o_st`, `%lss_a_lss`, `%lss_a_p`, `%lss_a_r`, `%lss_a_s`, `%lss_c_lss`, `%lss_c_p`, `%lss_c_r`, `%lss_c_s`, `%lss_e`, `%lss_eye`, `%lss_f_lss`, `%lss_f_p`, `%lss_f_r`, `%lss_f_s`, `%lss_i_ce`, `%lss_i_lss`, `%lss_i_p`, `%lss_i_r`, `%lss_i_s`, `%lss_i_st`, `%lss_inv`, `%lss_l_lss`, `%lss_l_p`, `%lss_l_r`, `%lss_l_s`, `%lss_m_lss`, `%lss_m_p`, `%lss_m_r`, `%lss_m_s`, `%lss_n_lss`, `%lss_n_p`, `%lss_n_r`, `%lss_n_s`, `%lss_norm`, `%lss_o_lss`, `%lss_o_p`, `%lss_o_r`, `%lss_o_s`, `%lss_ones`, `%lss_r_lss`, `%lss_r_p`, `%lss_r_r`, `%lss_r_s`, `%lss_rand`, `%lss_s`, `%lss_s_lss`, `%lss_s_p`, `%lss_s_r`, `%lss_s_s`, `%lss_size`, `%lss_t`, `%lss_v_lss`, `%lss_v_p`, `%lss_v_r`, `%lss_v_s`, `%lt_i_s`, `%m_n_l`, `%m_o_l`, `%mc_i_h`, `%mc_i_s`, `%mc_i_st`, `%mc_n_st`, `%mc_o_st`, `%mc_string`, `%mps_p`, `%mps_string`, `%msp_a_s`, `%msp_abs`, `%msp_e`, `%msp_find`, `%msp_i_s`, `%msp_i_st`, `%msp_length`, `%msp_m_s`, `%msp_maxi`, `%msp_n_msp`, `%msp_nnz`, `%msp_o_msp`, `%msp_p`, `%msp_sparse`, `%msp_spones`, `%msp_t`, `%p_a_lss`, `%p_a_r`, `%p_c_lss`, `%p_c_r`, `%p_cumprod`, `%p_cumsum`, `%p_d_p`, `%p_d_r`, `%p_d_s`, `%p_det`, `%p_e`, `%p_f_lss`, `%p_f_r`, `%p_grand`, `%p_i_ce`, `%p_i_h`, `%p_i_hm`, `%p_i_lss`, `%p_i_p`, `%p_i_r`, `%p_i_s`, `%p_i_st`, `%p_inv`, `%p_j_s`, `%p_k_p`, `%p_k_r`, `%p_k_s`, `%p_l_lss`, `%p_l_p`, `%p_l_r`, `%p_l_s`, `%p_m_hm`, `%p_m_lss`, `%p_m_r`, `%p_matrix`, `%p_n_l`, `%p_n_lss`, `%p_n_r`, `%p_o_l`, `%p_o_lss`, `%p_o_r`, `%p_o_sp`, `%p_p_s`, `%p_part`, `%p_prod`, `%p_q_p`, `%p_q_r`, `%p_q_s`, `%p_r_lss`, `%p_r_p`, `%p_r_r`, `%p_r_s`, `%p_s_lss`, `%p_s_r`, `%p_simp`, `%p_string`, `%p_sum`, `%p_v_lss`, `%p_v_p`, `%p_v_r`, `%p_v_s`, `%p_x_hm`, `%p_x_r`, `%p_y_p`, `%p_y_r`, `%p_y_s`, `%p_z_p`, `%p_z_r`, `%p_z_s`, `%pcg`, `%plist_p`, `%plist_string`, `%r_0`, `%r_a_hm`, `%r_a_lss`, `%r_a_p`, `%r_a_r`, `%r_a_s`, `%r_c_lss`, `%r_c_p`, `%r_c_r`, `%r_c_s`, `%r_clean`, `%r_cumprod`, `%r_cumsum`, `%r_d_p`, `%r_d_r`, `%r_d_s`, `%r_det`, `%r_diag`, `%r_e`, `%r_eye`, `%r_f_lss`, `%r_f_p`, `%r_f_r`, `%r_f_s`, `%r_i_ce`, `%r_i_hm`, `%r_i_lss`, `%r_i_p`, `%r_i_r`, `%r_i_s`, `%r_i_st`, `%r_inv`, `%r_j_s`, `%r_k_p`, `%r_k_r`, `%r_k_s`, `%r_l_lss`, `%r_l_p`, `%r_l_r`, `%r_l_s`, `%r_m_hm`, `%r_m_lss`, `%r_m_p`, `%r_m_r`, `%r_m_s`, `%r_matrix`, `%r_n_lss`, `%r_n_p`, `%r_n_r`, `%r_n_s`, `%r_norm`, `%r_o_lss`, `%r_o_p`, `%r_o_r`, `%r_o_s`, `%r_ones`, `%r_p`, `%r_p_s`, `%r_prod`, `%r_q_p`, `%r_q_r`, `%r_q_s`, `%r_r_lss`, `%r_r_p`, `%r_r_r`, `%r_r_s`, `%r_rand`, `%r_s`, `%r_s_hm`, `%r_s_lss`, `%r_s_p`, `%r_s_r`, `%r_s_s`, `%r_simp`, `%r_size`, `%r_string`, `%r_sum`, `%r_t`, `%r_tril`, `%r_triu`, `%r_v_lss`, `%r_v_p`, `%r_v_r`, `%r_v_s`, `%r_varn`, `%r_x_p`, `%r_x_r`, `%r_x_s`, `%r_y_p`, `%r_y_r`, `%r_y_s`, `%r_z_p`, `%r_z_r`, `%r_z_s`, `%s_1_hm`, `%s_1_i`, `%s_2_hm`, `%s_2_i`, `%s_3_hm`, `%s_3_i`, `%s_4_hm`, `%s_4_i`, `%s_5`, `%s_a_b`, `%s_a_hm`, `%s_a_i`, `%s_a_ip`, `%s_a_lss`, `%s_a_msp`, `%s_a_r`, `%s_a_sp`, `%s_and`, `%s_b_i`, `%s_b_s`, `%s_bezout`, `%s_c_b`, `%s_c_cblock`, `%s_c_lss`, `%s_c_r`, `%s_c_sp`, `%s_d_b`, `%s_d_i`, `%s_d_p`, `%s_d_r`, `%s_d_sp`, `%s_e`, `%s_f_b`, `%s_f_cblock`, `%s_f_lss`, `%s_f_r`, `%s_f_sp`, `%s_g_b`, `%s_g_s`, `%s_gcd`, `%s_grand`, `%s_h_b`, `%s_h_s`, `%s_i_b`, `%s_i_c`, `%s_i_ce`, `%s_i_h`, `%s_i_hm`, `%s_i_i`, `%s_i_lss`, `%s_i_p`, `%s_i_r`, `%s_i_s`, `%s_i_sp`, `%s_i_spb`, `%s_i_st`, `%s_j_i`, `%s_k_hm`, `%s_k_p`, `%s_k_r`, `%s_k_sp`, `%s_l_b`, `%s_l_hm`, `%s_l_i`, `%s_l_lss`, `%s_l_p`, `%s_l_r`, `%s_l_s`, `%s_l_sp`, `%s_lcm`, `%s_m_b`, `%s_m_hm`, `%s_m_i`, `%s_m_ip`, `%s_m_lss`, `%s_m_msp`, `%s_m_r`, `%s_matrix`, `%s_n_hm`, `%s_n_i`, `%s_n_l`, `%s_n_lss`, `%s_n_r`, `%s_n_st`, `%s_o_hm`, `%s_o_i`, `%s_o_l`, `%s_o_lss`, `%s_o_r`, `%s_o_st`, `%s_or`, `%s_p_b`, `%s_p_i`, `%s_pow`, `%s_q_hm`, `%s_q_i`, `%s_q_p`, `%s_q_r`, `%s_q_sp`, `%s_r_b`, `%s_r_i`, `%s_r_lss`, `%s_r_p`, `%s_r_r`, `%s_r_s`, `%s_r_sp`, `%s_s_b`, `%s_s_hm`, `%s_s_i`, `%s_s_ip`, `%s_s_lss`, `%s_s_r`, `%s_s_sp`, `%s_simp`, `%s_v_lss`, `%s_v_p`, `%s_v_r`, `%s_v_s`, `%s_x_b`, `%s_x_hm`, `%s_x_i`, `%s_x_r`, `%s_y_p`, `%s_y_r`, `%s_y_sp`, `%s_z_p`, `%s_z_r`, `%s_z_sp`, `%sn`, `%sp_a_s`, `%sp_a_sp`, `%sp_and`, `%sp_c_s`, `%sp_ceil`, `%sp_conj`, `%sp_cos`, `%sp_cumprod`, `%sp_cumsum`, `%sp_d_s`, `%sp_d_sp`, `%sp_det`, `%sp_diag`, `%sp_e`, `%sp_exp`, `%sp_f_s`, `%sp_floor`, `%sp_grand`, `%sp_gsort`, `%sp_i_ce`, `%sp_i_h`, `%sp_i_s`, `%sp_i_sp`, `%sp_i_st`, `%sp_int`, `%sp_inv`, `%sp_k_s`, `%sp_k_sp`, `%sp_l_s`, `%sp_l_sp`, `%sp_length`, `%sp_max`, `%sp_min`, `%sp_norm`, `%sp_or`, `%sp_p_s`, `%sp_prod`, `%sp_q_s`, `%sp_q_sp`, `%sp_r_s`, `%sp_r_sp`, `%sp_round`, `%sp_s_s`, `%sp_s_sp`, `%sp_sin`, `%sp_sqrt`, `%sp_string`, `%sp_sum`, `%sp_tril`, `%sp_triu`, `%sp_y_s`, `%sp_y_sp`, `%sp_z_s`, `%sp_z_sp`, `%spb_and`, `%spb_c_b`, `%spb_cumprod`, `%spb_cumsum`, `%spb_diag`, `%spb_e`, `%spb_f_b`, `%spb_g_b`, `%spb_g_spb`, `%spb_h_b`, `%spb_h_spb`, `%spb_i_b`, `%spb_i_ce`, `%spb_i_h`, `%spb_i_st`, `%spb_or`, `%spb_prod`, `%spb_sum`, `%spb_tril`, `%spb_triu`, `%st_6`, `%st_c_st`, `%st_e`, `%st_f_st`, `%st_i_b`, `%st_i_c`, `%st_i_fptr`, `%st_i_h`, `%st_i_i`, `%st_i_ip`, `%st_i_lss`, `%st_i_msp`, `%st_i_p`, `%st_i_r`, `%st_i_s`, `%st_i_sp`, `%st_i_spb`, `%st_i_st`, `%st_matrix`, `%st_n_c`, `%st_n_l`, `%st_n_mc`, `%st_n_p`, `%st_n_s`, `%st_o_c`, `%st_o_l`, `%st_o_mc`, `%st_o_p`, `%st_o_s`, `%st_o_tl`, `%st_p`, `%st_size`, `%st_string`, `%st_t`, `%ticks_i_h`, `%xls_e`, `%xls_p`, `%xlssheet_e`, `%xlssheet_p`, `%xlssheet_size`, `%xlssheet_string`, `DominationRank`, `G_make`, `IsAScalar`, `NDcost`, `OS_Version`, `PlotSparse`, `ReadHBSparse`, `TCL_CreateSlave`, `abcd`, `abinv`, `accept_func_default`, `accept_func_vfsa`, `acf`, `acosd`, `acosh`, `acoshm`, `acosm`, `acot`, `acotd`, `acoth`, `acsc`, `acscd`, `acsch`, `add_demo`, `add_help_chapter`, `add_module_help_chapter`, `add_param`, `add_profiling`, `adj2sp`, `aff2ab`, `ana_style`, `analpf`, `analyze`, `aplat`, `arhnk`, `arl2`, `arma2p`, `arma2ss`, `armac`, `armax`, `armax1`, `arobasestring2strings`, `arsimul`, `ascii2string`, `asciimat`, `asec`, `asecd`, `asech`, `asind`, `asinh`, `asinhm`, `asinm`, `assert_checkalmostequal`, `assert_checkequal`, `assert_checkerror`, `assert_checkfalse`, `assert_checkfilesequal`, `assert_checktrue`, `assert_comparecomplex`, `assert_computedigits`, `assert_cond2reltol`, `assert_cond2reqdigits`, `assert_generror`, `atand`, `atanh`, `atanhm`, `atanm`, `atomsAutoload`, `atomsAutoloadAdd`, `atomsAutoloadDel`, `atomsAutoloadList`, `atomsCategoryList`, `atomsCheckModule`, `atomsDepTreeShow`, `atomsGetConfig`, `atomsGetInstalled`, `atomsGetInstalledPath`, `atomsGetLoaded`, `atomsGetLoadedPath`, `atomsInstall`, `atomsIsInstalled`, `atomsIsLoaded`, `atomsList`, `atomsLoad`, `atomsQuit`, `atomsRemove`, `atomsRepositoryAdd`, `atomsRepositoryDel`, `atomsRepositoryList`, `atomsRestoreConfig`, `atomsSaveConfig`, `atomsSearch`, `atomsSetConfig`, `atomsShow`, `atomsSystemInit`, `atomsSystemUpdate`, `atomsTest`, `atomsUpdate`, `atomsVersion`, `augment`, `auread`, `auwrite`, `balreal`, `bench_run`, `bilin`, `bilt`, `bin2dec`, `binomial`, `bitand`, `bitcmp`, `bitget`, `bitor`, `bitset`, `bitxor`, `black`, `blanks`, `bloc2exp`, `bloc2ss`, `block_parameter_error`, `bode`, `bode_asymp`, `bstap`, `buttmag`, `bvodeS`, `bytecode`, `bytecodewalk`, `cainv`, `calendar`, `calerf`, `calfrq`, `canon`, `casc`, `cat`, `cat_code`, `cb_m2sci_gui`, `ccontrg`, `cell`, `cell2mat`, `cellstr`, `center`, `cepstrum`, `cfspec`, `char`, `chart`, `cheb1mag`, `cheb2mag`, `check_gateways`, `check_modules_xml`, `check_versions`, `chepol`, `chfact`, `chsolve`, `classmarkov`, `clean_help`, `clock`, `cls2dls`, `cmb_lin`, `cmndred`, `cmoment`, `coding_ga_binary`, `coding_ga_identity`, `coff`, `coffg`, `colcomp`, `colcompr`, `colinout`, `colregul`, `companion`, `complex`, `compute_initial_temp`, `cond`, `cond2sp`, `condestsp`, `configure_msifort`, `configure_msvc`, `conjgrad`, `cont_frm`, `cont_mat`, `contrss`, `conv`, `convert_to_float`, `convertindex`, `convol`, `convol2d`, `copfac`, `correl`, `cosd`, `cosh`, `coshm`, `cosm`, `cotd`, `cotg`, `coth`, `cothm`, `cov`, `covar`, `createXConfiguration`, `createfun`, `createstruct`, `cross`, `crossover_ga_binary`, `crossover_ga_default`, `csc`, `cscd`, `csch`, `csgn`, `csim`, `cspect`, `ctr_gram`, `czt`, `dae`, `daeoptions`, `damp`, `datafit`, `date`, `datenum`, `datevec`, `dbphi`, `dcf`, `ddp`, `dec2bin`, `dec2hex`, `dec2oct`, `del_help_chapter`, `del_module_help_chapter`, `demo_begin`, `demo_choose`, `demo_compiler`, `demo_end`, `demo_file_choice`, `demo_folder_choice`, `demo_function_choice`, `demo_gui`, `demo_run`, `demo_viewCode`, `denom`, `derivat`, `derivative`, `des2ss`, `des2tf`, `detectmsifort64tools`, `detectmsvc64tools`, `determ`, `detr`, `detrend`, `devtools_run_builder`, `dhnorm`, `diff`, `diophant`, `dir`, `dirname`, `dispfiles`, `dllinfo`, `dscr`, `dsimul`, `dt_ility`, `dtsi`, `edit`, `edit_error`, `editor`, `eigenmarkov`, `eigs`, `ell1mag`, `enlarge_shape`, `entropy`, `eomday`, `epred`, `eqfir`, `eqiir`, `equil`, `equil1`, `erfinv`, `etime`, `eval`, `evans`, `evstr`, `example_run`, `expression2code`, `extract_help_examples`, `factor`, `factorial`, `factors`, `faurre`, `ffilt`, `fft2`, `fftshift`, `fieldnames`, `filt_sinc`, `filter`, `findABCD`, `findAC`, `findBDK`, `findR`, `find_freq`, `find_links`, `find_scicos_version`, `findm`, `findmsifortcompiler`, `findmsvccompiler`, `findx0BD`, `firstnonsingleton`, `fix`, `fixedpointgcd`, `flipdim`, `flts`, `fminsearch`, `formatBlackTip`, `formatBodeMagTip`, `formatBodePhaseTip`, `formatGainplotTip`, `formatHallModuleTip`, `formatHallPhaseTip`, `formatNicholsGainTip`, `formatNicholsPhaseTip`, `formatNyquistTip`, `formatPhaseplotTip`, `formatSgridDampingTip`, `formatSgridFreqTip`, `formatZgridDampingTip`, `formatZgridFreqTip`, `format_txt`, `fourplan`, `frep2tf`, `freson`, `frfit`, `frmag`, `fseek_origin`, `fsfirlin`, `fspec`, `fspecg`, `fstabst`, `ftest`, `ftuneq`, `fullfile`, `fullrf`, `fullrfk`, `fun2string`, `g_margin`, `gainplot`, `gamitg`, `gcare`, `gcd`, `gencompilationflags_unix`, `generateBlockImage`, `generateBlockImages`, `generic_i_ce`, `generic_i_h`, `generic_i_hm`, `generic_i_s`, `generic_i_st`, `genlib`, `genmarkov`, `geomean`, `getDiagramVersion`, `getModelicaPath`, `getPreferencesValue`, `get_file_path`, `get_function_path`, `get_param`, `get_profile`, `get_scicos_version`, `getd`, `getscilabkeywords`, `getshell`, `gettklib`, `gfare`, `gfrancis`, `givens`, `glever`, `gmres`, `group`, `gschur`, `gspec`, `gtild`, `h2norm`, `h_cl`, `h_inf`, `h_inf_st`, `h_norm`, `hallchart`, `halt`, `hank`, `hankelsv`, `harmean`, `haveacompiler`, `head_comments`, `help_from_sci`, `help_skeleton`, `hermit`, `hex2dec`, `hilb`, `hilbert`, `histc`, `horner`, `householder`, `hrmt`, `htrianr`, `hypermat`, `idct`, `idst`, `ifft`, `ifftshift`, `iir`, `iirgroup`, `iirlp`, `iirmod`, `ilib_build`, `ilib_build_jar`, `ilib_compile`, `ilib_for_link`, `ilib_gen_Make`, `ilib_gen_Make_unix`, `ilib_gen_cleaner`, `ilib_gen_gateway`, `ilib_gen_loader`, `ilib_include_flag`, `ilib_mex_build`, `im_inv`, `importScicosDiagram`, `importScicosPal`, `importXcosDiagram`, `imrep2ss`, `ind2sub`, `inistate`, `init_ga_default`, `init_param`, `initial_scicos_tables`, `input`, `instruction2code`, `intc`, `intdec`, `integrate`, `interp1`, `interpln`, `intersect`, `intl`, `intsplin`, `inttrap`, `inv_coeff`, `invr`, `invrs`, `invsyslin`, `iqr`, `isLeapYear`, `is_absolute_path`, `is_param`, `iscell`, `iscellstr`, `iscolumn`, `isempty`, `isfield`, `isinf`, `ismatrix`, `isnan`, `isrow`, `isscalar`, `issparse`, `issquare`, `isstruct`, `isvector`, `jmat`, `justify`, `kalm`, `karmarkar`, `kernel`, `kpure`, `krac2`, `kroneck`, `lattn`, `lattp`, `launchtest`, `lcf`, `lcm`, `lcmdiag`, `leastsq`, `leqe`, `leqr`, `lev`, `levin`, `lex_sort`, `lft`, `lin`, `lin2mu`, `lincos`, `lindquist`, `linf`, `linfn`, `linsolve`, `linspace`, `list2vec`, `list_param`, `listfiles`, `listfunctions`, `listvarinfile`, `lmisolver`, `lmitool`, `loadXcosLibs`, `loadmatfile`, `loadwave`, `log10`, `log2`, `logm`, `logspace`, `lqe`, `lqg`, `lqg2stan`, `lqg_ltr`, `lqr`, `ls`, `lyap`, `m2sci_gui`, `m_circle`, `macglov`, `macrovar`, `mad`, `makecell`, `manedit`, `mapsound`, `markp2ss`, `matfile2sci`, `mdelete`, `mean`, `meanf`, `median`, `members`, `mese`, `meshgrid`, `mfft`, `mfile2sci`, `minreal`, `minss`, `mkdir`, `modulo`, `moment`, `mrfit`, `msd`, `mstr2sci`, `mtlb`, `mtlb_0`, `mtlb_a`, `mtlb_all`, `mtlb_any`, `mtlb_axes`, `mtlb_axis`, `mtlb_beta`, `mtlb_box`, `mtlb_choices`, `mtlb_close`, `mtlb_colordef`, `mtlb_cond`, `mtlb_cov`, `mtlb_cumprod`, `mtlb_cumsum`, `mtlb_dec2hex`, `mtlb_delete`, `mtlb_diag`, `mtlb_diff`, `mtlb_dir`, `mtlb_double`, `mtlb_e`, `mtlb_echo`, `mtlb_error`, `mtlb_eval`, `mtlb_exist`, `mtlb_eye`, `mtlb_false`, `mtlb_fft`, `mtlb_fftshift`, `mtlb_filter`, `mtlb_find`, `mtlb_findstr`, `mtlb_fliplr`, `mtlb_fopen`, `mtlb_format`, `mtlb_fprintf`, `mtlb_fread`, `mtlb_fscanf`, `mtlb_full`, `mtlb_fwrite`, `mtlb_get`, `mtlb_grid`, `mtlb_hold`, `mtlb_i`, `mtlb_ifft`, `mtlb_image`, `mtlb_imp`, `mtlb_int16`, `mtlb_int32`, `mtlb_int8`, `mtlb_is`, `mtlb_isa`, `mtlb_isfield`, `mtlb_isletter`, `mtlb_isspace`, `mtlb_l`, `mtlb_legendre`, `mtlb_linspace`, `mtlb_logic`, `mtlb_logical`, `mtlb_loglog`, `mtlb_lower`, `mtlb_max`, `mtlb_mean`, `mtlb_median`, `mtlb_mesh`, `mtlb_meshdom`, `mtlb_min`, `mtlb_more`, `mtlb_num2str`, `mtlb_ones`, `mtlb_pcolor`, `mtlb_plot`, `mtlb_prod`, `mtlb_qr`, `mtlb_qz`, `mtlb_rand`, `mtlb_randn`, `mtlb_rcond`, `mtlb_realmax`, `mtlb_realmin`, `mtlb_s`, `mtlb_semilogx`, `mtlb_semilogy`, `mtlb_setstr`, `mtlb_size`, `mtlb_sort`, `mtlb_sortrows`, `mtlb_sprintf`, `mtlb_sscanf`, `mtlb_std`, `mtlb_strcmp`, `mtlb_strcmpi`, `mtlb_strfind`, `mtlb_strrep`, `mtlb_subplot`, `mtlb_sum`, `mtlb_t`, `mtlb_toeplitz`, `mtlb_tril`, `mtlb_triu`, `mtlb_true`, `mtlb_type`, `mtlb_uint16`, `mtlb_uint32`, `mtlb_uint8`, `mtlb_upper`, `mtlb_var`, `mtlb_zeros`, `mu2lin`, `mutation_ga_binary`, `mutation_ga_default`, `mvcorrel`, `mvvacov`, `nancumsum`, `nand2mean`, `nanmax`, `nanmean`, `nanmeanf`, `nanmedian`, `nanmin`, `nanreglin`, `nanstdev`, `nansum`, `narsimul`, `ndgrid`, `ndims`, `nehari`, `neigh_func_csa`, `neigh_func_default`, `neigh_func_fsa`, `neigh_func_vfsa`, `neldermead_cget`, `neldermead_configure`, `neldermead_costf`, `neldermead_defaultoutput`, `neldermead_destroy`, `neldermead_function`, `neldermead_get`, `neldermead_log`, `neldermead_new`, `neldermead_restart`, `neldermead_search`, `neldermead_updatesimp`, `nextpow2`, `nfreq`, `nicholschart`, `nlev`, `nmplot_cget`, `nmplot_configure`, `nmplot_contour`, `nmplot_destroy`, `nmplot_function`, `nmplot_get`, `nmplot_historyplot`, `nmplot_log`, `nmplot_new`, `nmplot_outputcmd`, `nmplot_restart`, `nmplot_search`, `nmplot_simplexhistory`, `noisegen`, `nonreg_test_run`, `now`, `nthroot`, `null`, `num2cell`, `numderivative`, `numdiff`, `numer`, `nyquist`, `nyquistfrequencybounds`, `obs_gram`, `obscont`, `observer`, `obsv_mat`, `obsvss`, `oct2dec`, `odeoptions`, `optim_ga`, `optim_moga`, `optim_nsga`, `optim_nsga2`, `optim_sa`, `optimbase_cget`, `optimbase_checkbounds`, `optimbase_checkcostfun`, `optimbase_checkx0`, `optimbase_configure`, `optimbase_destroy`, `optimbase_function`, `optimbase_get`, `optimbase_hasbounds`, `optimbase_hasconstraints`, `optimbase_hasnlcons`, `optimbase_histget`, `optimbase_histset`, `optimbase_incriter`, `optimbase_isfeasible`, `optimbase_isinbounds`, `optimbase_isinnonlincons`, `optimbase_log`, `optimbase_logshutdown`, `optimbase_logstartup`, `optimbase_new`, `optimbase_outputcmd`, `optimbase_outstruct`, `optimbase_proj2bnds`, `optimbase_set`, `optimbase_stoplog`, `optimbase_terminate`, `optimget`, `optimplotfunccount`, `optimplotfval`, `optimplotx`, `optimset`, `optimsimplex_center`, `optimsimplex_check`, `optimsimplex_compsomefv`, `optimsimplex_computefv`, `optimsimplex_deltafv`, `optimsimplex_deltafvmax`, `optimsimplex_destroy`, `optimsimplex_dirmat`, `optimsimplex_fvmean`, `optimsimplex_fvstdev`, `optimsimplex_fvvariance`, `optimsimplex_getall`, `optimsimplex_getallfv`, `optimsimplex_getallx`, `optimsimplex_getfv`, `optimsimplex_getn`, `optimsimplex_getnbve`, `optimsimplex_getve`, `optimsimplex_getx`, `optimsimplex_gradientfv`, `optimsimplex_log`, `optimsimplex_new`, `optimsimplex_reflect`, `optimsimplex_setall`, `optimsimplex_setallfv`, `optimsimplex_setallx`, `optimsimplex_setfv`, `optimsimplex_setn`, `optimsimplex_setnbve`, `optimsimplex_setve`, `optimsimplex_setx`, `optimsimplex_shrink`, `optimsimplex_size`, `optimsimplex_sort`, `optimsimplex_xbar`, `orth`, `output_ga_default`, `output_moga_default`, `output_nsga2_default`, `output_nsga_default`, `p_margin`, `pack`, `pareto_filter`, `parrot`, `pbig`, `pca`, `pcg`, `pdiv`, `pen2ea`, `pencan`, `pencost`, `penlaur`, `perctl`, `perl`, `perms`, `permute`, `pertrans`, `pfactors`, `pfss`, `phasemag`, `phaseplot`, `phc`, `pinv`, `playsnd`, `plotprofile`, `plzr`, `pmodulo`, `pol2des`, `pol2str`, `polar`, `polfact`, `prbs_a`, `prettyprint`, `primes`, `princomp`, `profile`, `proj`, `projsl`, `projspec`, `psmall`, `pspect`, `qmr`, `qpsolve`, `quart`, `quaskro`, `rafiter`, `randpencil`, `range`, `rank`, `readxls`, `recompilefunction`, `recons`, `reglin`, `regress`, `remezb`, `remove_param`, `remove_profiling`, `repfreq`, `replace_Ix_by_Fx`, `repmat`, `reset_profiling`, `resize_matrix`, `returntoscilab`, `rhs2code`, `ric_desc`, `riccati`, `rmdir`, `routh_t`, `rowcomp`, `rowcompr`, `rowinout`, `rowregul`, `rowshuff`, `rref`, `sample`, `samplef`, `samwr`, `savematfile`, `savewave`, `scanf`, `sci2exp`, `sciGUI_init`, `sci_sparse`, `scicos_getvalue`, `scicos_simulate`, `scicos_workspace_init`, `scisptdemo`, `scitest`, `sdiff`, `sec`, `secd`, `sech`, `selection_ga_elitist`, `selection_ga_random`, `sensi`, `setPreferencesValue`, `set_param`, `setdiff`, `sgrid`, `show_margins`, `show_pca`, `showprofile`, `signm`, `sinc`, `sincd`, `sind`, `sinh`, `sinhm`, `sinm`, `sm2des`, `sm2ss`, `smga`, `smooth`, `solve`, `sound`, `soundsec`, `sp2adj`, `spaninter`, `spanplus`, `spantwo`, `specfact`, `speye`, `sprand`, `spzeros`, `sqroot`, `sqrtm`, `squarewave`, `squeeze`, `srfaur`, `srkf`, `ss2des`, `ss2ss`, `ss2tf`, `sskf`, `ssprint`, `ssrand`, `st_deviation`, `st_i_generic`, `st_ility`, `stabil`, `statgain`, `stdev`, `stdevf`, `steadycos`, `strange`, `strcmpi`, `struct`, `sub2ind`, `sva`, `svplot`, `sylm`, `sylv`, `sysconv`, `sysdiag`, `sysfact`, `syslin`, `syssize`, `system`, `systmat`, `tabul`, `tand`, `tanh`, `tanhm`, `tanm`, `tbx_build_blocks`, `tbx_build_cleaner`, `tbx_build_gateway`, `tbx_build_gateway_clean`, `tbx_build_gateway_loader`, `tbx_build_help`, `tbx_build_help_loader`, `tbx_build_loader`, `tbx_build_localization`, `tbx_build_macros`, `tbx_build_pal_loader`, `tbx_build_src`, `tbx_builder`, `tbx_builder_gateway`, `tbx_builder_gateway_lang`, `tbx_builder_help`, `tbx_builder_help_lang`, `tbx_builder_macros`, `tbx_builder_src`, `tbx_builder_src_lang`, `tbx_generate_pofile`, `temp_law_csa`, `temp_law_default`, `temp_law_fsa`, `temp_law_huang`, `temp_law_vfsa`, `test_clean`, `test_on_columns`, `test_run`, `test_run_level`, `testexamples`, `tf2des`, `tf2ss`, `thrownan`, `tic`, `time_id`, `toc`, `toeplitz`, `tokenpos`, `toolboxes`, `trace`, `trans`, `translatepaths`, `tree2code`, `trfmod`, `trianfml`, `trimmean`, `trisolve`, `trzeros`, `typeof`, `ui_observer`, `union`, `unique`, `unit_test_run`, `unix_g`, `unix_s`, `unix_w`, `unix_x`, `unobs`, `unpack`, `unwrap`, `variance`, `variancef`, `vec2list`, `vectorfind`, `ver`, `warnobsolete`, `wavread`, `wavwrite`, `wcenter`, `weekday`, `wfir`, `wfir_gui`, `whereami`, `who_user`, `whos`, `wiener`, `wigner`, `window`, `winlist`, `with_javasci`, `with_macros_source`, `with_modelica_compiler`, `with_tk`, `xcorr`, `xcosBlockEval`, `xcosBlockInterface`, `xcosCodeGeneration`, `xcosConfigureModelica`, `xcosPal`, `xcosPalAdd`, `xcosPalAddBlock`, `xcosPalExport`, `xcosPalGenerateAllIcons`, `xcosShowBlockWarning`, `xcosValidateBlockSet`, `xcosValidateCompareBlock`, `xcos_compile`, `xcos_debug_gui`, `xcos_run`, `xcos_simulate`, `xcov`, `xmltochm`, `xmltoformat`, `xmltohtml`, `xmltojar`, `xmltopdf`, `xmltops`, `xmltoweb`, `yulewalk`, `zeropen`, `zgrid`, `zpbutt`, `zpch1`, `zpch2`, `zpell`), NameBuiltin, nil}, - {Words(``, `\b`, `$`, `%F`, `%T`, `%e`, `%eps`, `%f`, `%fftw`, `%gui`, `%i`, `%inf`, `%io`, `%modalWarning`, `%nan`, `%pi`, `%s`, `%t`, `%tk`, `%toolboxes`, `%toolboxes_dir`, `%z`, `PWD`, `SCI`, `SCIHOME`, `TMPDIR`, `arnoldilib`, `assertlib`, `atomslib`, `cacsdlib`, `compatibility_functilib`, `corelib`, `data_structureslib`, `demo_toolslib`, `development_toolslib`, `differential_equationlib`, `dynamic_linklib`, `elementary_functionslib`, `enull`, `evoid`, `external_objectslib`, `fd`, `fileiolib`, `functionslib`, `genetic_algorithmslib`, `helptoolslib`, `home`, `integerlib`, `interpolationlib`, `iolib`, `jnull`, `jvoid`, `linear_algebralib`, `m2scilib`, `matiolib`, `modules_managerlib`, `neldermeadlib`, `optimbaselib`, `optimizationlib`, `optimsimplexlib`, `output_streamlib`, `overloadinglib`, `parameterslib`, `polynomialslib`, `preferenceslib`, `randliblib`, `scicos_autolib`, `scicos_utilslib`, `scinoteslib`, `signal_processinglib`, `simulated_annealinglib`, `soundlib`, `sparselib`, `special_functionslib`, `spreadsheetlib`, `statisticslib`, `stringlib`, `tclscilib`, `timelib`, `umfpacklib`, `xcoslib`), NameConstant, nil}, - {`-|==|~=|<|>|<=|>=|&&|&|~|\|\|?`, Operator, nil}, - {`\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\`, Operator, nil}, - {`[\[\](){}@.,=:;]`, Punctuation, nil}, - {`"[^"]*"`, LiteralString, nil}, - {`(?<=[\w)\].])\'+`, Operator, nil}, - {`(?|+=@:,./?-]+`, Operator, nil}, - {`[\[\]()]+`, Punctuation, nil}, - {`"`, LiteralStringDouble, Push("string-double")}, - {`'`, LiteralStringSingle, Push("string-single")}, - {`[a-z_-][\w-]*`, Name, nil}, - {`\n`, Text, nil}, - {`[;{}]`, Punctuation, Pop(1)}, - }, - "interpolation": { - {`\}`, LiteralStringInterpol, Pop(1)}, - Include("value"), - }, - "selector": { - {`[ \t]+`, Text, nil}, - {`\:`, NameDecorator, Push("pseudo-class")}, - {`\.`, NameClass, Push("class")}, - {`\#`, NameNamespace, Push("id")}, - {`[\w-]+`, NameTag, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`&`, Keyword, nil}, - {`[~^*!&\[\]()<>|+=@:,./?-]`, Operator, nil}, - {`"`, LiteralStringDouble, Push("string-double")}, - {`'`, LiteralStringSingle, Push("string-single")}, - {`\n`, Text, nil}, - {`[;{}]`, Punctuation, Pop(1)}, - }, - "string-double": { - {`(\\.|#(?=[^\n{])|[^\n"#])+`, LiteralStringDouble, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "string-single": { - {`(\\.|#(?=[^\n{])|[^\n'#])+`, LiteralStringSingle, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`'`, LiteralStringSingle, Pop(1)}, - }, - "string-url": { - {`(\\#|#(?=[^\n{])|[^\n#)])+`, LiteralStringOther, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - {`\)`, LiteralStringOther, Pop(1)}, - }, - "pseudo-class": { - {`[\w-]+`, NameDecorator, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - Default(Pop(1)), - }, - "class": { - {`[\w-]+`, NameClass, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - Default(Pop(1)), - }, - "id": { - {`[\w-]+`, NameNamespace, nil}, - {`#\{`, LiteralStringInterpol, Push("interpolation")}, - Default(Pop(1)), - }, - "for": { - {`(from|to|through)`, OperatorWord, nil}, - Include("value"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/smalltalk.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/smalltalk.go deleted file mode 100644 index db64707fd7..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/smalltalk.go +++ /dev/null @@ -1,99 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Smalltalk lexer. -var Smalltalk = internal.Register(MustNewLexer( - &Config{ - Name: "Smalltalk", - Aliases: []string{"smalltalk", "squeak", "st"}, - Filenames: []string{"*.st"}, - MimeTypes: []string{"text/x-smalltalk"}, - }, - Rules{ - "root": { - {`(<)(\w+:)(.*?)(>)`, ByGroups(Text, Keyword, Text, Text), nil}, - Include("squeak fileout"), - Include("whitespaces"), - Include("method definition"), - {`(\|)([\w\s]*)(\|)`, ByGroups(Operator, NameVariable, Operator), nil}, - Include("objects"), - {`\^|:=|_`, Operator, nil}, - {`[\]({}.;!]`, Text, nil}, - }, - "method definition": { - {`([a-zA-Z]+\w*:)(\s*)(\w+)`, ByGroups(NameFunction, Text, NameVariable), nil}, - {`^(\b[a-zA-Z]+\w*\b)(\s*)$`, ByGroups(NameFunction, Text), nil}, - {`^([-+*/\\~<>=|&!?,@%]+)(\s*)(\w+)(\s*)$`, ByGroups(NameFunction, Text, NameVariable, Text), nil}, - }, - "blockvariables": { - Include("whitespaces"), - {`(:)(\s*)(\w+)`, ByGroups(Operator, Text, NameVariable), nil}, - {`\|`, Operator, Pop(1)}, - Default(Pop(1)), - }, - "literals": { - {`'(''|[^'])*'`, LiteralString, Push("afterobject")}, - {`\$.`, LiteralStringChar, Push("afterobject")}, - {`#\(`, LiteralStringSymbol, Push("parenth")}, - {`\)`, Text, Push("afterobject")}, - {`(\d+r)?-?\d+(\.\d+)?(e-?\d+)?`, LiteralNumber, Push("afterobject")}, - }, - "_parenth_helper": { - Include("whitespaces"), - {`(\d+r)?-?\d+(\.\d+)?(e-?\d+)?`, LiteralNumber, nil}, - {`[-+*/\\~<>=|&#!?,@%\w:]+`, LiteralStringSymbol, nil}, - {`'(''|[^'])*'`, LiteralString, nil}, - {`\$.`, LiteralStringChar, nil}, - {`#*\(`, LiteralStringSymbol, Push("inner_parenth")}, - }, - "parenth": { - {`\)`, LiteralStringSymbol, Push("root", "afterobject")}, - Include("_parenth_helper"), - }, - "inner_parenth": { - {`\)`, LiteralStringSymbol, Pop(1)}, - Include("_parenth_helper"), - }, - "whitespaces": { - {`\s+`, Text, nil}, - {`"(""|[^"])*"`, Comment, nil}, - }, - "objects": { - {`\[`, Text, Push("blockvariables")}, - {`\]`, Text, Push("afterobject")}, - {`\b(self|super|true|false|nil|thisContext)\b`, NameBuiltinPseudo, Push("afterobject")}, - {`\b[A-Z]\w*(?!:)\b`, NameClass, Push("afterobject")}, - {`\b[a-z]\w*(?!:)\b`, NameVariable, Push("afterobject")}, - {`#("(""|[^"])*"|[-+*/\\~<>=|&!?,@%]+|[\w:]+)`, LiteralStringSymbol, Push("afterobject")}, - Include("literals"), - }, - "afterobject": { - {`! !$`, Keyword, Pop(1)}, - Include("whitespaces"), - {`\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)`, NameBuiltin, Pop(1)}, - {`\b(new\b(?!:))`, NameBuiltin, nil}, - {`:=|_`, Operator, Pop(1)}, - {`\b[a-zA-Z]+\w*:`, NameFunction, Pop(1)}, - {`\b[a-zA-Z]+\w*`, NameFunction, nil}, - {`\w+:?|[-+*/\\~<>=|&!?,@%]+`, NameFunction, Pop(1)}, - {`\.`, Punctuation, Pop(1)}, - {`;`, Punctuation, nil}, - {`[\])}]`, Text, nil}, - {`[\[({]`, Text, Pop(1)}, - }, - "squeak fileout": { - {`^"(""|[^"])*"!`, Keyword, nil}, - {`^'(''|[^'])*'!`, Keyword, nil}, - {`^(!)(\w+)( commentStamp: )(.*?)( prior: .*?!\n)(.*?)(!)`, ByGroups(Keyword, NameClass, Keyword, LiteralString, Keyword, Text, Keyword), nil}, - {`^(!)(\w+(?: class)?)( methodsFor: )('(?:''|[^'])*')(.*?!)`, ByGroups(Keyword, NameClass, Keyword, LiteralString, Keyword), nil}, - {`^(\w+)( subclass: )(#\w+)(\s+instanceVariableNames: )(.*?)(\s+classVariableNames: )(.*?)(\s+poolDictionaries: )(.*?)(\s+category: )(.*?)(!)`, ByGroups(NameClass, Keyword, LiteralStringSymbol, Keyword, LiteralString, Keyword, LiteralString, Keyword, LiteralString, Keyword, LiteralString, Keyword), nil}, - {`^(\w+(?: class)?)(\s+instanceVariableNames: )(.*?)(!)`, ByGroups(NameClass, Keyword, LiteralString, Keyword), nil}, - {`(!\n)(\].*)(! !)$`, ByGroups(Keyword, Text, Keyword), nil}, - {`! !$`, Keyword, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/smarty.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/smarty.go deleted file mode 100644 index c364ffa53a..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/smarty.go +++ /dev/null @@ -1,40 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - . "github.com/alecthomas/chroma/lexers/circular" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Smarty lexer. -var Smarty = internal.Register(MustNewLexer( - &Config{ - Name: "Smarty", - Aliases: []string{"smarty"}, - Filenames: []string{"*.tpl"}, - MimeTypes: []string{"application/x-smarty"}, - DotAll: true, - }, - Rules{ - "root": { - {`[^{]+`, Other, nil}, - {`(\{)(\*.*?\*)(\})`, ByGroups(CommentPreproc, Comment, CommentPreproc), nil}, - {`(\{php\})(.*?)(\{/php\})`, ByGroups(CommentPreproc, Using(PHP), CommentPreproc), nil}, - {`(\{)(/?[a-zA-Z_]\w*)(\s*)`, ByGroups(CommentPreproc, NameFunction, Text), Push("smarty")}, - {`\{`, CommentPreproc, Push("smarty")}, - }, - "smarty": { - {`\s+`, Text, nil}, - {`\{`, CommentPreproc, Push()}, - {`\}`, CommentPreproc, Pop(1)}, - {`#[a-zA-Z_]\w*#`, NameVariable, nil}, - {`\$[a-zA-Z_]\w*(\.\w+)*`, NameVariable, nil}, - {`[~!%^&*()+=|\[\]:;,.<>/?@-]`, Operator, nil}, - {`(true|false|null)\b`, KeywordConstant, nil}, - {`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`[a-zA-Z_]\w*`, NameAttribute, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sml.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sml.go deleted file mode 100644 index f716d92b21..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sml.go +++ /dev/null @@ -1,200 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Standard ML lexer. -var StandardML = internal.Register(MustNewLexer( - &Config{ - Name: "Standard ML", - Aliases: []string{"sml"}, - Filenames: []string{"*.sml", "*.sig", "*.fun"}, - MimeTypes: []string{"text/x-standardml", "application/x-standardml"}, - }, - Rules{ - "whitespace": { - {`\s+`, Text, nil}, - {`\(\*`, CommentMultiline, Push("comment")}, - }, - "delimiters": { - {`\(|\[|\{`, Punctuation, Push("main")}, - {`\)|\]|\}`, Punctuation, Pop(1)}, - {`\b(let|if|local)\b(?!\')`, KeywordReserved, Push("main", "main")}, - {`\b(struct|sig|while)\b(?!\')`, KeywordReserved, Push("main")}, - {`\b(do|else|end|in|then)\b(?!\')`, KeywordReserved, Pop(1)}, - }, - "core": { - {`(_|\}|\{|\)|;|,|\[|\(|\]|\.\.\.)`, Punctuation, nil}, - {`#"`, LiteralStringChar, Push("char")}, - {`"`, LiteralStringDouble, Push("string")}, - {`~?0x[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`0wx[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`0w\d+`, LiteralNumberInteger, nil}, - {`~?\d+\.\d+[eE]~?\d+`, LiteralNumberFloat, nil}, - {`~?\d+\.\d+`, LiteralNumberFloat, nil}, - {`~?\d+[eE]~?\d+`, LiteralNumberFloat, nil}, - {`~?\d+`, LiteralNumberInteger, nil}, - {`#\s*[1-9][0-9]*`, NameLabel, nil}, - {`#\s*([a-zA-Z][\w']*)`, NameLabel, nil}, - {"#\\s+([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", NameLabel, nil}, - {`\b(datatype|abstype)\b(?!\')`, KeywordReserved, Push("dname")}, - {`(?=\b(exception)\b(?!\'))`, Text, Push("ename")}, - {`\b(functor|include|open|signature|structure)\b(?!\')`, KeywordReserved, Push("sname")}, - {`\b(type|eqtype)\b(?!\')`, KeywordReserved, Push("tname")}, - {`\'[\w\']*`, NameDecorator, nil}, - {`([a-zA-Z][\w']*)(\.)`, NameNamespace, Push("dotted")}, - {`\b(abstype|and|andalso|as|case|datatype|do|else|end|exception|fn|fun|handle|if|in|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|then|type|val|with|withtype|while|eqtype|functor|include|sharing|sig|signature|struct|structure|where)\b`, KeywordReserved, nil}, - {`([a-zA-Z][\w']*)`, Name, nil}, - {`\b(:|\|,=|=>|->|#|:>)\b`, KeywordReserved, nil}, - {"([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", Name, nil}, - }, - "dotted": { - {`([a-zA-Z][\w']*)(\.)`, NameNamespace, nil}, - // ignoring reserved words - {`([a-zA-Z][\w']*)`, Name, Pop(1)}, - // ignoring reserved words - {"([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", Name, Pop(1)}, - {`\s+`, Error, nil}, - {`\S+`, Error, nil}, - }, - "root": { - Default(Push("main")), - }, - "main": { - Include("whitespace"), - {`\b(val|and)\b(?!\')`, KeywordReserved, Push("vname")}, - {`\b(fun)\b(?!\')`, KeywordReserved, Push("#pop", "main-fun", "fname")}, - Include("delimiters"), - Include("core"), - {`\S+`, Error, nil}, - }, - "main-fun": { - Include("whitespace"), - {`\s`, Text, nil}, - {`\(\*`, CommentMultiline, Push("comment")}, - {`\b(fun|and)\b(?!\')`, KeywordReserved, Push("fname")}, - {`\b(val)\b(?!\')`, KeywordReserved, Push("#pop", "main", "vname")}, - {`\|`, Punctuation, Push("fname")}, - {`\b(case|handle)\b(?!\')`, KeywordReserved, Push("#pop", "main")}, - Include("delimiters"), - Include("core"), - {`\S+`, Error, nil}, - }, - "char": { - {`[^"\\]`, LiteralStringChar, nil}, - {`\\[\\"abtnvfr]`, LiteralStringEscape, nil}, - {`\\\^[\x40-\x5e]`, LiteralStringEscape, nil}, - {`\\[0-9]{3}`, LiteralStringEscape, nil}, - {`\\u[0-9a-fA-F]{4}`, LiteralStringEscape, nil}, - {`\\\s+\\`, LiteralStringInterpol, nil}, - {`"`, LiteralStringChar, Pop(1)}, - }, - "string": { - {`[^"\\]`, LiteralStringDouble, nil}, - {`\\[\\"abtnvfr]`, LiteralStringEscape, nil}, - {`\\\^[\x40-\x5e]`, LiteralStringEscape, nil}, - {`\\[0-9]{3}`, LiteralStringEscape, nil}, - {`\\u[0-9a-fA-F]{4}`, LiteralStringEscape, nil}, - {`\\\s+\\`, LiteralStringInterpol, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "breakout": { - {`(?=\b(where|do|handle|if|sig|op|while|case|as|else|signature|andalso|struct|infixr|functor|in|structure|then|local|rec|end|fun|of|orelse|val|include|fn|with|exception|let|and|infix|sharing|datatype|type|abstype|withtype|eqtype|nonfix|raise|open)\b(?!\'))`, Text, Pop(1)}, - }, - "sname": { - Include("whitespace"), - Include("breakout"), - {`([a-zA-Z][\w']*)`, NameNamespace, nil}, - Default(Pop(1)), - }, - "fname": { - Include("whitespace"), - {`\'[\w\']*`, NameDecorator, nil}, - {`\(`, Punctuation, Push("tyvarseq")}, - {`([a-zA-Z][\w']*)`, NameFunction, Pop(1)}, - {"([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", NameFunction, Pop(1)}, - Default(Pop(1)), - }, - "vname": { - Include("whitespace"), - {`\'[\w\']*`, NameDecorator, nil}, - {`\(`, Punctuation, Push("tyvarseq")}, - {"([a-zA-Z][\\w']*)(\\s*)(=(?![!%&$#+\\-/:<=>?@\\\\~`^|*]+))", ByGroups(NameVariable, Text, Punctuation), Pop(1)}, - {"([!%&$#+\\-/:<=>?@\\\\~`^|*]+)(\\s*)(=(?![!%&$#+\\-/:<=>?@\\\\~`^|*]+))", ByGroups(NameVariable, Text, Punctuation), Pop(1)}, - {`([a-zA-Z][\w']*)`, NameVariable, Pop(1)}, - {"([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", NameVariable, Pop(1)}, - Default(Pop(1)), - }, - "tname": { - Include("whitespace"), - Include("breakout"), - {`\'[\w\']*`, NameDecorator, nil}, - {`\(`, Punctuation, Push("tyvarseq")}, - {"=(?![!%&$#+\\-/:<=>?@\\\\~`^|*]+)", Punctuation, Push("#pop", "typbind")}, - {`([a-zA-Z][\w']*)`, KeywordType, nil}, - {"([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", KeywordType, nil}, - {`\S+`, Error, Pop(1)}, - }, - "typbind": { - Include("whitespace"), - {`\b(and)\b(?!\')`, KeywordReserved, Push("#pop", "tname")}, - Include("breakout"), - Include("core"), - {`\S+`, Error, Pop(1)}, - }, - "dname": { - Include("whitespace"), - Include("breakout"), - {`\'[\w\']*`, NameDecorator, nil}, - {`\(`, Punctuation, Push("tyvarseq")}, - {`(=)(\s*)(datatype)`, ByGroups(Punctuation, Text, KeywordReserved), Pop(1)}, - {"=(?![!%&$#+\\-/:<=>?@\\\\~`^|*]+)", Punctuation, Push("#pop", "datbind", "datcon")}, - {`([a-zA-Z][\w']*)`, KeywordType, nil}, - {"([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", KeywordType, nil}, - {`\S+`, Error, Pop(1)}, - }, - "datbind": { - Include("whitespace"), - {`\b(and)\b(?!\')`, KeywordReserved, Push("#pop", "dname")}, - {`\b(withtype)\b(?!\')`, KeywordReserved, Push("#pop", "tname")}, - {`\b(of)\b(?!\')`, KeywordReserved, nil}, - {`(\|)(\s*)([a-zA-Z][\w']*)`, ByGroups(Punctuation, Text, NameClass), nil}, - {"(\\|)(\\s+)([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", ByGroups(Punctuation, Text, NameClass), nil}, - Include("breakout"), - Include("core"), - {`\S+`, Error, nil}, - }, - "ename": { - Include("whitespace"), - {`(exception|and)\b(\s+)([a-zA-Z][\w']*)`, ByGroups(KeywordReserved, Text, NameClass), nil}, - {"(exception|and)\\b(\\s*)([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", ByGroups(KeywordReserved, Text, NameClass), nil}, - {`\b(of)\b(?!\')`, KeywordReserved, nil}, - Include("breakout"), - Include("core"), - {`\S+`, Error, nil}, - }, - "datcon": { - Include("whitespace"), - {`([a-zA-Z][\w']*)`, NameClass, Pop(1)}, - {"([!%&$#+\\-/:<=>?@\\\\~`^|*]+)", NameClass, Pop(1)}, - {`\S+`, Error, Pop(1)}, - }, - "tyvarseq": { - {`\s`, Text, nil}, - {`\(\*`, CommentMultiline, Push("comment")}, - {`\'[\w\']*`, NameDecorator, nil}, - {`[a-zA-Z][\w']*`, Name, nil}, - {`,`, Punctuation, nil}, - {`\)`, Punctuation, Pop(1)}, - {"[!%&$#+\\-/:<=>?@\\\\~`^|*]+", Name, nil}, - }, - "comment": { - {`[^(*)]`, CommentMultiline, nil}, - {`\(\*`, CommentMultiline, Push()}, - {`\*\)`, CommentMultiline, Pop(1)}, - {`[(*)]`, CommentMultiline, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/snobol.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/snobol.go deleted file mode 100644 index c999b50f57..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/snobol.go +++ /dev/null @@ -1,48 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Snobol lexer. -var Snobol = internal.Register(MustNewLexer( - &Config{ - Name: "Snobol", - Aliases: []string{"snobol"}, - Filenames: []string{"*.snobol"}, - MimeTypes: []string{"text/x-snobol"}, - }, - Rules{ - "root": { - {`\*.*\n`, Comment, nil}, - {`[+.] `, Punctuation, Push("statement")}, - {`-.*\n`, Comment, nil}, - {`END\s*\n`, NameLabel, Push("heredoc")}, - {`[A-Za-z$][\w$]*`, NameLabel, Push("statement")}, - {`\s+`, Text, Push("statement")}, - }, - "statement": { - {`\s*\n`, Text, Pop(1)}, - {`\s+`, Text, nil}, - {`(?<=[^\w.])(LT|LE|EQ|NE|GE|GT|INTEGER|IDENT|DIFFER|LGT|SIZE|REPLACE|TRIM|DUPL|REMDR|DATE|TIME|EVAL|APPLY|OPSYN|LOAD|UNLOAD|LEN|SPAN|BREAK|ANY|NOTANY|TAB|RTAB|REM|POS|RPOS|FAIL|FENCE|ABORT|ARB|ARBNO|BAL|SUCCEED|INPUT|OUTPUT|TERMINAL)(?=[^\w.])`, NameBuiltin, nil}, - {`[A-Za-z][\w.]*`, Name, nil}, - {`\*\*|[?$.!%*/#+\-@|&\\=]`, Operator, nil}, - {`"[^"]*"`, LiteralString, nil}, - {`'[^']*'`, LiteralString, nil}, - {`[0-9]+(?=[^.EeDd])`, LiteralNumberInteger, nil}, - {`[0-9]+(\.[0-9]*)?([EDed][-+]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`:`, Punctuation, Push("goto")}, - {`[()<>,;]`, Punctuation, nil}, - }, - "goto": { - {`\s*\n`, Text, Pop(2)}, - {`\s+`, Text, nil}, - {`F|S`, Keyword, nil}, - {`(\()([A-Za-z][\w.]*)(\))`, ByGroups(Punctuation, NameLabel, Punctuation), nil}, - }, - "heredoc": { - {`.*\n`, LiteralStringHeredoc, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/solidity.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/solidity.go deleted file mode 100644 index d7cf0f97b5..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/solidity.go +++ /dev/null @@ -1,110 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Solidity lexer. -var Solidity = internal.Register(MustNewLexer( - &Config{ - Name: "Solidity", - Aliases: []string{"sol", "solidity"}, - Filenames: []string{"*.sol"}, - MimeTypes: []string{}, - DotAll: true, - }, - Rules{ - "assembly": { - Include("comments"), - Include("numbers"), - Include("strings"), - Include("whitespace"), - {`\{`, Punctuation, Push()}, - {`\}`, Punctuation, Pop(1)}, - {`[(),]`, Punctuation, nil}, - {`:=|=:`, Operator, nil}, - {`(let)(\s*)(\w*\b)`, ByGroups(OperatorWord, Text, NameVariable), nil}, - {`(\w*\b)(\:[^=])`, ByGroups(NameLabel, Punctuation), nil}, - {`(stop|add|mul|sub|div|sdiv|mod|smod|addmod|mulmod|exp|signextend|lt|gt|slt|sgt|eq|iszero|and|or|xor|not|byte|keccak256|sha3|address|balance|origin|caller|callvalue|calldataload|calldatasize|calldatacopy|codesize|codecopy|gasprice|extcodesize|extcodecopy|blockhash|coinbase|timestamp|number|difficulty|gaslimit|pop|mload|mstore|mstore8|sload|sstore|for|switch|jump|jumpi|pc|msize|gas|jumpdest|push1|push2|push32|dup1|dup2|dup16|swap1|swap2|swap16|log0|log1|log4|create|call|callcode|return|delegatecall|suicide|returndatasize|returndatacopy|staticcall|revert|invalid)\b`, NameFunction, nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - "comments": { - {`//([\w\W]*?\n)`, CommentSingle, nil}, - {`/[*][\w\W]*?[*]/`, CommentMultiline, nil}, - {`/[*][\w\W]*`, CommentMultiline, nil}, - }, - "keywords-other": { - {Words(``, `\b`, `for`, `in`, `while`, `do`, `break`, `return`, `returns`, `continue`, `if`, `else`, `throw`, `new`, `delete`), Keyword, nil}, - {`assembly\b`, Keyword, Push("assembly")}, - {Words(``, `\b`, `contract`, `interface`, `enum`, `event`, `function`, `library`, `mapping`, `modifier`, `struct`, `var`), KeywordDeclaration, nil}, - {`(import|using)\b`, KeywordNamespace, nil}, - {`pragma (solidity|experimental)\b`, KeywordReserved, nil}, - {`(_|as|constant|default|from|is)\b`, KeywordReserved, nil}, - {`payable\b`, KeywordReserved, nil}, - {`(memory|storage)\b`, KeywordReserved, nil}, - {`(external|internal|private|public)\b`, KeywordReserved, nil}, - {`(anonymous|indexed)\b`, KeywordReserved, nil}, - {`(abstract|pure|static|view)\b`, KeywordReserved, nil}, - {`(true|false)\b`, KeywordConstant, nil}, - {`(wei|finney|szabo|ether)\b`, KeywordConstant, nil}, - {`(seconds|minutes|hours|days|weeks|years)\b`, KeywordConstant, nil}, - }, - "keywords-types": { - {Words(``, `\b`, `address`, `bool`, `byte`, `bytes`, `int`, `fixed`, `string`, `ufixed`, `uint`), KeywordType, nil}, - {Words(``, `\b`, `int8`, `int16`, `int24`, `int32`, `int40`, `int48`, `int56`, `int64`, `int72`, `int80`, `int88`, `int96`, `int104`, `int112`, `int120`, `int128`, `int136`, `int144`, `int152`, `int160`, `int168`, `int176`, `int184`, `int192`, `int200`, `int208`, `int216`, `int224`, `int232`, `int240`, `int248`, `int256`), KeywordType, nil}, - {Words(``, `\b`, `uint8`, `uint16`, `uint24`, `uint32`, `uint40`, `uint48`, `uint56`, `uint64`, `uint72`, `uint80`, `uint88`, `uint96`, `uint104`, `uint112`, `uint120`, `uint128`, `uint136`, `uint144`, `uint152`, `uint160`, `uint168`, `uint176`, `uint184`, `uint192`, `uint200`, `uint208`, `uint216`, `uint224`, `uint232`, `uint240`, `uint248`, `uint256`), KeywordType, nil}, - {Words(``, `\b`, `bytes1`, `bytes2`, `bytes3`, `bytes4`, `bytes5`, `bytes6`, `bytes7`, `bytes8`, `bytes9`, `bytes10`, `bytes11`, `bytes12`, `bytes13`, `bytes14`, `bytes15`, `bytes16`, `bytes17`, `bytes18`, `bytes19`, `bytes20`, `bytes21`, `bytes22`, `bytes23`, `bytes24`, `bytes25`, `bytes26`, `bytes27`, `bytes28`, `bytes29`, `bytes30`, `bytes31`, `bytes32`), KeywordType, nil}, - {Words(``, `\b`, `fixed8x0`, `fixed8x1`, `fixed8x2`, `fixed8x3`, `fixed8x4`, `fixed8x5`, `fixed8x6`, `fixed8x7`, `fixed8x8`, `fixed8x9`, `fixed8x10`, `fixed8x11`, `fixed8x12`, `fixed8x13`, `fixed8x14`, `fixed8x15`, `fixed8x16`, `fixed8x17`, `fixed8x18`, `fixed8x19`, `fixed8x20`, `fixed8x21`, `fixed8x22`, `fixed8x23`, `fixed8x24`, `fixed8x25`, `fixed8x26`, `fixed8x27`, `fixed8x28`, `fixed8x29`, `fixed8x30`, `fixed8x31`, `fixed8x32`, `fixed8x33`, `fixed8x34`, `fixed8x35`, `fixed8x36`, `fixed8x37`, `fixed8x38`, `fixed8x39`, `fixed8x40`, `fixed8x41`, `fixed8x42`, `fixed8x43`, `fixed8x44`, `fixed8x45`, `fixed8x46`, `fixed8x47`, `fixed8x48`, `fixed8x49`, `fixed8x50`, `fixed8x51`, `fixed8x52`, `fixed8x53`, `fixed8x54`, `fixed8x55`, `fixed8x56`, `fixed8x57`, `fixed8x58`, `fixed8x59`, `fixed8x60`, `fixed8x61`, `fixed8x62`, `fixed8x63`, `fixed8x64`, `fixed8x65`, `fixed8x66`, `fixed8x67`, `fixed8x68`, `fixed8x69`, `fixed8x70`, `fixed8x71`, `fixed8x72`, `fixed8x73`, `fixed8x74`, `fixed8x75`, `fixed8x76`, `fixed8x77`, `fixed8x78`, `fixed8x79`, `fixed8x80`, `fixed16x0`, `fixed16x1`, `fixed16x2`, `fixed16x3`, `fixed16x4`, `fixed16x5`, `fixed16x6`, `fixed16x7`, `fixed16x8`, `fixed16x9`, `fixed16x10`, `fixed16x11`, `fixed16x12`, `fixed16x13`, `fixed16x14`, `fixed16x15`, `fixed16x16`, `fixed16x17`, `fixed16x18`, `fixed16x19`, `fixed16x20`, `fixed16x21`, `fixed16x22`, `fixed16x23`, `fixed16x24`, `fixed16x25`, `fixed16x26`, `fixed16x27`, `fixed16x28`, `fixed16x29`, `fixed16x30`, `fixed16x31`, `fixed16x32`, `fixed16x33`, `fixed16x34`, `fixed16x35`, `fixed16x36`, `fixed16x37`, `fixed16x38`, `fixed16x39`, `fixed16x40`, `fixed16x41`, `fixed16x42`, `fixed16x43`, `fixed16x44`, `fixed16x45`, `fixed16x46`, `fixed16x47`, `fixed16x48`, `fixed16x49`, `fixed16x50`, `fixed16x51`, `fixed16x52`, `fixed16x53`, `fixed16x54`, `fixed16x55`, `fixed16x56`, `fixed16x57`, `fixed16x58`, `fixed16x59`, `fixed16x60`, `fixed16x61`, `fixed16x62`, `fixed16x63`, `fixed16x64`, `fixed16x65`, `fixed16x66`, `fixed16x67`, `fixed16x68`, `fixed16x69`, `fixed16x70`, `fixed16x71`, `fixed16x72`, `fixed16x73`, `fixed16x74`, `fixed16x75`, `fixed16x76`, `fixed16x77`, `fixed16x78`, `fixed16x79`, `fixed16x80`, `fixed24x0`, `fixed24x1`, `fixed24x2`, `fixed24x3`, `fixed24x4`, `fixed24x5`, `fixed24x6`, `fixed24x7`, `fixed24x8`, `fixed24x9`, `fixed24x10`, `fixed24x11`, `fixed24x12`, `fixed24x13`, `fixed24x14`, `fixed24x15`, `fixed24x16`, `fixed24x17`, `fixed24x18`, `fixed24x19`, `fixed24x20`, `fixed24x21`, `fixed24x22`, `fixed24x23`, `fixed24x24`, `fixed24x25`, `fixed24x26`, `fixed24x27`, `fixed24x28`, `fixed24x29`, `fixed24x30`, `fixed24x31`, `fixed24x32`, `fixed24x33`, `fixed24x34`, `fixed24x35`, `fixed24x36`, `fixed24x37`, `fixed24x38`, `fixed24x39`, `fixed24x40`, `fixed24x41`, `fixed24x42`, `fixed24x43`, `fixed24x44`, `fixed24x45`, `fixed24x46`, `fixed24x47`, `fixed24x48`, `fixed24x49`, `fixed24x50`, `fixed24x51`, `fixed24x52`, `fixed24x53`, `fixed24x54`, `fixed24x55`, `fixed24x56`, `fixed24x57`, `fixed24x58`, `fixed24x59`, `fixed24x60`, `fixed24x61`, `fixed24x62`, `fixed24x63`, `fixed24x64`, `fixed24x65`, `fixed24x66`, `fixed24x67`, `fixed24x68`, `fixed24x69`, `fixed24x70`, `fixed24x71`, `fixed24x72`, `fixed24x73`, `fixed24x74`, `fixed24x75`, `fixed24x76`, `fixed24x77`, `fixed24x78`, `fixed24x79`, `fixed24x80`, `fixed32x0`, `fixed32x1`, `fixed32x2`, `fixed32x3`, `fixed32x4`, `fixed32x5`, `fixed32x6`, `fixed32x7`, `fixed32x8`, `fixed32x9`, `fixed32x10`, `fixed32x11`, `fixed32x12`, `fixed32x13`, `fixed32x14`, `fixed32x15`, `fixed32x16`, `fixed32x17`, `fixed32x18`, `fixed32x19`, `fixed32x20`, `fixed32x21`, `fixed32x22`, `fixed32x23`, `fixed32x24`, `fixed32x25`, `fixed32x26`, `fixed32x27`, `fixed32x28`, `fixed32x29`, `fixed32x30`, `fixed32x31`, `fixed32x32`, `fixed32x33`, `fixed32x34`, `fixed32x35`, `fixed32x36`, `fixed32x37`, `fixed32x38`, `fixed32x39`, `fixed32x40`, `fixed32x41`, `fixed32x42`, `fixed32x43`, `fixed32x44`, `fixed32x45`, `fixed32x46`, `fixed32x47`, `fixed32x48`, `fixed32x49`, `fixed32x50`, `fixed32x51`, `fixed32x52`, `fixed32x53`, `fixed32x54`, `fixed32x55`, `fixed32x56`, `fixed32x57`, `fixed32x58`, `fixed32x59`, `fixed32x60`, `fixed32x61`, `fixed32x62`, `fixed32x63`, `fixed32x64`, `fixed32x65`, `fixed32x66`, `fixed32x67`, `fixed32x68`, `fixed32x69`, `fixed32x70`, `fixed32x71`, `fixed32x72`, `fixed32x73`, `fixed32x74`, `fixed32x75`, `fixed32x76`, `fixed32x77`, `fixed32x78`, `fixed32x79`, `fixed32x80`, `fixed40x0`, `fixed40x1`, `fixed40x2`, `fixed40x3`, `fixed40x4`, `fixed40x5`, `fixed40x6`, `fixed40x7`, `fixed40x8`, `fixed40x9`, `fixed40x10`, `fixed40x11`, `fixed40x12`, `fixed40x13`, `fixed40x14`, `fixed40x15`, `fixed40x16`, `fixed40x17`, `fixed40x18`, `fixed40x19`, `fixed40x20`, `fixed40x21`, `fixed40x22`, `fixed40x23`, `fixed40x24`, `fixed40x25`, `fixed40x26`, `fixed40x27`, `fixed40x28`, `fixed40x29`, `fixed40x30`, `fixed40x31`, `fixed40x32`, `fixed40x33`, `fixed40x34`, `fixed40x35`, `fixed40x36`, `fixed40x37`, `fixed40x38`, `fixed40x39`, `fixed40x40`, `fixed40x41`, `fixed40x42`, `fixed40x43`, `fixed40x44`, `fixed40x45`, `fixed40x46`, `fixed40x47`, `fixed40x48`, `fixed40x49`, `fixed40x50`, `fixed40x51`, `fixed40x52`, `fixed40x53`, `fixed40x54`, `fixed40x55`, `fixed40x56`, `fixed40x57`, `fixed40x58`, `fixed40x59`, `fixed40x60`, `fixed40x61`, `fixed40x62`, `fixed40x63`, `fixed40x64`, `fixed40x65`, `fixed40x66`, `fixed40x67`, `fixed40x68`, `fixed40x69`, `fixed40x70`, `fixed40x71`, `fixed40x72`, `fixed40x73`, `fixed40x74`, `fixed40x75`, `fixed40x76`, `fixed40x77`, `fixed40x78`, `fixed40x79`, `fixed40x80`, `fixed48x0`, `fixed48x1`, `fixed48x2`, `fixed48x3`, `fixed48x4`, `fixed48x5`, `fixed48x6`, `fixed48x7`, `fixed48x8`, `fixed48x9`, `fixed48x10`, `fixed48x11`, `fixed48x12`, `fixed48x13`, `fixed48x14`, `fixed48x15`, `fixed48x16`, `fixed48x17`, `fixed48x18`, `fixed48x19`, `fixed48x20`, `fixed48x21`, `fixed48x22`, `fixed48x23`, `fixed48x24`, `fixed48x25`, `fixed48x26`, `fixed48x27`, `fixed48x28`, `fixed48x29`, `fixed48x30`, `fixed48x31`, `fixed48x32`, `fixed48x33`, `fixed48x34`, `fixed48x35`, `fixed48x36`, `fixed48x37`, `fixed48x38`, `fixed48x39`, `fixed48x40`, `fixed48x41`, `fixed48x42`, `fixed48x43`, `fixed48x44`, `fixed48x45`, `fixed48x46`, `fixed48x47`, `fixed48x48`, `fixed48x49`, `fixed48x50`, `fixed48x51`, `fixed48x52`, `fixed48x53`, `fixed48x54`, `fixed48x55`, `fixed48x56`, `fixed48x57`, `fixed48x58`, `fixed48x59`, `fixed48x60`, `fixed48x61`, `fixed48x62`, `fixed48x63`, `fixed48x64`, `fixed48x65`, `fixed48x66`, `fixed48x67`, `fixed48x68`, `fixed48x69`, `fixed48x70`, `fixed48x71`, `fixed48x72`, `fixed48x73`, `fixed48x74`, `fixed48x75`, `fixed48x76`, `fixed48x77`, `fixed48x78`, `fixed48x79`, `fixed48x80`, `fixed56x0`, `fixed56x1`, `fixed56x2`, `fixed56x3`, `fixed56x4`, `fixed56x5`, `fixed56x6`, `fixed56x7`, `fixed56x8`, `fixed56x9`, `fixed56x10`, `fixed56x11`, `fixed56x12`, `fixed56x13`, `fixed56x14`, `fixed56x15`, `fixed56x16`, `fixed56x17`, `fixed56x18`, `fixed56x19`, `fixed56x20`, `fixed56x21`, `fixed56x22`, `fixed56x23`, `fixed56x24`, `fixed56x25`, `fixed56x26`, `fixed56x27`, `fixed56x28`, `fixed56x29`, `fixed56x30`, `fixed56x31`, `fixed56x32`, `fixed56x33`, `fixed56x34`, `fixed56x35`, `fixed56x36`, `fixed56x37`, `fixed56x38`, `fixed56x39`, `fixed56x40`, `fixed56x41`, `fixed56x42`, `fixed56x43`, `fixed56x44`, `fixed56x45`, `fixed56x46`, `fixed56x47`, `fixed56x48`, `fixed56x49`, `fixed56x50`, `fixed56x51`, `fixed56x52`, `fixed56x53`, `fixed56x54`, `fixed56x55`, `fixed56x56`, `fixed56x57`, `fixed56x58`, `fixed56x59`, `fixed56x60`, `fixed56x61`, `fixed56x62`, `fixed56x63`, `fixed56x64`, `fixed56x65`, `fixed56x66`, `fixed56x67`, `fixed56x68`, `fixed56x69`, `fixed56x70`, `fixed56x71`, `fixed56x72`, `fixed56x73`, `fixed56x74`, `fixed56x75`, `fixed56x76`, `fixed56x77`, `fixed56x78`, `fixed56x79`, `fixed56x80`, `fixed64x0`, `fixed64x1`, `fixed64x2`, `fixed64x3`, `fixed64x4`, `fixed64x5`, `fixed64x6`, `fixed64x7`, `fixed64x8`, `fixed64x9`, `fixed64x10`, `fixed64x11`, `fixed64x12`, `fixed64x13`, `fixed64x14`, `fixed64x15`, `fixed64x16`, `fixed64x17`, `fixed64x18`, `fixed64x19`, `fixed64x20`, `fixed64x21`, `fixed64x22`, `fixed64x23`, `fixed64x24`, `fixed64x25`, `fixed64x26`, `fixed64x27`, `fixed64x28`, `fixed64x29`, `fixed64x30`, `fixed64x31`, `fixed64x32`, `fixed64x33`, `fixed64x34`, `fixed64x35`, `fixed64x36`, `fixed64x37`, `fixed64x38`, `fixed64x39`, `fixed64x40`, `fixed64x41`, `fixed64x42`, `fixed64x43`, `fixed64x44`, `fixed64x45`, `fixed64x46`, `fixed64x47`, `fixed64x48`, `fixed64x49`, `fixed64x50`, `fixed64x51`, `fixed64x52`, `fixed64x53`, `fixed64x54`, `fixed64x55`, `fixed64x56`, `fixed64x57`, `fixed64x58`, `fixed64x59`, `fixed64x60`, `fixed64x61`, `fixed64x62`, `fixed64x63`, `fixed64x64`, `fixed64x65`, `fixed64x66`, `fixed64x67`, `fixed64x68`, `fixed64x69`, `fixed64x70`, `fixed64x71`, `fixed64x72`, `fixed64x73`, `fixed64x74`, `fixed64x75`, `fixed64x76`, `fixed64x77`, `fixed64x78`, `fixed64x79`, `fixed64x80`, `fixed72x0`, `fixed72x1`, `fixed72x2`, `fixed72x3`, `fixed72x4`, `fixed72x5`, `fixed72x6`, `fixed72x7`, `fixed72x8`, `fixed72x9`, `fixed72x10`, `fixed72x11`, `fixed72x12`, `fixed72x13`, `fixed72x14`, `fixed72x15`, `fixed72x16`, `fixed72x17`, `fixed72x18`, `fixed72x19`, `fixed72x20`, `fixed72x21`, `fixed72x22`, `fixed72x23`, `fixed72x24`, `fixed72x25`, `fixed72x26`, `fixed72x27`, `fixed72x28`, `fixed72x29`, `fixed72x30`, `fixed72x31`, `fixed72x32`, `fixed72x33`, `fixed72x34`, `fixed72x35`, `fixed72x36`, `fixed72x37`, `fixed72x38`, `fixed72x39`, `fixed72x40`, `fixed72x41`, `fixed72x42`, `fixed72x43`, `fixed72x44`, `fixed72x45`, `fixed72x46`, `fixed72x47`, `fixed72x48`, `fixed72x49`, `fixed72x50`, `fixed72x51`, `fixed72x52`, `fixed72x53`, `fixed72x54`, `fixed72x55`, `fixed72x56`, `fixed72x57`, `fixed72x58`, `fixed72x59`, `fixed72x60`, `fixed72x61`, `fixed72x62`, `fixed72x63`, `fixed72x64`, `fixed72x65`, `fixed72x66`, `fixed72x67`, `fixed72x68`, `fixed72x69`, `fixed72x70`, `fixed72x71`, `fixed72x72`, `fixed72x73`, `fixed72x74`, `fixed72x75`, `fixed72x76`, `fixed72x77`, `fixed72x78`, `fixed72x79`, `fixed72x80`, `fixed80x0`, `fixed80x1`, `fixed80x2`, `fixed80x3`, `fixed80x4`, `fixed80x5`, `fixed80x6`, `fixed80x7`, `fixed80x8`, `fixed80x9`, `fixed80x10`, `fixed80x11`, `fixed80x12`, `fixed80x13`, `fixed80x14`, `fixed80x15`, `fixed80x16`, `fixed80x17`, `fixed80x18`, `fixed80x19`, `fixed80x20`, `fixed80x21`, `fixed80x22`, `fixed80x23`, `fixed80x24`, `fixed80x25`, `fixed80x26`, `fixed80x27`, `fixed80x28`, `fixed80x29`, `fixed80x30`, `fixed80x31`, `fixed80x32`, `fixed80x33`, `fixed80x34`, `fixed80x35`, `fixed80x36`, `fixed80x37`, `fixed80x38`, `fixed80x39`, `fixed80x40`, `fixed80x41`, `fixed80x42`, `fixed80x43`, `fixed80x44`, `fixed80x45`, `fixed80x46`, `fixed80x47`, `fixed80x48`, `fixed80x49`, `fixed80x50`, `fixed80x51`, `fixed80x52`, `fixed80x53`, `fixed80x54`, `fixed80x55`, `fixed80x56`, `fixed80x57`, `fixed80x58`, `fixed80x59`, `fixed80x60`, `fixed80x61`, `fixed80x62`, `fixed80x63`, `fixed80x64`, `fixed80x65`, `fixed80x66`, `fixed80x67`, `fixed80x68`, `fixed80x69`, `fixed80x70`, `fixed80x71`, `fixed80x72`, `fixed80x73`, `fixed80x74`, `fixed80x75`, `fixed80x76`, `fixed80x77`, `fixed80x78`, `fixed80x79`, `fixed80x80`, `fixed88x0`, `fixed88x1`, `fixed88x2`, `fixed88x3`, `fixed88x4`, `fixed88x5`, `fixed88x6`, `fixed88x7`, `fixed88x8`, `fixed88x9`, `fixed88x10`, `fixed88x11`, `fixed88x12`, `fixed88x13`, `fixed88x14`, `fixed88x15`, `fixed88x16`, `fixed88x17`, `fixed88x18`, `fixed88x19`, `fixed88x20`, `fixed88x21`, `fixed88x22`, `fixed88x23`, `fixed88x24`, `fixed88x25`, `fixed88x26`, `fixed88x27`, `fixed88x28`, `fixed88x29`, `fixed88x30`, `fixed88x31`, `fixed88x32`, `fixed88x33`, `fixed88x34`, `fixed88x35`, `fixed88x36`, `fixed88x37`, `fixed88x38`, `fixed88x39`, `fixed88x40`, `fixed88x41`, `fixed88x42`, `fixed88x43`, `fixed88x44`, `fixed88x45`, `fixed88x46`, `fixed88x47`, `fixed88x48`, `fixed88x49`, `fixed88x50`, `fixed88x51`, `fixed88x52`, `fixed88x53`, `fixed88x54`, `fixed88x55`, `fixed88x56`, `fixed88x57`, `fixed88x58`, `fixed88x59`, `fixed88x60`, `fixed88x61`, `fixed88x62`, `fixed88x63`, `fixed88x64`, `fixed88x65`, `fixed88x66`, `fixed88x67`, `fixed88x68`, `fixed88x69`, `fixed88x70`, `fixed88x71`, `fixed88x72`, `fixed88x73`, `fixed88x74`, `fixed88x75`, `fixed88x76`, `fixed88x77`, `fixed88x78`, `fixed88x79`, `fixed88x80`, `fixed96x0`, `fixed96x1`, `fixed96x2`, `fixed96x3`, `fixed96x4`, `fixed96x5`, `fixed96x6`, `fixed96x7`, `fixed96x8`, `fixed96x9`, `fixed96x10`, `fixed96x11`, `fixed96x12`, `fixed96x13`, `fixed96x14`, `fixed96x15`, `fixed96x16`, `fixed96x17`, `fixed96x18`, `fixed96x19`, `fixed96x20`, `fixed96x21`, `fixed96x22`, `fixed96x23`, `fixed96x24`, `fixed96x25`, `fixed96x26`, `fixed96x27`, `fixed96x28`, `fixed96x29`, `fixed96x30`, `fixed96x31`, `fixed96x32`, `fixed96x33`, `fixed96x34`, `fixed96x35`, `fixed96x36`, `fixed96x37`, `fixed96x38`, `fixed96x39`, `fixed96x40`, `fixed96x41`, `fixed96x42`, `fixed96x43`, `fixed96x44`, `fixed96x45`, `fixed96x46`, `fixed96x47`, `fixed96x48`, `fixed96x49`, `fixed96x50`, `fixed96x51`, `fixed96x52`, `fixed96x53`, `fixed96x54`, `fixed96x55`, `fixed96x56`, `fixed96x57`, `fixed96x58`, `fixed96x59`, `fixed96x60`, `fixed96x61`, `fixed96x62`, `fixed96x63`, `fixed96x64`, `fixed96x65`, `fixed96x66`, `fixed96x67`, `fixed96x68`, `fixed96x69`, `fixed96x70`, `fixed96x71`, `fixed96x72`, `fixed96x73`, `fixed96x74`, `fixed96x75`, `fixed96x76`, `fixed96x77`, `fixed96x78`, `fixed96x79`, `fixed96x80`, `fixed104x0`, `fixed104x1`, `fixed104x2`, `fixed104x3`, `fixed104x4`, `fixed104x5`, `fixed104x6`, `fixed104x7`, `fixed104x8`, `fixed104x9`, `fixed104x10`, `fixed104x11`, `fixed104x12`, `fixed104x13`, `fixed104x14`, `fixed104x15`, `fixed104x16`, `fixed104x17`, `fixed104x18`, `fixed104x19`, `fixed104x20`, `fixed104x21`, `fixed104x22`, `fixed104x23`, `fixed104x24`, `fixed104x25`, `fixed104x26`, `fixed104x27`, `fixed104x28`, `fixed104x29`, `fixed104x30`, `fixed104x31`, `fixed104x32`, `fixed104x33`, `fixed104x34`, `fixed104x35`, `fixed104x36`, `fixed104x37`, `fixed104x38`, `fixed104x39`, `fixed104x40`, `fixed104x41`, `fixed104x42`, `fixed104x43`, `fixed104x44`, `fixed104x45`, `fixed104x46`, `fixed104x47`, `fixed104x48`, `fixed104x49`, `fixed104x50`, `fixed104x51`, `fixed104x52`, `fixed104x53`, `fixed104x54`, `fixed104x55`, `fixed104x56`, `fixed104x57`, `fixed104x58`, `fixed104x59`, `fixed104x60`, `fixed104x61`, `fixed104x62`, `fixed104x63`, `fixed104x64`, `fixed104x65`, `fixed104x66`, `fixed104x67`, `fixed104x68`, `fixed104x69`, `fixed104x70`, `fixed104x71`, `fixed104x72`, `fixed104x73`, `fixed104x74`, `fixed104x75`, `fixed104x76`, `fixed104x77`, `fixed104x78`, `fixed104x79`, `fixed104x80`, `fixed112x0`, `fixed112x1`, `fixed112x2`, `fixed112x3`, `fixed112x4`, `fixed112x5`, `fixed112x6`, `fixed112x7`, `fixed112x8`, `fixed112x9`, `fixed112x10`, `fixed112x11`, `fixed112x12`, `fixed112x13`, `fixed112x14`, `fixed112x15`, `fixed112x16`, `fixed112x17`, `fixed112x18`, `fixed112x19`, `fixed112x20`, `fixed112x21`, `fixed112x22`, `fixed112x23`, `fixed112x24`, `fixed112x25`, `fixed112x26`, `fixed112x27`, `fixed112x28`, `fixed112x29`, `fixed112x30`, `fixed112x31`, `fixed112x32`, `fixed112x33`, `fixed112x34`, `fixed112x35`, `fixed112x36`, `fixed112x37`, `fixed112x38`, `fixed112x39`, `fixed112x40`, `fixed112x41`, `fixed112x42`, `fixed112x43`, `fixed112x44`, `fixed112x45`, `fixed112x46`, `fixed112x47`, `fixed112x48`, `fixed112x49`, `fixed112x50`, `fixed112x51`, `fixed112x52`, `fixed112x53`, `fixed112x54`, `fixed112x55`, `fixed112x56`, `fixed112x57`, `fixed112x58`, `fixed112x59`, `fixed112x60`, `fixed112x61`, `fixed112x62`, `fixed112x63`, `fixed112x64`, `fixed112x65`, `fixed112x66`, `fixed112x67`, `fixed112x68`, `fixed112x69`, `fixed112x70`, `fixed112x71`, `fixed112x72`, `fixed112x73`, `fixed112x74`, `fixed112x75`, `fixed112x76`, `fixed112x77`, `fixed112x78`, `fixed112x79`, `fixed112x80`, `fixed120x0`, `fixed120x1`, `fixed120x2`, `fixed120x3`, `fixed120x4`, `fixed120x5`, `fixed120x6`, `fixed120x7`, `fixed120x8`, `fixed120x9`, `fixed120x10`, `fixed120x11`, `fixed120x12`, `fixed120x13`, `fixed120x14`, `fixed120x15`, `fixed120x16`, `fixed120x17`, `fixed120x18`, `fixed120x19`, `fixed120x20`, `fixed120x21`, `fixed120x22`, `fixed120x23`, `fixed120x24`, `fixed120x25`, `fixed120x26`, `fixed120x27`, `fixed120x28`, `fixed120x29`, `fixed120x30`, `fixed120x31`, `fixed120x32`, `fixed120x33`, `fixed120x34`, `fixed120x35`, `fixed120x36`, `fixed120x37`, `fixed120x38`, `fixed120x39`, `fixed120x40`, `fixed120x41`, `fixed120x42`, `fixed120x43`, `fixed120x44`, `fixed120x45`, `fixed120x46`, `fixed120x47`, `fixed120x48`, `fixed120x49`, `fixed120x50`, `fixed120x51`, `fixed120x52`, `fixed120x53`, `fixed120x54`, `fixed120x55`, `fixed120x56`, `fixed120x57`, `fixed120x58`, `fixed120x59`, `fixed120x60`, `fixed120x61`, `fixed120x62`, `fixed120x63`, `fixed120x64`, `fixed120x65`, `fixed120x66`, `fixed120x67`, `fixed120x68`, `fixed120x69`, `fixed120x70`, `fixed120x71`, `fixed120x72`, `fixed120x73`, `fixed120x74`, `fixed120x75`, `fixed120x76`, `fixed120x77`, `fixed120x78`, `fixed120x79`, `fixed120x80`, `fixed128x0`, `fixed128x1`, `fixed128x2`, `fixed128x3`, `fixed128x4`, `fixed128x5`, `fixed128x6`, `fixed128x7`, `fixed128x8`, `fixed128x9`, `fixed128x10`, `fixed128x11`, `fixed128x12`, `fixed128x13`, `fixed128x14`, `fixed128x15`, `fixed128x16`, `fixed128x17`, `fixed128x18`, `fixed128x19`, `fixed128x20`, `fixed128x21`, `fixed128x22`, `fixed128x23`, `fixed128x24`, `fixed128x25`, `fixed128x26`, `fixed128x27`, `fixed128x28`, `fixed128x29`, `fixed128x30`, `fixed128x31`, `fixed128x32`, `fixed128x33`, `fixed128x34`, `fixed128x35`, `fixed128x36`, `fixed128x37`, `fixed128x38`, `fixed128x39`, `fixed128x40`, `fixed128x41`, `fixed128x42`, `fixed128x43`, `fixed128x44`, `fixed128x45`, `fixed128x46`, `fixed128x47`, `fixed128x48`, `fixed128x49`, `fixed128x50`, `fixed128x51`, `fixed128x52`, `fixed128x53`, `fixed128x54`, `fixed128x55`, `fixed128x56`, `fixed128x57`, `fixed128x58`, `fixed128x59`, `fixed128x60`, `fixed128x61`, `fixed128x62`, `fixed128x63`, `fixed128x64`, `fixed128x65`, `fixed128x66`, `fixed128x67`, `fixed128x68`, `fixed128x69`, `fixed128x70`, `fixed128x71`, `fixed128x72`, `fixed128x73`, `fixed128x74`, `fixed128x75`, `fixed128x76`, `fixed128x77`, `fixed128x78`, `fixed128x79`, `fixed128x80`, `fixed136x0`, `fixed136x1`, `fixed136x2`, `fixed136x3`, `fixed136x4`, `fixed136x5`, `fixed136x6`, `fixed136x7`, `fixed136x8`, `fixed136x9`, `fixed136x10`, `fixed136x11`, `fixed136x12`, `fixed136x13`, `fixed136x14`, `fixed136x15`, `fixed136x16`, `fixed136x17`, `fixed136x18`, `fixed136x19`, `fixed136x20`, `fixed136x21`, `fixed136x22`, `fixed136x23`, `fixed136x24`, `fixed136x25`, `fixed136x26`, `fixed136x27`, `fixed136x28`, `fixed136x29`, `fixed136x30`, `fixed136x31`, `fixed136x32`, `fixed136x33`, `fixed136x34`, `fixed136x35`, `fixed136x36`, `fixed136x37`, `fixed136x38`, `fixed136x39`, `fixed136x40`, `fixed136x41`, `fixed136x42`, `fixed136x43`, `fixed136x44`, `fixed136x45`, `fixed136x46`, `fixed136x47`, `fixed136x48`, `fixed136x49`, `fixed136x50`, `fixed136x51`, `fixed136x52`, `fixed136x53`, `fixed136x54`, `fixed136x55`, `fixed136x56`, `fixed136x57`, `fixed136x58`, `fixed136x59`, `fixed136x60`, `fixed136x61`, `fixed136x62`, `fixed136x63`, `fixed136x64`, `fixed136x65`, `fixed136x66`, `fixed136x67`, `fixed136x68`, `fixed136x69`, `fixed136x70`, `fixed136x71`, `fixed136x72`, `fixed136x73`, `fixed136x74`, `fixed136x75`, `fixed136x76`, `fixed136x77`, `fixed136x78`, `fixed136x79`, `fixed136x80`, `fixed144x0`, `fixed144x1`, `fixed144x2`, `fixed144x3`, `fixed144x4`, `fixed144x5`, `fixed144x6`, `fixed144x7`, `fixed144x8`, `fixed144x9`, `fixed144x10`, `fixed144x11`, `fixed144x12`, `fixed144x13`, `fixed144x14`, `fixed144x15`, `fixed144x16`, `fixed144x17`, `fixed144x18`, `fixed144x19`, `fixed144x20`, `fixed144x21`, `fixed144x22`, `fixed144x23`, `fixed144x24`, `fixed144x25`, `fixed144x26`, `fixed144x27`, `fixed144x28`, `fixed144x29`, `fixed144x30`, `fixed144x31`, `fixed144x32`, `fixed144x33`, `fixed144x34`, `fixed144x35`, `fixed144x36`, `fixed144x37`, `fixed144x38`, `fixed144x39`, `fixed144x40`, `fixed144x41`, `fixed144x42`, `fixed144x43`, `fixed144x44`, `fixed144x45`, `fixed144x46`, `fixed144x47`, `fixed144x48`, `fixed144x49`, `fixed144x50`, `fixed144x51`, `fixed144x52`, `fixed144x53`, `fixed144x54`, `fixed144x55`, `fixed144x56`, `fixed144x57`, `fixed144x58`, `fixed144x59`, `fixed144x60`, `fixed144x61`, `fixed144x62`, `fixed144x63`, `fixed144x64`, `fixed144x65`, `fixed144x66`, `fixed144x67`, `fixed144x68`, `fixed144x69`, `fixed144x70`, `fixed144x71`, `fixed144x72`, `fixed144x73`, `fixed144x74`, `fixed144x75`, `fixed144x76`, `fixed144x77`, `fixed144x78`, `fixed144x79`, `fixed144x80`, `fixed152x0`, `fixed152x1`, `fixed152x2`, `fixed152x3`, `fixed152x4`, `fixed152x5`, `fixed152x6`, `fixed152x7`, `fixed152x8`, `fixed152x9`, `fixed152x10`, `fixed152x11`, `fixed152x12`, `fixed152x13`, `fixed152x14`, `fixed152x15`, `fixed152x16`, `fixed152x17`, `fixed152x18`, `fixed152x19`, `fixed152x20`, `fixed152x21`, `fixed152x22`, `fixed152x23`, `fixed152x24`, `fixed152x25`, `fixed152x26`, `fixed152x27`, `fixed152x28`, `fixed152x29`, `fixed152x30`, `fixed152x31`, `fixed152x32`, `fixed152x33`, `fixed152x34`, `fixed152x35`, `fixed152x36`, `fixed152x37`, `fixed152x38`, `fixed152x39`, `fixed152x40`, `fixed152x41`, `fixed152x42`, `fixed152x43`, `fixed152x44`, `fixed152x45`, `fixed152x46`, `fixed152x47`, `fixed152x48`, `fixed152x49`, `fixed152x50`, `fixed152x51`, `fixed152x52`, `fixed152x53`, `fixed152x54`, `fixed152x55`, `fixed152x56`, `fixed152x57`, `fixed152x58`, `fixed152x59`, `fixed152x60`, `fixed152x61`, `fixed152x62`, `fixed152x63`, `fixed152x64`, `fixed152x65`, `fixed152x66`, `fixed152x67`, `fixed152x68`, `fixed152x69`, `fixed152x70`, `fixed152x71`, `fixed152x72`, `fixed152x73`, `fixed152x74`, `fixed152x75`, `fixed152x76`, `fixed152x77`, `fixed152x78`, `fixed152x79`, `fixed152x80`, `fixed160x0`, `fixed160x1`, `fixed160x2`, `fixed160x3`, `fixed160x4`, `fixed160x5`, `fixed160x6`, `fixed160x7`, `fixed160x8`, `fixed160x9`, `fixed160x10`, `fixed160x11`, `fixed160x12`, `fixed160x13`, `fixed160x14`, `fixed160x15`, `fixed160x16`, `fixed160x17`, `fixed160x18`, `fixed160x19`, `fixed160x20`, `fixed160x21`, `fixed160x22`, `fixed160x23`, `fixed160x24`, `fixed160x25`, `fixed160x26`, `fixed160x27`, `fixed160x28`, `fixed160x29`, `fixed160x30`, `fixed160x31`, `fixed160x32`, `fixed160x33`, `fixed160x34`, `fixed160x35`, `fixed160x36`, `fixed160x37`, `fixed160x38`, `fixed160x39`, `fixed160x40`, `fixed160x41`, `fixed160x42`, `fixed160x43`, `fixed160x44`, `fixed160x45`, `fixed160x46`, `fixed160x47`, `fixed160x48`, `fixed160x49`, `fixed160x50`, `fixed160x51`, `fixed160x52`, `fixed160x53`, `fixed160x54`, `fixed160x55`, `fixed160x56`, `fixed160x57`, `fixed160x58`, `fixed160x59`, `fixed160x60`, `fixed160x61`, `fixed160x62`, `fixed160x63`, `fixed160x64`, `fixed160x65`, `fixed160x66`, `fixed160x67`, `fixed160x68`, `fixed160x69`, `fixed160x70`, `fixed160x71`, `fixed160x72`, `fixed160x73`, `fixed160x74`, `fixed160x75`, `fixed160x76`, `fixed160x77`, `fixed160x78`, `fixed160x79`, `fixed160x80`, `fixed168x0`, `fixed168x1`, `fixed168x2`, `fixed168x3`, `fixed168x4`, `fixed168x5`, `fixed168x6`, `fixed168x7`, `fixed168x8`, `fixed168x9`, `fixed168x10`, `fixed168x11`, `fixed168x12`, `fixed168x13`, `fixed168x14`, `fixed168x15`, `fixed168x16`, `fixed168x17`, `fixed168x18`, `fixed168x19`, `fixed168x20`, `fixed168x21`, `fixed168x22`, `fixed168x23`, `fixed168x24`, `fixed168x25`, `fixed168x26`, `fixed168x27`, `fixed168x28`, `fixed168x29`, `fixed168x30`, `fixed168x31`, `fixed168x32`, `fixed168x33`, `fixed168x34`, `fixed168x35`, `fixed168x36`, `fixed168x37`, `fixed168x38`, `fixed168x39`, `fixed168x40`, `fixed168x41`, `fixed168x42`, `fixed168x43`, `fixed168x44`, `fixed168x45`, `fixed168x46`, `fixed168x47`, `fixed168x48`, `fixed168x49`, `fixed168x50`, `fixed168x51`, `fixed168x52`, `fixed168x53`, `fixed168x54`, `fixed168x55`, `fixed168x56`, `fixed168x57`, `fixed168x58`, `fixed168x59`, `fixed168x60`, `fixed168x61`, `fixed168x62`, `fixed168x63`, `fixed168x64`, `fixed168x65`, `fixed168x66`, `fixed168x67`, `fixed168x68`, `fixed168x69`, `fixed168x70`, `fixed168x71`, `fixed168x72`, `fixed168x73`, `fixed168x74`, `fixed168x75`, `fixed168x76`, `fixed168x77`, `fixed168x78`, `fixed168x79`, `fixed168x80`, `fixed176x0`, `fixed176x1`, `fixed176x2`, `fixed176x3`, `fixed176x4`, `fixed176x5`, `fixed176x6`, `fixed176x7`, `fixed176x8`, `fixed176x9`, `fixed176x10`, `fixed176x11`, `fixed176x12`, `fixed176x13`, `fixed176x14`, `fixed176x15`, `fixed176x16`, `fixed176x17`, `fixed176x18`, `fixed176x19`, `fixed176x20`, `fixed176x21`, `fixed176x22`, `fixed176x23`, `fixed176x24`, `fixed176x25`, `fixed176x26`, `fixed176x27`, `fixed176x28`, `fixed176x29`, `fixed176x30`, `fixed176x31`, `fixed176x32`, `fixed176x33`, `fixed176x34`, `fixed176x35`, `fixed176x36`, `fixed176x37`, `fixed176x38`, `fixed176x39`, `fixed176x40`, `fixed176x41`, `fixed176x42`, `fixed176x43`, `fixed176x44`, `fixed176x45`, `fixed176x46`, `fixed176x47`, `fixed176x48`, `fixed176x49`, `fixed176x50`, `fixed176x51`, `fixed176x52`, `fixed176x53`, `fixed176x54`, `fixed176x55`, `fixed176x56`, `fixed176x57`, `fixed176x58`, `fixed176x59`, `fixed176x60`, `fixed176x61`, `fixed176x62`, `fixed176x63`, `fixed176x64`, `fixed176x65`, `fixed176x66`, `fixed176x67`, `fixed176x68`, `fixed176x69`, `fixed176x70`, `fixed176x71`, `fixed176x72`, `fixed176x73`, `fixed176x74`, `fixed176x75`, `fixed176x76`, `fixed176x77`, `fixed176x78`, `fixed176x79`, `fixed176x80`, `fixed184x0`, `fixed184x1`, `fixed184x2`, `fixed184x3`, `fixed184x4`, `fixed184x5`, `fixed184x6`, `fixed184x7`, `fixed184x8`, `fixed184x9`, `fixed184x10`, `fixed184x11`, `fixed184x12`, `fixed184x13`, `fixed184x14`, `fixed184x15`, `fixed184x16`, `fixed184x17`, `fixed184x18`, `fixed184x19`, `fixed184x20`, `fixed184x21`, `fixed184x22`, `fixed184x23`, `fixed184x24`, `fixed184x25`, `fixed184x26`, `fixed184x27`, `fixed184x28`, `fixed184x29`, `fixed184x30`, `fixed184x31`, `fixed184x32`, `fixed184x33`, `fixed184x34`, `fixed184x35`, `fixed184x36`, `fixed184x37`, `fixed184x38`, `fixed184x39`, `fixed184x40`, `fixed184x41`, `fixed184x42`, `fixed184x43`, `fixed184x44`, `fixed184x45`, `fixed184x46`, `fixed184x47`, `fixed184x48`, `fixed184x49`, `fixed184x50`, `fixed184x51`, `fixed184x52`, `fixed184x53`, `fixed184x54`, `fixed184x55`, `fixed184x56`, `fixed184x57`, `fixed184x58`, `fixed184x59`, `fixed184x60`, `fixed184x61`, `fixed184x62`, `fixed184x63`, `fixed184x64`, `fixed184x65`, `fixed184x66`, `fixed184x67`, `fixed184x68`, `fixed184x69`, `fixed184x70`, `fixed184x71`, `fixed184x72`, `fixed192x0`, `fixed192x1`, `fixed192x2`, `fixed192x3`, `fixed192x4`, `fixed192x5`, `fixed192x6`, `fixed192x7`, `fixed192x8`, `fixed192x9`, `fixed192x10`, `fixed192x11`, `fixed192x12`, `fixed192x13`, `fixed192x14`, `fixed192x15`, `fixed192x16`, `fixed192x17`, `fixed192x18`, `fixed192x19`, `fixed192x20`, `fixed192x21`, `fixed192x22`, `fixed192x23`, `fixed192x24`, `fixed192x25`, `fixed192x26`, `fixed192x27`, `fixed192x28`, `fixed192x29`, `fixed192x30`, `fixed192x31`, `fixed192x32`, `fixed192x33`, `fixed192x34`, `fixed192x35`, `fixed192x36`, `fixed192x37`, `fixed192x38`, `fixed192x39`, `fixed192x40`, `fixed192x41`, `fixed192x42`, `fixed192x43`, `fixed192x44`, `fixed192x45`, `fixed192x46`, `fixed192x47`, `fixed192x48`, `fixed192x49`, `fixed192x50`, `fixed192x51`, `fixed192x52`, `fixed192x53`, `fixed192x54`, `fixed192x55`, `fixed192x56`, `fixed192x57`, `fixed192x58`, `fixed192x59`, `fixed192x60`, `fixed192x61`, `fixed192x62`, `fixed192x63`, `fixed192x64`, `fixed200x0`, `fixed200x1`, `fixed200x2`, `fixed200x3`, `fixed200x4`, `fixed200x5`, `fixed200x6`, `fixed200x7`, `fixed200x8`, `fixed200x9`, `fixed200x10`, `fixed200x11`, `fixed200x12`, `fixed200x13`, `fixed200x14`, `fixed200x15`, `fixed200x16`, `fixed200x17`, `fixed200x18`, `fixed200x19`, `fixed200x20`, `fixed200x21`, `fixed200x22`, `fixed200x23`, `fixed200x24`, `fixed200x25`, `fixed200x26`, `fixed200x27`, `fixed200x28`, `fixed200x29`, `fixed200x30`, `fixed200x31`, `fixed200x32`, `fixed200x33`, `fixed200x34`, `fixed200x35`, `fixed200x36`, `fixed200x37`, `fixed200x38`, `fixed200x39`, `fixed200x40`, `fixed200x41`, `fixed200x42`, `fixed200x43`, `fixed200x44`, `fixed200x45`, `fixed200x46`, `fixed200x47`, `fixed200x48`, `fixed200x49`, `fixed200x50`, `fixed200x51`, `fixed200x52`, `fixed200x53`, `fixed200x54`, `fixed200x55`, `fixed200x56`, `fixed208x0`, `fixed208x1`, `fixed208x2`, `fixed208x3`, `fixed208x4`, `fixed208x5`, `fixed208x6`, `fixed208x7`, `fixed208x8`, `fixed208x9`, `fixed208x10`, `fixed208x11`, `fixed208x12`, `fixed208x13`, `fixed208x14`, `fixed208x15`, `fixed208x16`, `fixed208x17`, `fixed208x18`, `fixed208x19`, `fixed208x20`, `fixed208x21`, `fixed208x22`, `fixed208x23`, `fixed208x24`, `fixed208x25`, `fixed208x26`, `fixed208x27`, `fixed208x28`, `fixed208x29`, `fixed208x30`, `fixed208x31`, `fixed208x32`, `fixed208x33`, `fixed208x34`, `fixed208x35`, `fixed208x36`, `fixed208x37`, `fixed208x38`, `fixed208x39`, `fixed208x40`, `fixed208x41`, `fixed208x42`, `fixed208x43`, `fixed208x44`, `fixed208x45`, `fixed208x46`, `fixed208x47`, `fixed208x48`, `fixed216x0`, `fixed216x1`, `fixed216x2`, `fixed216x3`, `fixed216x4`, `fixed216x5`, `fixed216x6`, `fixed216x7`, `fixed216x8`, `fixed216x9`, `fixed216x10`, `fixed216x11`, `fixed216x12`, `fixed216x13`, `fixed216x14`, `fixed216x15`, `fixed216x16`, `fixed216x17`, `fixed216x18`, `fixed216x19`, `fixed216x20`, `fixed216x21`, `fixed216x22`, `fixed216x23`, `fixed216x24`, `fixed216x25`, `fixed216x26`, `fixed216x27`, `fixed216x28`, `fixed216x29`, `fixed216x30`, `fixed216x31`, `fixed216x32`, `fixed216x33`, `fixed216x34`, `fixed216x35`, `fixed216x36`, `fixed216x37`, `fixed216x38`, `fixed216x39`, `fixed216x40`, `fixed224x0`, `fixed224x1`, `fixed224x2`, `fixed224x3`, `fixed224x4`, `fixed224x5`, `fixed224x6`, `fixed224x7`, `fixed224x8`, `fixed224x9`, `fixed224x10`, `fixed224x11`, `fixed224x12`, `fixed224x13`, `fixed224x14`, `fixed224x15`, `fixed224x16`, `fixed224x17`, `fixed224x18`, `fixed224x19`, `fixed224x20`, `fixed224x21`, `fixed224x22`, `fixed224x23`, `fixed224x24`, `fixed224x25`, `fixed224x26`, `fixed224x27`, `fixed224x28`, `fixed224x29`, `fixed224x30`, `fixed224x31`, `fixed224x32`, `fixed232x0`, `fixed232x1`, `fixed232x2`, `fixed232x3`, `fixed232x4`, `fixed232x5`, `fixed232x6`, `fixed232x7`, `fixed232x8`, `fixed232x9`, `fixed232x10`, `fixed232x11`, `fixed232x12`, `fixed232x13`, `fixed232x14`, `fixed232x15`, `fixed232x16`, `fixed232x17`, `fixed232x18`, `fixed232x19`, `fixed232x20`, `fixed232x21`, `fixed232x22`, `fixed232x23`, `fixed232x24`, `fixed240x0`, `fixed240x1`, `fixed240x2`, `fixed240x3`, `fixed240x4`, `fixed240x5`, `fixed240x6`, `fixed240x7`, `fixed240x8`, `fixed240x9`, `fixed240x10`, `fixed240x11`, `fixed240x12`, `fixed240x13`, `fixed240x14`, `fixed240x15`, `fixed240x16`, `fixed248x0`, `fixed248x1`, `fixed248x2`, `fixed248x3`, `fixed248x4`, `fixed248x5`, `fixed248x6`, `fixed248x7`, `fixed248x8`, `fixed256x0`), KeywordType, nil}, - {Words(``, `\b`, `ufixed8x0`, `ufixed8x1`, `ufixed8x2`, `ufixed8x3`, `ufixed8x4`, `ufixed8x5`, `ufixed8x6`, `ufixed8x7`, `ufixed8x8`, `ufixed8x9`, `ufixed8x10`, `ufixed8x11`, `ufixed8x12`, `ufixed8x13`, `ufixed8x14`, `ufixed8x15`, `ufixed8x16`, `ufixed8x17`, `ufixed8x18`, `ufixed8x19`, `ufixed8x20`, `ufixed8x21`, `ufixed8x22`, `ufixed8x23`, `ufixed8x24`, `ufixed8x25`, `ufixed8x26`, `ufixed8x27`, `ufixed8x28`, `ufixed8x29`, `ufixed8x30`, `ufixed8x31`, `ufixed8x32`, `ufixed8x33`, `ufixed8x34`, `ufixed8x35`, `ufixed8x36`, `ufixed8x37`, `ufixed8x38`, `ufixed8x39`, `ufixed8x40`, `ufixed8x41`, `ufixed8x42`, `ufixed8x43`, `ufixed8x44`, `ufixed8x45`, `ufixed8x46`, `ufixed8x47`, `ufixed8x48`, `ufixed8x49`, `ufixed8x50`, `ufixed8x51`, `ufixed8x52`, `ufixed8x53`, `ufixed8x54`, `ufixed8x55`, `ufixed8x56`, `ufixed8x57`, `ufixed8x58`, `ufixed8x59`, `ufixed8x60`, `ufixed8x61`, `ufixed8x62`, `ufixed8x63`, `ufixed8x64`, `ufixed8x65`, `ufixed8x66`, `ufixed8x67`, `ufixed8x68`, `ufixed8x69`, `ufixed8x70`, `ufixed8x71`, `ufixed8x72`, `ufixed8x73`, `ufixed8x74`, `ufixed8x75`, `ufixed8x76`, `ufixed8x77`, `ufixed8x78`, `ufixed8x79`, `ufixed8x80`, `ufixed16x0`, `ufixed16x1`, `ufixed16x2`, `ufixed16x3`, `ufixed16x4`, `ufixed16x5`, `ufixed16x6`, `ufixed16x7`, `ufixed16x8`, `ufixed16x9`, `ufixed16x10`, `ufixed16x11`, `ufixed16x12`, `ufixed16x13`, `ufixed16x14`, `ufixed16x15`, `ufixed16x16`, `ufixed16x17`, `ufixed16x18`, `ufixed16x19`, `ufixed16x20`, `ufixed16x21`, `ufixed16x22`, `ufixed16x23`, `ufixed16x24`, `ufixed16x25`, `ufixed16x26`, `ufixed16x27`, `ufixed16x28`, `ufixed16x29`, `ufixed16x30`, `ufixed16x31`, `ufixed16x32`, `ufixed16x33`, `ufixed16x34`, `ufixed16x35`, `ufixed16x36`, `ufixed16x37`, `ufixed16x38`, `ufixed16x39`, `ufixed16x40`, `ufixed16x41`, `ufixed16x42`, `ufixed16x43`, `ufixed16x44`, `ufixed16x45`, `ufixed16x46`, `ufixed16x47`, `ufixed16x48`, `ufixed16x49`, `ufixed16x50`, `ufixed16x51`, `ufixed16x52`, `ufixed16x53`, `ufixed16x54`, `ufixed16x55`, `ufixed16x56`, `ufixed16x57`, `ufixed16x58`, `ufixed16x59`, `ufixed16x60`, `ufixed16x61`, `ufixed16x62`, `ufixed16x63`, `ufixed16x64`, `ufixed16x65`, `ufixed16x66`, `ufixed16x67`, `ufixed16x68`, `ufixed16x69`, `ufixed16x70`, `ufixed16x71`, `ufixed16x72`, `ufixed16x73`, `ufixed16x74`, `ufixed16x75`, `ufixed16x76`, `ufixed16x77`, `ufixed16x78`, `ufixed16x79`, `ufixed16x80`, `ufixed24x0`, `ufixed24x1`, `ufixed24x2`, `ufixed24x3`, `ufixed24x4`, `ufixed24x5`, `ufixed24x6`, `ufixed24x7`, `ufixed24x8`, `ufixed24x9`, `ufixed24x10`, `ufixed24x11`, `ufixed24x12`, `ufixed24x13`, `ufixed24x14`, `ufixed24x15`, `ufixed24x16`, `ufixed24x17`, `ufixed24x18`, `ufixed24x19`, `ufixed24x20`, `ufixed24x21`, `ufixed24x22`, `ufixed24x23`, `ufixed24x24`, `ufixed24x25`, `ufixed24x26`, `ufixed24x27`, `ufixed24x28`, `ufixed24x29`, `ufixed24x30`, `ufixed24x31`, `ufixed24x32`, `ufixed24x33`, `ufixed24x34`, `ufixed24x35`, `ufixed24x36`, `ufixed24x37`, `ufixed24x38`, `ufixed24x39`, `ufixed24x40`, `ufixed24x41`, `ufixed24x42`, `ufixed24x43`, `ufixed24x44`, `ufixed24x45`, `ufixed24x46`, `ufixed24x47`, `ufixed24x48`, `ufixed24x49`, `ufixed24x50`, `ufixed24x51`, `ufixed24x52`, `ufixed24x53`, `ufixed24x54`, `ufixed24x55`, `ufixed24x56`, `ufixed24x57`, `ufixed24x58`, `ufixed24x59`, `ufixed24x60`, `ufixed24x61`, `ufixed24x62`, `ufixed24x63`, `ufixed24x64`, `ufixed24x65`, `ufixed24x66`, `ufixed24x67`, `ufixed24x68`, `ufixed24x69`, `ufixed24x70`, `ufixed24x71`, `ufixed24x72`, `ufixed24x73`, `ufixed24x74`, `ufixed24x75`, `ufixed24x76`, `ufixed24x77`, `ufixed24x78`, `ufixed24x79`, `ufixed24x80`, `ufixed32x0`, `ufixed32x1`, `ufixed32x2`, `ufixed32x3`, `ufixed32x4`, `ufixed32x5`, `ufixed32x6`, `ufixed32x7`, `ufixed32x8`, `ufixed32x9`, `ufixed32x10`, `ufixed32x11`, `ufixed32x12`, `ufixed32x13`, `ufixed32x14`, `ufixed32x15`, `ufixed32x16`, `ufixed32x17`, `ufixed32x18`, `ufixed32x19`, `ufixed32x20`, `ufixed32x21`, `ufixed32x22`, `ufixed32x23`, `ufixed32x24`, `ufixed32x25`, `ufixed32x26`, `ufixed32x27`, `ufixed32x28`, `ufixed32x29`, `ufixed32x30`, `ufixed32x31`, `ufixed32x32`, `ufixed32x33`, `ufixed32x34`, `ufixed32x35`, `ufixed32x36`, `ufixed32x37`, `ufixed32x38`, `ufixed32x39`, `ufixed32x40`, `ufixed32x41`, `ufixed32x42`, `ufixed32x43`, `ufixed32x44`, `ufixed32x45`, `ufixed32x46`, `ufixed32x47`, `ufixed32x48`, `ufixed32x49`, `ufixed32x50`, `ufixed32x51`, `ufixed32x52`, `ufixed32x53`, `ufixed32x54`, `ufixed32x55`, `ufixed32x56`, `ufixed32x57`, `ufixed32x58`, `ufixed32x59`, `ufixed32x60`, `ufixed32x61`, `ufixed32x62`, `ufixed32x63`, `ufixed32x64`, `ufixed32x65`, `ufixed32x66`, `ufixed32x67`, `ufixed32x68`, `ufixed32x69`, `ufixed32x70`, `ufixed32x71`, `ufixed32x72`, `ufixed32x73`, `ufixed32x74`, `ufixed32x75`, `ufixed32x76`, `ufixed32x77`, `ufixed32x78`, `ufixed32x79`, `ufixed32x80`, `ufixed40x0`, `ufixed40x1`, `ufixed40x2`, `ufixed40x3`, `ufixed40x4`, `ufixed40x5`, `ufixed40x6`, `ufixed40x7`, `ufixed40x8`, `ufixed40x9`, `ufixed40x10`, `ufixed40x11`, `ufixed40x12`, `ufixed40x13`, `ufixed40x14`, `ufixed40x15`, `ufixed40x16`, `ufixed40x17`, `ufixed40x18`, `ufixed40x19`, `ufixed40x20`, `ufixed40x21`, `ufixed40x22`, `ufixed40x23`, `ufixed40x24`, `ufixed40x25`, `ufixed40x26`, `ufixed40x27`, `ufixed40x28`, `ufixed40x29`, `ufixed40x30`, `ufixed40x31`, `ufixed40x32`, `ufixed40x33`, `ufixed40x34`, `ufixed40x35`, `ufixed40x36`, `ufixed40x37`, `ufixed40x38`, `ufixed40x39`, `ufixed40x40`, `ufixed40x41`, `ufixed40x42`, `ufixed40x43`, `ufixed40x44`, `ufixed40x45`, `ufixed40x46`, `ufixed40x47`, `ufixed40x48`, `ufixed40x49`, `ufixed40x50`, `ufixed40x51`, `ufixed40x52`, `ufixed40x53`, `ufixed40x54`, `ufixed40x55`, `ufixed40x56`, `ufixed40x57`, `ufixed40x58`, `ufixed40x59`, `ufixed40x60`, `ufixed40x61`, `ufixed40x62`, `ufixed40x63`, `ufixed40x64`, `ufixed40x65`, `ufixed40x66`, `ufixed40x67`, `ufixed40x68`, `ufixed40x69`, `ufixed40x70`, `ufixed40x71`, `ufixed40x72`, `ufixed40x73`, `ufixed40x74`, `ufixed40x75`, `ufixed40x76`, `ufixed40x77`, `ufixed40x78`, `ufixed40x79`, `ufixed40x80`, `ufixed48x0`, `ufixed48x1`, `ufixed48x2`, `ufixed48x3`, `ufixed48x4`, `ufixed48x5`, `ufixed48x6`, `ufixed48x7`, `ufixed48x8`, `ufixed48x9`, `ufixed48x10`, `ufixed48x11`, `ufixed48x12`, `ufixed48x13`, `ufixed48x14`, `ufixed48x15`, `ufixed48x16`, `ufixed48x17`, `ufixed48x18`, `ufixed48x19`, `ufixed48x20`, `ufixed48x21`, `ufixed48x22`, `ufixed48x23`, `ufixed48x24`, `ufixed48x25`, `ufixed48x26`, `ufixed48x27`, `ufixed48x28`, `ufixed48x29`, `ufixed48x30`, `ufixed48x31`, `ufixed48x32`, `ufixed48x33`, `ufixed48x34`, `ufixed48x35`, `ufixed48x36`, `ufixed48x37`, `ufixed48x38`, `ufixed48x39`, `ufixed48x40`, `ufixed48x41`, `ufixed48x42`, `ufixed48x43`, `ufixed48x44`, `ufixed48x45`, `ufixed48x46`, `ufixed48x47`, `ufixed48x48`, `ufixed48x49`, `ufixed48x50`, `ufixed48x51`, `ufixed48x52`, `ufixed48x53`, `ufixed48x54`, `ufixed48x55`, `ufixed48x56`, `ufixed48x57`, `ufixed48x58`, `ufixed48x59`, `ufixed48x60`, `ufixed48x61`, `ufixed48x62`, `ufixed48x63`, `ufixed48x64`, `ufixed48x65`, `ufixed48x66`, `ufixed48x67`, `ufixed48x68`, `ufixed48x69`, `ufixed48x70`, `ufixed48x71`, `ufixed48x72`, `ufixed48x73`, `ufixed48x74`, `ufixed48x75`, `ufixed48x76`, `ufixed48x77`, `ufixed48x78`, `ufixed48x79`, `ufixed48x80`, `ufixed56x0`, `ufixed56x1`, `ufixed56x2`, `ufixed56x3`, `ufixed56x4`, `ufixed56x5`, `ufixed56x6`, `ufixed56x7`, `ufixed56x8`, `ufixed56x9`, `ufixed56x10`, `ufixed56x11`, `ufixed56x12`, `ufixed56x13`, `ufixed56x14`, `ufixed56x15`, `ufixed56x16`, `ufixed56x17`, `ufixed56x18`, `ufixed56x19`, `ufixed56x20`, `ufixed56x21`, `ufixed56x22`, `ufixed56x23`, `ufixed56x24`, `ufixed56x25`, `ufixed56x26`, `ufixed56x27`, `ufixed56x28`, `ufixed56x29`, `ufixed56x30`, `ufixed56x31`, `ufixed56x32`, `ufixed56x33`, `ufixed56x34`, `ufixed56x35`, `ufixed56x36`, `ufixed56x37`, `ufixed56x38`, `ufixed56x39`, `ufixed56x40`, `ufixed56x41`, `ufixed56x42`, `ufixed56x43`, `ufixed56x44`, `ufixed56x45`, `ufixed56x46`, `ufixed56x47`, `ufixed56x48`, `ufixed56x49`, `ufixed56x50`, `ufixed56x51`, `ufixed56x52`, `ufixed56x53`, `ufixed56x54`, `ufixed56x55`, `ufixed56x56`, `ufixed56x57`, `ufixed56x58`, `ufixed56x59`, `ufixed56x60`, `ufixed56x61`, `ufixed56x62`, `ufixed56x63`, `ufixed56x64`, `ufixed56x65`, `ufixed56x66`, `ufixed56x67`, `ufixed56x68`, `ufixed56x69`, `ufixed56x70`, `ufixed56x71`, `ufixed56x72`, `ufixed56x73`, `ufixed56x74`, `ufixed56x75`, `ufixed56x76`, `ufixed56x77`, `ufixed56x78`, `ufixed56x79`, `ufixed56x80`, `ufixed64x0`, `ufixed64x1`, `ufixed64x2`, `ufixed64x3`, `ufixed64x4`, `ufixed64x5`, `ufixed64x6`, `ufixed64x7`, `ufixed64x8`, `ufixed64x9`, `ufixed64x10`, `ufixed64x11`, `ufixed64x12`, `ufixed64x13`, `ufixed64x14`, `ufixed64x15`, `ufixed64x16`, `ufixed64x17`, `ufixed64x18`, `ufixed64x19`, `ufixed64x20`, `ufixed64x21`, `ufixed64x22`, `ufixed64x23`, `ufixed64x24`, `ufixed64x25`, `ufixed64x26`, `ufixed64x27`, `ufixed64x28`, `ufixed64x29`, `ufixed64x30`, `ufixed64x31`, `ufixed64x32`, `ufixed64x33`, `ufixed64x34`, `ufixed64x35`, `ufixed64x36`, `ufixed64x37`, `ufixed64x38`, `ufixed64x39`, `ufixed64x40`, `ufixed64x41`, `ufixed64x42`, `ufixed64x43`, `ufixed64x44`, `ufixed64x45`, `ufixed64x46`, `ufixed64x47`, `ufixed64x48`, `ufixed64x49`, `ufixed64x50`, `ufixed64x51`, `ufixed64x52`, `ufixed64x53`, `ufixed64x54`, `ufixed64x55`, `ufixed64x56`, `ufixed64x57`, `ufixed64x58`, `ufixed64x59`, `ufixed64x60`, `ufixed64x61`, `ufixed64x62`, `ufixed64x63`, `ufixed64x64`, `ufixed64x65`, `ufixed64x66`, `ufixed64x67`, `ufixed64x68`, `ufixed64x69`, `ufixed64x70`, `ufixed64x71`, `ufixed64x72`, `ufixed64x73`, `ufixed64x74`, `ufixed64x75`, `ufixed64x76`, `ufixed64x77`, `ufixed64x78`, `ufixed64x79`, `ufixed64x80`, `ufixed72x0`, `ufixed72x1`, `ufixed72x2`, `ufixed72x3`, `ufixed72x4`, `ufixed72x5`, `ufixed72x6`, `ufixed72x7`, `ufixed72x8`, `ufixed72x9`, `ufixed72x10`, `ufixed72x11`, `ufixed72x12`, `ufixed72x13`, `ufixed72x14`, `ufixed72x15`, `ufixed72x16`, `ufixed72x17`, `ufixed72x18`, `ufixed72x19`, `ufixed72x20`, `ufixed72x21`, `ufixed72x22`, `ufixed72x23`, `ufixed72x24`, `ufixed72x25`, `ufixed72x26`, `ufixed72x27`, `ufixed72x28`, `ufixed72x29`, `ufixed72x30`, `ufixed72x31`, `ufixed72x32`, `ufixed72x33`, `ufixed72x34`, `ufixed72x35`, `ufixed72x36`, `ufixed72x37`, `ufixed72x38`, `ufixed72x39`, `ufixed72x40`, `ufixed72x41`, `ufixed72x42`, `ufixed72x43`, `ufixed72x44`, `ufixed72x45`, `ufixed72x46`, `ufixed72x47`, `ufixed72x48`, `ufixed72x49`, `ufixed72x50`, `ufixed72x51`, `ufixed72x52`, `ufixed72x53`, `ufixed72x54`, `ufixed72x55`, `ufixed72x56`, `ufixed72x57`, `ufixed72x58`, `ufixed72x59`, `ufixed72x60`, `ufixed72x61`, `ufixed72x62`, `ufixed72x63`, `ufixed72x64`, `ufixed72x65`, `ufixed72x66`, `ufixed72x67`, `ufixed72x68`, `ufixed72x69`, `ufixed72x70`, `ufixed72x71`, `ufixed72x72`, `ufixed72x73`, `ufixed72x74`, `ufixed72x75`, `ufixed72x76`, `ufixed72x77`, `ufixed72x78`, `ufixed72x79`, `ufixed72x80`, `ufixed80x0`, `ufixed80x1`, `ufixed80x2`, `ufixed80x3`, `ufixed80x4`, `ufixed80x5`, `ufixed80x6`, `ufixed80x7`, `ufixed80x8`, `ufixed80x9`, `ufixed80x10`, `ufixed80x11`, `ufixed80x12`, `ufixed80x13`, `ufixed80x14`, `ufixed80x15`, `ufixed80x16`, `ufixed80x17`, `ufixed80x18`, `ufixed80x19`, `ufixed80x20`, `ufixed80x21`, `ufixed80x22`, `ufixed80x23`, `ufixed80x24`, `ufixed80x25`, `ufixed80x26`, `ufixed80x27`, `ufixed80x28`, `ufixed80x29`, `ufixed80x30`, `ufixed80x31`, `ufixed80x32`, `ufixed80x33`, `ufixed80x34`, `ufixed80x35`, `ufixed80x36`, `ufixed80x37`, `ufixed80x38`, `ufixed80x39`, `ufixed80x40`, `ufixed80x41`, `ufixed80x42`, `ufixed80x43`, `ufixed80x44`, `ufixed80x45`, `ufixed80x46`, `ufixed80x47`, `ufixed80x48`, `ufixed80x49`, `ufixed80x50`, `ufixed80x51`, `ufixed80x52`, `ufixed80x53`, `ufixed80x54`, `ufixed80x55`, `ufixed80x56`, `ufixed80x57`, `ufixed80x58`, `ufixed80x59`, `ufixed80x60`, `ufixed80x61`, `ufixed80x62`, `ufixed80x63`, `ufixed80x64`, `ufixed80x65`, `ufixed80x66`, `ufixed80x67`, `ufixed80x68`, `ufixed80x69`, `ufixed80x70`, `ufixed80x71`, `ufixed80x72`, `ufixed80x73`, `ufixed80x74`, `ufixed80x75`, `ufixed80x76`, `ufixed80x77`, `ufixed80x78`, `ufixed80x79`, `ufixed80x80`, `ufixed88x0`, `ufixed88x1`, `ufixed88x2`, `ufixed88x3`, `ufixed88x4`, `ufixed88x5`, `ufixed88x6`, `ufixed88x7`, `ufixed88x8`, `ufixed88x9`, `ufixed88x10`, `ufixed88x11`, `ufixed88x12`, `ufixed88x13`, `ufixed88x14`, `ufixed88x15`, `ufixed88x16`, `ufixed88x17`, `ufixed88x18`, `ufixed88x19`, `ufixed88x20`, `ufixed88x21`, `ufixed88x22`, `ufixed88x23`, `ufixed88x24`, `ufixed88x25`, `ufixed88x26`, `ufixed88x27`, `ufixed88x28`, `ufixed88x29`, `ufixed88x30`, `ufixed88x31`, `ufixed88x32`, `ufixed88x33`, `ufixed88x34`, `ufixed88x35`, `ufixed88x36`, `ufixed88x37`, `ufixed88x38`, `ufixed88x39`, `ufixed88x40`, `ufixed88x41`, `ufixed88x42`, `ufixed88x43`, `ufixed88x44`, `ufixed88x45`, `ufixed88x46`, `ufixed88x47`, `ufixed88x48`, `ufixed88x49`, `ufixed88x50`, `ufixed88x51`, `ufixed88x52`, `ufixed88x53`, `ufixed88x54`, `ufixed88x55`, `ufixed88x56`, `ufixed88x57`, `ufixed88x58`, `ufixed88x59`, `ufixed88x60`, `ufixed88x61`, `ufixed88x62`, `ufixed88x63`, `ufixed88x64`, `ufixed88x65`, `ufixed88x66`, `ufixed88x67`, `ufixed88x68`, `ufixed88x69`, `ufixed88x70`, `ufixed88x71`, `ufixed88x72`, `ufixed88x73`, `ufixed88x74`, `ufixed88x75`, `ufixed88x76`, `ufixed88x77`, `ufixed88x78`, `ufixed88x79`, `ufixed88x80`, `ufixed96x0`, `ufixed96x1`, `ufixed96x2`, `ufixed96x3`, `ufixed96x4`, `ufixed96x5`, `ufixed96x6`, `ufixed96x7`, `ufixed96x8`, `ufixed96x9`, `ufixed96x10`, `ufixed96x11`, `ufixed96x12`, `ufixed96x13`, `ufixed96x14`, `ufixed96x15`, `ufixed96x16`, `ufixed96x17`, `ufixed96x18`, `ufixed96x19`, `ufixed96x20`, `ufixed96x21`, `ufixed96x22`, `ufixed96x23`, `ufixed96x24`, `ufixed96x25`, `ufixed96x26`, `ufixed96x27`, `ufixed96x28`, `ufixed96x29`, `ufixed96x30`, `ufixed96x31`, `ufixed96x32`, `ufixed96x33`, `ufixed96x34`, `ufixed96x35`, `ufixed96x36`, `ufixed96x37`, `ufixed96x38`, `ufixed96x39`, `ufixed96x40`, `ufixed96x41`, `ufixed96x42`, `ufixed96x43`, `ufixed96x44`, `ufixed96x45`, `ufixed96x46`, `ufixed96x47`, `ufixed96x48`, `ufixed96x49`, `ufixed96x50`, `ufixed96x51`, `ufixed96x52`, `ufixed96x53`, `ufixed96x54`, `ufixed96x55`, `ufixed96x56`, `ufixed96x57`, `ufixed96x58`, `ufixed96x59`, `ufixed96x60`, `ufixed96x61`, `ufixed96x62`, `ufixed96x63`, `ufixed96x64`, `ufixed96x65`, `ufixed96x66`, `ufixed96x67`, `ufixed96x68`, `ufixed96x69`, `ufixed96x70`, `ufixed96x71`, `ufixed96x72`, `ufixed96x73`, `ufixed96x74`, `ufixed96x75`, `ufixed96x76`, `ufixed96x77`, `ufixed96x78`, `ufixed96x79`, `ufixed96x80`, `ufixed104x0`, `ufixed104x1`, `ufixed104x2`, `ufixed104x3`, `ufixed104x4`, `ufixed104x5`, `ufixed104x6`, `ufixed104x7`, `ufixed104x8`, `ufixed104x9`, `ufixed104x10`, `ufixed104x11`, `ufixed104x12`, `ufixed104x13`, `ufixed104x14`, `ufixed104x15`, `ufixed104x16`, `ufixed104x17`, `ufixed104x18`, `ufixed104x19`, `ufixed104x20`, `ufixed104x21`, `ufixed104x22`, `ufixed104x23`, `ufixed104x24`, `ufixed104x25`, `ufixed104x26`, `ufixed104x27`, `ufixed104x28`, `ufixed104x29`, `ufixed104x30`, `ufixed104x31`, `ufixed104x32`, `ufixed104x33`, `ufixed104x34`, `ufixed104x35`, `ufixed104x36`, `ufixed104x37`, `ufixed104x38`, `ufixed104x39`, `ufixed104x40`, `ufixed104x41`, `ufixed104x42`, `ufixed104x43`, `ufixed104x44`, `ufixed104x45`, `ufixed104x46`, `ufixed104x47`, `ufixed104x48`, `ufixed104x49`, `ufixed104x50`, `ufixed104x51`, `ufixed104x52`, `ufixed104x53`, `ufixed104x54`, `ufixed104x55`, `ufixed104x56`, `ufixed104x57`, `ufixed104x58`, `ufixed104x59`, `ufixed104x60`, `ufixed104x61`, `ufixed104x62`, `ufixed104x63`, `ufixed104x64`, `ufixed104x65`, `ufixed104x66`, `ufixed104x67`, `ufixed104x68`, `ufixed104x69`, `ufixed104x70`, `ufixed104x71`, `ufixed104x72`, `ufixed104x73`, `ufixed104x74`, `ufixed104x75`, `ufixed104x76`, `ufixed104x77`, `ufixed104x78`, `ufixed104x79`, `ufixed104x80`, `ufixed112x0`, `ufixed112x1`, `ufixed112x2`, `ufixed112x3`, `ufixed112x4`, `ufixed112x5`, `ufixed112x6`, `ufixed112x7`, `ufixed112x8`, `ufixed112x9`, `ufixed112x10`, `ufixed112x11`, `ufixed112x12`, `ufixed112x13`, `ufixed112x14`, `ufixed112x15`, `ufixed112x16`, `ufixed112x17`, `ufixed112x18`, `ufixed112x19`, `ufixed112x20`, `ufixed112x21`, `ufixed112x22`, `ufixed112x23`, `ufixed112x24`, `ufixed112x25`, `ufixed112x26`, `ufixed112x27`, `ufixed112x28`, `ufixed112x29`, `ufixed112x30`, `ufixed112x31`, `ufixed112x32`, `ufixed112x33`, `ufixed112x34`, `ufixed112x35`, `ufixed112x36`, `ufixed112x37`, `ufixed112x38`, `ufixed112x39`, `ufixed112x40`, `ufixed112x41`, `ufixed112x42`, `ufixed112x43`, `ufixed112x44`, `ufixed112x45`, `ufixed112x46`, `ufixed112x47`, `ufixed112x48`, `ufixed112x49`, `ufixed112x50`, `ufixed112x51`, `ufixed112x52`, `ufixed112x53`, `ufixed112x54`, `ufixed112x55`, `ufixed112x56`, `ufixed112x57`, `ufixed112x58`, `ufixed112x59`, `ufixed112x60`, `ufixed112x61`, `ufixed112x62`, `ufixed112x63`, `ufixed112x64`, `ufixed112x65`, `ufixed112x66`, `ufixed112x67`, `ufixed112x68`, `ufixed112x69`, `ufixed112x70`, `ufixed112x71`, `ufixed112x72`, `ufixed112x73`, `ufixed112x74`, `ufixed112x75`, `ufixed112x76`, `ufixed112x77`, `ufixed112x78`, `ufixed112x79`, `ufixed112x80`, `ufixed120x0`, `ufixed120x1`, `ufixed120x2`, `ufixed120x3`, `ufixed120x4`, `ufixed120x5`, `ufixed120x6`, `ufixed120x7`, `ufixed120x8`, `ufixed120x9`, `ufixed120x10`, `ufixed120x11`, `ufixed120x12`, `ufixed120x13`, `ufixed120x14`, `ufixed120x15`, `ufixed120x16`, `ufixed120x17`, `ufixed120x18`, `ufixed120x19`, `ufixed120x20`, `ufixed120x21`, `ufixed120x22`, `ufixed120x23`, `ufixed120x24`, `ufixed120x25`, `ufixed120x26`, `ufixed120x27`, `ufixed120x28`, `ufixed120x29`, `ufixed120x30`, `ufixed120x31`, `ufixed120x32`, `ufixed120x33`, `ufixed120x34`, `ufixed120x35`, `ufixed120x36`, `ufixed120x37`, `ufixed120x38`, `ufixed120x39`, `ufixed120x40`, `ufixed120x41`, `ufixed120x42`, `ufixed120x43`, `ufixed120x44`, `ufixed120x45`, `ufixed120x46`, `ufixed120x47`, `ufixed120x48`, `ufixed120x49`, `ufixed120x50`, `ufixed120x51`, `ufixed120x52`, `ufixed120x53`, `ufixed120x54`, `ufixed120x55`, `ufixed120x56`, `ufixed120x57`, `ufixed120x58`, `ufixed120x59`, `ufixed120x60`, `ufixed120x61`, `ufixed120x62`, `ufixed120x63`, `ufixed120x64`, `ufixed120x65`, `ufixed120x66`, `ufixed120x67`, `ufixed120x68`, `ufixed120x69`, `ufixed120x70`, `ufixed120x71`, `ufixed120x72`, `ufixed120x73`, `ufixed120x74`, `ufixed120x75`, `ufixed120x76`, `ufixed120x77`, `ufixed120x78`, `ufixed120x79`, `ufixed120x80`, `ufixed128x0`, `ufixed128x1`, `ufixed128x2`, `ufixed128x3`, `ufixed128x4`, `ufixed128x5`, `ufixed128x6`, `ufixed128x7`, `ufixed128x8`, `ufixed128x9`, `ufixed128x10`, `ufixed128x11`, `ufixed128x12`, `ufixed128x13`, `ufixed128x14`, `ufixed128x15`, `ufixed128x16`, `ufixed128x17`, `ufixed128x18`, `ufixed128x19`, `ufixed128x20`, `ufixed128x21`, `ufixed128x22`, `ufixed128x23`, `ufixed128x24`, `ufixed128x25`, `ufixed128x26`, `ufixed128x27`, `ufixed128x28`, `ufixed128x29`, `ufixed128x30`, `ufixed128x31`, `ufixed128x32`, `ufixed128x33`, `ufixed128x34`, `ufixed128x35`, `ufixed128x36`, `ufixed128x37`, `ufixed128x38`, `ufixed128x39`, `ufixed128x40`, `ufixed128x41`, `ufixed128x42`, `ufixed128x43`, `ufixed128x44`, `ufixed128x45`, `ufixed128x46`, `ufixed128x47`, `ufixed128x48`, `ufixed128x49`, `ufixed128x50`, `ufixed128x51`, `ufixed128x52`, `ufixed128x53`, `ufixed128x54`, `ufixed128x55`, `ufixed128x56`, `ufixed128x57`, `ufixed128x58`, `ufixed128x59`, `ufixed128x60`, `ufixed128x61`, `ufixed128x62`, `ufixed128x63`, `ufixed128x64`, `ufixed128x65`, `ufixed128x66`, `ufixed128x67`, `ufixed128x68`, `ufixed128x69`, `ufixed128x70`, `ufixed128x71`, `ufixed128x72`, `ufixed128x73`, `ufixed128x74`, `ufixed128x75`, `ufixed128x76`, `ufixed128x77`, `ufixed128x78`, `ufixed128x79`, `ufixed128x80`, `ufixed136x0`, `ufixed136x1`, `ufixed136x2`, `ufixed136x3`, `ufixed136x4`, `ufixed136x5`, `ufixed136x6`, `ufixed136x7`, `ufixed136x8`, `ufixed136x9`, `ufixed136x10`, `ufixed136x11`, `ufixed136x12`, `ufixed136x13`, `ufixed136x14`, `ufixed136x15`, `ufixed136x16`, `ufixed136x17`, `ufixed136x18`, `ufixed136x19`, `ufixed136x20`, `ufixed136x21`, `ufixed136x22`, `ufixed136x23`, `ufixed136x24`, `ufixed136x25`, `ufixed136x26`, `ufixed136x27`, `ufixed136x28`, `ufixed136x29`, `ufixed136x30`, `ufixed136x31`, `ufixed136x32`, `ufixed136x33`, `ufixed136x34`, `ufixed136x35`, `ufixed136x36`, `ufixed136x37`, `ufixed136x38`, `ufixed136x39`, `ufixed136x40`, `ufixed136x41`, `ufixed136x42`, `ufixed136x43`, `ufixed136x44`, `ufixed136x45`, `ufixed136x46`, `ufixed136x47`, `ufixed136x48`, `ufixed136x49`, `ufixed136x50`, `ufixed136x51`, `ufixed136x52`, `ufixed136x53`, `ufixed136x54`, `ufixed136x55`, `ufixed136x56`, `ufixed136x57`, `ufixed136x58`, `ufixed136x59`, `ufixed136x60`, `ufixed136x61`, `ufixed136x62`, `ufixed136x63`, `ufixed136x64`, `ufixed136x65`, `ufixed136x66`, `ufixed136x67`, `ufixed136x68`, `ufixed136x69`, `ufixed136x70`, `ufixed136x71`, `ufixed136x72`, `ufixed136x73`, `ufixed136x74`, `ufixed136x75`, `ufixed136x76`, `ufixed136x77`, `ufixed136x78`, `ufixed136x79`, `ufixed136x80`, `ufixed144x0`, `ufixed144x1`, `ufixed144x2`, `ufixed144x3`, `ufixed144x4`, `ufixed144x5`, `ufixed144x6`, `ufixed144x7`, `ufixed144x8`, `ufixed144x9`, `ufixed144x10`, `ufixed144x11`, `ufixed144x12`, `ufixed144x13`, `ufixed144x14`, `ufixed144x15`, `ufixed144x16`, `ufixed144x17`, `ufixed144x18`, `ufixed144x19`, `ufixed144x20`, `ufixed144x21`, `ufixed144x22`, `ufixed144x23`, `ufixed144x24`, `ufixed144x25`, `ufixed144x26`, `ufixed144x27`, `ufixed144x28`, `ufixed144x29`, `ufixed144x30`, `ufixed144x31`, `ufixed144x32`, `ufixed144x33`, `ufixed144x34`, `ufixed144x35`, `ufixed144x36`, `ufixed144x37`, `ufixed144x38`, `ufixed144x39`, `ufixed144x40`, `ufixed144x41`, `ufixed144x42`, `ufixed144x43`, `ufixed144x44`, `ufixed144x45`, `ufixed144x46`, `ufixed144x47`, `ufixed144x48`, `ufixed144x49`, `ufixed144x50`, `ufixed144x51`, `ufixed144x52`, `ufixed144x53`, `ufixed144x54`, `ufixed144x55`, `ufixed144x56`, `ufixed144x57`, `ufixed144x58`, `ufixed144x59`, `ufixed144x60`, `ufixed144x61`, `ufixed144x62`, `ufixed144x63`, `ufixed144x64`, `ufixed144x65`, `ufixed144x66`, `ufixed144x67`, `ufixed144x68`, `ufixed144x69`, `ufixed144x70`, `ufixed144x71`, `ufixed144x72`, `ufixed144x73`, `ufixed144x74`, `ufixed144x75`, `ufixed144x76`, `ufixed144x77`, `ufixed144x78`, `ufixed144x79`, `ufixed144x80`, `ufixed152x0`, `ufixed152x1`, `ufixed152x2`, `ufixed152x3`, `ufixed152x4`, `ufixed152x5`, `ufixed152x6`, `ufixed152x7`, `ufixed152x8`, `ufixed152x9`, `ufixed152x10`, `ufixed152x11`, `ufixed152x12`, `ufixed152x13`, `ufixed152x14`, `ufixed152x15`, `ufixed152x16`, `ufixed152x17`, `ufixed152x18`, `ufixed152x19`, `ufixed152x20`, `ufixed152x21`, `ufixed152x22`, `ufixed152x23`, `ufixed152x24`, `ufixed152x25`, `ufixed152x26`, `ufixed152x27`, `ufixed152x28`, `ufixed152x29`, `ufixed152x30`, `ufixed152x31`, `ufixed152x32`, `ufixed152x33`, `ufixed152x34`, `ufixed152x35`, `ufixed152x36`, `ufixed152x37`, `ufixed152x38`, `ufixed152x39`, `ufixed152x40`, `ufixed152x41`, `ufixed152x42`, `ufixed152x43`, `ufixed152x44`, `ufixed152x45`, `ufixed152x46`, `ufixed152x47`, `ufixed152x48`, `ufixed152x49`, `ufixed152x50`, `ufixed152x51`, `ufixed152x52`, `ufixed152x53`, `ufixed152x54`, `ufixed152x55`, `ufixed152x56`, `ufixed152x57`, `ufixed152x58`, `ufixed152x59`, `ufixed152x60`, `ufixed152x61`, `ufixed152x62`, `ufixed152x63`, `ufixed152x64`, `ufixed152x65`, `ufixed152x66`, `ufixed152x67`, `ufixed152x68`, `ufixed152x69`, `ufixed152x70`, `ufixed152x71`, `ufixed152x72`, `ufixed152x73`, `ufixed152x74`, `ufixed152x75`, `ufixed152x76`, `ufixed152x77`, `ufixed152x78`, `ufixed152x79`, `ufixed152x80`, `ufixed160x0`, `ufixed160x1`, `ufixed160x2`, `ufixed160x3`, `ufixed160x4`, `ufixed160x5`, `ufixed160x6`, `ufixed160x7`, `ufixed160x8`, `ufixed160x9`, `ufixed160x10`, `ufixed160x11`, `ufixed160x12`, `ufixed160x13`, `ufixed160x14`, `ufixed160x15`, `ufixed160x16`, `ufixed160x17`, `ufixed160x18`, `ufixed160x19`, `ufixed160x20`, `ufixed160x21`, `ufixed160x22`, `ufixed160x23`, `ufixed160x24`, `ufixed160x25`, `ufixed160x26`, `ufixed160x27`, `ufixed160x28`, `ufixed160x29`, `ufixed160x30`, `ufixed160x31`, `ufixed160x32`, `ufixed160x33`, `ufixed160x34`, `ufixed160x35`, `ufixed160x36`, `ufixed160x37`, `ufixed160x38`, `ufixed160x39`, `ufixed160x40`, `ufixed160x41`, `ufixed160x42`, `ufixed160x43`, `ufixed160x44`, `ufixed160x45`, `ufixed160x46`, `ufixed160x47`, `ufixed160x48`, `ufixed160x49`, `ufixed160x50`, `ufixed160x51`, `ufixed160x52`, `ufixed160x53`, `ufixed160x54`, `ufixed160x55`, `ufixed160x56`, `ufixed160x57`, `ufixed160x58`, `ufixed160x59`, `ufixed160x60`, `ufixed160x61`, `ufixed160x62`, `ufixed160x63`, `ufixed160x64`, `ufixed160x65`, `ufixed160x66`, `ufixed160x67`, `ufixed160x68`, `ufixed160x69`, `ufixed160x70`, `ufixed160x71`, `ufixed160x72`, `ufixed160x73`, `ufixed160x74`, `ufixed160x75`, `ufixed160x76`, `ufixed160x77`, `ufixed160x78`, `ufixed160x79`, `ufixed160x80`, `ufixed168x0`, `ufixed168x1`, `ufixed168x2`, `ufixed168x3`, `ufixed168x4`, `ufixed168x5`, `ufixed168x6`, `ufixed168x7`, `ufixed168x8`, `ufixed168x9`, `ufixed168x10`, `ufixed168x11`, `ufixed168x12`, `ufixed168x13`, `ufixed168x14`, `ufixed168x15`, `ufixed168x16`, `ufixed168x17`, `ufixed168x18`, `ufixed168x19`, `ufixed168x20`, `ufixed168x21`, `ufixed168x22`, `ufixed168x23`, `ufixed168x24`, `ufixed168x25`, `ufixed168x26`, `ufixed168x27`, `ufixed168x28`, `ufixed168x29`, `ufixed168x30`, `ufixed168x31`, `ufixed168x32`, `ufixed168x33`, `ufixed168x34`, `ufixed168x35`, `ufixed168x36`, `ufixed168x37`, `ufixed168x38`, `ufixed168x39`, `ufixed168x40`, `ufixed168x41`, `ufixed168x42`, `ufixed168x43`, `ufixed168x44`, `ufixed168x45`, `ufixed168x46`, `ufixed168x47`, `ufixed168x48`, `ufixed168x49`, `ufixed168x50`, `ufixed168x51`, `ufixed168x52`, `ufixed168x53`, `ufixed168x54`, `ufixed168x55`, `ufixed168x56`, `ufixed168x57`, `ufixed168x58`, `ufixed168x59`, `ufixed168x60`, `ufixed168x61`, `ufixed168x62`, `ufixed168x63`, `ufixed168x64`, `ufixed168x65`, `ufixed168x66`, `ufixed168x67`, `ufixed168x68`, `ufixed168x69`, `ufixed168x70`, `ufixed168x71`, `ufixed168x72`, `ufixed168x73`, `ufixed168x74`, `ufixed168x75`, `ufixed168x76`, `ufixed168x77`, `ufixed168x78`, `ufixed168x79`, `ufixed168x80`, `ufixed176x0`, `ufixed176x1`, `ufixed176x2`, `ufixed176x3`, `ufixed176x4`, `ufixed176x5`, `ufixed176x6`, `ufixed176x7`, `ufixed176x8`, `ufixed176x9`, `ufixed176x10`, `ufixed176x11`, `ufixed176x12`, `ufixed176x13`, `ufixed176x14`, `ufixed176x15`, `ufixed176x16`, `ufixed176x17`, `ufixed176x18`, `ufixed176x19`, `ufixed176x20`, `ufixed176x21`, `ufixed176x22`, `ufixed176x23`, `ufixed176x24`, `ufixed176x25`, `ufixed176x26`, `ufixed176x27`, `ufixed176x28`, `ufixed176x29`, `ufixed176x30`, `ufixed176x31`, `ufixed176x32`, `ufixed176x33`, `ufixed176x34`, `ufixed176x35`, `ufixed176x36`, `ufixed176x37`, `ufixed176x38`, `ufixed176x39`, `ufixed176x40`, `ufixed176x41`, `ufixed176x42`, `ufixed176x43`, `ufixed176x44`, `ufixed176x45`, `ufixed176x46`, `ufixed176x47`, `ufixed176x48`, `ufixed176x49`, `ufixed176x50`, `ufixed176x51`, `ufixed176x52`, `ufixed176x53`, `ufixed176x54`, `ufixed176x55`, `ufixed176x56`, `ufixed176x57`, `ufixed176x58`, `ufixed176x59`, `ufixed176x60`, `ufixed176x61`, `ufixed176x62`, `ufixed176x63`, `ufixed176x64`, `ufixed176x65`, `ufixed176x66`, `ufixed176x67`, `ufixed176x68`, `ufixed176x69`, `ufixed176x70`, `ufixed176x71`, `ufixed176x72`, `ufixed176x73`, `ufixed176x74`, `ufixed176x75`, `ufixed176x76`, `ufixed176x77`, `ufixed176x78`, `ufixed176x79`, `ufixed176x80`, `ufixed184x0`, `ufixed184x1`, `ufixed184x2`, `ufixed184x3`, `ufixed184x4`, `ufixed184x5`, `ufixed184x6`, `ufixed184x7`, `ufixed184x8`, `ufixed184x9`, `ufixed184x10`, `ufixed184x11`, `ufixed184x12`, `ufixed184x13`, `ufixed184x14`, `ufixed184x15`, `ufixed184x16`, `ufixed184x17`, `ufixed184x18`, `ufixed184x19`, `ufixed184x20`, `ufixed184x21`, `ufixed184x22`, `ufixed184x23`, `ufixed184x24`, `ufixed184x25`, `ufixed184x26`, `ufixed184x27`, `ufixed184x28`, `ufixed184x29`, `ufixed184x30`, `ufixed184x31`, `ufixed184x32`, `ufixed184x33`, `ufixed184x34`, `ufixed184x35`, `ufixed184x36`, `ufixed184x37`, `ufixed184x38`, `ufixed184x39`, `ufixed184x40`, `ufixed184x41`, `ufixed184x42`, `ufixed184x43`, `ufixed184x44`, `ufixed184x45`, `ufixed184x46`, `ufixed184x47`, `ufixed184x48`, `ufixed184x49`, `ufixed184x50`, `ufixed184x51`, `ufixed184x52`, `ufixed184x53`, `ufixed184x54`, `ufixed184x55`, `ufixed184x56`, `ufixed184x57`, `ufixed184x58`, `ufixed184x59`, `ufixed184x60`, `ufixed184x61`, `ufixed184x62`, `ufixed184x63`, `ufixed184x64`, `ufixed184x65`, `ufixed184x66`, `ufixed184x67`, `ufixed184x68`, `ufixed184x69`, `ufixed184x70`, `ufixed184x71`, `ufixed184x72`, `ufixed192x0`, `ufixed192x1`, `ufixed192x2`, `ufixed192x3`, `ufixed192x4`, `ufixed192x5`, `ufixed192x6`, `ufixed192x7`, `ufixed192x8`, `ufixed192x9`, `ufixed192x10`, `ufixed192x11`, `ufixed192x12`, `ufixed192x13`, `ufixed192x14`, `ufixed192x15`, `ufixed192x16`, `ufixed192x17`, `ufixed192x18`, `ufixed192x19`, `ufixed192x20`, `ufixed192x21`, `ufixed192x22`, `ufixed192x23`, `ufixed192x24`, `ufixed192x25`, `ufixed192x26`, `ufixed192x27`, `ufixed192x28`, `ufixed192x29`, `ufixed192x30`, `ufixed192x31`, `ufixed192x32`, `ufixed192x33`, `ufixed192x34`, `ufixed192x35`, `ufixed192x36`, `ufixed192x37`, `ufixed192x38`, `ufixed192x39`, `ufixed192x40`, `ufixed192x41`, `ufixed192x42`, `ufixed192x43`, `ufixed192x44`, `ufixed192x45`, `ufixed192x46`, `ufixed192x47`, `ufixed192x48`, `ufixed192x49`, `ufixed192x50`, `ufixed192x51`, `ufixed192x52`, `ufixed192x53`, `ufixed192x54`, `ufixed192x55`, `ufixed192x56`, `ufixed192x57`, `ufixed192x58`, `ufixed192x59`, `ufixed192x60`, `ufixed192x61`, `ufixed192x62`, `ufixed192x63`, `ufixed192x64`, `ufixed200x0`, `ufixed200x1`, `ufixed200x2`, `ufixed200x3`, `ufixed200x4`, `ufixed200x5`, `ufixed200x6`, `ufixed200x7`, `ufixed200x8`, `ufixed200x9`, `ufixed200x10`, `ufixed200x11`, `ufixed200x12`, `ufixed200x13`, `ufixed200x14`, `ufixed200x15`, `ufixed200x16`, `ufixed200x17`, `ufixed200x18`, `ufixed200x19`, `ufixed200x20`, `ufixed200x21`, `ufixed200x22`, `ufixed200x23`, `ufixed200x24`, `ufixed200x25`, `ufixed200x26`, `ufixed200x27`, `ufixed200x28`, `ufixed200x29`, `ufixed200x30`, `ufixed200x31`, `ufixed200x32`, `ufixed200x33`, `ufixed200x34`, `ufixed200x35`, `ufixed200x36`, `ufixed200x37`, `ufixed200x38`, `ufixed200x39`, `ufixed200x40`, `ufixed200x41`, `ufixed200x42`, `ufixed200x43`, `ufixed200x44`, `ufixed200x45`, `ufixed200x46`, `ufixed200x47`, `ufixed200x48`, `ufixed200x49`, `ufixed200x50`, `ufixed200x51`, `ufixed200x52`, `ufixed200x53`, `ufixed200x54`, `ufixed200x55`, `ufixed200x56`, `ufixed208x0`, `ufixed208x1`, `ufixed208x2`, `ufixed208x3`, `ufixed208x4`, `ufixed208x5`, `ufixed208x6`, `ufixed208x7`, `ufixed208x8`, `ufixed208x9`, `ufixed208x10`, `ufixed208x11`, `ufixed208x12`, `ufixed208x13`, `ufixed208x14`, `ufixed208x15`, `ufixed208x16`, `ufixed208x17`, `ufixed208x18`, `ufixed208x19`, `ufixed208x20`, `ufixed208x21`, `ufixed208x22`, `ufixed208x23`, `ufixed208x24`, `ufixed208x25`, `ufixed208x26`, `ufixed208x27`, `ufixed208x28`, `ufixed208x29`, `ufixed208x30`, `ufixed208x31`, `ufixed208x32`, `ufixed208x33`, `ufixed208x34`, `ufixed208x35`, `ufixed208x36`, `ufixed208x37`, `ufixed208x38`, `ufixed208x39`, `ufixed208x40`, `ufixed208x41`, `ufixed208x42`, `ufixed208x43`, `ufixed208x44`, `ufixed208x45`, `ufixed208x46`, `ufixed208x47`, `ufixed208x48`, `ufixed216x0`, `ufixed216x1`, `ufixed216x2`, `ufixed216x3`, `ufixed216x4`, `ufixed216x5`, `ufixed216x6`, `ufixed216x7`, `ufixed216x8`, `ufixed216x9`, `ufixed216x10`, `ufixed216x11`, `ufixed216x12`, `ufixed216x13`, `ufixed216x14`, `ufixed216x15`, `ufixed216x16`, `ufixed216x17`, `ufixed216x18`, `ufixed216x19`, `ufixed216x20`, `ufixed216x21`, `ufixed216x22`, `ufixed216x23`, `ufixed216x24`, `ufixed216x25`, `ufixed216x26`, `ufixed216x27`, `ufixed216x28`, `ufixed216x29`, `ufixed216x30`, `ufixed216x31`, `ufixed216x32`, `ufixed216x33`, `ufixed216x34`, `ufixed216x35`, `ufixed216x36`, `ufixed216x37`, `ufixed216x38`, `ufixed216x39`, `ufixed216x40`, `ufixed224x0`, `ufixed224x1`, `ufixed224x2`, `ufixed224x3`, `ufixed224x4`, `ufixed224x5`, `ufixed224x6`, `ufixed224x7`, `ufixed224x8`, `ufixed224x9`, `ufixed224x10`, `ufixed224x11`, `ufixed224x12`, `ufixed224x13`, `ufixed224x14`, `ufixed224x15`, `ufixed224x16`, `ufixed224x17`, `ufixed224x18`, `ufixed224x19`, `ufixed224x20`, `ufixed224x21`, `ufixed224x22`, `ufixed224x23`, `ufixed224x24`, `ufixed224x25`, `ufixed224x26`, `ufixed224x27`, `ufixed224x28`, `ufixed224x29`, `ufixed224x30`, `ufixed224x31`, `ufixed224x32`, `ufixed232x0`, `ufixed232x1`, `ufixed232x2`, `ufixed232x3`, `ufixed232x4`, `ufixed232x5`, `ufixed232x6`, `ufixed232x7`, `ufixed232x8`, `ufixed232x9`, `ufixed232x10`, `ufixed232x11`, `ufixed232x12`, `ufixed232x13`, `ufixed232x14`, `ufixed232x15`, `ufixed232x16`, `ufixed232x17`, `ufixed232x18`, `ufixed232x19`, `ufixed232x20`, `ufixed232x21`, `ufixed232x22`, `ufixed232x23`, `ufixed232x24`, `ufixed240x0`, `ufixed240x1`, `ufixed240x2`, `ufixed240x3`, `ufixed240x4`, `ufixed240x5`, `ufixed240x6`, `ufixed240x7`, `ufixed240x8`, `ufixed240x9`, `ufixed240x10`, `ufixed240x11`, `ufixed240x12`, `ufixed240x13`, `ufixed240x14`, `ufixed240x15`, `ufixed240x16`, `ufixed248x0`, `ufixed248x1`, `ufixed248x2`, `ufixed248x3`, `ufixed248x4`, `ufixed248x5`, `ufixed248x6`, `ufixed248x7`, `ufixed248x8`, `ufixed256x0`), KeywordType, nil}, - }, - "numbers": { - {`0[xX][0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - }, - "string-parse-common": { - {`\\(u[0-9a-fA-F]{4}|x..|[^x])`, LiteralStringEscape, nil}, - {`[^\\"\'\n]+`, LiteralString, nil}, - {`\\\n`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - }, - "string-parse-double": { - {`"`, LiteralString, Pop(1)}, - {`'`, LiteralString, nil}, - }, - "string-parse-single": { - {`'`, LiteralString, Pop(1)}, - {`"`, LiteralString, nil}, - }, - "strings": { - {`hex'[0-9a-fA-F]+'`, LiteralString, nil}, - {`hex"[0-9a-fA-F]+"`, LiteralString, nil}, - {`"`, LiteralString, Combined("string-parse-common", "string-parse-double")}, - {`'`, LiteralString, Combined("string-parse-common", "string-parse-single")}, - }, - "whitespace": { - {`\s+`, Text, nil}, - }, - "root": { - Include("comments"), - Include("keywords-types"), - Include("keywords-other"), - Include("numbers"), - Include("strings"), - Include("whitespace"), - {`\+\+|--|\*\*|\?|:|~|&&|\|\||=>|==?|!=?|(<<|>>>?|[-<>+*%&|^/])=?`, Operator, nil}, - {`[{(\[;,]`, Punctuation, nil}, - {`[})\].]`, Punctuation, nil}, - {`(block|msg|now|this|super|tx)\b`, NameBuiltin, nil}, - {`(sender|origin)\b`, NameBuiltin, nil}, - {`(gas|value)\b`, NameBuiltin, nil}, - {`(selfdestruct|suicide)\b`, NameBuiltin, nil}, - {`(balance|send|transfer)\b`, NameBuiltin, nil}, - {`(assert|revert|require)\b`, NameBuiltin, nil}, - {`(call|callcode|delegatecall)\b`, NameBuiltin, nil}, - {`selector\b`, NameBuiltin, nil}, - {`(addmod|ecrecover|keccak256|mulmod|ripemd160|sha256|sha3)\b`, NameFunction, nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sparql.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sparql.go deleted file mode 100644 index 47a1716b35..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sparql.go +++ /dev/null @@ -1,69 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Sparql lexer. -var Sparql = internal.Register(MustNewLexer( - &Config{ - Name: "SPARQL", - Aliases: []string{"sparql"}, - Filenames: []string{"*.rq", "*.sparql"}, - MimeTypes: []string{"application/sparql-query"}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`((?i)select|construct|describe|ask|where|filter|group\s+by|minus|distinct|reduced|from\s+named|from|order\s+by|desc|asc|limit|offset|bindings|load|clear|drop|create|add|move|copy|insert\s+data|delete\s+data|delete\s+where|delete|insert|using\s+named|using|graph|default|named|all|optional|service|silent|bind|union|not\s+in|in|as|having|to|prefix|base)\b`, Keyword, nil}, - {`(a)\b`, Keyword, nil}, - {"(<(?:[^<>\"{}|^`\\\\\\x00-\\x20])*>)", NameLabel, nil}, - {`(_:[0-9a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_](?:[a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_\-0-9·̀-ͯ‿-⁀.]*[a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_\-0-9·̀-ͯ‿-⁀])?)`, NameLabel, nil}, - {`[?$][0-9a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_][a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_0-9·̀-ͯ‿-⁀]*`, NameVariable, nil}, - {`([a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�](?:[a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_\-0-9·̀-ͯ‿-⁀.]*[a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_\-0-9·̀-ͯ‿-⁀])?)?(\:)((?:[a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_:0-9]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&"()*+,;=/?#@%]))(?:(?:[a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_\-0-9·̀-ͯ‿-⁀.:]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&"()*+,;=/?#@%]))*(?:[a-zA-ZÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�_\-0-9·̀-ͯ‿-⁀:]|(?:%[0-9A-Fa-f][0-9A-Fa-f])|(?:\\[ _~.\-!$&"()*+,;=/?#@%])))?)?`, ByGroups(NameNamespace, Punctuation, NameTag), nil}, - {`((?i)str|lang|langmatches|datatype|bound|iri|uri|bnode|rand|abs|ceil|floor|round|concat|strlen|ucase|lcase|encode_for_uri|contains|strstarts|strends|strbefore|strafter|year|month|day|hours|minutes|seconds|timezone|tz|now|md5|sha1|sha256|sha384|sha512|coalesce|if|strlang|strdt|sameterm|isiri|isuri|isblank|isliteral|isnumeric|regex|substr|replace|exists|not\s+exists|count|sum|min|max|avg|sample|group_concat|separator)\b`, NameFunction, nil}, - {`(true|false)`, KeywordConstant, nil}, - {`[+\-]?(\d+\.\d*[eE][+-]?\d+|\.?\d+[eE][+-]?\d+)`, LiteralNumberFloat, nil}, - {`[+\-]?(\d+\.\d*|\.\d+)`, LiteralNumberFloat, nil}, - {`[+\-]?\d+`, LiteralNumberInteger, nil}, - {`(\|\||&&|=|\*|\-|\+|/|!=|<=|>=|!|<|>)`, Operator, nil}, - {`[(){}.;,:^\[\]]`, Punctuation, nil}, - {`#[^\n]*`, Comment, nil}, - {`"""`, LiteralString, Push("triple-double-quoted-string")}, - {`"`, LiteralString, Push("single-double-quoted-string")}, - {`'''`, LiteralString, Push("triple-single-quoted-string")}, - {`'`, LiteralString, Push("single-single-quoted-string")}, - }, - "triple-double-quoted-string": { - {`"""`, LiteralString, Push("end-of-string")}, - {`[^\\]+`, LiteralString, nil}, - {`\\`, LiteralString, Push("string-escape")}, - }, - "single-double-quoted-string": { - {`"`, LiteralString, Push("end-of-string")}, - {`[^"\\\n]+`, LiteralString, nil}, - {`\\`, LiteralString, Push("string-escape")}, - }, - "triple-single-quoted-string": { - {`'''`, LiteralString, Push("end-of-string")}, - {`[^\\]+`, LiteralString, nil}, - {`\\`, LiteralStringEscape, Push("string-escape")}, - }, - "single-single-quoted-string": { - {`'`, LiteralString, Push("end-of-string")}, - {`[^'\\\n]+`, LiteralString, nil}, - {`\\`, LiteralString, Push("string-escape")}, - }, - "string-escape": { - {`u[0-9A-Fa-f]{4}`, LiteralStringEscape, Pop(1)}, - {`U[0-9A-Fa-f]{8}`, LiteralStringEscape, Pop(1)}, - {`.`, LiteralStringEscape, Pop(1)}, - }, - "end-of-string": { - {`(@)([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)`, ByGroups(Operator, NameFunction), Pop(2)}, - {`\^\^`, Operator, Pop(2)}, - Default(Pop(2)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sql.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sql.go deleted file mode 100644 index 6f4e3e079c..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/sql.go +++ /dev/null @@ -1,49 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// SQL lexer. -var SQL = internal.Register(MustNewLexer( - &Config{ - Name: "SQL", - Aliases: []string{"sql"}, - Filenames: []string{"*.sql"}, - MimeTypes: []string{"text/x-sql"}, - NotMultiline: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`--.*\n?`, CommentSingle, nil}, - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`'`, LiteralStringSingle, Push("string")}, - {`"`, LiteralStringDouble, Push("double-string")}, - {Words(``, `\b`, `ABORT`, `ABS`, `ABSOLUTE`, `ACCESS`, `ADA`, `ADD`, `ADMIN`, `AFTER`, `AGGREGATE`, `ALIAS`, `ALL`, `ALLOCATE`, `ALTER`, `ANALYSE`, `ANALYZE`, `AND`, `ANY`, `ARE`, `AS`, `ASC`, `ASENSITIVE`, `ASSERTION`, `ASSIGNMENT`, `ASYMMETRIC`, `AT`, `ATOMIC`, `AUTHORIZATION`, `AVG`, `BACKWARD`, `BEFORE`, `BEGIN`, `BETWEEN`, `BITVAR`, `BIT_LENGTH`, `BOTH`, `BREADTH`, `BY`, `C`, `CACHE`, `CALL`, `CALLED`, `CARDINALITY`, `CASCADE`, `CASCADED`, `CASE`, `CAST`, `CATALOG`, `CATALOG_NAME`, `CHAIN`, `CHARACTERISTICS`, `CHARACTER_LENGTH`, `CHARACTER_SET_CATALOG`, `CHARACTER_SET_NAME`, `CHARACTER_SET_SCHEMA`, `CHAR_LENGTH`, `CHECK`, `CHECKED`, `CHECKPOINT`, `CLASS`, `CLASS_ORIGIN`, `CLOB`, `CLOSE`, `CLUSTER`, `COALSECE`, `COBOL`, `COLLATE`, `COLLATION`, `COLLATION_CATALOG`, `COLLATION_NAME`, `COLLATION_SCHEMA`, `COLUMN`, `COLUMN_NAME`, `COMMAND_FUNCTION`, `COMMAND_FUNCTION_CODE`, `COMMENT`, `COMMIT`, `COMMITTED`, `COMPLETION`, `CONDITION_NUMBER`, `CONNECT`, `CONNECTION`, `CONNECTION_NAME`, `CONSTRAINT`, `CONSTRAINTS`, `CONSTRAINT_CATALOG`, `CONSTRAINT_NAME`, `CONSTRAINT_SCHEMA`, `CONSTRUCTOR`, `CONTAINS`, `CONTINUE`, `CONVERSION`, `CONVERT`, `COPY`, `CORRESPONTING`, `COUNT`, `CREATE`, `CREATEDB`, `CREATEUSER`, `CROSS`, `CUBE`, `CURRENT`, `CURRENT_DATE`, `CURRENT_PATH`, `CURRENT_ROLE`, `CURRENT_TIME`, `CURRENT_TIMESTAMP`, `CURRENT_USER`, `CURSOR`, `CURSOR_NAME`, `CYCLE`, `DATA`, `DATABASE`, `DATETIME_INTERVAL_CODE`, `DATETIME_INTERVAL_PRECISION`, `DAY`, `DEALLOCATE`, `DECLARE`, `DEFAULT`, `DEFAULTS`, `DEFERRABLE`, `DEFERRED`, `DEFINED`, `DEFINER`, `DELETE`, `DELIMITER`, `DELIMITERS`, `DEREF`, `DESC`, `DESCRIBE`, `DESCRIPTOR`, `DESTROY`, `DESTRUCTOR`, `DETERMINISTIC`, `DIAGNOSTICS`, `DICTIONARY`, `DISCONNECT`, `DISPATCH`, `DISTINCT`, `DO`, `DOMAIN`, `DROP`, `DYNAMIC`, `DYNAMIC_FUNCTION`, `DYNAMIC_FUNCTION_CODE`, `EACH`, `ELSE`, `ELSIF`, `ENCODING`, `ENCRYPTED`, `END`, `END-EXEC`, `EQUALS`, `ESCAPE`, `EVERY`, `EXCEPTION`, `EXCEPT`, `EXCLUDING`, `EXCLUSIVE`, `EXEC`, `EXECUTE`, `EXISTING`, `EXISTS`, `EXPLAIN`, `EXTERNAL`, `EXTRACT`, `FALSE`, `FETCH`, `FINAL`, `FIRST`, `FOR`, `FORCE`, `FOREIGN`, `FORTRAN`, `FORWARD`, `FOUND`, `FREE`, `FREEZE`, `FROM`, `FULL`, `FUNCTION`, `G`, `GENERAL`, `GENERATED`, `GET`, `GLOBAL`, `GO`, `GOTO`, `GRANT`, `GRANTED`, `GROUP`, `GROUPING`, `HANDLER`, `HAVING`, `HIERARCHY`, `HOLD`, `HOST`, `IDENTITY`, `IF`, `IGNORE`, `ILIKE`, `IMMEDIATE`, `IMMUTABLE`, `IMPLEMENTATION`, `IMPLICIT`, `IN`, `INCLUDING`, `INCREMENT`, `INDEX`, `INDITCATOR`, `INFIX`, `INHERITS`, `INITIALIZE`, `INITIALLY`, `INNER`, `INOUT`, `INPUT`, `INSENSITIVE`, `INSERT`, `INSTANTIABLE`, `INSTEAD`, `INTERSECT`, `INTO`, `INVOKER`, `IS`, `ISNULL`, `ISOLATION`, `ITERATE`, `JOIN`, `KEY`, `KEY_MEMBER`, `KEY_TYPE`, `LANCOMPILER`, `LANGUAGE`, `LARGE`, `LAST`, `LATERAL`, `LEADING`, `LEFT`, `LENGTH`, `LESS`, `LEVEL`, `LIKE`, `LIMIT`, `LISTEN`, `LOAD`, `LOCAL`, `LOCALTIME`, `LOCALTIMESTAMP`, `LOCATION`, `LOCATOR`, `LOCK`, `LOWER`, `MAP`, `MATCH`, `MAX`, `MAXVALUE`, `MESSAGE_LENGTH`, `MESSAGE_OCTET_LENGTH`, `MESSAGE_TEXT`, `METHOD`, `MIN`, `MINUTE`, `MINVALUE`, `MOD`, `MODE`, `MODIFIES`, `MODIFY`, `MONTH`, `MORE`, `MOVE`, `MUMPS`, `NAMES`, `NATIONAL`, `NATURAL`, `NCHAR`, `NCLOB`, `NEW`, `NEXT`, `NO`, `NOCREATEDB`, `NOCREATEUSER`, `NONE`, `NOT`, `NOTHING`, `NOTIFY`, `NOTNULL`, `NULL`, `NULLABLE`, `NULLIF`, `OBJECT`, `OCTET_LENGTH`, `OF`, `OFF`, `OFFSET`, `OIDS`, `OLD`, `ON`, `ONLY`, `OPEN`, `OPERATION`, `OPERATOR`, `OPTION`, `OPTIONS`, `OR`, `ORDER`, `ORDINALITY`, `OUT`, `OUTER`, `OUTPUT`, `OVERLAPS`, `OVERLAY`, `OVERRIDING`, `OWNER`, `PAD`, `PARAMETER`, `PARAMETERS`, `PARAMETER_MODE`, `PARAMATER_NAME`, `PARAMATER_ORDINAL_POSITION`, `PARAMETER_SPECIFIC_CATALOG`, `PARAMETER_SPECIFIC_NAME`, `PARAMATER_SPECIFIC_SCHEMA`, `PARTIAL`, `PASCAL`, `PENDANT`, `PLACING`, `PLI`, `POSITION`, `POSTFIX`, `PRECISION`, `PREFIX`, `PREORDER`, `PREPARE`, `PRESERVE`, `PRIMARY`, `PRIOR`, `PRIVILEGES`, `PROCEDURAL`, `PROCEDURE`, `PUBLIC`, `READ`, `READS`, `RECHECK`, `RECURSIVE`, `REF`, `REFERENCES`, `REFERENCING`, `REINDEX`, `RELATIVE`, `RENAME`, `REPEATABLE`, `REPLACE`, `RESET`, `RESTART`, `RESTRICT`, `RESULT`, `RETURN`, `RETURNED_LENGTH`, `RETURNED_OCTET_LENGTH`, `RETURNED_SQLSTATE`, `RETURNS`, `REVOKE`, `RIGHT`, `ROLE`, `ROLLBACK`, `ROLLUP`, `ROUTINE`, `ROUTINE_CATALOG`, `ROUTINE_NAME`, `ROUTINE_SCHEMA`, `ROW`, `ROWS`, `ROW_COUNT`, `RULE`, `SAVE_POINT`, `SCALE`, `SCHEMA`, `SCHEMA_NAME`, `SCOPE`, `SCROLL`, `SEARCH`, `SECOND`, `SECURITY`, `SELECT`, `SELF`, `SENSITIVE`, `SERIALIZABLE`, `SERVER_NAME`, `SESSION`, `SESSION_USER`, `SET`, `SETOF`, `SETS`, `SHARE`, `SHOW`, `SIMILAR`, `SIMPLE`, `SIZE`, `SOME`, `SOURCE`, `SPACE`, `SPECIFIC`, `SPECIFICTYPE`, `SPECIFIC_NAME`, `SQL`, `SQLCODE`, `SQLERROR`, `SQLEXCEPTION`, `SQLSTATE`, `SQLWARNINIG`, `STABLE`, `START`, `STATE`, `STATEMENT`, `STATIC`, `STATISTICS`, `STDIN`, `STDOUT`, `STORAGE`, `STRICT`, `STRUCTURE`, `STYPE`, `SUBCLASS_ORIGIN`, `SUBLIST`, `SUBSTRING`, `SUM`, `SYMMETRIC`, `SYSID`, `SYSTEM`, `SYSTEM_USER`, `TABLE`, `TABLE_NAME`, ` TEMP`, `TEMPLATE`, `TEMPORARY`, `TERMINATE`, `THAN`, `THEN`, `TIMESTAMP`, `TIMEZONE_HOUR`, `TIMEZONE_MINUTE`, `TO`, `TOAST`, `TRAILING`, `TRANSACTION`, `TRANSACTIONS_COMMITTED`, `TRANSACTIONS_ROLLED_BACK`, `TRANSACTION_ACTIVE`, `TRANSFORM`, `TRANSFORMS`, `TRANSLATE`, `TRANSLATION`, `TREAT`, `TRIGGER`, `TRIGGER_CATALOG`, `TRIGGER_NAME`, `TRIGGER_SCHEMA`, `TRIM`, `TRUE`, `TRUNCATE`, `TRUSTED`, `TYPE`, `UNCOMMITTED`, `UNDER`, `UNENCRYPTED`, `UNION`, `UNIQUE`, `UNKNOWN`, `UNLISTEN`, `UNNAMED`, `UNNEST`, `UNTIL`, `UPDATE`, `UPPER`, `USAGE`, `USER`, `USER_DEFINED_TYPE_CATALOG`, `USER_DEFINED_TYPE_NAME`, `USER_DEFINED_TYPE_SCHEMA`, `USING`, `VACUUM`, `VALID`, `VALIDATOR`, `VALUES`, `VARIABLE`, `VERBOSE`, `VERSION`, `VIEW`, `VOLATILE`, `WHEN`, `WHENEVER`, `WHERE`, `WITH`, `WITHOUT`, `WORK`, `WRITE`, `YEAR`, `ZONE`), Keyword, nil}, - {Words(``, `\b`, `ARRAY`, `BIGINT`, `BINARY`, `BIT`, `BLOB`, `BOOLEAN`, `CHAR`, `CHARACTER`, `DATE`, `DEC`, `DECIMAL`, `FLOAT`, `INT`, `INTEGER`, `INTERVAL`, `NUMBER`, `NUMERIC`, `REAL`, `SERIAL`, `SMALLINT`, `VARCHAR`, `VARYING`, `INT8`, `SERIAL8`, `TEXT`), NameBuiltin, nil}, - {"[+*/<>=~!@#%^&|`?-]", Operator, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`[a-z_][\w$]*`, Name, nil}, - {`[;:()\[\],.]`, Punctuation, nil}, - }, - "multiline-comments": { - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[^/*]+`, CommentMultiline, nil}, - {`[/*]`, CommentMultiline, nil}, - }, - "string": { - {`[^']+`, LiteralStringSingle, nil}, - {`''`, LiteralStringSingle, nil}, - {`'`, LiteralStringSingle, Pop(1)}, - }, - "double-string": { - {`[^"]+`, LiteralStringDouble, nil}, - {`""`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/squid.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/squid.go deleted file mode 100644 index 1f161901b6..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/squid.go +++ /dev/null @@ -1,38 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Squidconf lexer. -var Squidconf = internal.Register(MustNewLexer( - &Config{ - Name: "SquidConf", - Aliases: []string{"squidconf", "squid.conf", "squid"}, - Filenames: []string{"squid.conf"}, - MimeTypes: []string{"text/x-squidconf"}, - NotMultiline: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\s+`, TextWhitespace, nil}, - {`#`, Comment, Push("comment")}, - {Words(`\b`, `\b`, `access_log`, `acl`, `always_direct`, `announce_host`, `announce_period`, `announce_port`, `announce_to`, `anonymize_headers`, `append_domain`, `as_whois_server`, `auth_param_basic`, `authenticate_children`, `authenticate_program`, `authenticate_ttl`, `broken_posts`, `buffered_logs`, `cache_access_log`, `cache_announce`, `cache_dir`, `cache_dns_program`, `cache_effective_group`, `cache_effective_user`, `cache_host`, `cache_host_acl`, `cache_host_domain`, `cache_log`, `cache_mem`, `cache_mem_high`, `cache_mem_low`, `cache_mgr`, `cachemgr_passwd`, `cache_peer`, `cache_peer_access`, `cahce_replacement_policy`, `cache_stoplist`, `cache_stoplist_pattern`, `cache_store_log`, `cache_swap`, `cache_swap_high`, `cache_swap_log`, `cache_swap_low`, `client_db`, `client_lifetime`, `client_netmask`, `connect_timeout`, `coredump_dir`, `dead_peer_timeout`, `debug_options`, `delay_access`, `delay_class`, `delay_initial_bucket_level`, `delay_parameters`, `delay_pools`, `deny_info`, `dns_children`, `dns_defnames`, `dns_nameservers`, `dns_testnames`, `emulate_httpd_log`, `err_html_text`, `fake_user_agent`, `firewall_ip`, `forwarded_for`, `forward_snmpd_port`, `fqdncache_size`, `ftpget_options`, `ftpget_program`, `ftp_list_width`, `ftp_passive`, `ftp_user`, `half_closed_clients`, `header_access`, `header_replace`, `hierarchy_stoplist`, `high_response_time_warning`, `high_page_fault_warning`, `hosts_file`, `htcp_port`, `http_access`, `http_anonymizer`, `httpd_accel`, `httpd_accel_host`, `httpd_accel_port`, `httpd_accel_uses_host_header`, `httpd_accel_with_proxy`, `http_port`, `http_reply_access`, `icp_access`, `icp_hit_stale`, `icp_port`, `icp_query_timeout`, `ident_lookup`, `ident_lookup_access`, `ident_timeout`, `incoming_http_average`, `incoming_icp_average`, `inside_firewall`, `ipcache_high`, `ipcache_low`, `ipcache_size`, `local_domain`, `local_ip`, `logfile_rotate`, `log_fqdn`, `log_icp_queries`, `log_mime_hdrs`, `maximum_object_size`, `maximum_single_addr_tries`, `mcast_groups`, `mcast_icp_query_timeout`, `mcast_miss_addr`, `mcast_miss_encode_key`, `mcast_miss_port`, `memory_pools`, `memory_pools_limit`, `memory_replacement_policy`, `mime_table`, `min_http_poll_cnt`, `min_icp_poll_cnt`, `minimum_direct_hops`, `minimum_object_size`, `minimum_retry_timeout`, `miss_access`, `negative_dns_ttl`, `negative_ttl`, `neighbor_timeout`, `neighbor_type_domain`, `netdb_high`, `netdb_low`, `netdb_ping_period`, `netdb_ping_rate`, `never_direct`, `no_cache`, `passthrough_proxy`, `pconn_timeout`, `pid_filename`, `pinger_program`, `positive_dns_ttl`, `prefer_direct`, `proxy_auth`, `proxy_auth_realm`, `query_icmp`, `quick_abort`, `quick_abort_max`, `quick_abort_min`, `quick_abort_pct`, `range_offset_limit`, `read_timeout`, `redirect_children`, `redirect_program`, `redirect_rewrites_host_header`, `reference_age`, `refresh_pattern`, `reload_into_ims`, `request_body_max_size`, `request_size`, `request_timeout`, `shutdown_lifetime`, `single_parent_bypass`, `siteselect_timeout`, `snmp_access`, `snmp_incoming_address`, `snmp_port`, `source_ping`, `ssl_proxy`, `store_avg_object_size`, `store_objects_per_bucket`, `strip_query_terms`, `swap_level1_dirs`, `swap_level2_dirs`, `tcp_incoming_address`, `tcp_outgoing_address`, `tcp_recv_bufsize`, `test_reachability`, `udp_hit_obj`, `udp_hit_obj_size`, `udp_incoming_address`, `udp_outgoing_address`, `unique_hostname`, `unlinkd_program`, `uri_whitespace`, `useragent_log`, `visible_hostname`, `wais_relay`, `wais_relay_host`, `wais_relay_port`), Keyword, nil}, - {Words(`\b`, `\b`, `proxy-only`, `weight`, `ttl`, `no-query`, `default`, `round-robin`, `multicast-responder`, `on`, `off`, `all`, `deny`, `allow`, `via`, `parent`, `no-digest`, `heap`, `lru`, `realm`, `children`, `q1`, `q2`, `credentialsttl`, `none`, `disable`, `offline_toggle`, `diskd`), NameConstant, nil}, - {Words(`\b`, `\b`, `shutdown`, `info`, `parameter`, `server_list`, `client_list`, `squid.conf`), LiteralString, nil}, - {Words(`stats/`, `\b`, `objects`, `vm_objects`, `utilization`, `ipcache`, `fqdncache`, `dns`, `redirector`, `io`, `reply_headers`, `filedescriptors`, `netdb`), LiteralString, nil}, - {Words(`log/`, `=`, `status`, `enable`, `disable`, `clear`), LiteralString, nil}, - {Words(`\b`, `\b`, `url_regex`, `urlpath_regex`, `referer_regex`, `port`, `proto`, `req_mime_type`, `rep_mime_type`, `method`, `browser`, `user`, `src`, `dst`, `time`, `dstdomain`, `ident`, `snmp_community`), Keyword, nil}, - {`(?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|:(?=:))(?:[0-9a-f]{0,4}(?:(?<=::)|(?|[<&?](?=\\w)|(?<=\\w)[>!?]", Punctuation, nil}, - {`[/=\-+!*%<>&|^?~]+`, Operator, nil}, - {`[a-zA-Z_]\w*`, Name, nil}, - }, - "keywords": { - {Words(``, `\b`, `as`, `break`, `case`, `catch`, `continue`, `default`, `defer`, `do`, `else`, `fallthrough`, `for`, `guard`, `if`, `in`, `is`, `repeat`, `return`, `#selector`, `switch`, `throw`, `try`, `where`, `while`), Keyword, nil}, - {`@availability\([^)]+\)`, KeywordReserved, nil}, - {Words(``, `\b`, `associativity`, `convenience`, `dynamic`, `didSet`, `final`, `get`, `indirect`, `infix`, `inout`, `lazy`, `left`, `mutating`, `none`, `nonmutating`, `optional`, `override`, `postfix`, `precedence`, `prefix`, `Protocol`, `required`, `rethrows`, `right`, `set`, `throws`, `Type`, `unowned`, `weak`, `willSet`, `@availability`, `@autoclosure`, `@noreturn`, `@NSApplicationMain`, `@NSCopying`, `@NSManaged`, `@objc`, `@UIApplicationMain`, `@IBAction`, `@IBDesignable`, `@IBInspectable`, `@IBOutlet`), KeywordReserved, nil}, - {`(as|dynamicType|false|is|nil|self|Self|super|true|__COLUMN__|__FILE__|__FUNCTION__|__LINE__|_|#(?:file|line|column|function))\b`, KeywordConstant, nil}, - {`import\b`, KeywordDeclaration, Push("module")}, - {`(class|enum|extension|struct|protocol)(\s+)([a-zA-Z_]\w*)`, ByGroups(KeywordDeclaration, Text, NameClass), nil}, - {`(func)(\s+)([a-zA-Z_]\w*)`, ByGroups(KeywordDeclaration, Text, NameFunction), nil}, - {`(var|let)(\s+)([a-zA-Z_]\w*)`, ByGroups(KeywordDeclaration, Text, NameVariable), nil}, - {Words(``, `\b`, `class`, `deinit`, `enum`, `extension`, `func`, `import`, `init`, `internal`, `let`, `operator`, `private`, `protocol`, `public`, `static`, `struct`, `subscript`, `typealias`, `var`), KeywordDeclaration, nil}, - }, - "comment": { - {`:param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):`, CommentSpecial, nil}, - }, - "comment-single": { - {`\n`, Text, Pop(1)}, - Include("comment"), - {`[^\n]`, CommentSingle, nil}, - }, - "comment-multi": { - Include("comment"), - {`[^*/]`, CommentMultiline, nil}, - {`/\*`, CommentMultiline, Push()}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[*/]`, CommentMultiline, nil}, - }, - "module": { - {`\n`, Text, Pop(1)}, - {`[a-zA-Z_]\w*`, NameClass, nil}, - Include("root"), - }, - "preproc": { - {`\n`, Text, Pop(1)}, - Include("keywords"), - {`[A-Za-z]\w*`, CommentPreproc, nil}, - Include("root"), - }, - "string": { - {`\\\(`, LiteralStringInterpol, Push("string-intp")}, - {`"`, LiteralString, Pop(1)}, - {`\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}`, LiteralStringEscape, nil}, - {`[^\\"]+`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - }, - "string-intp": { - {`\(`, LiteralStringInterpol, Push()}, - {`\)`, LiteralStringInterpol, Pop(1)}, - Include("root"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/systemd.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/systemd.go deleted file mode 100644 index 6b0884ec00..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/systemd.go +++ /dev/null @@ -1,28 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var SYSTEMD = internal.Register(MustNewLexer( - &Config{ - Name: "SYSTEMD", - Aliases: []string{"systemd"}, - Filenames: []string{"*.service"}, - MimeTypes: []string{"text/plain"}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`[;#].*`, Comment, nil}, - {`\[.*?\]$`, Keyword, nil}, - {`(.*?)(=)(.*)(\\\n)`, ByGroups(NameAttribute, Operator, LiteralString, Text), Push("continuation")}, - {`(.*?)(=)(.*)`, ByGroups(NameAttribute, Operator, LiteralString), nil}, - }, - "continuation": { - {`(.*?)(\\\n)`, ByGroups(LiteralString, Text), nil}, - {`(.*)`, LiteralString, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/systemverilog.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/systemverilog.go deleted file mode 100644 index 85c459fed6..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/s/systemverilog.go +++ /dev/null @@ -1,73 +0,0 @@ -package s - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Systemverilog lexer. -var Systemverilog = internal.Register(MustNewLexer( - &Config{ - Name: "systemverilog", - Aliases: []string{"systemverilog", "sv"}, - Filenames: []string{"*.sv", "*.svh"}, - MimeTypes: []string{"text/x-systemverilog"}, - EnsureNL: true, - }, - Rules{ - "root": { - {"^\\s*`define", CommentPreproc, Push("macro")}, - {`^(\s*)(package)(\s+)`, ByGroups(Text, KeywordNamespace, Text), nil}, - {`^(\s*)(import)(\s+)("DPI(?:-C)?")(\s+)`, ByGroups(Text, KeywordNamespace, Text, LiteralString, Text), nil}, - {`^(\s*)(import)(\s+)`, ByGroups(Text, KeywordNamespace, Text), Push("import")}, - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`\\\n`, Text, nil}, - {`/(\\\n)?/(\n|(.|\n)*?[^\\]\n)`, CommentSingle, nil}, - {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil}, - {`[{}#@]`, Punctuation, nil}, - {`L?"`, LiteralString, Push("string")}, - {`L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'`, LiteralStringChar, nil}, - {`(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?`, LiteralNumberFloat, nil}, - {`(\d+\.\d*|\.\d+|\d+[fF])[fF]?`, LiteralNumberFloat, nil}, - {`([0-9]+)|(\'h)[0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`([0-9]+)|(\'b)[01]+`, LiteralNumberBin, nil}, - {`([0-9]+)|(\'d)[0-9]+`, LiteralNumberInteger, nil}, - {`([0-9]+)|(\'o)[0-7]+`, LiteralNumberOct, nil}, - {`\'[01xz]`, LiteralNumber, nil}, - {`\d+[Ll]?`, LiteralNumberInteger, nil}, - {`\*/`, Error, nil}, - {`[~!%^&*+=|?:<>/-]`, Operator, nil}, - {`[()\[\],.;\']`, Punctuation, nil}, - {"`[a-zA-Z_]\\w*", NameConstant, nil}, - {Words(``, `\b`, `accept_on`, `alias`, `always`, `always_comb`, `always_ff`, `always_latch`, `and`, `assert`, `assign`, `assume`, `automatic`, `before`, `begin`, `bind`, `bins`, `binsof`, `bit`, `break`, `buf`, `bufif0`, `bufif1`, `byte`, `case`, `casex`, `casez`, `cell`, `chandle`, `checker`, `class`, `clocking`, `cmos`, `config`, `const`, `constraint`, `context`, `continue`, `cover`, `covergroup`, `coverpoint`, `cross`, `deassign`, `default`, `defparam`, `design`, `disable`, `dist`, `do`, `edge`, `else`, `end`, `endcase`, `endchecker`, `endclass`, `endclocking`, `endconfig`, `endfunction`, `endgenerate`, `endgroup`, `endinterface`, `endmodule`, `endpackage`, `endprimitive`, `endprogram`, `endproperty`, `endsequence`, `endspecify`, `endtable`, `endtask`, `enum`, `event`, `eventually`, `expect`, `export`, `extends`, `extern`, `final`, `first_match`, `for`, `force`, `foreach`, `forever`, `fork`, `forkjoin`, `function`, `generate`, `genvar`, `global`, `highz0`, `highz1`, `if`, `iff`, `ifnone`, `ignore_bins`, `illegal_bins`, `implies`, `import`, `incdir`, `include`, `initial`, `inout`, `input`, `inside`, `instance`, `int`, `integer`, `interface`, `intersect`, `join`, `join_any`, `join_none`, `large`, `let`, `liblist`, `library`, `local`, `localparam`, `logic`, `longint`, `macromodule`, `matches`, `medium`, `modport`, `module`, `nand`, `negedge`, `new`, `nexttime`, `nmos`, `nor`, `noshowcancelled`, `not`, `notif0`, `notif1`, `null`, `or`, `output`, `package`, `packed`, `parameter`, `pmos`, `posedge`, `primitive`, `priority`, `program`, `property`, `protected`, `pull0`, `pull1`, `pulldown`, `pullup`, `pulsestyle_ondetect`, `pulsestyle_onevent`, `pure`, `rand`, `randc`, `randcase`, `randsequence`, `rcmos`, `real`, `realtime`, `ref`, `reg`, `reject_on`, `release`, `repeat`, `restrict`, `return`, `rnmos`, `rpmos`, `rtran`, `rtranif0`, `rtranif1`, `s_always`, `s_eventually`, `s_nexttime`, `s_until`, `s_until_with`, `scalared`, `sequence`, `shortint`, `shortreal`, `showcancelled`, `signed`, `small`, `solve`, `specify`, `specparam`, `static`, `string`, `strong`, `strong0`, `strong1`, `struct`, `super`, `supply0`, `supply1`, `sync_accept_on`, `sync_reject_on`, `table`, `tagged`, `task`, `this`, `throughout`, `time`, `timeprecision`, `timeunit`, `tran`, `tranif0`, `tranif1`, `tri`, `tri0`, `tri1`, `triand`, `trior`, `trireg`, `type`, `typedef`, `union`, `unique`, `unique0`, `unsigned`, `until`, `until_with`, `untyped`, `use`, `uwire`, `var`, `vectored`, `virtual`, `void`, `wait`, `wait_order`, `wand`, `weak`, `weak0`, `weak1`, `while`, `wildcard`, `wire`, `with`, `within`, `wor`, `xnor`, `xor`), Keyword, nil}, - {Words(``, `\b`, "`__FILE__", "`__LINE__", "`begin_keywords", "`celldefine", "`default_nettype", "`define", "`else", "`elsif", "`end_keywords", "`endcelldefine", "`endif", "`ifdef", "`ifndef", "`include", "`line", "`nounconnected_drive", "`pragma", "`resetall", "`timescale", "`unconnected_drive", "`undef", "`undefineall"), CommentPreproc, nil}, - {Words(``, `\b`, `$display`, `$displayb`, `$displayh`, `$displayo`, `$dumpall`, `$dumpfile`, `$dumpflush`, `$dumplimit`, `$dumpoff`, `$dumpon`, `$dumpports`, `$dumpportsall`, `$dumpportsflush`, `$dumpportslimit`, `$dumpportsoff`, `$dumpportson`, `$dumpvars`, `$fclose`, `$fdisplay`, `$fdisplayb`, `$fdisplayh`, `$fdisplayo`, `$feof`, `$ferror`, `$fflush`, `$fgetc`, `$fgets`, `$finish`, `$fmonitor`, `$fmonitorb`, `$fmonitorh`, `$fmonitoro`, `$fopen`, `$fread`, `$fscanf`, `$fseek`, `$fstrobe`, `$fstrobeb`, `$fstrobeh`, `$fstrobeo`, `$ftell`, `$fwrite`, `$fwriteb`, `$fwriteh`, `$fwriteo`, `$monitor`, `$monitorb`, `$monitorh`, `$monitoro`, `$monitoroff`, `$monitoron`, `$plusargs`, `$random`, `$readmemb`, `$readmemh`, `$rewind`, `$sformat`, `$sformatf`, `$sscanf`, `$strobe`, `$strobeb`, `$strobeh`, `$strobeo`, `$swrite`, `$swriteb`, `$swriteh`, `$swriteo`, `$test`, `$ungetc`, `$value$plusargs`, `$write`, `$writeb`, `$writeh`, `$writememb`, `$writememh`, `$writeo`), NameBuiltin, nil}, - {`(class)(\s+)`, ByGroups(Keyword, Text), Push("classname")}, - {Words(``, `\b`, `byte`, `shortint`, `int`, `longint`, `integer`, `time`, `bit`, `logic`, `reg`, `supply0`, `supply1`, `tri`, `triand`, `trior`, `tri0`, `tri1`, `trireg`, `uwire`, `wire`, `wand`, `woshortreal`, `real`, `realtime`), KeywordType, nil}, - {`[a-zA-Z_]\w*:(?!:)`, NameLabel, nil}, - {`\$?[a-zA-Z_]\w*`, Name, nil}, - }, - "classname": { - {`[a-zA-Z_]\w*`, NameClass, Pop(1)}, - }, - "string": { - {`"`, LiteralString, Pop(1)}, - {`\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})`, LiteralStringEscape, nil}, - {`[^\\"\n]+`, LiteralString, nil}, - {`\\\n`, LiteralString, nil}, - {`\\`, LiteralString, nil}, - }, - "macro": { - {`[^/\n]+`, CommentPreproc, nil}, - {`/[*](.|\n)*?[*]/`, CommentMultiline, nil}, - {`//.*?\n`, CommentSingle, Pop(1)}, - {`/`, CommentPreproc, nil}, - {`(?<=\\)\n`, CommentPreproc, nil}, - {`\n`, CommentPreproc, Pop(1)}, - }, - "import": { - {`[\w:]+\*?`, NameNamespace, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tablegen.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tablegen.go deleted file mode 100644 index 18c6978799..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tablegen.go +++ /dev/null @@ -1,42 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// TableGen lexer. -var Tablegen = internal.Register(MustNewLexer( - &Config{ - Name: "TableGen", - Aliases: []string{"tablegen"}, - Filenames: []string{"*.td"}, - MimeTypes: []string{"text/x-tablegen"}, - }, - Rules{ - "root": { - Include("macro"), - Include("whitespace"), - {`c?"[^"]*?"`, LiteralString, nil}, - Include("keyword"), - {`\$[_a-zA-Z][_\w]*`, NameVariable, nil}, - {`\d*[_a-zA-Z][_\w]*`, NameVariable, nil}, - {`\[\{[\w\W]*?\}\]`, LiteralString, nil}, - {`[+-]?\d+|0x[\da-fA-F]+|0b[01]+`, LiteralNumber, nil}, - {`[=<>{}\[\]()*.,!:;]`, Punctuation, nil}, - }, - "macro": { - {`(#include\s+)("[^"]*")`, ByGroups(CommentPreproc, LiteralString), nil}, - {`^\s*#(ifdef|ifndef)\s+[_\w][_\w\d]*`, CommentPreproc, nil}, - {`^\s*#define\s+[_\w][_\w\d]*`, CommentPreproc, nil}, - {`^\s*#endif`, CommentPreproc, nil}, - }, - "whitespace": { - {`(\n|\s)+`, Text, nil}, - {`//.*?\n`, Comment, nil}, - }, - "keyword": { - {Words(``, `\b`, `bit`, `bits`, `class`, `code`, `dag`, `def`, `defm`, `field`, `foreach`, `in`, `int`, `let`, `list`, `multiclass`, `string`), Keyword, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tasm.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tasm.go deleted file mode 100644 index 960399ca93..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tasm.go +++ /dev/null @@ -1,61 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Tasm lexer. -var Tasm = internal.Register(MustNewLexer( - &Config{ - Name: "TASM", - Aliases: []string{"tasm"}, - Filenames: []string{"*.asm", "*.ASM", "*.tasm"}, - MimeTypes: []string{"text/x-tasm"}, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`^\s*%`, CommentPreproc, Push("preproc")}, - Include("whitespace"), - {`[@a-z$._?][\w$.?#@~]*:`, NameLabel, nil}, - {`BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|ENDS|COMMON|CPU|GROUP|UPPERCASE|INCLUDE|EXPORT|LIBRARY|MODULE|PROC|ENDP|USES|ARG|DATASEG|UDATASEG|END|IDEAL|P386|MODEL|ASSUME|CODESEG|SIZE`, Keyword, Push("instruction-args")}, - {`([@a-z$._?][\w$.?#@~]*)(\s+)(db|dd|dw|T[A-Z][a-z]+)`, ByGroups(NameConstant, KeywordDeclaration, KeywordDeclaration), Push("instruction-args")}, - {`(?:res|d)[bwdqt]|times`, KeywordDeclaration, Push("instruction-args")}, - {`[@a-z$._?][\w$.?#@~]*`, NameFunction, Push("instruction-args")}, - {`[\r\n]+`, Text, nil}, - }, - "instruction-args": { - {"\"(\\\\\"|[^\"\\n])*\"|'(\\\\'|[^'\\n])*'|`(\\\\`|[^`\\n])*`", LiteralString, nil}, - {`(?:0x[0-9a-f]+|$0[0-9a-f]*|[0-9]+[0-9a-f]*h)`, LiteralNumberHex, nil}, - {`[0-7]+q`, LiteralNumberOct, nil}, - {`[01]+b`, LiteralNumberBin, nil}, - {`[0-9]+\.e?[0-9]+`, LiteralNumberFloat, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - Include("punctuation"), - {`r[0-9][0-5]?[bwd]|[a-d][lh]|[er]?[a-d]x|[er]?[sb]p|[er]?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]`, NameBuiltin, nil}, - {`[@a-z$._?][\w$.?#@~]*`, NameVariable, nil}, - {`(\\\s*)(;.*)([\r\n])`, ByGroups(Text, CommentSingle, Text), nil}, - {`[\r\n]+`, Text, Pop(1)}, - Include("whitespace"), - }, - "preproc": { - {`[^;\n]+`, CommentPreproc, nil}, - {`;.*?\n`, CommentSingle, Pop(1)}, - {`\n`, CommentPreproc, Pop(1)}, - }, - "whitespace": { - {`[\n\r]`, Text, nil}, - {`\\[\n\r]`, Text, nil}, - {`[ \t]+`, Text, nil}, - {`;.*`, CommentSingle, nil}, - }, - "punctuation": { - {`[,():\[\]]+`, Punctuation, nil}, - {`[&|^<>+*=/%~-]+`, Operator, nil}, - {`[$]+`, KeywordConstant, nil}, - {`seg|wrt|strict`, OperatorWord, nil}, - {`byte|[dq]?word`, KeywordType, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tcl.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tcl.go deleted file mode 100644 index 77951b40fb..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tcl.go +++ /dev/null @@ -1,116 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Tcl lexer. -var Tcl = internal.Register(MustNewLexer( - &Config{ - Name: "Tcl", - Aliases: []string{"tcl"}, - Filenames: []string{"*.tcl", "*.rvt"}, - MimeTypes: []string{"text/x-tcl", "text/x-script.tcl", "application/x-tcl"}, - }, - Rules{ - "root": { - Include("command"), - Include("basic"), - Include("data"), - {`\}`, Keyword, nil}, - }, - "command": { - {Words(`\b`, `\b`, `after`, `apply`, `array`, `break`, `catch`, `continue`, `elseif`, `else`, `error`, `eval`, `expr`, `for`, `foreach`, `global`, `if`, `namespace`, `proc`, `rename`, `return`, `set`, `switch`, `then`, `trace`, `unset`, `update`, `uplevel`, `upvar`, `variable`, `vwait`, `while`), Keyword, Push("params")}, - {Words(`\b`, `\b`, `append`, `bgerror`, `binary`, `cd`, `chan`, `clock`, `close`, `concat`, `dde`, `dict`, `encoding`, `eof`, `exec`, `exit`, `fblocked`, `fconfigure`, `fcopy`, `file`, `fileevent`, `flush`, `format`, `gets`, `glob`, `history`, `http`, `incr`, `info`, `interp`, `join`, `lappend`, `lassign`, `lindex`, `linsert`, `list`, `llength`, `load`, `loadTk`, `lrange`, `lrepeat`, `lreplace`, `lreverse`, `lsearch`, `lset`, `lsort`, `mathfunc`, `mathop`, `memory`, `msgcat`, `open`, `package`, `pid`, `pkg::create`, `pkg_mkIndex`, `platform`, `platform::shell`, `puts`, `pwd`, `re_syntax`, `read`, `refchan`, `regexp`, `registry`, `regsub`, `scan`, `seek`, `socket`, `source`, `split`, `string`, `subst`, `tell`, `time`, `tm`, `unknown`, `unload`), NameBuiltin, Push("params")}, - {`([\w.-]+)`, NameVariable, Push("params")}, - {`#`, Comment, Push("comment")}, - }, - "command-in-brace": { - {Words(`\b`, `\b`, `after`, `apply`, `array`, `break`, `catch`, `continue`, `elseif`, `else`, `error`, `eval`, `expr`, `for`, `foreach`, `global`, `if`, `namespace`, `proc`, `rename`, `return`, `set`, `switch`, `then`, `trace`, `unset`, `update`, `uplevel`, `upvar`, `variable`, `vwait`, `while`), Keyword, Push("params-in-brace")}, - {Words(`\b`, `\b`, `append`, `bgerror`, `binary`, `cd`, `chan`, `clock`, `close`, `concat`, `dde`, `dict`, `encoding`, `eof`, `exec`, `exit`, `fblocked`, `fconfigure`, `fcopy`, `file`, `fileevent`, `flush`, `format`, `gets`, `glob`, `history`, `http`, `incr`, `info`, `interp`, `join`, `lappend`, `lassign`, `lindex`, `linsert`, `list`, `llength`, `load`, `loadTk`, `lrange`, `lrepeat`, `lreplace`, `lreverse`, `lsearch`, `lset`, `lsort`, `mathfunc`, `mathop`, `memory`, `msgcat`, `open`, `package`, `pid`, `pkg::create`, `pkg_mkIndex`, `platform`, `platform::shell`, `puts`, `pwd`, `re_syntax`, `read`, `refchan`, `regexp`, `registry`, `regsub`, `scan`, `seek`, `socket`, `source`, `split`, `string`, `subst`, `tell`, `time`, `tm`, `unknown`, `unload`), NameBuiltin, Push("params-in-brace")}, - {`([\w.-]+)`, NameVariable, Push("params-in-brace")}, - {`#`, Comment, Push("comment")}, - }, - "command-in-bracket": { - {Words(`\b`, `\b`, `after`, `apply`, `array`, `break`, `catch`, `continue`, `elseif`, `else`, `error`, `eval`, `expr`, `for`, `foreach`, `global`, `if`, `namespace`, `proc`, `rename`, `return`, `set`, `switch`, `then`, `trace`, `unset`, `update`, `uplevel`, `upvar`, `variable`, `vwait`, `while`), Keyword, Push("params-in-bracket")}, - {Words(`\b`, `\b`, `append`, `bgerror`, `binary`, `cd`, `chan`, `clock`, `close`, `concat`, `dde`, `dict`, `encoding`, `eof`, `exec`, `exit`, `fblocked`, `fconfigure`, `fcopy`, `file`, `fileevent`, `flush`, `format`, `gets`, `glob`, `history`, `http`, `incr`, `info`, `interp`, `join`, `lappend`, `lassign`, `lindex`, `linsert`, `list`, `llength`, `load`, `loadTk`, `lrange`, `lrepeat`, `lreplace`, `lreverse`, `lsearch`, `lset`, `lsort`, `mathfunc`, `mathop`, `memory`, `msgcat`, `open`, `package`, `pid`, `pkg::create`, `pkg_mkIndex`, `platform`, `platform::shell`, `puts`, `pwd`, `re_syntax`, `read`, `refchan`, `regexp`, `registry`, `regsub`, `scan`, `seek`, `socket`, `source`, `split`, `string`, `subst`, `tell`, `time`, `tm`, `unknown`, `unload`), NameBuiltin, Push("params-in-bracket")}, - {`([\w.-]+)`, NameVariable, Push("params-in-bracket")}, - {`#`, Comment, Push("comment")}, - }, - "command-in-paren": { - {Words(`\b`, `\b`, `after`, `apply`, `array`, `break`, `catch`, `continue`, `elseif`, `else`, `error`, `eval`, `expr`, `for`, `foreach`, `global`, `if`, `namespace`, `proc`, `rename`, `return`, `set`, `switch`, `then`, `trace`, `unset`, `update`, `uplevel`, `upvar`, `variable`, `vwait`, `while`), Keyword, Push("params-in-paren")}, - {Words(`\b`, `\b`, `append`, `bgerror`, `binary`, `cd`, `chan`, `clock`, `close`, `concat`, `dde`, `dict`, `encoding`, `eof`, `exec`, `exit`, `fblocked`, `fconfigure`, `fcopy`, `file`, `fileevent`, `flush`, `format`, `gets`, `glob`, `history`, `http`, `incr`, `info`, `interp`, `join`, `lappend`, `lassign`, `lindex`, `linsert`, `list`, `llength`, `load`, `loadTk`, `lrange`, `lrepeat`, `lreplace`, `lreverse`, `lsearch`, `lset`, `lsort`, `mathfunc`, `mathop`, `memory`, `msgcat`, `open`, `package`, `pid`, `pkg::create`, `pkg_mkIndex`, `platform`, `platform::shell`, `puts`, `pwd`, `re_syntax`, `read`, `refchan`, `regexp`, `registry`, `regsub`, `scan`, `seek`, `socket`, `source`, `split`, `string`, `subst`, `tell`, `time`, `tm`, `unknown`, `unload`), NameBuiltin, Push("params-in-paren")}, - {`([\w.-]+)`, NameVariable, Push("params-in-paren")}, - {`#`, Comment, Push("comment")}, - }, - "basic": { - {`\(`, Keyword, Push("paren")}, - {`\[`, Keyword, Push("bracket")}, - {`\{`, Keyword, Push("brace")}, - {`"`, LiteralStringDouble, Push("string")}, - {`(eq|ne|in|ni)\b`, OperatorWord, nil}, - {`!=|==|<<|>>|<=|>=|&&|\|\||\*\*|[-+~!*/%<>&^|?:]`, Operator, nil}, - }, - "data": { - {`\s+`, Text, nil}, - {`0x[a-fA-F0-9]+`, LiteralNumberHex, nil}, - {`0[0-7]+`, LiteralNumberOct, nil}, - {`\d+\.\d+`, LiteralNumberFloat, nil}, - {`\d+`, LiteralNumberInteger, nil}, - {`\$([\w.:-]+)`, NameVariable, nil}, - {`([\w.:-]+)`, Text, nil}, - }, - "params": { - {`;`, Keyword, Pop(1)}, - {`\n`, Text, Pop(1)}, - {`(else|elseif|then)\b`, Keyword, nil}, - Include("basic"), - Include("data"), - }, - "params-in-brace": { - {`\}`, Keyword, Push("#pop", "#pop")}, - Include("params"), - }, - "params-in-paren": { - {`\)`, Keyword, Push("#pop", "#pop")}, - Include("params"), - }, - "params-in-bracket": { - {`\]`, Keyword, Push("#pop", "#pop")}, - Include("params"), - }, - "string": { - {`\[`, LiteralStringDouble, Push("string-square")}, - {`(?s)(\\\\|\\[0-7]+|\\.|[^"\\])`, LiteralStringDouble, nil}, - {`"`, LiteralStringDouble, Pop(1)}, - }, - "string-square": { - {`\[`, LiteralStringDouble, Push("string-square")}, - {`(?s)(\\\\|\\[0-7]+|\\.|\\\n|[^\]\\])`, LiteralStringDouble, nil}, - {`\]`, LiteralStringDouble, Pop(1)}, - }, - "brace": { - {`\}`, Keyword, Pop(1)}, - Include("command-in-brace"), - Include("basic"), - Include("data"), - }, - "paren": { - {`\)`, Keyword, Pop(1)}, - Include("command-in-paren"), - Include("basic"), - Include("data"), - }, - "bracket": { - {`\]`, Keyword, Pop(1)}, - Include("command-in-bracket"), - Include("basic"), - Include("data"), - }, - "comment": { - {`.*[^\\]\n`, Comment, Pop(1)}, - {`.*\\\n`, Comment, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tcsh.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tcsh.go deleted file mode 100644 index e36bdfd8e2..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tcsh.go +++ /dev/null @@ -1,59 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Tcsh lexer. -var Tcsh = internal.Register(MustNewLexer( - &Config{ - Name: "Tcsh", - Aliases: []string{"tcsh", "csh"}, - Filenames: []string{"*.tcsh", "*.csh"}, - MimeTypes: []string{"application/x-csh"}, - }, - Rules{ - "root": { - Include("basic"), - {`\$\(`, Keyword, Push("paren")}, - {`\$\{#?`, Keyword, Push("curly")}, - {"`", LiteralStringBacktick, Push("backticks")}, - Include("data"), - }, - "basic": { - {`\b(if|endif|else|while|then|foreach|case|default|continue|goto|breaksw|end|switch|endsw)\s*\b`, Keyword, nil}, - {`\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|glob|getspath|hashstat|history|hup|inlib|jobs|kill|limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|source|stop|suspend|source|suspend|telltc|time|umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|ver|wait|warp|watchlog|where|which)\s*\b`, NameBuiltin, nil}, - {`#.*`, Comment, nil}, - {`\\[\w\W]`, LiteralStringEscape, nil}, - {`(\b\w+)(\s*)(=)`, ByGroups(NameVariable, Text, Operator), nil}, - {`[\[\]{}()=]+`, Operator, nil}, - {`<<\s*(\'?)\\?(\w+)[\w\W]+?\2`, LiteralString, nil}, - {`;`, Punctuation, nil}, - }, - "data": { - {`(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"`, LiteralStringDouble, nil}, - {`(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'`, LiteralStringSingle, nil}, - {`\s+`, Text, nil}, - {"[^=\\s\\[\\]{}()$\"\\'`\\\\;#]+", Text, nil}, - {`\d+(?= |\Z)`, LiteralNumber, nil}, - {`\$#?(\w+|.)`, NameVariable, nil}, - }, - "curly": { - {`\}`, Keyword, Pop(1)}, - {`:-`, Keyword, nil}, - {`\w+`, NameVariable, nil}, - {"[^}:\"\\'`$]+", Punctuation, nil}, - {`:`, Punctuation, nil}, - Include("root"), - }, - "paren": { - {`\)`, Keyword, Pop(1)}, - Include("root"), - }, - "backticks": { - {"`", LiteralStringBacktick, Pop(1)}, - Include("root"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/termcap.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/termcap.go deleted file mode 100644 index 21b7d15c60..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/termcap.go +++ /dev/null @@ -1,42 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Termcap lexer. -var Termcap = internal.Register(MustNewLexer( - &Config{ - Name: "Termcap", - Aliases: []string{"termcap"}, - Filenames: []string{"termcap", "termcap.src"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`^#.*$`, Comment, nil}, - {`^[^\s#:|]+`, NameTag, Push("names")}, - }, - "names": { - {`\n`, Text, Pop(1)}, - {`:`, Punctuation, Push("defs")}, - {`\|`, Punctuation, nil}, - {`[^:|]+`, NameAttribute, nil}, - }, - "defs": { - {`\\\n[ \t]*`, Text, nil}, - {`\n[ \t]*`, Text, Pop(2)}, - {`(#)([0-9]+)`, ByGroups(Operator, LiteralNumber), nil}, - {`=`, Operator, Push("data")}, - {`:`, Punctuation, nil}, - {`[^\s:=#]+`, NameClass, nil}, - }, - "data": { - {`\\072`, Literal, nil}, - {`:`, Punctuation, Pop(1)}, - {`[^:\\]+`, Literal, nil}, - {`.`, Literal, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/terminfo.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/terminfo.go deleted file mode 100644 index 79749e12fb..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/terminfo.go +++ /dev/null @@ -1,42 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Terminfo lexer. -var Terminfo = internal.Register(MustNewLexer( - &Config{ - Name: "Terminfo", - Aliases: []string{"terminfo"}, - Filenames: []string{"terminfo", "terminfo.src"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`^#.*$`, Comment, nil}, - {`^[^\s#,|]+`, NameTag, Push("names")}, - }, - "names": { - {`\n`, Text, Pop(1)}, - {`(,)([ \t]*)`, ByGroups(Punctuation, Text), Push("defs")}, - {`\|`, Punctuation, nil}, - {`[^,|]+`, NameAttribute, nil}, - }, - "defs": { - {`\n[ \t]+`, Text, nil}, - {`\n`, Text, Pop(2)}, - {`(#)([0-9]+)`, ByGroups(Operator, LiteralNumber), nil}, - {`=`, Operator, Push("data")}, - {`(,)([ \t]*)`, ByGroups(Punctuation, Text), nil}, - {`[^\s,=#]+`, NameClass, nil}, - }, - "data": { - {`\\[,\\]`, Literal, nil}, - {`(,)([ \t]*)`, ByGroups(Punctuation, Text), Pop(1)}, - {`[^\\,]+`, Literal, nil}, - {`.`, Literal, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/terraform.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/terraform.go deleted file mode 100644 index 093ee3046c..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/terraform.go +++ /dev/null @@ -1,60 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Terraform lexer. -var Terraform = internal.Register(MustNewLexer( - &Config{ - Name: "Terraform", - Aliases: []string{"terraform", "tf"}, - Filenames: []string{"*.tf"}, - MimeTypes: []string{"application/x-tf", "application/x-terraform"}, - }, - Rules{ - "root": { - {`[\[\](),.{}]`, Punctuation, nil}, - {`-?[0-9]+`, LiteralNumber, nil}, - {`=>`, Punctuation, nil}, - {Words(``, `\b`, `true`, `false`), KeywordConstant, nil}, - {`/(?s)\*(((?!\*/).)*)\*/`, CommentMultiline, nil}, - {`\s*(#|//).*\n`, CommentSingle, nil}, - {`([a-zA-Z]\w*)(\s*)(=(?!>))`, ByGroups(NameAttribute, Text, Text), nil}, - {Words(`^\s*`, `\b`, `variable`, `data`, `resource`, `provider`, `provisioner`, `module`, `output`), KeywordReserved, nil}, - {Words(``, `\b`, `for`, `in`), Keyword, nil}, - {Words(``, ``, `count`, `data`, `var`, `module`, `each`), NameBuiltin, nil}, - {Words(``, `\b`, `abs`, `ceil`, `floor`, `log`, `max`, `min`, `parseint`, `pow`, `signum`), NameBuiltin, nil}, - {Words(``, `\b`, `chomp`, `format`, `formatlist`, `indent`, `join`, `lower`, `regex`, `regexall`, `replace`, `split`, `strrev`, `substr`, `title`, `trim`, `trimprefix`, `trimsuffix`, `trimspace`, `upper`), NameBuiltin, nil}, - {Words(`[^.]`, `\b`, `chunklist`, `coalesce`, `coalescelist`, `compact`, `concat`, `contains`, `distinct`, `element`, `flatten`, `index`, `keys`, `length`, `list`, `lookup`, `map`, `matchkeys`, `merge`, `range`, `reverse`, `setintersection`, `setproduct`, `setsubtract`, `setunion`, `slice`, `sort`, `transpose`, `values`, `zipmap`), NameBuiltin, nil}, - {Words(`[^.]`, `\b`, `base64decode`, `base64encode`, `base64gzip`, `csvdecode`, `jsondecode`, `jsonencode`, `urlencode`, `yamldecode`, `yamlencode`), NameBuiltin, nil}, - {Words(``, `\b`, `abspath`, `dirname`, `pathexpand`, `basename`, `file`, `fileexists`, `fileset`, `filebase64`, `templatefile`), NameBuiltin, nil}, - {Words(``, `\b`, `formatdate`, `timeadd`, `timestamp`), NameBuiltin, nil}, - {Words(``, `\b`, `base64sha256`, `base64sha512`, `bcrypt`, `filebase64sha256`, `filebase64sha512`, `filemd5`, `filesha1`, `filesha256`, `filesha512`, `md5`, `rsadecrypt`, `sha1`, `sha256`, `sha512`, `uuid`, `uuidv5`), NameBuiltin, nil}, - {Words(``, `\b`, `cidrhost`, `cidrnetmask`, `cidrsubnet`), NameBuiltin, nil}, - {Words(``, `\b`, `can`, `tobool`, `tolist`, `tomap`, `tonumber`, `toset`, `tostring`, `try`), NameBuiltin, nil}, - {`=(?!>)|\+|-|\*|\/|:|!|%|>|<(?!<)|>=|<=|==|!=|&&|\||\?`, Operator, nil}, - {`\n|\s+|\\\n`, Text, nil}, - {`[a-zA-Z]\w*`, NameOther, nil}, - {`"`, LiteralStringDouble, Push("string")}, - {`(?s)(<<-?)(\w+)(\n\s*(?:(?!\2).)*\s*\n\s*)(\2)`, ByGroups(Operator, Operator, String, Operator), nil}, - }, - "declaration": { - {`(\s*)("(?:\\\\|\\"|[^"])*")(\s*)`, ByGroups(Text, NameVariable, Text), nil}, - {`\{`, Punctuation, Pop(1)}, - }, - "string": { - {`"`, LiteralStringDouble, Pop(1)}, - {`\\\\`, LiteralStringDouble, nil}, - {`\\\\"`, LiteralStringDouble, nil}, - {`\$\{`, LiteralStringInterpol, Push("interp-inside")}, - {`\$`, LiteralStringDouble, nil}, - {`[^"\\\\$]+`, LiteralStringDouble, nil}, - }, - "interp-inside": { - {`\}`, LiteralStringInterpol, Pop(1)}, - Include("root"), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tex.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tex.go deleted file mode 100644 index f1010c4a89..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tex.go +++ /dev/null @@ -1,56 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Tex lexer. -var TeX = internal.Register(MustNewLexer( - &Config{ - Name: "TeX", - Aliases: []string{"tex", "latex"}, - Filenames: []string{"*.tex", "*.aux", "*.toc"}, - MimeTypes: []string{"text/x-tex", "text/x-latex"}, - }, - Rules{ - "general": { - {`%.*?\n`, Comment, nil}, - {`[{}]`, NameBuiltin, nil}, - {`[&_^]`, NameBuiltin, nil}, - }, - "root": { - {`\\\[`, LiteralStringBacktick, Push("displaymath")}, - {`\\\(`, LiteralString, Push("inlinemath")}, - {`\$\$`, LiteralStringBacktick, Push("displaymath")}, - {`\$`, LiteralString, Push("inlinemath")}, - {`\\([a-zA-Z]+|.)`, Keyword, Push("command")}, - {`\\$`, Keyword, nil}, - Include("general"), - {`[^\\$%&_^{}]+`, Text, nil}, - }, - "math": { - {`\\([a-zA-Z]+|.)`, NameVariable, nil}, - Include("general"), - {`[0-9]+`, LiteralNumber, nil}, - {`[-=!+*/()\[\]]`, Operator, nil}, - {`[^=!+*/()\[\]\\$%&_^{}0-9-]+`, NameBuiltin, nil}, - }, - "inlinemath": { - {`\\\)`, LiteralString, Pop(1)}, - {`\$`, LiteralString, Pop(1)}, - Include("math"), - }, - "displaymath": { - {`\\\]`, LiteralString, Pop(1)}, - {`\$\$`, LiteralString, Pop(1)}, - {`\$`, NameBuiltin, nil}, - Include("math"), - }, - "command": { - {`\[.*?\]`, NameAttribute, nil}, - {`\*`, Keyword, nil}, - Default(Pop(1)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/thrift.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/thrift.go deleted file mode 100644 index 5cbd0af9ea..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/thrift.go +++ /dev/null @@ -1,73 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Thrift lexer. -var Thrift = internal.Register(MustNewLexer( - &Config{ - Name: "Thrift", - Aliases: []string{"thrift"}, - Filenames: []string{"*.thrift"}, - MimeTypes: []string{"application/x-thrift"}, - }, - Rules{ - "root": { - Include("whitespace"), - Include("comments"), - {`"`, LiteralStringDouble, Combined("stringescape", "dqs")}, - {`\'`, LiteralStringSingle, Combined("stringescape", "sqs")}, - {`(namespace)(\s+)`, ByGroups(KeywordNamespace, TextWhitespace), Push("namespace")}, - {`(enum|union|struct|service|exception)(\s+)`, ByGroups(KeywordDeclaration, TextWhitespace), Push("class")}, - {`((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()`, ByGroups(UsingSelf("root"), NameFunction, Text, Operator), nil}, - Include("keywords"), - Include("numbers"), - {`[&=]`, Operator, nil}, - {`[:;,{}()<>\[\]]`, Punctuation, nil}, - {`[a-zA-Z_](\.\w|\w)*`, Name, nil}, - }, - "whitespace": { - {`\n`, TextWhitespace, nil}, - {`\s+`, TextWhitespace, nil}, - }, - "comments": { - {`#.*$`, Comment, nil}, - {`//.*?\n`, Comment, nil}, - {`/\*[\w\W]*?\*/`, CommentMultiline, nil}, - }, - "stringescape": { - {`\\([\\nrt"\'])`, LiteralStringEscape, nil}, - }, - "dqs": { - {`"`, LiteralStringDouble, Pop(1)}, - {`[^\\"\n]+`, LiteralStringDouble, nil}, - }, - "sqs": { - {`'`, LiteralStringSingle, Pop(1)}, - {`[^\\\'\n]+`, LiteralStringSingle, nil}, - }, - "namespace": { - {`[a-z*](\.\w|\w)*`, NameNamespace, Pop(1)}, - Default(Pop(1)), - }, - "class": { - {`[a-zA-Z_]\w*`, NameClass, Pop(1)}, - Default(Pop(1)), - }, - "keywords": { - {`(async|oneway|extends|throws|required|optional)\b`, Keyword, nil}, - {`(true|false)\b`, KeywordConstant, nil}, - {`(const|typedef)\b`, KeywordDeclaration, nil}, - {Words(``, `\b`, `cpp_namespace`, `cpp_include`, `cpp_type`, `java_package`, `cocoa_prefix`, `csharp_namespace`, `delphi_namespace`, `php_namespace`, `py_module`, `perl_package`, `ruby_namespace`, `smalltalk_category`, `smalltalk_prefix`, `xsd_all`, `xsd_optional`, `xsd_nillable`, `xsd_namespace`, `xsd_attrs`, `include`), KeywordNamespace, nil}, - {Words(``, `\b`, `void`, `bool`, `byte`, `i16`, `i32`, `i64`, `double`, `string`, `binary`, `map`, `list`, `set`, `slist`, `senum`), KeywordType, nil}, - {Words(`\b`, `\b`, `BEGIN`, `END`, `__CLASS__`, `__DIR__`, `__FILE__`, `__FUNCTION__`, `__LINE__`, `__METHOD__`, `__NAMESPACE__`, `abstract`, `alias`, `and`, `args`, `as`, `assert`, `begin`, `break`, `case`, `catch`, `class`, `clone`, `continue`, `declare`, `def`, `default`, `del`, `delete`, `do`, `dynamic`, `elif`, `else`, `elseif`, `elsif`, `end`, `enddeclare`, `endfor`, `endforeach`, `endif`, `endswitch`, `endwhile`, `ensure`, `except`, `exec`, `finally`, `float`, `for`, `foreach`, `function`, `global`, `goto`, `if`, `implements`, `import`, `in`, `inline`, `instanceof`, `interface`, `is`, `lambda`, `module`, `native`, `new`, `next`, `nil`, `not`, `or`, `pass`, `public`, `print`, `private`, `protected`, `raise`, `redo`, `rescue`, `retry`, `register`, `return`, `self`, `sizeof`, `static`, `super`, `switch`, `synchronized`, `then`, `this`, `throw`, `transient`, `try`, `undef`, `unless`, `unsigned`, `until`, `use`, `var`, `virtual`, `volatile`, `when`, `while`, `with`, `xor`, `yield`), KeywordReserved, nil}, - }, - "numbers": { - {`[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)`, LiteralNumberFloat, nil}, - {`[+-]?0x[0-9A-Fa-f]+`, LiteralNumberHex, nil}, - {`[+-]?[0-9]+`, LiteralNumberInteger, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/toml.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/toml.go deleted file mode 100644 index 68bfc90532..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/toml.go +++ /dev/null @@ -1,29 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var TOML = internal.Register(MustNewLexer( - &Config{ - Name: "TOML", - Aliases: []string{"toml"}, - Filenames: []string{"*.toml"}, - MimeTypes: []string{"text/x-toml"}, - }, - Rules{ - "root": { - {`\s+`, Text, nil}, - {`#.*`, Comment, nil}, - {Words(``, `\b`, `true`, `false`), KeywordConstant, nil}, - {`\d\d\d\d-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d\+)?(Z|[+-]\d{2}:\d{2})`, LiteralDate, nil}, - {`[+-]?[0-9](_?\d)*\.\d+`, LiteralNumberFloat, nil}, - {`[+-]?[0-9](_?\d)*`, LiteralNumberInteger, nil}, - {`"(\\\\|\\"|[^"])*"`, StringDouble, nil}, - {`'(\\\\|\\'|[^'])*'`, StringSingle, nil}, - {`[.,=\[\]]`, Punctuation, nil}, - {`[^\W\d]\w*`, NameOther, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tradingview.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tradingview.go deleted file mode 100644 index e3d8a7ac1a..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/tradingview.go +++ /dev/null @@ -1,40 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// TradingView lexer -var TradingView = internal.Register(MustNewLexer( - &Config{ - Name: "TradingView", - Aliases: []string{"tradingview", "tv"}, - Filenames: []string{"*.tv"}, - MimeTypes: []string{"text/x-tradingview"}, - DotAll: true, - EnsureNL: true, - }, - Rules{ - "root": { - {`[^\S\n]+|\n|[()]`, Text, nil}, - {`(//.*?)(\n)`, ByGroups(CommentSingle, Text), nil}, - {`>=|<=|==|!=|>|<|\?|-|\+|\*|\/|%|\[|\]`, Operator, nil}, - {`[:,.]`, Punctuation, nil}, - {`=`, KeywordPseudo, nil}, - {`"(\\\\|\\"|[^"\n])*["\n]`, LiteralString, nil}, - {`'\\.'|'[^\\]'`, LiteralString, nil}, - {`[0-9](\.[0-9]*)?([eE][+-][0-9]+)?`, LiteralNumber, nil}, - {`#[a-fA-F0-9]{8}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{3}`, LiteralStringOther, nil}, - {`(abs|acos|alertcondition|alma|asin|atan|atr|avg|barcolor|barssince|bgcolor|cci|ceil|change|cog|color\.new|correlation|cos|crossover|crossunder|cum|dev|ema|exp|falling|fill|fixnan|floor|heikinashi|highest|highestbars|hline|iff|kagi|label\.(delete|get_text|get_x|get_y|new|set_color|set_size|set_style|set_text|set_textcolor|set_x|set_xloc|set_xy|set_y|set_yloc)|line\.(new|delete|get_x1|get_x2|get_y1|get_y2|set_color|set_width|set_style|set_extend|set_xy1|set_xy2|set_x1|set_x2|set_y1|set_y2|set_xloc)|linebreak|linreg|log|log10|lowest|lowestbars|macd|max|max_bars_back|min|mom|nz|percentile_(linear_interpolation|nearest_rank)|percentrank|pivothigh|pivotlow|plot|plotarrow|plotbar|plotcandle|plotchar|plotshape|pointfigure|pow|renko|rising|rma|roc|round|rsi|sar|security|sign|sin|sma|sqrt|stdev|stoch|study|sum|swma|tan|timestamp|tostring|tsi|valuewhen|variance|vwma|wma|strategy\.(cancel|cancel_all|close|close_all|entry|exit|order|risk\.(allow_entry_in|max_cons_loss_days|max_drawdown|max_intraday_filled_orders|max_intraday_loss|max_position_size)))\b`, NameFunction, nil}, - {`\b(bool|color|cross|dayofmonth|dayofweek|float|hour|input|int|label|line|minute|month|na|offset|second|strategy|string|tickerid|time|tr|vwap|weekofyear|year)(\()`, ByGroups(NameFunction, Text), nil}, // functions that can also be variable - {`(accdist|adjustment\.(dividends|none|splits)|aqua|area|areabr|bar_index|black|blue|bool|circles|close|columns|currency\.(AUD|CAD|CHF|EUR|GBP|HKD|JPY|NOK|NONE|NZD|RUB|SEK|SGD|TRY|USD|ZAR)|color\.(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|dashed|dotted|dayofweek\.(monday|tuesday|wednesday|thursday|friday|saturday|sunday)|extend\.(both|left|right|none)|float|format\.(inherit|price|volume)|friday|fuchsia|gray|green|high|histogram|hl2|hlc3|hline\.style_(dotted|solid|dashed)|input\.(bool|float|integer|resolution|session|source|string|symbol)|integer|interval|isdaily|isdwm|isintraday|ismonthly|isweekly|label\.style_(arrowdown|arrowup|circle|cross|diamond|flag|labeldown|labelup|none|square|triangledown|triangleup|xcross)|lime|line\.style_(dashed|dotted|solid|arrow_both|arrow_left|arrow_right)|linebr|location\.(abovebar|absolute|belowbar|bottom|top)|low|maroon|monday|n|navy|ohlc4|olive|open|orange|period|plot\.style_(area|areabr|circles|columns|cross|histogram|line|linebr|stepline)|purple|red|resolution|saturday|scale\.(left|none|right)|session|session\.(extended|regular)|silver|size\.(auto|huge|large|normal|small|tiny)|solid|source|stepline|string|sunday|symbol|syminfo\.(mintick|pointvalue|prefix|root|session|ticker|tickerid|timezone)|teal|thursday|ticker|timeframe\.(isdaily|isdwm|isintraday|ismonthly|isweekly|multiplier|period)|timenow|tuesday|volume|wednesday|white|yellow|strategy\.(cash|closedtrades|commission\.(cash_per_contract|cash_per_order|percent)|direction\.(all|long|short)|equity|eventrades|fixed|grossloss|grossprofit|initial_capital|long|losstrades|max_contracts_held_(all|long|short)|max_drawdown|netprofit|oca\.(cancel|none|reduce)|openprofit|opentrades|percent_of_equity|position_avg_price|position_entry_name|position_size|short|wintrades)|shape\.(arrowdown|arrowup|circle|cross|diamond|flag|labeldown|labelup|square|triangledown|triangleup|xcross)|barstate\.is(first|history|last|new|realtime)|barmerge\.(gaps_on|gaps_off|lookahead_on|lookahead_off)|xloc\.bar_(index|time)|yloc\.(abovebar|belowbar|price))\b`, NameVariable, nil}, - {`(cross|dayofmonth|dayofweek|hour|minute|month|na|second|tickerid|time|tr|vwap|weekofyear|year)(\b[^\(])`, ByGroups(NameVariable, Text), nil}, // variables that can also be function - {`(int|float|bool|color|string|label|line)(\b[^\(=.])`, ByGroups(KeywordType, Text), nil}, // types that can also be a function - {`(var)\b`, KeywordType, nil}, - {`(true|false)\b`, KeywordConstant, nil}, - {`(and|or|not|if|else|for|to)\b`, OperatorWord, nil}, - {`@?[_a-zA-Z]\w*`, Text, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/transactsql.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/transactsql.go deleted file mode 100644 index 769a2f9193..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/transactsql.go +++ /dev/null @@ -1,60 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// TransactSQL lexer. -var TransactSQL = internal.Register(MustNewLexer( - &Config{ - Name: "Transact-SQL", - Aliases: []string{"tsql", "t-sql"}, - MimeTypes: []string{"text/x-tsql"}, - NotMultiline: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\s+`, TextWhitespace, nil}, - {`--(?m).*?$\n?`, CommentSingle, nil}, - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`'`, LiteralStringSingle, Push("string")}, - {`"`, LiteralStringName, Push("quoted-ident")}, - {Words(``, ``, `!<`, `!=`, `!>`, `<`, `<=`, `<>`, `=`, `>`, `>=`, `+`, `+=`, `-`, `-=`, `*`, `*=`, `/`, `/=`, `%`, `%=`, `&`, `&=`, `|`, `|=`, `^`, `^=`, `~`, `::`), Operator, nil}, - {Words(``, `\b`, `all`, `and`, `any`, `between`, `except`, `exists`, `in`, `intersect`, `like`, `not`, `or`, `some`, `union`), OperatorWord, nil}, - {Words(``, `\b`, `bigint`, `binary`, `bit`, `char`, `cursor`, `date`, `datetime`, `datetime2`, `datetimeoffset`, `decimal`, `float`, `hierarchyid`, `image`, `int`, `money`, `nchar`, `ntext`, `numeric`, `nvarchar`, `real`, `smalldatetime`, `smallint`, `smallmoney`, `sql_variant`, `table`, `text`, `time`, `timestamp`, `tinyint`, `uniqueidentifier`, `varbinary`, `varchar`, `xml`), NameClass, nil}, - {Words(``, `\b`, `$partition`, `abs`, `acos`, `app_name`, `applock_mode`, `applock_test`, `ascii`, `asin`, `assemblyproperty`, `atan`, `atn2`, `avg`, `binary_checksum`, `cast`, `ceiling`, `certencoded`, `certprivatekey`, `char`, `charindex`, `checksum`, `checksum_agg`, `choose`, `col_length`, `col_name`, `columnproperty`, `compress`, `concat`, `connectionproperty`, `context_info`, `convert`, `cos`, `cot`, `count`, `count_big`, `current_request_id`, `current_timestamp`, `current_transaction_id`, `current_user`, `cursor_status`, `database_principal_id`, `databasepropertyex`, `dateadd`, `datediff`, `datediff_big`, `datefromparts`, `datename`, `datepart`, `datetime2fromparts`, `datetimefromparts`, `datetimeoffsetfromparts`, `day`, `db_id`, `db_name`, `decompress`, `degrees`, `dense_rank`, `difference`, `eomonth`, `error_line`, `error_message`, `error_number`, `error_procedure`, `error_severity`, `error_state`, `exp`, `file_id`, `file_idex`, `file_name`, `filegroup_id`, `filegroup_name`, `filegroupproperty`, `fileproperty`, `floor`, `format`, `formatmessage`, `fulltextcatalogproperty`, `fulltextserviceproperty`, `get_filestream_transaction_context`, `getansinull`, `getdate`, `getutcdate`, `grouping`, `grouping_id`, `has_perms_by_name`, `host_id`, `host_name`, `iif`, `index_col`, `indexkey_property`, `indexproperty`, `is_member`, `is_rolemember`, `is_srvrolemember`, `isdate`, `isjson`, `isnull`, `isnumeric`, `json_modify`, `json_query`, `json_value`, `left`, `len`, `log`, `log10`, `lower`, `ltrim`, `max`, `min`, `min_active_rowversion`, `month`, `nchar`, `newid`, `newsequentialid`, `ntile`, `object_definition`, `object_id`, `object_name`, `object_schema_name`, `objectproperty`, `objectpropertyex`, `opendatasource`, `openjson`, `openquery`, `openrowset`, `openxml`, `original_db_name`, `original_login`, `parse`, `parsename`, `patindex`, `permissions`, `pi`, `power`, `pwdcompare`, `pwdencrypt`, `quotename`, `radians`, `rand`, `rank`, `replace`, `replicate`, `reverse`, `right`, `round`, `row_number`, `rowcount_big`, `rtrim`, `schema_id`, `schema_name`, `scope_identity`, `serverproperty`, `session_context`, `session_user`, `sign`, `sin`, `smalldatetimefromparts`, `soundex`, `sp_helplanguage`, `space`, `sqrt`, `square`, `stats_date`, `stdev`, `stdevp`, `str`, `string_escape`, `string_split`, `stuff`, `substring`, `sum`, `suser_id`, `suser_name`, `suser_sid`, `suser_sname`, `switchoffset`, `sysdatetime`, `sysdatetimeoffset`, `system_user`, `sysutcdatetime`, `tan`, `textptr`, `textvalid`, `timefromparts`, `todatetimeoffset`, `try_cast`, `try_convert`, `try_parse`, `type_id`, `type_name`, `typeproperty`, `unicode`, `upper`, `user_id`, `user_name`, `var`, `varp`, `xact_state`, `year`), NameFunction, nil}, - {`(goto)(\s+)(\w+\b)`, ByGroups(Keyword, TextWhitespace, NameLabel), nil}, - {Words(``, `\b`, `absolute`, `action`, `ada`, `add`, `admin`, `after`, `aggregate`, `alias`, `all`, `allocate`, `alter`, `and`, `any`, `are`, `array`, `as`, `asc`, `asensitive`, `assertion`, `asymmetric`, `at`, `atomic`, `authorization`, `avg`, `backup`, `before`, `begin`, `between`, `binary`, `bit`, `bit_length`, `blob`, `boolean`, `both`, `breadth`, `break`, `browse`, `bulk`, `by`, `call`, `called`, `cardinality`, `cascade`, `cascaded`, `case`, `cast`, `catalog`, `catch`, `char`, `char_length`, `character`, `character_length`, `check`, `checkpoint`, `class`, `clob`, `close`, `clustered`, `coalesce`, `collate`, `collation`, `collect`, `column`, `commit`, `completion`, `compute`, `condition`, `connect`, `connection`, `constraint`, `constraints`, `constructor`, `contains`, `containstable`, `continue`, `convert`, `corr`, `corresponding`, `count`, `covar_pop`, `covar_samp`, `create`, `cross`, `cube`, `cume_dist`, `current`, `current_catalog`, `current_date`, `current_default_transform_group`, `current_path`, `current_role`, `current_schema`, `current_time`, `current_timestamp`, `current_transform_group_for_type`, `current_user`, `cursor`, `cycle`, `data`, `database`, `date`, `day`, `dbcc`, `deallocate`, `dec`, `decimal`, `declare`, `default`, `deferrable`, `deferred`, `delete`, `deny`, `depth`, `deref`, `desc`, `describe`, `descriptor`, `destroy`, `destructor`, `deterministic`, `diagnostics`, `dictionary`, `disconnect`, `disk`, `distinct`, `distributed`, `domain`, `double`, `drop`, `dump`, `dynamic`, `each`, `element`, `else`, `end`, `end-exec`, `equals`, `errlvl`, `escape`, `every`, `except`, `exception`, `exec`, `execute`, `exists`, `exit`, `external`, `extract`, `false`, `fetch`, `file`, `fillfactor`, `filter`, `first`, `float`, `for`, `foreign`, `fortran`, `found`, `free`, `freetext`, `freetexttable`, `from`, `full`, `fulltexttable`, `function`, `fusion`, `general`, `get`, `global`, `go`, `goto`, `grant`, `group`, `grouping`, `having`, `hold`, `holdlock`, `host`, `hour`, `identity`, `identity_insert`, `identitycol`, `if`, `ignore`, `immediate`, `in`, `include`, `index`, `indicator`, `initialize`, `initially`, `inner`, `inout`, `input`, `insensitive`, `insert`, `int`, `integer`, `intersect`, `intersection`, `interval`, `into`, `is`, `isolation`, `iterate`, `join`, `key`, `kill`, `language`, `large`, `last`, `lateral`, `leading`, `left`, `less`, `level`, `like`, `like_regex`, `limit`, `lineno`, `ln`, `load`, `local`, `localtime`, `localtimestamp`, `locator`, `lower`, `map`, `match`, `max`, `member`, `merge`, `method`, `min`, `minute`, `mod`, `modifies`, `modify`, `module`, `month`, `multiset`, `names`, `national`, `natural`, `nchar`, `nclob`, `new`, `next`, `no`, `nocheck`, `nonclustered`, `none`, `normalize`, `not`, `null`, `nullif`, `numeric`, `object`, `occurrences_regex`, `octet_length`, `of`, `off`, `offsets`, `old`, `on`, `only`, `open`, `opendatasource`, `openquery`, `openrowset`, `openxml`, `operation`, `option`, `or`, `order`, `ordinality`, `out`, `outer`, `output`, `over`, `overlaps`, `overlay`, `pad`, `parameter`, `parameters`, `partial`, `partition`, `pascal`, `path`, `percent`, `percent_rank`, `percentile_cont`, `percentile_disc`, `pivot`, `plan`, `position`, `position_regex`, `postfix`, `precision`, `prefix`, `preorder`, `prepare`, `preserve`, `primary`, `print`, `prior`, `privileges`, `proc`, `procedure`, `public`, `raiserror`, `range`, `read`, `reads`, `readtext`, `real`, `reconfigure`, `recursive`, `ref`, `references`, `referencing`, `regr_avgx`, `regr_avgy`, `regr_count`, `regr_intercept`, `regr_r2`, `regr_slope`, `regr_sxx`, `regr_sxy`, `regr_syy`, `relative`, `release`, `replication`, `restore`, `restrict`, `result`, `return`, `returns`, `revert`, `revoke`, `right`, `role`, `rollback`, `rollup`, `routine`, `row`, `rowcount`, `rowguidcol`, `rows`, `rule`, `save`, `savepoint`, `schema`, `scope`, `scroll`, `search`, `second`, `section`, `securityaudit`, `select`, `semantickeyphrasetable`, `semanticsimilaritydetailstable`, `semanticsimilaritytable`, `sensitive`, `sequence`, `session`, `session_user`, `set`, `sets`, `setuser`, `shutdown`, `similar`, `size`, `smallint`, `some`, `space`, `specific`, `specifictype`, `sql`, `sqlca`, `sqlcode`, `sqlerror`, `sqlexception`, `sqlstate`, `sqlwarning`, `start`, `state`, `statement`, `static`, `statistics`, `stddev_pop`, `stddev_samp`, `structure`, `submultiset`, `substring`, `substring_regex`, `sum`, `symmetric`, `system`, `system_user`, `table`, `tablesample`, `temporary`, `terminate`, `textsize`, `than`, `then`, `throw`, `time`, `timestamp`, `timezone_hour`, `timezone_minute`, `to`, `top`, `trailing`, `tran`, `transaction`, `translate`, `translate_regex`, `translation`, `treat`, `trigger`, `trim`, `true`, `truncate`, `try`, `try_convert`, `tsequal`, `uescape`, `under`, `union`, `unique`, `unknown`, `unnest`, `unpivot`, `update`, `updatetext`, `upper`, `usage`, `use`, `user`, `using`, `value`, `values`, `var_pop`, `var_samp`, `varchar`, `variable`, `varying`, `view`, `waitfor`, `when`, `whenever`, `where`, `while`, `width_bucket`, `window`, `with`, `within`, `without`, `work`, `write`, `writetext`, `xmlagg`, `xmlattributes`, `xmlbinary`, `xmlcast`, `xmlcomment`, `xmlconcat`, `xmldocument`, `xmlelement`, `xmlexists`, `xmlforest`, `xmliterate`, `xmlnamespaces`, `xmlparse`, `xmlpi`, `xmlquery`, `xmlserialize`, `xmltable`, `xmltext`, `xmlvalidate`, `year`, `zone`), Keyword, nil}, - {`(\[)([^]]+)(\])`, ByGroups(Operator, Name, Operator), nil}, - {`0x[0-9a-f]+`, LiteralNumberHex, nil}, - {`[0-9]+\.[0-9]*(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`\.[0-9]+(e[+-]?[0-9]+)?`, LiteralNumberFloat, nil}, - {`[0-9]+e[+-]?[0-9]+`, LiteralNumberFloat, nil}, - {`[0-9]+`, LiteralNumberInteger, nil}, - {`[;(),.]`, Punctuation, nil}, - {`@@\w+`, NameBuiltin, nil}, - {`@\w+`, NameVariable, nil}, - {`(\w+)(:)`, ByGroups(NameLabel, Punctuation), nil}, - {`#?#?\w+`, Name, nil}, - {`\?`, NameVariableMagic, nil}, - }, - "multiline-comments": { - {`/\*`, CommentMultiline, Push("multiline-comments")}, - {`\*/`, CommentMultiline, Pop(1)}, - {`[^/*]+`, CommentMultiline, nil}, - {`[/*]`, CommentMultiline, nil}, - }, - "string": { - {`[^']+`, LiteralStringSingle, nil}, - {`''`, LiteralStringSingle, nil}, - {`'`, LiteralStringSingle, Pop(1)}, - }, - "quoted-ident": { - {`[^"]+`, LiteralStringName, nil}, - {`""`, LiteralStringName, nil}, - {`"`, LiteralStringName, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/turing.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/turing.go deleted file mode 100644 index ae5671b50d..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/turing.go +++ /dev/null @@ -1,43 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Turing lexer. -var Turing = internal.Register(MustNewLexer( - &Config{ - Name: "Turing", - Aliases: []string{"turing"}, - Filenames: []string{"*.turing", "*.tu"}, - MimeTypes: []string{"text/x-turing"}, - }, - Rules{ - "root": { - {`\n`, Text, nil}, - {`\s+`, Text, nil}, - {`\\\n`, Text, nil}, - {`%(.*?)\n`, CommentSingle, nil}, - {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil}, - {`(var|fcn|function|proc|procedure|process|class|end|record|type|begin|case|loop|for|const|union|monitor|module|handler)\b`, KeywordDeclaration, nil}, - {`(all|asm|assert|bind|bits|body|break|by|cheat|checked|close|condition|decreasing|def|deferred|else|elsif|exit|export|external|flexible|fork|forward|free|get|if|implement|import|include|inherit|init|invariant|label|new|objectclass|of|opaque|open|packed|pause|pervasive|post|pre|priority|put|quit|read|register|result|seek|self|set|signal|skip|tag|tell|then|timeout|to|unchecked|unqualified|wait|when|write)\b`, Keyword, nil}, - {`(true|false)\b`, KeywordConstant, nil}, - {Words(``, `\b`, `addressint`, `array`, `boolean`, `char`, `int`, `int1`, `int2`, `int4`, `int8`, `nat`, `nat1`, `nat2`, `nat4`, `nat8`, `pointer`, `real`, `real4`, `real8`, `string`, `enum`), KeywordType, nil}, - {`\d+i`, LiteralNumber, nil}, - {`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil}, - {`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil}, - {`\d+[Ee][-+]\d+i`, LiteralNumber, nil}, - {`\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)`, LiteralNumberFloat, nil}, - {`\.\d+([eE][+\-]?\d+)?`, LiteralNumberFloat, nil}, - {`0[0-7]+`, LiteralNumberOct, nil}, - {`0[xX][0-9a-fA-F]+`, LiteralNumberHex, nil}, - {`(0|[1-9][0-9]*)`, LiteralNumberInteger, nil}, - {`(div|mod|rem|\*\*|=|<|>|>=|<=|not=|not|and|or|xor|=>|in|shl|shr|->|~|~=|~in|&|:=|\.\.|[\^+\-*/&#])`, Operator, nil}, - {`'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'`, LiteralStringChar, nil}, - {`"(\\\\|\\"|[^"])*"`, LiteralString, nil}, - {`[()\[\]{}.,:]`, Punctuation, nil}, - {`[^\W\d]\w*`, NameOther, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/turtle.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/turtle.go deleted file mode 100644 index 71d3c47be8..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/turtle.go +++ /dev/null @@ -1,67 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Turtle lexer. -var Turtle = internal.Register(MustNewLexer( - &Config{ - Name: "Turtle", - Aliases: []string{"turtle"}, - Filenames: []string{"*.ttl"}, - MimeTypes: []string{"text/turtle", "application/x-turtle"}, - NotMultiline: true, - CaseInsensitive: true, - }, - Rules{ - "root": { - {`\s+`, TextWhitespace, nil}, - {"(@base|BASE)(\\s+)(<[^<>\"{}|^`\\\\\\x00-\\x20]*>)(\\s*)(\\.?)", ByGroups(Keyword, TextWhitespace, NameVariable, TextWhitespace, Punctuation), nil}, - {"(@prefix|PREFIX)(\\s+)((?:[a-z][\\w-]*)?\\:)(\\s+)(<[^<>\"{}|^`\\\\\\x00-\\x20]*>)(\\s*)(\\.?)", ByGroups(Keyword, TextWhitespace, NameNamespace, TextWhitespace, NameVariable, TextWhitespace, Punctuation), nil}, - {`(?<=\s)a(?=\s)`, KeywordType, nil}, - {"(<[^<>\"{}|^`\\\\\\x00-\\x20]*>)", NameVariable, nil}, - {`((?:[a-z][\w-]*)?\:)([a-z][\w-]*)`, ByGroups(NameNamespace, NameTag), nil}, - {`#[^\n]+`, Comment, nil}, - {`\b(true|false)\b`, Literal, nil}, - {`[+\-]?\d*\.\d+`, LiteralNumberFloat, nil}, - {`[+\-]?\d*(:?\.\d+)?E[+\-]?\d+`, LiteralNumberFloat, nil}, - {`[+\-]?\d+`, LiteralNumberInteger, nil}, - {`[\[\](){}.;,:^]`, Punctuation, nil}, - {`"""`, LiteralString, Push("triple-double-quoted-string")}, - {`"`, LiteralString, Push("single-double-quoted-string")}, - {`'''`, LiteralString, Push("triple-single-quoted-string")}, - {`'`, LiteralString, Push("single-single-quoted-string")}, - }, - "triple-double-quoted-string": { - {`"""`, LiteralString, Push("end-of-string")}, - {`[^\\]+`, LiteralString, nil}, - {`\\`, LiteralString, Push("string-escape")}, - }, - "single-double-quoted-string": { - {`"`, LiteralString, Push("end-of-string")}, - {`[^"\\\n]+`, LiteralString, nil}, - {`\\`, LiteralString, Push("string-escape")}, - }, - "triple-single-quoted-string": { - {`'''`, LiteralString, Push("end-of-string")}, - {`[^\\]+`, LiteralString, nil}, - {`\\`, LiteralString, Push("string-escape")}, - }, - "single-single-quoted-string": { - {`'`, LiteralString, Push("end-of-string")}, - {`[^'\\\n]+`, LiteralString, nil}, - {`\\`, LiteralString, Push("string-escape")}, - }, - "string-escape": { - {`.`, LiteralString, Pop(1)}, - }, - "end-of-string": { - {`(@)([a-z]+(:?-[a-z0-9]+)*)`, ByGroups(Operator, GenericEmph, GenericEmph), Pop(2)}, - {"(\\^\\^)(<[^<>\"{}|^`\\\\\\x00-\\x20]*>)", ByGroups(Operator, GenericEmph), Pop(2)}, - {`(\^\^)((?:[a-z][\w-]*)?\:)([a-z][\w-]*)`, ByGroups(Operator, GenericEmph, GenericEmph), Pop(2)}, - Default(Pop(2)), - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/twig.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/twig.go deleted file mode 100644 index 56aa9b9a79..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/twig.go +++ /dev/null @@ -1,54 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Twig lexer. -var Twig = internal.Register(MustNewLexer( - &Config{ - Name: "Twig", - Aliases: []string{"twig"}, - Filenames: []string{}, - MimeTypes: []string{"application/x-twig"}, - DotAll: true, - }, - Rules{ - "root": { - {`[^{]+`, Other, nil}, - {`\{\{`, CommentPreproc, Push("var")}, - {`\{\#.*?\#\}`, Comment, nil}, - {`(\{%)(-?\s*)(raw)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endraw)(\s*-?)(%\})`, ByGroups(CommentPreproc, Text, Keyword, Text, CommentPreproc, Other, CommentPreproc, Text, Keyword, Text, CommentPreproc), nil}, - {`(\{%)(-?\s*)(verbatim)(\s*-?)(%\})(.*?)(\{%)(-?\s*)(endverbatim)(\s*-?)(%\})`, ByGroups(CommentPreproc, Text, Keyword, Text, CommentPreproc, Other, CommentPreproc, Text, Keyword, Text, CommentPreproc), nil}, - {`(\{%)(-?\s*)(filter)(\s+)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)`, ByGroups(CommentPreproc, Text, Keyword, Text, NameFunction), Push("tag")}, - {`(\{%)(-?\s*)([a-zA-Z_]\w*)`, ByGroups(CommentPreproc, Text, Keyword), Push("tag")}, - {`\{`, Other, nil}, - }, - "varnames": { - {`(\|)(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)`, ByGroups(Operator, Text, NameFunction), nil}, - {`(is)(\s+)(not)?(\s*)((?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*)`, ByGroups(Keyword, Text, Keyword, Text, NameFunction), nil}, - {`(?i)(true|false|none|null)\b`, KeywordPseudo, nil}, - {`(in|not|and|b-and|or|b-or|b-xor|isif|elseif|else|importconstant|defined|divisibleby|empty|even|iterable|odd|sameasmatches|starts\s+with|ends\s+with)\b`, Keyword, nil}, - {`(loop|block|parent)\b`, NameBuiltin, nil}, - {`(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*`, NameVariable, nil}, - {`\.(?:[\\_a-z]|[^\x00-\x7f])(?:[\\\w-]|[^\x00-\x7f])*`, NameVariable, nil}, - {`\.[0-9]+`, LiteralNumber, nil}, - {`:?"(\\\\|\\"|[^"])*"`, LiteralStringDouble, nil}, - {`:?'(\\\\|\\'|[^'])*'`, LiteralStringSingle, nil}, - {`([{}()\[\]+\-*/,:~%]|\.\.|\?|:|\*\*|\/\/|!=|[><=]=?)`, Operator, nil}, - {`[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?`, LiteralNumber, nil}, - }, - "var": { - {`\s+`, Text, nil}, - {`(-?)(\}\})`, ByGroups(Text, CommentPreproc), Pop(1)}, - Include("varnames"), - }, - "tag": { - {`\s+`, Text, nil}, - {`(-?)(%\})`, ByGroups(Text, CommentPreproc), Pop(1)}, - Include("varnames"), - {`.`, Punctuation, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/typescript.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/typescript.go deleted file mode 100644 index 3b425ed0bc..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/t/typescript.go +++ /dev/null @@ -1,97 +0,0 @@ -package t - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// TypeScript lexer. -var TypeScript = internal.Register(MustNewLexer( - &Config{ - Name: "TypeScript", - Aliases: []string{"ts", "tsx", "typescript"}, - Filenames: []string{"*.ts", "*.tsx"}, - MimeTypes: []string{"text/x-typescript"}, - DotAll: true, - EnsureNL: true, - }, - Rules{ - "commentsandwhitespace": { - {`\s+`, Text, nil}, - {``, Comment, Pop(1)}, - {`-`, Comment, nil}, - }, - "tag": { - {`\s+`, Text, nil}, - {`[\w.:-]+\s*=`, NameAttribute, Push("attr")}, - {`/?\s*>`, NameTag, Pop(1)}, - }, - "attr": { - {`\s+`, Text, nil}, - {`".*?"`, LiteralString, Pop(1)}, - {`'.*?'`, LiteralString, Pop(1)}, - {`[^\s>]+`, LiteralString, Pop(1)}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/x/xorg.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/x/xorg.go deleted file mode 100644 index 6e6cbec606..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/x/xorg.go +++ /dev/null @@ -1,25 +0,0 @@ -package x - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -// Xorg lexer. -var Xorg = internal.Register(MustNewLexer( - &Config{ - Name: "Xorg", - Aliases: []string{"xorg.conf"}, - Filenames: []string{"xorg.conf"}, - MimeTypes: []string{}, - }, - Rules{ - "root": { - {`\s+`, TextWhitespace, nil}, - {`#.*$`, Comment, nil}, - {`((|Sub)Section)(\s+)("\w+")`, ByGroups(KeywordNamespace, LiteralStringEscape, TextWhitespace, LiteralStringEscape), nil}, - {`(End(|Sub)Section)`, KeywordNamespace, nil}, - {`(\w+)(\s+)([^\n#]+)`, ByGroups(NameKeyword, TextWhitespace, LiteralString), nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/y/yaml.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/y/yaml.go deleted file mode 100644 index 82fed0c0f4..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/y/yaml.go +++ /dev/null @@ -1,50 +0,0 @@ -package y - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var YAML = internal.Register(MustNewLexer( - &Config{ - Name: "YAML", - Aliases: []string{"yaml"}, - Filenames: []string{"*.yaml", "*.yml"}, - MimeTypes: []string{"text/x-yaml"}, - }, - Rules{ - "root": { - Include("whitespace"), - {`^---`, Text, nil}, - {`[\n?]?\s*- `, Text, nil}, - {`#.*$`, Comment, nil}, - {`!![^\s]+`, CommentPreproc, nil}, - {`&[^\s]+`, CommentPreproc, nil}, - {`\*[^\s]+`, CommentPreproc, nil}, - {`^%include\s+[^\n\r]+`, CommentPreproc, nil}, - {`([>|+-]\s+)(\s+)((?:(?:.*?$)(?:[\n\r]*?)?)*)`, ByGroups(StringDoc, StringDoc, StringDoc), nil}, - Include("key"), - Include("value"), - {`[?:,\[\]]`, Punctuation, nil}, - {`.`, Text, nil}, - }, - "value": { - {Words(``, `\b`, "true", "false", "null"), KeywordConstant, nil}, - {`"(?:\\.|[^"])*"`, StringDouble, nil}, - {`'(?:\\.|[^'])*'`, StringSingle, nil}, - {`\d\d\d\d-\d\d-\d\d([T ]\d\d:\d\d:\d\d(\.\d+)?(Z|\s+[-+]\d+)?)?`, LiteralDate, nil}, - {`\b[+\-]?(0x[\da-f]+|0o[0-7]+|(\d+\.?\d*|\.?\d+)(e[\+\-]?\d+)?|\.inf|\.nan)\b`, Number, nil}, - {`\b[\w]+\b`, Text, nil}, - }, - "key": { - {`"[^"\n].*": `, Keyword, nil}, - {`(-)( )([^"\n{]*)(:)( )`, ByGroups(Punctuation, Whitespace, Keyword, Punctuation, Whitespace), nil}, - {`([^"\n{]*)(:)( )`, ByGroups(Keyword, Punctuation, Whitespace), nil}, - {`([^"\n{]*)(:)(\n)`, ByGroups(Keyword, Punctuation, Whitespace), nil}, - }, - "whitespace": { - {`\s+`, Whitespace, nil}, - {`\n+`, Whitespace, nil}, - }, - }, -)) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/lexers/y/yang.go b/workhorse-vendor/github.com/alecthomas/chroma/lexers/y/yang.go deleted file mode 100644 index 73edb71e63..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/lexers/y/yang.go +++ /dev/null @@ -1,67 +0,0 @@ -package y - -import ( - . "github.com/alecthomas/chroma" // nolint - "github.com/alecthomas/chroma/lexers/internal" -) - -var YANG = internal.Register(MustNewLexer( - &Config{ - Name: "YANG", - Aliases: []string{"yang"}, - Filenames: []string{"*.yang"}, - MimeTypes: []string{"application/yang"}, - }, - Rules{ - "root": { - {`\s+`, Whitespace, nil}, - {`[\{\}\;]+`, Punctuation, nil}, - {`(? lexers.txt - -perl6: - Requires a bunch of helpers that I do not have the time to convert. - -kotlin: - invalid unicode escape sequences - FIXED: Have to disable wide Unicode characters in unistring.py - -pygments.lexers.ambient.AmbientTalkLexer -pygments.lexers.ampl.AmplLexer -pygments.lexers.actionscript.ActionScriptLexer -pygments.lexers.actionscript.ActionScript3Lexer -pygments.lexers.actionscript.MxmlLexer -pygments.lexers.algebra.GAPLexer -pygments.lexers.algebra.MathematicaLexer -pygments.lexers.algebra.MuPADLexer -pygments.lexers.algebra.BCLexer -pygments.lexers.apl.APLLexer -pygments.lexers.bibtex.BibTeXLexer -pygments.lexers.bibtex.BSTLexer -pygments.lexers.basic.BlitzMaxLexer -pygments.lexers.basic.BlitzBasicLexer -pygments.lexers.basic.MonkeyLexer -pygments.lexers.basic.CbmBasicV2Lexer -pygments.lexers.basic.QBasicLexer -pygments.lexers.automation.AutohotkeyLexer -pygments.lexers.automation.AutoItLexer -pygments.lexers.archetype.AtomsLexer -pygments.lexers.c_like.ClayLexer -pygments.lexers.c_like.ValaLexer -pygments.lexers.asm.GasLexer -pygments.lexers.asm.ObjdumpLexer -pygments.lexers.asm.HsailLexer -pygments.lexers.asm.LlvmLexer -pygments.lexers.asm.NasmLexer -pygments.lexers.asm.TasmLexer -pygments.lexers.asm.Ca65Lexer -pygments.lexers.business.CobolLexer -pygments.lexers.business.ABAPLexer -pygments.lexers.business.OpenEdgeLexer -pygments.lexers.business.GoodDataCLLexer -pygments.lexers.business.MaqlLexer -pygments.lexers.capnproto.CapnProtoLexer -pygments.lexers.chapel.ChapelLexer -pygments.lexers.clean.CleanLexer -pygments.lexers.c_cpp.CFamilyLexer -pygments.lexers.console.VCTreeStatusLexer -pygments.lexers.console.PyPyLogLexer -pygments.lexers.csound.CsoundLexer -pygments.lexers.csound.CsoundDocumentLexer -pygments.lexers.csound.CsoundDocumentLexer -pygments.lexers.crystal.CrystalLexer -pygments.lexers.dalvik.SmaliLexer -pygments.lexers.css.CssLexer -pygments.lexers.css.SassLexer -pygments.lexers.css.ScssLexer -pygments.lexers.configs.IniLexer -pygments.lexers.configs.RegeditLexer -pygments.lexers.configs.PropertiesLexer -pygments.lexers.configs.KconfigLexer -pygments.lexers.configs.Cfengine3Lexer -pygments.lexers.configs.ApacheConfLexer -pygments.lexers.configs.SquidConfLexer -pygments.lexers.configs.NginxConfLexer -pygments.lexers.configs.LighttpdConfLexer -pygments.lexers.configs.DockerLexer -pygments.lexers.configs.TerraformLexer -pygments.lexers.configs.TermcapLexer -pygments.lexers.configs.TerminfoLexer -pygments.lexers.configs.PkgConfigLexer -pygments.lexers.configs.PacmanConfLexer -pygments.lexers.data.YamlLexer -pygments.lexers.data.JsonLexer -pygments.lexers.diff.DiffLexer -pygments.lexers.diff.DarcsPatchLexer -pygments.lexers.diff.WDiffLexer -pygments.lexers.dotnet.CSharpLexer -pygments.lexers.dotnet.NemerleLexer -pygments.lexers.dotnet.BooLexer -pygments.lexers.dotnet.VbNetLexer -pygments.lexers.dotnet.GenericAspxLexer -pygments.lexers.dotnet.FSharpLexer -pygments.lexers.dylan.DylanLexer -pygments.lexers.dylan.DylanLidLexer -pygments.lexers.ecl.ECLLexer -pygments.lexers.eiffel.EiffelLexer -pygments.lexers.dsls.ProtoBufLexer -pygments.lexers.dsls.ThriftLexer -pygments.lexers.dsls.BroLexer -pygments.lexers.dsls.PuppetLexer -pygments.lexers.dsls.RslLexer -pygments.lexers.dsls.MscgenLexer -pygments.lexers.dsls.VGLLexer -pygments.lexers.dsls.AlloyLexer -pygments.lexers.dsls.PanLexer -pygments.lexers.dsls.CrmshLexer -pygments.lexers.dsls.FlatlineLexer -pygments.lexers.dsls.SnowballLexer -pygments.lexers.elm.ElmLexer -pygments.lexers.erlang.ErlangLexer -pygments.lexers.erlang.ElixirLexer -pygments.lexers.ezhil.EzhilLexer -pygments.lexers.esoteric.BrainfuckLexer -pygments.lexers.esoteric.BefungeLexer -pygments.lexers.esoteric.CAmkESLexer -pygments.lexers.esoteric.CapDLLexer -pygments.lexers.esoteric.RedcodeLexer -pygments.lexers.esoteric.AheuiLexer -pygments.lexers.factor.FactorLexer -pygments.lexers.fantom.FantomLexer -pygments.lexers.felix.FelixLexer -pygments.lexers.forth.ForthLexer -pygments.lexers.fortran.FortranLexer -pygments.lexers.fortran.FortranFixedLexer -pygments.lexers.go.GoLexer -pygments.lexers.foxpro.FoxProLexer -pygments.lexers.graph.CypherLexer -pygments.lexers.grammar_notation.BnfLexer -pygments.lexers.grammar_notation.AbnfLexer -pygments.lexers.grammar_notation.JsgfLexer -pygments.lexers.graphics.GLShaderLexer -pygments.lexers.graphics.PostScriptLexer -pygments.lexers.graphics.AsymptoteLexer -pygments.lexers.graphics.GnuplotLexer -pygments.lexers.graphics.PovrayLexer -pygments.lexers.hexdump.HexdumpLexer -pygments.lexers.haskell.HaskellLexer -pygments.lexers.haskell.IdrisLexer -pygments.lexers.haskell.AgdaLexer -pygments.lexers.haskell.CryptolLexer -pygments.lexers.haskell.KokaLexer -pygments.lexers.haxe.HaxeLexer -pygments.lexers.haxe.HxmlLexer -pygments.lexers.hdl.VerilogLexer -pygments.lexers.hdl.SystemVerilogLexer -pygments.lexers.hdl.VhdlLexer -pygments.lexers.idl.IDLLexer -pygments.lexers.inferno.LimboLexer -pygments.lexers.igor.IgorLexer -pygments.lexers.html.HtmlLexer -pygments.lexers.html.DtdLexer -pygments.lexers.html.XmlLexer -pygments.lexers.html.HamlLexer -pygments.lexers.html.ScamlLexer -pygments.lexers.html.PugLexer -pygments.lexers.installers.NSISLexer -pygments.lexers.installers.RPMSpecLexer -pygments.lexers.installers.SourcesListLexer -pygments.lexers.installers.DebianControlLexer -pygments.lexers.iolang.IoLexer -pygments.lexers.julia.JuliaLexer -pygments.lexers.int_fiction.Inform6Lexer -pygments.lexers.int_fiction.Inform7Lexer -pygments.lexers.int_fiction.Tads3Lexer -pygments.lexers.make.BaseMakefileLexer -pygments.lexers.make.CMakeLexer -pygments.lexers.javascript.JavascriptLexer -pygments.lexers.javascript.KalLexer -pygments.lexers.javascript.LiveScriptLexer -pygments.lexers.javascript.DartLexer -pygments.lexers.javascript.TypeScriptLexer -pygments.lexers.javascript.LassoLexer -pygments.lexers.javascript.ObjectiveJLexer -pygments.lexers.javascript.CoffeeScriptLexer -pygments.lexers.javascript.MaskLexer -pygments.lexers.javascript.EarlGreyLexer -pygments.lexers.javascript.JuttleLexer -pygments.lexers.jvm.JavaLexer -pygments.lexers.jvm.ScalaLexer -pygments.lexers.jvm.GosuLexer -pygments.lexers.jvm.GroovyLexer -pygments.lexers.jvm.IokeLexer -pygments.lexers.jvm.ClojureLexer -pygments.lexers.jvm.TeaLangLexer -pygments.lexers.jvm.CeylonLexer -pygments.lexers.jvm.KotlinLexer -pygments.lexers.jvm.XtendLexer -pygments.lexers.jvm.PigLexer -pygments.lexers.jvm.GoloLexer -pygments.lexers.jvm.JasminLexer -pygments.lexers.markup.BBCodeLexer -pygments.lexers.markup.MoinWikiLexer -pygments.lexers.markup.RstLexer -pygments.lexers.markup.TexLexer -pygments.lexers.markup.GroffLexer -pygments.lexers.markup.MozPreprocHashLexer -pygments.lexers.markup.MarkdownLexer -pygments.lexers.ml.SMLLexer -pygments.lexers.ml.OcamlLexer -pygments.lexers.ml.OpaLexer -pygments.lexers.modeling.ModelicaLexer -pygments.lexers.modeling.BugsLexer -pygments.lexers.modeling.JagsLexer -pygments.lexers.modeling.StanLexer -pygments.lexers.matlab.MatlabLexer -pygments.lexers.matlab.OctaveLexer -pygments.lexers.matlab.ScilabLexer -pygments.lexers.monte.MonteLexer -pygments.lexers.lisp.SchemeLexer -pygments.lexers.lisp.CommonLispLexer -pygments.lexers.lisp.HyLexer -pygments.lexers.lisp.RacketLexer -pygments.lexers.lisp.NewLispLexer -pygments.lexers.lisp.EmacsLispLexer -pygments.lexers.lisp.ShenLexer -pygments.lexers.lisp.XtlangLexer -pygments.lexers.modula2.Modula2Lexer -pygments.lexers.ncl.NCLLexer -pygments.lexers.nim.NimLexer -pygments.lexers.nit.NitLexer -pygments.lexers.nix.NixLexer -pygments.lexers.oberon.ComponentPascalLexer -pygments.lexers.ooc.OocLexer -pygments.lexers.objective.SwiftLexer -pygments.lexers.parasail.ParaSailLexer -pygments.lexers.pawn.SourcePawnLexer -pygments.lexers.pawn.PawnLexer -pygments.lexers.pascal.AdaLexer -pygments.lexers.parsers.RagelLexer -pygments.lexers.parsers.RagelEmbeddedLexer -pygments.lexers.parsers.AntlrLexer -pygments.lexers.parsers.TreetopBaseLexer -pygments.lexers.parsers.EbnfLexer -pygments.lexers.php.ZephirLexer -pygments.lexers.php.PhpLexer -pygments.lexers.perl.PerlLexer -pygments.lexers.perl.Perl6Lexer -pygments.lexers.praat.PraatLexer -pygments.lexers.prolog.PrologLexer -pygments.lexers.prolog.LogtalkLexer -pygments.lexers.qvt.QVToLexer -pygments.lexers.rdf.SparqlLexer -pygments.lexers.rdf.TurtleLexer -pygments.lexers.python.PythonLexer -pygments.lexers.python.Python3Lexer -pygments.lexers.python.PythonTracebackLexer -pygments.lexers.python.Python3TracebackLexer -pygments.lexers.python.CythonLexer -pygments.lexers.python.DgLexer -pygments.lexers.rebol.RebolLexer -pygments.lexers.rebol.RedLexer -pygments.lexers.resource.ResourceLexer -pygments.lexers.rnc.RNCCompactLexer -pygments.lexers.roboconf.RoboconfGraphLexer -pygments.lexers.roboconf.RoboconfInstancesLexer -pygments.lexers.rust.RustLexer -pygments.lexers.ruby.RubyLexer -pygments.lexers.ruby.FancyLexer -pygments.lexers.sas.SASLexer -pygments.lexers.smalltalk.SmalltalkLexer -pygments.lexers.smalltalk.NewspeakLexer -pygments.lexers.smv.NuSMVLexer -pygments.lexers.shell.BashLexer -pygments.lexers.shell.BatchLexer -pygments.lexers.shell.TcshLexer -pygments.lexers.shell.PowerShellLexer -pygments.lexers.shell.FishShellLexer -pygments.lexers.snobol.SnobolLexer -pygments.lexers.scripting.LuaLexer -pygments.lexers.scripting.ChaiscriptLexer -pygments.lexers.scripting.LSLLexer -pygments.lexers.scripting.AppleScriptLexer -pygments.lexers.scripting.RexxLexer -pygments.lexers.scripting.MOOCodeLexer -pygments.lexers.scripting.HybrisLexer -pygments.lexers.scripting.EasytrieveLexer -pygments.lexers.scripting.JclLexer -pygments.lexers.supercollider.SuperColliderLexer -pygments.lexers.stata.StataLexer -pygments.lexers.tcl.TclLexer -pygments.lexers.sql.PostgresLexer -pygments.lexers.sql.PlPgsqlLexer -pygments.lexers.sql.PsqlRegexLexer -pygments.lexers.sql.SqlLexer -pygments.lexers.sql.TransactSqlLexer -pygments.lexers.sql.MySqlLexer -pygments.lexers.sql.RqlLexer -pygments.lexers.testing.GherkinLexer -pygments.lexers.testing.TAPLexer -pygments.lexers.textedit.AwkLexer -pygments.lexers.textedit.VimLexer -pygments.lexers.textfmts.IrcLogsLexer -pygments.lexers.textfmts.GettextLexer -pygments.lexers.textfmts.HttpLexer -pygments.lexers.textfmts.TodotxtLexer -pygments.lexers.trafficscript.RtsLexer -pygments.lexers.theorem.CoqLexer -pygments.lexers.theorem.IsabelleLexer -pygments.lexers.theorem.LeanLexer -pygments.lexers.templates.SmartyLexer -pygments.lexers.templates.VelocityLexer -pygments.lexers.templates.DjangoLexer -pygments.lexers.templates.MyghtyLexer -pygments.lexers.templates.MasonLexer -pygments.lexers.templates.MakoLexer -pygments.lexers.templates.CheetahLexer -pygments.lexers.templates.GenshiTextLexer -pygments.lexers.templates.GenshiMarkupLexer -pygments.lexers.templates.JspRootLexer -pygments.lexers.templates.EvoqueLexer -pygments.lexers.templates.ColdfusionLexer -pygments.lexers.templates.ColdfusionMarkupLexer -pygments.lexers.templates.TeaTemplateRootLexer -pygments.lexers.templates.HandlebarsLexer -pygments.lexers.templates.LiquidLexer -pygments.lexers.templates.TwigLexer -pygments.lexers.templates.Angular2Lexer -pygments.lexers.urbi.UrbiscriptLexer -pygments.lexers.typoscript.TypoScriptCssDataLexer -pygments.lexers.typoscript.TypoScriptHtmlDataLexer -pygments.lexers.typoscript.TypoScriptLexer -pygments.lexers.varnish.VCLLexer -pygments.lexers.verification.BoogieLexer -pygments.lexers.verification.SilverLexer -pygments.lexers.x10.X10Lexer -pygments.lexers.whiley.WhileyLexer -pygments.lexers.xorg.XorgLexer -pygments.lexers.webmisc.DuelLexer -pygments.lexers.webmisc.XQueryLexer -pygments.lexers.webmisc.QmlLexer -pygments.lexers.webmisc.CirruLexer -pygments.lexers.webmisc.SlimLexer diff --git a/workhorse-vendor/github.com/alecthomas/chroma/quick/example_test.go b/workhorse-vendor/github.com/alecthomas/chroma/quick/example_test.go deleted file mode 100644 index 3233de8426..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/quick/example_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package quick_test - -import ( - "log" - "os" - - "github.com/alecthomas/chroma/quick" -) - -func Example() { - code := `package main - -func main() { } -` - err := quick.Highlight(os.Stdout, code, "go", "html", "monokai") - if err != nil { - log.Fatal(err) - } -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/quick/quick.go b/workhorse-vendor/github.com/alecthomas/chroma/quick/quick.go deleted file mode 100644 index 1ed3db7e8d..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/quick/quick.go +++ /dev/null @@ -1,44 +0,0 @@ -// Package quick provides simple, no-configuration source code highlighting. -package quick - -import ( - "io" - - "github.com/alecthomas/chroma" - "github.com/alecthomas/chroma/formatters" - "github.com/alecthomas/chroma/lexers" - "github.com/alecthomas/chroma/styles" -) - -// Highlight some text. -// -// Lexer, formatter and style may be empty, in which case a best-effort is made. -func Highlight(w io.Writer, source, lexer, formatter, style string) error { - // Determine lexer. - l := lexers.Get(lexer) - if l == nil { - l = lexers.Analyse(source) - } - if l == nil { - l = lexers.Fallback - } - l = chroma.Coalesce(l) - - // Determine formatter. - f := formatters.Get(formatter) - if f == nil { - f = formatters.Fallback - } - - // Determine style. - s := styles.Get(style) - if s == nil { - s = styles.Fallback - } - - it, err := l.Tokenise(nil, source) - if err != nil { - return err - } - return f.Format(w, s, it) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/regexp.go b/workhorse-vendor/github.com/alecthomas/chroma/regexp.go deleted file mode 100644 index d13d58d69f..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/regexp.go +++ /dev/null @@ -1,461 +0,0 @@ -package chroma - -import ( - "fmt" - "os" - "regexp" - "strings" - "sync" - "unicode/utf8" - - "github.com/dlclark/regexp2" -) - -// A Rule is the fundamental matching unit of the Regex lexer state machine. -type Rule struct { - Pattern string - Type Emitter - Mutator Mutator -} - -// An Emitter takes group matches and returns tokens. -type Emitter interface { - // Emit tokens for the given regex groups. - Emit(groups []string, lexer Lexer) Iterator -} - -// EmitterFunc is a function that is an Emitter. -type EmitterFunc func(groups []string, lexer Lexer) Iterator - -// Emit tokens for groups. -func (e EmitterFunc) Emit(groups []string, lexer Lexer) Iterator { return e(groups, lexer) } - -// ByGroups emits a token for each matching group in the rule's regex. -func ByGroups(emitters ...Emitter) Emitter { - return EmitterFunc(func(groups []string, lexer Lexer) Iterator { - iterators := make([]Iterator, 0, len(groups)-1) - if len(emitters) != len(groups)-1 { - iterators = append(iterators, Error.Emit(groups, lexer)) - // panic(errors.Errorf("number of groups %q does not match number of emitters %v", groups, emitters)) - } else { - for i, group := range groups[1:] { - iterators = append(iterators, emitters[i].Emit([]string{group}, lexer)) - } - } - return Concaterator(iterators...) - }) -} - -// UsingByGroup emits tokens for the matched groups in the regex using a -// "sublexer". Used when lexing code blocks where the name of a sublexer is -// contained within the block, for example on a Markdown text block or SQL -// language block. -// -// The sublexer will be retrieved using sublexerGetFunc (typically -// internal.Get), using the captured value from the matched sublexerNameGroup. -// -// If sublexerGetFunc returns a non-nil lexer for the captured sublexerNameGroup, -// then tokens for the matched codeGroup will be emitted using the retrieved -// lexer. Otherwise, if the sublexer is nil, then tokens will be emitted from -// the passed emitter. -// -// Example: -// -// var Markdown = internal.Register(MustNewLexer( -// &Config{ -// Name: "markdown", -// Aliases: []string{"md", "mkd"}, -// Filenames: []string{"*.md", "*.mkd", "*.markdown"}, -// MimeTypes: []string{"text/x-markdown"}, -// }, -// Rules{ -// "root": { -// {"^(```)(\\w+)(\\n)([\\w\\W]*?)(^```$)", -// UsingByGroup( -// internal.Get, -// 2, 4, -// String, String, String, Text, String, -// ), -// nil, -// }, -// }, -// }, -// )) -// -// See the lexers/m/markdown.go for the complete example. -// -// Note: panic's if the number emitters does not equal the number of matched -// groups in the regex. -func UsingByGroup(sublexerGetFunc func(string) Lexer, sublexerNameGroup, codeGroup int, emitters ...Emitter) Emitter { - return EmitterFunc(func(groups []string, lexer Lexer) Iterator { - // bounds check - if len(emitters) != len(groups)-1 { - panic("UsingByGroup expects number of emitters to be the same as len(groups)-1") - } - - // grab sublexer - sublexer := sublexerGetFunc(groups[sublexerNameGroup]) - - // build iterators - iterators := make([]Iterator, len(groups)-1) - for i, group := range groups[1:] { - if i == codeGroup-1 && sublexer != nil { - var err error - iterators[i], err = sublexer.Tokenise(nil, groups[codeGroup]) - if err != nil { - panic(err) - } - } else { - iterators[i] = emitters[i].Emit([]string{group}, lexer) - } - } - - return Concaterator(iterators...) - }) -} - -// Using returns an Emitter that uses a given Lexer for parsing and emitting. -func Using(lexer Lexer) Emitter { - return EmitterFunc(func(groups []string, _ Lexer) Iterator { - it, err := lexer.Tokenise(&TokeniseOptions{State: "root", Nested: true}, groups[0]) - if err != nil { - panic(err) - } - return it - }) -} - -// UsingSelf is like Using, but uses the current Lexer. -func UsingSelf(state string) Emitter { - return EmitterFunc(func(groups []string, lexer Lexer) Iterator { - it, err := lexer.Tokenise(&TokeniseOptions{State: state, Nested: true}, groups[0]) - if err != nil { - panic(err) - } - return it - }) -} - -// Words creates a regex that matches any of the given literal words. -func Words(prefix, suffix string, words ...string) string { - for i, word := range words { - words[i] = regexp.QuoteMeta(word) - } - return prefix + `(` + strings.Join(words, `|`) + `)` + suffix -} - -// Tokenise text using lexer, returning tokens as a slice. -func Tokenise(lexer Lexer, options *TokeniseOptions, text string) ([]Token, error) { - var out []Token - it, err := lexer.Tokenise(options, text) - if err != nil { - return nil, err - } - for t := it(); t != EOF; t = it() { - out = append(out, t) - } - return out, nil -} - -// Rules maps from state to a sequence of Rules. -type Rules map[string][]Rule - -// Clone returns a clone of the Rules. -func (r Rules) Clone() Rules { - out := map[string][]Rule{} - for key, rules := range r { - out[key] = make([]Rule, len(rules)) - copy(out[key], rules) - } - return out -} - -// MustNewLexer creates a new Lexer or panics. -func MustNewLexer(config *Config, rules Rules) *RegexLexer { - lexer, err := NewLexer(config, rules) - if err != nil { - panic(err) - } - return lexer -} - -// NewLexer creates a new regex-based Lexer. -// -// "rules" is a state machine transitition map. Each key is a state. Values are sets of rules -// that match input, optionally modify lexer state, and output tokens. -func NewLexer(config *Config, rules Rules) (*RegexLexer, error) { - if config == nil { - config = &Config{} - } - if _, ok := rules["root"]; !ok { - return nil, fmt.Errorf("no \"root\" state") - } - compiledRules := map[string][]*CompiledRule{} - for state, rules := range rules { - compiledRules[state] = nil - for _, rule := range rules { - flags := "" - if !config.NotMultiline { - flags += "m" - } - if config.CaseInsensitive { - flags += "i" - } - if config.DotAll { - flags += "s" - } - compiledRules[state] = append(compiledRules[state], &CompiledRule{Rule: rule, flags: flags}) - } - } - return &RegexLexer{ - config: config, - rules: compiledRules, - }, nil -} - -// Trace enables debug tracing. -func (r *RegexLexer) Trace(trace bool) *RegexLexer { - r.trace = trace - return r -} - -// A CompiledRule is a Rule with a pre-compiled regex. -// -// Note that regular expressions are lazily compiled on first use of the lexer. -type CompiledRule struct { - Rule - Regexp *regexp2.Regexp - flags string -} - -// CompiledRules is a map of rule name to sequence of compiled rules in that rule. -type CompiledRules map[string][]*CompiledRule - -// LexerState contains the state for a single lex. -type LexerState struct { - Lexer *RegexLexer - Text []rune - Pos int - Rules CompiledRules - Stack []string - State string - Rule int - // Group matches. - Groups []string - // Custum context for mutators. - MutatorContext map[interface{}]interface{} - iteratorStack []Iterator - options *TokeniseOptions -} - -// Set mutator context. -func (l *LexerState) Set(key interface{}, value interface{}) { - l.MutatorContext[key] = value -} - -// Get mutator context. -func (l *LexerState) Get(key interface{}) interface{} { - return l.MutatorContext[key] -} - -// Iterator returns the next Token from the lexer. -func (l *LexerState) Iterator() Token { // nolint: gocognit - for l.Pos < len(l.Text) && len(l.Stack) > 0 { - // Exhaust the iterator stack, if any. - for len(l.iteratorStack) > 0 { - n := len(l.iteratorStack) - 1 - t := l.iteratorStack[n]() - if t == EOF { - l.iteratorStack = l.iteratorStack[:n] - continue - } - return t - } - - l.State = l.Stack[len(l.Stack)-1] - if l.Lexer.trace { - fmt.Fprintf(os.Stderr, "%s: pos=%d, text=%q\n", l.State, l.Pos, string(l.Text[l.Pos:])) - } - selectedRule, ok := l.Rules[l.State] - if !ok { - panic("unknown state " + l.State) - } - ruleIndex, rule, groups := matchRules(l.Text, l.Pos, selectedRule) - // No match. - if groups == nil { - // From Pygments :\ - // - // If the RegexLexer encounters a newline that is flagged as an error token, the stack is - // emptied and the lexer continues scanning in the 'root' state. This can help producing - // error-tolerant highlighting for erroneous input, e.g. when a single-line string is not - // closed. - if l.Text[l.Pos] == '\n' && l.State != l.options.State { - l.Stack = []string{l.options.State} - continue - } - l.Pos++ - return Token{Error, string(l.Text[l.Pos-1 : l.Pos])} - } - l.Rule = ruleIndex - l.Groups = groups - l.Pos += utf8.RuneCountInString(groups[0]) - if rule.Mutator != nil { - if err := rule.Mutator.Mutate(l); err != nil { - panic(err) - } - } - if rule.Type != nil { - l.iteratorStack = append(l.iteratorStack, rule.Type.Emit(l.Groups, l.Lexer)) - } - } - // Exhaust the IteratorStack, if any. - // Duplicate code, but eh. - for len(l.iteratorStack) > 0 { - n := len(l.iteratorStack) - 1 - t := l.iteratorStack[n]() - if t == EOF { - l.iteratorStack = l.iteratorStack[:n] - continue - } - return t - } - - // If we get to here and we still have text, return it as an error. - if l.Pos != len(l.Text) && len(l.Stack) == 0 { - value := string(l.Text[l.Pos:]) - l.Pos = len(l.Text) - return Token{Type: Error, Value: value} - } - return EOF -} - -// RegexLexer is the default lexer implementation used in Chroma. -type RegexLexer struct { - config *Config - analyser func(text string) float32 - trace bool - - mu sync.Mutex - compiled bool - rules map[string][]*CompiledRule -} - -// SetAnalyser sets the analyser function used to perform content inspection. -func (r *RegexLexer) SetAnalyser(analyser func(text string) float32) *RegexLexer { - r.analyser = analyser - return r -} - -func (r *RegexLexer) AnalyseText(text string) float32 { // nolint - if r.analyser != nil { - return r.analyser(text) - } - return 0.0 -} - -func (r *RegexLexer) Config() *Config { // nolint - return r.config -} - -// Regex compilation is deferred until the lexer is used. This is to avoid significant init() time costs. -func (r *RegexLexer) maybeCompile() (err error) { - r.mu.Lock() - defer r.mu.Unlock() - if r.compiled { - return nil - } - for state, rules := range r.rules { - for i, rule := range rules { - if rule.Regexp == nil { - pattern := "(?:" + rule.Pattern + ")" - if rule.flags != "" { - pattern = "(?" + rule.flags + ")" + pattern - } - pattern = `\G` + pattern - rule.Regexp, err = regexp2.Compile(pattern, 0) - if err != nil { - return fmt.Errorf("failed to compile rule %s.%d: %s", state, i, err) - } - } - } - } -restart: - seen := map[LexerMutator]bool{} - for state := range r.rules { - for i := 0; i < len(r.rules[state]); i++ { - rule := r.rules[state][i] - if compile, ok := rule.Mutator.(LexerMutator); ok { - if seen[compile] { - return fmt.Errorf("saw mutator %T twice; this should not happen", compile) - } - seen[compile] = true - if err := compile.MutateLexer(r.rules, state, i); err != nil { - return err - } - // Process the rules again in case the mutator added/removed rules. - // - // This sounds bad, but shouldn't be significant in practice. - goto restart - } - } - } - r.compiled = true - return nil -} - -func (r *RegexLexer) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { // nolint - if err := r.maybeCompile(); err != nil { - return nil, err - } - if options == nil { - options = defaultOptions - } - if options.EnsureLF { - text = ensureLF(text) - } - if !options.Nested && r.config.EnsureNL && !strings.HasSuffix(text, "\n") { - text += "\n" - } - state := &LexerState{ - options: options, - Lexer: r, - Text: []rune(text), - Stack: []string{options.State}, - Rules: r.rules, - MutatorContext: map[interface{}]interface{}{}, - } - return state.Iterator, nil -} - -func matchRules(text []rune, pos int, rules []*CompiledRule) (int, *CompiledRule, []string) { - for i, rule := range rules { - match, err := rule.Regexp.FindRunesMatchStartingAt(text, pos) - if match != nil && err == nil && match.Index == pos { - groups := []string{} - for _, g := range match.Groups() { - groups = append(groups, g.String()) - } - return i, rule, groups - } - } - return 0, &CompiledRule{}, nil -} - -// replace \r and \r\n with \n -// same as strings.ReplaceAll but more efficient -func ensureLF(text string) string { - buf := make([]byte, len(text)) - var j int - for i := 0; i < len(text); i++ { - c := text[i] - if c == '\r' { - if i < len(text)-1 && text[i+1] == '\n' { - continue - } - c = '\n' - } - buf[j] = c - j++ - } - return string(buf[:j]) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/regexp_test.go b/workhorse-vendor/github.com/alecthomas/chroma/regexp_test.go deleted file mode 100644 index a40f3e06a8..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/regexp_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package chroma - -import ( - "testing" - - "github.com/alecthomas/assert" -) - -func TestNewlineAtEndOfFile(t *testing.T) { - l := Coalesce(MustNewLexer(&Config{EnsureNL: true}, Rules{ - "root": { - {`(\w+)(\n)`, ByGroups(Keyword, Whitespace), nil}, - }, - })) - it, err := l.Tokenise(nil, `hello`) - assert.NoError(t, err) - assert.Equal(t, []Token{{Keyword, "hello"}, {Whitespace, "\n"}}, it.Tokens()) - - l = Coalesce(MustNewLexer(nil, Rules{ - "root": { - {`(\w+)(\n)`, ByGroups(Keyword, Whitespace), nil}, - }, - })) - it, err = l.Tokenise(nil, `hello`) - assert.NoError(t, err) - assert.Equal(t, []Token{{Error, "hello"}}, it.Tokens()) -} - -func TestMatchingAtStart(t *testing.T) { - l := Coalesce(MustNewLexer(&Config{}, Rules{ - "root": { - {`\s+`, Whitespace, nil}, - {`^-`, Punctuation, Push("directive")}, - {`->`, Operator, nil}, - }, - "directive": { - {"module", NameEntity, Pop(1)}, - }, - })) - it, err := l.Tokenise(nil, `-module ->`) - assert.NoError(t, err) - assert.Equal(t, - []Token{{Punctuation, "-"}, {NameEntity, "module"}, {Whitespace, " "}, {Operator, "->"}}, - it.Tokens()) -} - -func TestEnsureLFOption(t *testing.T) { - l := Coalesce(MustNewLexer(&Config{}, Rules{ - "root": { - {`(\w+)(\r?\n|\r)`, ByGroups(Keyword, Whitespace), nil}, - }, - })) - it, err := l.Tokenise(&TokeniseOptions{ - State: "root", - EnsureLF: true, - }, "hello\r\nworld\r") - assert.NoError(t, err) - assert.Equal(t, []Token{ - {Keyword, "hello"}, - {Whitespace, "\n"}, - {Keyword, "world"}, - {Whitespace, "\n"}, - }, it.Tokens()) - - l = Coalesce(MustNewLexer(nil, Rules{ - "root": { - {`(\w+)(\r?\n|\r)`, ByGroups(Keyword, Whitespace), nil}, - }, - })) - it, err = l.Tokenise(&TokeniseOptions{ - State: "root", - EnsureLF: false, - }, "hello\r\nworld\r") - assert.NoError(t, err) - assert.Equal(t, []Token{ - {Keyword, "hello"}, - {Whitespace, "\r\n"}, - {Keyword, "world"}, - {Whitespace, "\r"}, - }, it.Tokens()) -} - -func TestEnsureLFFunc(t *testing.T) { - tests := []struct{ in, out string }{ - {in: "", out: ""}, - {in: "abc", out: "abc"}, - {in: "\r", out: "\n"}, - {in: "a\r", out: "a\n"}, - {in: "\rb", out: "\nb"}, - {in: "a\rb", out: "a\nb"}, - {in: "\r\n", out: "\n"}, - {in: "a\r\n", out: "a\n"}, - {in: "\r\nb", out: "\nb"}, - {in: "a\r\nb", out: "a\nb"}, - {in: "\r\r\r\n\r", out: "\n\n\n\n"}, - } - for _, test := range tests { - out := ensureLF(test.in) - assert.Equal(t, out, test.out) - } -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/remap.go b/workhorse-vendor/github.com/alecthomas/chroma/remap.go deleted file mode 100644 index cfb5c38147..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/remap.go +++ /dev/null @@ -1,80 +0,0 @@ -package chroma - -type remappingLexer struct { - lexer Lexer - mapper func(Token) []Token -} - -// RemappingLexer remaps a token to a set of, potentially empty, tokens. -func RemappingLexer(lexer Lexer, mapper func(Token) []Token) Lexer { - return &remappingLexer{lexer, mapper} -} - -func (r *remappingLexer) Config() *Config { - return r.lexer.Config() -} - -func (r *remappingLexer) Tokenise(options *TokeniseOptions, text string) (Iterator, error) { - it, err := r.lexer.Tokenise(options, text) - if err != nil { - return nil, err - } - var buffer []Token - return func() Token { - for { - if len(buffer) > 0 { - t := buffer[0] - buffer = buffer[1:] - return t - } - t := it() - if t == EOF { - return t - } - buffer = r.mapper(t) - } - }, nil -} - -// TypeMapping defines type maps for the TypeRemappingLexer. -type TypeMapping []struct { - From, To TokenType - Words []string -} - -// TypeRemappingLexer remaps types of tokens coming from a parent Lexer. -// -// eg. Map "defvaralias" tokens of type NameVariable to NameFunction: -// -// mapping := TypeMapping{ -// {NameVariable, NameFunction, []string{"defvaralias"}, -// } -// lexer = TypeRemappingLexer(lexer, mapping) -func TypeRemappingLexer(lexer Lexer, mapping TypeMapping) Lexer { - // Lookup table for fast remapping. - lut := map[TokenType]map[string]TokenType{} - for _, rt := range mapping { - km, ok := lut[rt.From] - if !ok { - km = map[string]TokenType{} - lut[rt.From] = km - } - if len(rt.Words) == 0 { - km[""] = rt.To - } else { - for _, k := range rt.Words { - km[k] = rt.To - } - } - } - return RemappingLexer(lexer, func(t Token) []Token { - if k, ok := lut[t.Type]; ok { - if tt, ok := k[t.Value]; ok { - t.Type = tt - } else if tt, ok := k[""]; ok { - t.Type = tt - } - } - return []Token{t} - }) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/remap_test.go b/workhorse-vendor/github.com/alecthomas/chroma/remap_test.go deleted file mode 100644 index aefd3f86f5..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/remap_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package chroma - -import ( - "testing" - - "github.com/alecthomas/assert" -) - -func TestRemappingLexer(t *testing.T) { - var lexer Lexer = MustNewLexer(nil, Rules{ - "root": { - {`\s+`, Whitespace, nil}, - {`\w+`, Name, nil}, - }, - }) - lexer = TypeRemappingLexer(lexer, TypeMapping{ - {Name, Keyword, []string{"if", "else"}}, - }) - - it, err := lexer.Tokenise(nil, `if true then print else end`) - assert.NoError(t, err) - expected := []Token{ - {Keyword, "if"}, {TextWhitespace, " "}, {Name, "true"}, {TextWhitespace, " "}, {Name, "then"}, - {TextWhitespace, " "}, {Name, "print"}, {TextWhitespace, " "}, {Keyword, "else"}, - {TextWhitespace, " "}, {Name, "end"}, - } - actual := it.Tokens() - assert.Equal(t, expected, actual) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/style.go b/workhorse-vendor/github.com/alecthomas/chroma/style.go deleted file mode 100644 index dce9e0a7be..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/style.go +++ /dev/null @@ -1,342 +0,0 @@ -package chroma - -import ( - "fmt" - "strings" -) - -// Trilean value for StyleEntry value inheritance. -type Trilean uint8 - -// Trilean states. -const ( - Pass Trilean = iota - Yes - No -) - -func (t Trilean) String() string { - switch t { - case Yes: - return "Yes" - case No: - return "No" - default: - return "Pass" - } -} - -// Prefix returns s with "no" as a prefix if Trilean is no. -func (t Trilean) Prefix(s string) string { - if t == Yes { - return s - } else if t == No { - return "no" + s - } - return "" -} - -// A StyleEntry in the Style map. -type StyleEntry struct { - // Hex colours. - Colour Colour - Background Colour - Border Colour - - Bold Trilean - Italic Trilean - Underline Trilean - NoInherit bool -} - -func (s StyleEntry) String() string { - out := []string{} - if s.Bold != Pass { - out = append(out, s.Bold.Prefix("bold")) - } - if s.Italic != Pass { - out = append(out, s.Italic.Prefix("italic")) - } - if s.Underline != Pass { - out = append(out, s.Underline.Prefix("underline")) - } - if s.NoInherit { - out = append(out, "noinherit") - } - if s.Colour.IsSet() { - out = append(out, s.Colour.String()) - } - if s.Background.IsSet() { - out = append(out, "bg:"+s.Background.String()) - } - if s.Border.IsSet() { - out = append(out, "border:"+s.Border.String()) - } - return strings.Join(out, " ") -} - -// Sub subtracts e from s where elements match. -func (s StyleEntry) Sub(e StyleEntry) StyleEntry { - out := StyleEntry{} - if e.Colour != s.Colour { - out.Colour = s.Colour - } - if e.Background != s.Background { - out.Background = s.Background - } - if e.Bold != s.Bold { - out.Bold = s.Bold - } - if e.Italic != s.Italic { - out.Italic = s.Italic - } - if e.Underline != s.Underline { - out.Underline = s.Underline - } - if e.Border != s.Border { - out.Border = s.Border - } - return out -} - -// Inherit styles from ancestors. -// -// Ancestors should be provided from oldest to newest. -func (s StyleEntry) Inherit(ancestors ...StyleEntry) StyleEntry { - out := s - for i := len(ancestors) - 1; i >= 0; i-- { - if out.NoInherit { - return out - } - ancestor := ancestors[i] - if !out.Colour.IsSet() { - out.Colour = ancestor.Colour - } - if !out.Background.IsSet() { - out.Background = ancestor.Background - } - if !out.Border.IsSet() { - out.Border = ancestor.Border - } - if out.Bold == Pass { - out.Bold = ancestor.Bold - } - if out.Italic == Pass { - out.Italic = ancestor.Italic - } - if out.Underline == Pass { - out.Underline = ancestor.Underline - } - } - return out -} - -func (s StyleEntry) IsZero() bool { - return s.Colour == 0 && s.Background == 0 && s.Border == 0 && s.Bold == Pass && s.Italic == Pass && - s.Underline == Pass && !s.NoInherit -} - -// A StyleBuilder is a mutable structure for building styles. -// -// Once built, a Style is immutable. -type StyleBuilder struct { - entries map[TokenType]string - name string - parent *Style -} - -func NewStyleBuilder(name string) *StyleBuilder { - return &StyleBuilder{name: name, entries: map[TokenType]string{}} -} - -func (s *StyleBuilder) AddAll(entries StyleEntries) *StyleBuilder { - for ttype, entry := range entries { - s.entries[ttype] = entry - } - return s -} - -func (s *StyleBuilder) Get(ttype TokenType) StyleEntry { - // This is less than ideal, but it's the price for having to check errors on each Add(). - entry, _ := ParseStyleEntry(s.entries[ttype]) - return entry.Inherit(s.parent.Get(ttype)) -} - -// Add an entry to the Style map. -// -// See http://pygments.org/docs/styles/#style-rules for details. -func (s *StyleBuilder) Add(ttype TokenType, entry string) *StyleBuilder { // nolint: gocyclo - s.entries[ttype] = entry - return s -} - -func (s *StyleBuilder) AddEntry(ttype TokenType, entry StyleEntry) *StyleBuilder { - s.entries[ttype] = entry.String() - return s -} - -func (s *StyleBuilder) Build() (*Style, error) { - style := &Style{ - Name: s.name, - entries: map[TokenType]StyleEntry{}, - parent: s.parent, - } - for ttype, descriptor := range s.entries { - entry, err := ParseStyleEntry(descriptor) - if err != nil { - return nil, fmt.Errorf("invalid entry for %s: %s", ttype, err) - } - style.entries[ttype] = entry - } - return style, nil -} - -// StyleEntries mapping TokenType to colour definition. -type StyleEntries map[TokenType]string - -// NewStyle creates a new style definition. -func NewStyle(name string, entries StyleEntries) (*Style, error) { - return NewStyleBuilder(name).AddAll(entries).Build() -} - -// MustNewStyle creates a new style or panics. -func MustNewStyle(name string, entries StyleEntries) *Style { - style, err := NewStyle(name, entries) - if err != nil { - panic(err) - } - return style -} - -// A Style definition. -// -// See http://pygments.org/docs/styles/ for details. Semantics are intended to be identical. -type Style struct { - Name string - entries map[TokenType]StyleEntry - parent *Style -} - -// Types that are styled. -func (s *Style) Types() []TokenType { - dedupe := map[TokenType]bool{} - for tt := range s.entries { - dedupe[tt] = true - } - if s.parent != nil { - for _, tt := range s.parent.Types() { - dedupe[tt] = true - } - } - out := make([]TokenType, 0, len(dedupe)) - for tt := range dedupe { - out = append(out, tt) - } - return out -} - -// Builder creates a mutable builder from this Style. -// -// The builder can then be safely modified. This is a cheap operation. -func (s *Style) Builder() *StyleBuilder { - return &StyleBuilder{ - name: s.Name, - entries: map[TokenType]string{}, - parent: s, - } -} - -// Has checks if an exact style entry match exists for a token type. -// -// This is distinct from Get() which will merge parent tokens. -func (s *Style) Has(ttype TokenType) bool { - return !s.get(ttype).IsZero() || s.synthesisable(ttype) -} - -// Get a style entry. Will try sub-category or category if an exact match is not found, and -// finally return the Background. -func (s *Style) Get(ttype TokenType) StyleEntry { - return s.get(ttype).Inherit( - s.get(Background), - s.get(Text), - s.get(ttype.Category()), - s.get(ttype.SubCategory())) -} - -func (s *Style) get(ttype TokenType) StyleEntry { - out := s.entries[ttype] - if out.IsZero() && s.synthesisable(ttype) { - out = s.synthesise(ttype) - } - if out.IsZero() && s.parent != nil { - return s.parent.get(ttype) - } - return out -} - -func (s *Style) synthesise(ttype TokenType) StyleEntry { - bg := s.get(Background) - text := StyleEntry{Colour: bg.Colour} - text.Colour = text.Colour.BrightenOrDarken(0.5) - - switch ttype { - // If we don't have a line highlight colour, make one that is 10% brighter/darker than the background. - case LineHighlight: - return StyleEntry{Background: bg.Background.BrightenOrDarken(0.1)} - - // If we don't have line numbers, use the text colour but 20% brighter/darker - case LineNumbers, LineNumbersTable: - return text - } - return StyleEntry{} -} - -func (s *Style) synthesisable(ttype TokenType) bool { - return ttype == LineHighlight || ttype == LineNumbers || ttype == LineNumbersTable -} - -// ParseStyleEntry parses a Pygments style entry. -func ParseStyleEntry(entry string) (StyleEntry, error) { // nolint: gocyclo - out := StyleEntry{} - parts := strings.Fields(entry) - for _, part := range parts { - switch { - case part == "italic": - out.Italic = Yes - case part == "noitalic": - out.Italic = No - case part == "bold": - out.Bold = Yes - case part == "nobold": - out.Bold = No - case part == "underline": - out.Underline = Yes - case part == "nounderline": - out.Underline = No - case part == "inherit": - out.NoInherit = false - case part == "noinherit": - out.NoInherit = true - case part == "bg:": - out.Background = 0 - case strings.HasPrefix(part, "bg:#"): - out.Background = ParseColour(part[3:]) - if !out.Background.IsSet() { - return StyleEntry{}, fmt.Errorf("invalid background colour %q", part) - } - case strings.HasPrefix(part, "border:#"): - out.Border = ParseColour(part[7:]) - if !out.Border.IsSet() { - return StyleEntry{}, fmt.Errorf("invalid border colour %q", part) - } - case strings.HasPrefix(part, "#"): - out.Colour = ParseColour(part) - if !out.Colour.IsSet() { - return StyleEntry{}, fmt.Errorf("invalid colour %q", part) - } - default: - return StyleEntry{}, fmt.Errorf("unknown style element %q", part) - } - } - return out, nil -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/style_test.go b/workhorse-vendor/github.com/alecthomas/chroma/style_test.go deleted file mode 100644 index fca55b4780..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/style_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package chroma - -import ( - "testing" - - "github.com/alecthomas/assert" -) - -func TestStyleInherit(t *testing.T) { - s, err := NewStyle("test", StyleEntries{ - Name: "bold #f00", - NameVariable: "#fff", - }) - assert.NoError(t, err) - assert.Equal(t, StyleEntry{Colour: 0x1000000, Bold: Yes}, s.Get(NameVariable)) -} - -func TestStyleColours(t *testing.T) { - s, err := NewStyle("test", StyleEntries{ - Name: "#f00 bg:#001 border:#ansiblue", - }) - assert.NoError(t, err) - assert.Equal(t, StyleEntry{Colour: 0xff0001, Background: 0x000012, Border: 0x000100}, s.Get(Name)) -} - -func TestStyleClone(t *testing.T) { - parent, err := NewStyle("test", StyleEntries{ - Background: "bg:#ffffff", - }) - assert.NoError(t, err) - clone, err := parent.Builder().Add(Comment, "#0f0").Build() - assert.NoError(t, err) - - assert.Equal(t, "bg:#ffffff", clone.Get(Background).String()) - assert.Equal(t, "#00ff00 bg:#ffffff", clone.Get(Comment).String()) - assert.Equal(t, "bg:#ffffff", parent.Get(Comment).String()) -} - -func TestSynthesisedStyleEntries(t *testing.T) { - style, err := NewStyle("test", StyleEntries{ - Background: "bg:#ffffff", - }) - assert.NoError(t, err) - assert.True(t, style.Has(LineHighlight)) - assert.True(t, style.Has(LineNumbersTable)) - assert.True(t, style.Has(LineNumbers)) - assert.Equal(t, "bg:#e5e5e5", style.Get(LineHighlight).String()) - assert.Equal(t, "#7f7f7f bg:#ffffff", style.Get(LineNumbers).String()) - assert.Equal(t, "#7f7f7f bg:#ffffff", style.Get(LineNumbersTable).String()) -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/abap.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/abap.go deleted file mode 100644 index b6d07fb271..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/abap.go +++ /dev/null @@ -1,18 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Abap style. -var Abap = Register(chroma.MustNewStyle("abap", chroma.StyleEntries{ - chroma.Comment: "italic #888", - chroma.CommentSpecial: "#888", - chroma.Keyword: "#00f", - chroma.OperatorWord: "#00f", - chroma.Name: "#000", - chroma.LiteralNumber: "#3af", - chroma.LiteralString: "#5a2", - chroma.Error: "#F00", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/algol.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/algol.go deleted file mode 100644 index 1e8a7b4420..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/algol.go +++ /dev/null @@ -1,25 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Algol style. -var Algol = Register(chroma.MustNewStyle("algol", chroma.StyleEntries{ - chroma.Comment: "italic #888", - chroma.CommentPreproc: "bold noitalic #888", - chroma.CommentSpecial: "bold noitalic #888", - chroma.Keyword: "underline bold", - chroma.KeywordDeclaration: "italic", - chroma.NameBuiltin: "bold italic", - chroma.NameBuiltinPseudo: "bold italic", - chroma.NameNamespace: "bold italic #666", - chroma.NameClass: "bold italic #666", - chroma.NameFunction: "bold italic #666", - chroma.NameVariable: "bold italic #666", - chroma.NameConstant: "bold italic #666", - chroma.OperatorWord: "bold", - chroma.LiteralString: "italic #666", - chroma.Error: "border:#FF0000", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/algol_nu.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/algol_nu.go deleted file mode 100644 index f8c6f177e5..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/algol_nu.go +++ /dev/null @@ -1,25 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// AlgolNu style. -var AlgolNu = Register(chroma.MustNewStyle("algol_nu", chroma.StyleEntries{ - chroma.Comment: "italic #888", - chroma.CommentPreproc: "bold noitalic #888", - chroma.CommentSpecial: "bold noitalic #888", - chroma.Keyword: "bold", - chroma.KeywordDeclaration: "italic", - chroma.NameBuiltin: "bold italic", - chroma.NameBuiltinPseudo: "bold italic", - chroma.NameNamespace: "bold italic #666", - chroma.NameClass: "bold italic #666", - chroma.NameFunction: "bold italic #666", - chroma.NameVariable: "bold italic #666", - chroma.NameConstant: "bold italic #666", - chroma.OperatorWord: "bold", - chroma.LiteralString: "italic #666", - chroma.Error: "border:#FF0000", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/api.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/api.go deleted file mode 100644 index f3ce673985..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/api.go +++ /dev/null @@ -1,37 +0,0 @@ -package styles - -import ( - "sort" - - "github.com/alecthomas/chroma" -) - -// Registry of Styles. -var Registry = map[string]*chroma.Style{} - -// Fallback style. Reassign to change the default fallback style. -var Fallback = SwapOff - -// Register a chroma.Style. -func Register(style *chroma.Style) *chroma.Style { - Registry[style.Name] = style - return style -} - -// Names of all available styles. -func Names() []string { - out := []string{} - for name := range Registry { - out = append(out, name) - } - sort.Strings(out) - return out -} - -// Get named style, or Fallback. -func Get(name string) *chroma.Style { - if style, ok := Registry[name]; ok { - return style - } - return Fallback -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/arduino.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/arduino.go deleted file mode 100644 index 9e48fb4aeb..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/arduino.go +++ /dev/null @@ -1,25 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Arduino style. -var Arduino = Register(chroma.MustNewStyle("arduino", chroma.StyleEntries{ - chroma.Error: "#a61717", - chroma.Comment: "#95a5a6", - chroma.CommentPreproc: "#728E00", - chroma.Keyword: "#728E00", - chroma.KeywordConstant: "#00979D", - chroma.KeywordPseudo: "#00979D", - chroma.KeywordReserved: "#00979D", - chroma.KeywordType: "#00979D", - chroma.Operator: "#728E00", - chroma.Name: "#434f54", - chroma.NameBuiltin: "#728E00", - chroma.NameFunction: "#D35400", - chroma.NameOther: "#728E00", - chroma.LiteralNumber: "#8A7B52", - chroma.LiteralString: "#7F8C8D", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/autumn.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/autumn.go deleted file mode 100644 index 3966372b9e..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/autumn.go +++ /dev/null @@ -1,43 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Autumn style. -var Autumn = Register(chroma.MustNewStyle("autumn", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "italic #aaaaaa", - chroma.CommentPreproc: "noitalic #4c8317", - chroma.CommentSpecial: "italic #0000aa", - chroma.Keyword: "#0000aa", - chroma.KeywordType: "#00aaaa", - chroma.OperatorWord: "#0000aa", - chroma.NameBuiltin: "#00aaaa", - chroma.NameFunction: "#00aa00", - chroma.NameClass: "underline #00aa00", - chroma.NameNamespace: "underline #00aaaa", - chroma.NameVariable: "#aa0000", - chroma.NameConstant: "#aa0000", - chroma.NameEntity: "bold #800", - chroma.NameAttribute: "#1e90ff", - chroma.NameTag: "bold #1e90ff", - chroma.NameDecorator: "#888888", - chroma.LiteralString: "#aa5500", - chroma.LiteralStringSymbol: "#0000aa", - chroma.LiteralStringRegex: "#009999", - chroma.LiteralNumber: "#009999", - chroma.GenericHeading: "bold #000080", - chroma.GenericSubheading: "bold #800080", - chroma.GenericDeleted: "#aa0000", - chroma.GenericInserted: "#00aa00", - chroma.GenericError: "#aa0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "#555555", - chroma.GenericOutput: "#888888", - chroma.GenericTraceback: "#aa0000", - chroma.GenericUnderline: "underline", - chroma.Error: "#F00 bg:#FAA", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/borland.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/borland.go deleted file mode 100644 index 9c0fff6fcc..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/borland.go +++ /dev/null @@ -1,33 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Borland style. -var Borland = Register(chroma.MustNewStyle("borland", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "italic #008800", - chroma.CommentPreproc: "noitalic #008080", - chroma.CommentSpecial: "noitalic bold", - chroma.LiteralString: "#0000FF", - chroma.LiteralStringChar: "#800080", - chroma.LiteralNumber: "#0000FF", - chroma.Keyword: "bold #000080", - chroma.OperatorWord: "bold", - chroma.NameTag: "bold #000080", - chroma.NameAttribute: "#FF0000", - chroma.GenericHeading: "#999999", - chroma.GenericSubheading: "#aaaaaa", - chroma.GenericDeleted: "bg:#ffdddd #000000", - chroma.GenericInserted: "bg:#ddffdd #000000", - chroma.GenericError: "#aa0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "#555555", - chroma.GenericOutput: "#888888", - chroma.GenericTraceback: "#aa0000", - chroma.GenericUnderline: "underline", - chroma.Error: "bg:#e3d2d2 #a61717", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/bw.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/bw.go deleted file mode 100644 index 3e800d5a7a..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/bw.go +++ /dev/null @@ -1,30 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// BlackWhite style. -var BlackWhite = Register(chroma.MustNewStyle("bw", chroma.StyleEntries{ - chroma.Comment: "italic", - chroma.CommentPreproc: "noitalic", - chroma.Keyword: "bold", - chroma.KeywordPseudo: "nobold", - chroma.KeywordType: "nobold", - chroma.OperatorWord: "bold", - chroma.NameClass: "bold", - chroma.NameNamespace: "bold", - chroma.NameException: "bold", - chroma.NameEntity: "bold", - chroma.NameTag: "bold", - chroma.LiteralString: "italic", - chroma.LiteralStringInterpol: "bold", - chroma.LiteralStringEscape: "bold", - chroma.GenericHeading: "bold", - chroma.GenericSubheading: "bold", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "bold", - chroma.Error: "border:#FF0000", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/colorful.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/colorful.go deleted file mode 100644 index dc77c5bfec..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/colorful.go +++ /dev/null @@ -1,59 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Colorful style. -var Colorful = Register(chroma.MustNewStyle("colorful", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "#888", - chroma.CommentPreproc: "#579", - chroma.CommentSpecial: "bold #cc0000", - chroma.Keyword: "bold #080", - chroma.KeywordPseudo: "#038", - chroma.KeywordType: "#339", - chroma.Operator: "#333", - chroma.OperatorWord: "bold #000", - chroma.NameBuiltin: "#007020", - chroma.NameFunction: "bold #06B", - chroma.NameClass: "bold #B06", - chroma.NameNamespace: "bold #0e84b5", - chroma.NameException: "bold #F00", - chroma.NameVariable: "#963", - chroma.NameVariableInstance: "#33B", - chroma.NameVariableClass: "#369", - chroma.NameVariableGlobal: "bold #d70", - chroma.NameConstant: "bold #036", - chroma.NameLabel: "bold #970", - chroma.NameEntity: "bold #800", - chroma.NameAttribute: "#00C", - chroma.NameTag: "#070", - chroma.NameDecorator: "bold #555", - chroma.LiteralString: "bg:#fff0f0", - chroma.LiteralStringChar: "#04D bg:", - chroma.LiteralStringDoc: "#D42 bg:", - chroma.LiteralStringInterpol: "bg:#eee", - chroma.LiteralStringEscape: "bold #666", - chroma.LiteralStringRegex: "bg:#fff0ff #000", - chroma.LiteralStringSymbol: "#A60 bg:", - chroma.LiteralStringOther: "#D20", - chroma.LiteralNumber: "bold #60E", - chroma.LiteralNumberInteger: "bold #00D", - chroma.LiteralNumberFloat: "bold #60E", - chroma.LiteralNumberHex: "bold #058", - chroma.LiteralNumberOct: "bold #40E", - chroma.GenericHeading: "bold #000080", - chroma.GenericSubheading: "bold #800080", - chroma.GenericDeleted: "#A00000", - chroma.GenericInserted: "#00A000", - chroma.GenericError: "#FF0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "bold #c65d09", - chroma.GenericOutput: "#888", - chroma.GenericTraceback: "#04D", - chroma.GenericUnderline: "underline", - chroma.Error: "#F00 bg:#FAA", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/dracula.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/dracula.go deleted file mode 100644 index 46e9d5b5b3..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/dracula.go +++ /dev/null @@ -1,81 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Dracula Style -var Dracula = Register(chroma.MustNewStyle("dracula", chroma.StyleEntries{ - chroma.Comment: "#6272a4", - chroma.CommentHashbang: "#6272a4", - chroma.CommentMultiline: "#6272a4", - chroma.CommentPreproc: "#ff79c6", - chroma.CommentSingle: "#6272a4", - chroma.CommentSpecial: "#6272a4", - chroma.Generic: "#f8f8f2", - chroma.GenericDeleted: "#8b080b", - chroma.GenericEmph: "#f8f8f2 underline", - chroma.GenericError: "#f8f8f2", - chroma.GenericHeading: "#f8f8f2 bold", - chroma.GenericInserted: "#f8f8f2 bold", - chroma.GenericOutput: "#44475a", - chroma.GenericPrompt: "#f8f8f2", - chroma.GenericStrong: "#f8f8f2", - chroma.GenericSubheading: "#f8f8f2 bold", - chroma.GenericTraceback: "#f8f8f2", - chroma.GenericUnderline: "underline", - chroma.Error: "#f8f8f2", - chroma.Keyword: "#ff79c6", - chroma.KeywordConstant: "#ff79c6", - chroma.KeywordDeclaration: "#8be9fd italic", - chroma.KeywordNamespace: "#ff79c6", - chroma.KeywordPseudo: "#ff79c6", - chroma.KeywordReserved: "#ff79c6", - chroma.KeywordType: "#8be9fd", - chroma.Literal: "#f8f8f2", - chroma.LiteralDate: "#f8f8f2", - chroma.Name: "#f8f8f2", - chroma.NameAttribute: "#50fa7b", - chroma.NameBuiltin: "#8be9fd italic", - chroma.NameBuiltinPseudo: "#f8f8f2", - chroma.NameClass: "#50fa7b", - chroma.NameConstant: "#f8f8f2", - chroma.NameDecorator: "#f8f8f2", - chroma.NameEntity: "#f8f8f2", - chroma.NameException: "#f8f8f2", - chroma.NameFunction: "#50fa7b", - chroma.NameLabel: "#8be9fd italic", - chroma.NameNamespace: "#f8f8f2", - chroma.NameOther: "#f8f8f2", - chroma.NameTag: "#ff79c6", - chroma.NameVariable: "#8be9fd italic", - chroma.NameVariableClass: "#8be9fd italic", - chroma.NameVariableGlobal: "#8be9fd italic", - chroma.NameVariableInstance: "#8be9fd italic", - chroma.LiteralNumber: "#bd93f9", - chroma.LiteralNumberBin: "#bd93f9", - chroma.LiteralNumberFloat: "#bd93f9", - chroma.LiteralNumberHex: "#bd93f9", - chroma.LiteralNumberInteger: "#bd93f9", - chroma.LiteralNumberIntegerLong: "#bd93f9", - chroma.LiteralNumberOct: "#bd93f9", - chroma.Operator: "#ff79c6", - chroma.OperatorWord: "#ff79c6", - chroma.Other: "#f8f8f2", - chroma.Punctuation: "#f8f8f2", - chroma.LiteralString: "#f1fa8c", - chroma.LiteralStringBacktick: "#f1fa8c", - chroma.LiteralStringChar: "#f1fa8c", - chroma.LiteralStringDoc: "#f1fa8c", - chroma.LiteralStringDouble: "#f1fa8c", - chroma.LiteralStringEscape: "#f1fa8c", - chroma.LiteralStringHeredoc: "#f1fa8c", - chroma.LiteralStringInterpol: "#f1fa8c", - chroma.LiteralStringOther: "#f1fa8c", - chroma.LiteralStringRegex: "#f1fa8c", - chroma.LiteralStringSingle: "#f1fa8c", - chroma.LiteralStringSymbol: "#f1fa8c", - chroma.Text: "#f8f8f2", - chroma.TextWhitespace: "#f8f8f2", - chroma.Background: " bg:#282a36", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/emacs.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/emacs.go deleted file mode 100644 index 4835abd714..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/emacs.go +++ /dev/null @@ -1,51 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Emacs style. -var Emacs = Register(chroma.MustNewStyle("emacs", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "italic #008800", - chroma.CommentPreproc: "noitalic", - chroma.CommentSpecial: "noitalic bold", - chroma.Keyword: "bold #AA22FF", - chroma.KeywordPseudo: "nobold", - chroma.KeywordType: "bold #00BB00", - chroma.Operator: "#666666", - chroma.OperatorWord: "bold #AA22FF", - chroma.NameBuiltin: "#AA22FF", - chroma.NameFunction: "#00A000", - chroma.NameClass: "#0000FF", - chroma.NameNamespace: "bold #0000FF", - chroma.NameException: "bold #D2413A", - chroma.NameVariable: "#B8860B", - chroma.NameConstant: "#880000", - chroma.NameLabel: "#A0A000", - chroma.NameEntity: "bold #999999", - chroma.NameAttribute: "#BB4444", - chroma.NameTag: "bold #008000", - chroma.NameDecorator: "#AA22FF", - chroma.LiteralString: "#BB4444", - chroma.LiteralStringDoc: "italic", - chroma.LiteralStringInterpol: "bold #BB6688", - chroma.LiteralStringEscape: "bold #BB6622", - chroma.LiteralStringRegex: "#BB6688", - chroma.LiteralStringSymbol: "#B8860B", - chroma.LiteralStringOther: "#008000", - chroma.LiteralNumber: "#666666", - chroma.GenericHeading: "bold #000080", - chroma.GenericSubheading: "bold #800080", - chroma.GenericDeleted: "#A00000", - chroma.GenericInserted: "#00A000", - chroma.GenericError: "#FF0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "bold #000080", - chroma.GenericOutput: "#888", - chroma.GenericTraceback: "#04D", - chroma.GenericUnderline: "underline", - chroma.Error: "border:#FF0000", - chroma.Background: " bg:#f8f8f8", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/friendly.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/friendly.go deleted file mode 100644 index ad02341d3a..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/friendly.go +++ /dev/null @@ -1,51 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Friendly style. -var Friendly = Register(chroma.MustNewStyle("friendly", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "italic #60a0b0", - chroma.CommentPreproc: "noitalic #007020", - chroma.CommentSpecial: "noitalic bg:#fff0f0", - chroma.Keyword: "bold #007020", - chroma.KeywordPseudo: "nobold", - chroma.KeywordType: "nobold #902000", - chroma.Operator: "#666666", - chroma.OperatorWord: "bold #007020", - chroma.NameBuiltin: "#007020", - chroma.NameFunction: "#06287e", - chroma.NameClass: "bold #0e84b5", - chroma.NameNamespace: "bold #0e84b5", - chroma.NameException: "#007020", - chroma.NameVariable: "#bb60d5", - chroma.NameConstant: "#60add5", - chroma.NameLabel: "bold #002070", - chroma.NameEntity: "bold #d55537", - chroma.NameAttribute: "#4070a0", - chroma.NameTag: "bold #062873", - chroma.NameDecorator: "bold #555555", - chroma.LiteralString: "#4070a0", - chroma.LiteralStringDoc: "italic", - chroma.LiteralStringInterpol: "italic #70a0d0", - chroma.LiteralStringEscape: "bold #4070a0", - chroma.LiteralStringRegex: "#235388", - chroma.LiteralStringSymbol: "#517918", - chroma.LiteralStringOther: "#c65d09", - chroma.LiteralNumber: "#40a070", - chroma.GenericHeading: "bold #000080", - chroma.GenericSubheading: "bold #800080", - chroma.GenericDeleted: "#A00000", - chroma.GenericInserted: "#00A000", - chroma.GenericError: "#FF0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "bold #c65d09", - chroma.GenericOutput: "#888", - chroma.GenericTraceback: "#04D", - chroma.GenericUnderline: "underline", - chroma.Error: "border:#FF0000", - chroma.Background: " bg:#f0f0f0", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/fruity.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/fruity.go deleted file mode 100644 index c2577fa279..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/fruity.go +++ /dev/null @@ -1,26 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Fruity style. -var Fruity = Register(chroma.MustNewStyle("fruity", chroma.StyleEntries{ - chroma.TextWhitespace: "#888888", - chroma.Background: "#ffffff bg:#111111", - chroma.GenericOutput: "#444444 bg:#222222", - chroma.Keyword: "#fb660a bold", - chroma.KeywordPseudo: "nobold", - chroma.LiteralNumber: "#0086f7 bold", - chroma.NameTag: "#fb660a bold", - chroma.NameVariable: "#fb660a", - chroma.Comment: "#008800 bg:#0f140f italic", - chroma.NameAttribute: "#ff0086 bold", - chroma.LiteralString: "#0086d2", - chroma.NameFunction: "#ff0086 bold", - chroma.GenericHeading: "#ffffff bold", - chroma.KeywordType: "#cdcaa9 bold", - chroma.GenericSubheading: "#ffffff bold", - chroma.NameConstant: "#0086d2", - chroma.CommentPreproc: "#ff0007 bold", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/github.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/github.go deleted file mode 100644 index 7ef2481ca0..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/github.go +++ /dev/null @@ -1,51 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// GitHub style. -var GitHub = Register(chroma.MustNewStyle("github", chroma.StyleEntries{ - chroma.CommentMultiline: "italic #999988", - chroma.CommentPreproc: "bold #999999", - chroma.CommentSingle: "italic #999988", - chroma.CommentSpecial: "bold italic #999999", - chroma.Comment: "italic #999988", - chroma.Error: "bg:#e3d2d2 #a61717", - chroma.GenericDeleted: "bg:#ffdddd #000000", - chroma.GenericEmph: "italic #000000", - chroma.GenericError: "#aa0000", - chroma.GenericHeading: "#999999", - chroma.GenericInserted: "bg:#ddffdd #000000", - chroma.GenericOutput: "#888888", - chroma.GenericPrompt: "#555555", - chroma.GenericStrong: "bold", - chroma.GenericSubheading: "#aaaaaa", - chroma.GenericTraceback: "#aa0000", - chroma.GenericUnderline: "underline", - chroma.KeywordType: "bold #445588", - chroma.Keyword: "bold #000000", - chroma.LiteralNumber: "#009999", - chroma.LiteralStringRegex: "#009926", - chroma.LiteralStringSymbol: "#990073", - chroma.LiteralString: "#d14", - chroma.NameAttribute: "#008080", - chroma.NameBuiltinPseudo: "#999999", - chroma.NameBuiltin: "#0086B3", - chroma.NameClass: "bold #445588", - chroma.NameConstant: "#008080", - chroma.NameDecorator: "bold #3c5d5d", - chroma.NameEntity: "#800080", - chroma.NameException: "bold #990000", - chroma.NameFunction: "bold #990000", - chroma.NameLabel: "bold #990000", - chroma.NameNamespace: "#555555", - chroma.NameTag: "#000080", - chroma.NameVariableClass: "#008080", - chroma.NameVariableGlobal: "#008080", - chroma.NameVariableInstance: "#008080", - chroma.NameVariable: "#008080", - chroma.Operator: "bold #000000", - chroma.TextWhitespace: "#bbbbbb", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/igor.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/igor.go deleted file mode 100644 index 6a6d4cd081..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/igor.go +++ /dev/null @@ -1,16 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Igor style. -var Igor = Register(chroma.MustNewStyle("igor", chroma.StyleEntries{ - chroma.Comment: "italic #FF0000", - chroma.Keyword: "#0000FF", - chroma.NameFunction: "#C34E00", - chroma.NameDecorator: "#CC00A3", - chroma.NameClass: "#007575", - chroma.LiteralString: "#009C00", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/lovelace.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/lovelace.go deleted file mode 100644 index 074cc08967..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/lovelace.go +++ /dev/null @@ -1,60 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Lovelace style. -var Lovelace = Register(chroma.MustNewStyle("lovelace", chroma.StyleEntries{ - chroma.TextWhitespace: "#a89028", - chroma.Comment: "italic #888888", - chroma.CommentHashbang: "#287088", - chroma.CommentMultiline: "#888888", - chroma.CommentPreproc: "noitalic #289870", - chroma.Keyword: "#2838b0", - chroma.KeywordConstant: "italic #444444", - chroma.KeywordDeclaration: "italic", - chroma.KeywordType: "italic", - chroma.Operator: "#666666", - chroma.OperatorWord: "#a848a8", - chroma.Punctuation: "#888888", - chroma.NameAttribute: "#388038", - chroma.NameBuiltin: "#388038", - chroma.NameBuiltinPseudo: "italic", - chroma.NameClass: "#287088", - chroma.NameConstant: "#b85820", - chroma.NameDecorator: "#287088", - chroma.NameEntity: "#709030", - chroma.NameException: "#908828", - chroma.NameFunction: "#785840", - chroma.NameFunctionMagic: "#b85820", - chroma.NameLabel: "#289870", - chroma.NameNamespace: "#289870", - chroma.NameTag: "#2838b0", - chroma.NameVariable: "#b04040", - chroma.NameVariableGlobal: "#908828", - chroma.NameVariableMagic: "#b85820", - chroma.LiteralString: "#b83838", - chroma.LiteralStringAffix: "#444444", - chroma.LiteralStringChar: "#a848a8", - chroma.LiteralStringDelimiter: "#b85820", - chroma.LiteralStringDoc: "italic #b85820", - chroma.LiteralStringEscape: "#709030", - chroma.LiteralStringInterpol: "underline", - chroma.LiteralStringOther: "#a848a8", - chroma.LiteralStringRegex: "#a848a8", - chroma.LiteralNumber: "#444444", - chroma.GenericDeleted: "#c02828", - chroma.GenericEmph: "italic", - chroma.GenericError: "#c02828", - chroma.GenericHeading: "#666666", - chroma.GenericSubheading: "#444444", - chroma.GenericInserted: "#388038", - chroma.GenericOutput: "#666666", - chroma.GenericPrompt: "#444444", - chroma.GenericStrong: "bold", - chroma.GenericTraceback: "#2838b0", - chroma.GenericUnderline: "underline", - chroma.Error: "bg:#a848a8", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/manni.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/manni.go deleted file mode 100644 index 9942e7d091..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/manni.go +++ /dev/null @@ -1,51 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Manni style. -var Manni = Register(chroma.MustNewStyle("manni", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "italic #0099FF", - chroma.CommentPreproc: "noitalic #009999", - chroma.CommentSpecial: "bold", - chroma.Keyword: "bold #006699", - chroma.KeywordPseudo: "nobold", - chroma.KeywordType: "#007788", - chroma.Operator: "#555555", - chroma.OperatorWord: "bold #000000", - chroma.NameBuiltin: "#336666", - chroma.NameFunction: "#CC00FF", - chroma.NameClass: "bold #00AA88", - chroma.NameNamespace: "bold #00CCFF", - chroma.NameException: "bold #CC0000", - chroma.NameVariable: "#003333", - chroma.NameConstant: "#336600", - chroma.NameLabel: "#9999FF", - chroma.NameEntity: "bold #999999", - chroma.NameAttribute: "#330099", - chroma.NameTag: "bold #330099", - chroma.NameDecorator: "#9999FF", - chroma.LiteralString: "#CC3300", - chroma.LiteralStringDoc: "italic", - chroma.LiteralStringInterpol: "#AA0000", - chroma.LiteralStringEscape: "bold #CC3300", - chroma.LiteralStringRegex: "#33AAAA", - chroma.LiteralStringSymbol: "#FFCC33", - chroma.LiteralStringOther: "#CC3300", - chroma.LiteralNumber: "#FF6600", - chroma.GenericHeading: "bold #003300", - chroma.GenericSubheading: "bold #003300", - chroma.GenericDeleted: "border:#CC0000 bg:#FFCCCC", - chroma.GenericInserted: "border:#00CC00 bg:#CCFFCC", - chroma.GenericError: "#FF0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "bold #000099", - chroma.GenericOutput: "#AAAAAA", - chroma.GenericTraceback: "#99CC66", - chroma.GenericUnderline: "underline", - chroma.Error: "bg:#FFAAAA #AA0000", - chroma.Background: " bg:#f0f3f3", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/monokai.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/monokai.go deleted file mode 100644 index 2586795ace..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/monokai.go +++ /dev/null @@ -1,36 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Monokai style. -var Monokai = Register(chroma.MustNewStyle("monokai", chroma.StyleEntries{ - chroma.Text: "#f8f8f2", - chroma.Error: "#960050 bg:#1e0010", - chroma.Comment: "#75715e", - chroma.Keyword: "#66d9ef", - chroma.KeywordNamespace: "#f92672", - chroma.Operator: "#f92672", - chroma.Punctuation: "#f8f8f2", - chroma.Name: "#f8f8f2", - chroma.NameAttribute: "#a6e22e", - chroma.NameClass: "#a6e22e", - chroma.NameConstant: "#66d9ef", - chroma.NameDecorator: "#a6e22e", - chroma.NameException: "#a6e22e", - chroma.NameFunction: "#a6e22e", - chroma.NameOther: "#a6e22e", - chroma.NameTag: "#f92672", - chroma.LiteralNumber: "#ae81ff", - chroma.Literal: "#ae81ff", - chroma.LiteralDate: "#e6db74", - chroma.LiteralString: "#e6db74", - chroma.LiteralStringEscape: "#ae81ff", - chroma.GenericDeleted: "#f92672", - chroma.GenericEmph: "italic", - chroma.GenericInserted: "#a6e22e", - chroma.GenericStrong: "bold", - chroma.GenericSubheading: "#75715e", - chroma.Background: "bg:#272822", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/monokailight.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/monokailight.go deleted file mode 100644 index 61818a6806..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/monokailight.go +++ /dev/null @@ -1,33 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// MonokaiLight style. -var MonokaiLight = Register(chroma.MustNewStyle("monokailight", chroma.StyleEntries{ - chroma.Text: "#272822", - chroma.Error: "#960050 bg:#1e0010", - chroma.Comment: "#75715e", - chroma.Keyword: "#00a8c8", - chroma.KeywordNamespace: "#f92672", - chroma.Operator: "#f92672", - chroma.Punctuation: "#111111", - chroma.Name: "#111111", - chroma.NameAttribute: "#75af00", - chroma.NameClass: "#75af00", - chroma.NameConstant: "#00a8c8", - chroma.NameDecorator: "#75af00", - chroma.NameException: "#75af00", - chroma.NameFunction: "#75af00", - chroma.NameOther: "#75af00", - chroma.NameTag: "#f92672", - chroma.LiteralNumber: "#ae81ff", - chroma.Literal: "#ae81ff", - chroma.LiteralDate: "#d88200", - chroma.LiteralString: "#d88200", - chroma.LiteralStringEscape: "#8045FF", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.Background: " bg:#fafafa", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/murphy.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/murphy.go deleted file mode 100644 index 90e83c76ae..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/murphy.go +++ /dev/null @@ -1,59 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Murphy style. -var Murphy = Register(chroma.MustNewStyle("murphy", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "#666 italic", - chroma.CommentPreproc: "#579 noitalic", - chroma.CommentSpecial: "#c00 bold", - chroma.Keyword: "bold #289", - chroma.KeywordPseudo: "#08f", - chroma.KeywordType: "#66f", - chroma.Operator: "#333", - chroma.OperatorWord: "bold #000", - chroma.NameBuiltin: "#072", - chroma.NameFunction: "bold #5ed", - chroma.NameClass: "bold #e9e", - chroma.NameNamespace: "bold #0e84b5", - chroma.NameException: "bold #F00", - chroma.NameVariable: "#036", - chroma.NameVariableInstance: "#aaf", - chroma.NameVariableClass: "#ccf", - chroma.NameVariableGlobal: "#f84", - chroma.NameConstant: "bold #5ed", - chroma.NameLabel: "bold #970", - chroma.NameEntity: "#800", - chroma.NameAttribute: "#007", - chroma.NameTag: "#070", - chroma.NameDecorator: "bold #555", - chroma.LiteralString: "bg:#e0e0ff", - chroma.LiteralStringChar: "#88F bg:", - chroma.LiteralStringDoc: "#D42 bg:", - chroma.LiteralStringInterpol: "bg:#eee", - chroma.LiteralStringEscape: "bold #666", - chroma.LiteralStringRegex: "bg:#e0e0ff #000", - chroma.LiteralStringSymbol: "#fc8 bg:", - chroma.LiteralStringOther: "#f88", - chroma.LiteralNumber: "bold #60E", - chroma.LiteralNumberInteger: "bold #66f", - chroma.LiteralNumberFloat: "bold #60E", - chroma.LiteralNumberHex: "bold #058", - chroma.LiteralNumberOct: "bold #40E", - chroma.GenericHeading: "bold #000080", - chroma.GenericSubheading: "bold #800080", - chroma.GenericDeleted: "#A00000", - chroma.GenericInserted: "#00A000", - chroma.GenericError: "#FF0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "bold #c65d09", - chroma.GenericOutput: "#888", - chroma.GenericTraceback: "#04D", - chroma.GenericUnderline: "underline", - chroma.Error: "#F00 bg:#FAA", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/native.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/native.go deleted file mode 100644 index 9fae09acae..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/native.go +++ /dev/null @@ -1,42 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Native style. -var Native = Register(chroma.MustNewStyle("native", chroma.StyleEntries{ - chroma.Background: "#d0d0d0 bg:#202020", - chroma.TextWhitespace: "#666666", - chroma.Comment: "italic #999999", - chroma.CommentPreproc: "noitalic bold #cd2828", - chroma.CommentSpecial: "noitalic bold #e50808 bg:#520000", - chroma.Keyword: "bold #6ab825", - chroma.KeywordPseudo: "nobold", - chroma.OperatorWord: "bold #6ab825", - chroma.LiteralString: "#ed9d13", - chroma.LiteralStringOther: "#ffa500", - chroma.LiteralNumber: "#3677a9", - chroma.NameBuiltin: "#24909d", - chroma.NameVariable: "#40ffff", - chroma.NameConstant: "#40ffff", - chroma.NameClass: "underline #447fcf", - chroma.NameFunction: "#447fcf", - chroma.NameNamespace: "underline #447fcf", - chroma.NameException: "#bbbbbb", - chroma.NameTag: "bold #6ab825", - chroma.NameAttribute: "#bbbbbb", - chroma.NameDecorator: "#ffa500", - chroma.GenericHeading: "bold #ffffff", - chroma.GenericSubheading: "underline #ffffff", - chroma.GenericDeleted: "#d22323", - chroma.GenericInserted: "#589819", - chroma.GenericError: "#d22323", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "#aaaaaa", - chroma.GenericOutput: "#cccccc", - chroma.GenericTraceback: "#d22323", - chroma.GenericUnderline: "underline", - chroma.Error: "bg:#e3d2d2 #a61717", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/paraiso-dark.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/paraiso-dark.go deleted file mode 100644 index c8cf473105..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/paraiso-dark.go +++ /dev/null @@ -1,44 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// ParaisoDark style. -var ParaisoDark = Register(chroma.MustNewStyle("paraiso-dark", chroma.StyleEntries{ - chroma.Text: "#e7e9db", - chroma.Error: "#ef6155", - chroma.Comment: "#776e71", - chroma.Keyword: "#815ba4", - chroma.KeywordNamespace: "#5bc4bf", - chroma.KeywordType: "#fec418", - chroma.Operator: "#5bc4bf", - chroma.Punctuation: "#e7e9db", - chroma.Name: "#e7e9db", - chroma.NameAttribute: "#06b6ef", - chroma.NameClass: "#fec418", - chroma.NameConstant: "#ef6155", - chroma.NameDecorator: "#5bc4bf", - chroma.NameException: "#ef6155", - chroma.NameFunction: "#06b6ef", - chroma.NameNamespace: "#fec418", - chroma.NameOther: "#06b6ef", - chroma.NameTag: "#5bc4bf", - chroma.NameVariable: "#ef6155", - chroma.LiteralNumber: "#f99b15", - chroma.Literal: "#f99b15", - chroma.LiteralDate: "#48b685", - chroma.LiteralString: "#48b685", - chroma.LiteralStringChar: "#e7e9db", - chroma.LiteralStringDoc: "#776e71", - chroma.LiteralStringEscape: "#f99b15", - chroma.LiteralStringInterpol: "#f99b15", - chroma.GenericDeleted: "#ef6155", - chroma.GenericEmph: "italic", - chroma.GenericHeading: "bold #e7e9db", - chroma.GenericInserted: "#48b685", - chroma.GenericPrompt: "bold #776e71", - chroma.GenericStrong: "bold", - chroma.GenericSubheading: "bold #5bc4bf", - chroma.Background: "bg:#2f1e2e", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/paraiso-light.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/paraiso-light.go deleted file mode 100644 index b514dfa16a..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/paraiso-light.go +++ /dev/null @@ -1,44 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// ParaisoLight style. -var ParaisoLight = Register(chroma.MustNewStyle("paraiso-light", chroma.StyleEntries{ - chroma.Text: "#2f1e2e", - chroma.Error: "#ef6155", - chroma.Comment: "#8d8687", - chroma.Keyword: "#815ba4", - chroma.KeywordNamespace: "#5bc4bf", - chroma.KeywordType: "#fec418", - chroma.Operator: "#5bc4bf", - chroma.Punctuation: "#2f1e2e", - chroma.Name: "#2f1e2e", - chroma.NameAttribute: "#06b6ef", - chroma.NameClass: "#fec418", - chroma.NameConstant: "#ef6155", - chroma.NameDecorator: "#5bc4bf", - chroma.NameException: "#ef6155", - chroma.NameFunction: "#06b6ef", - chroma.NameNamespace: "#fec418", - chroma.NameOther: "#06b6ef", - chroma.NameTag: "#5bc4bf", - chroma.NameVariable: "#ef6155", - chroma.LiteralNumber: "#f99b15", - chroma.Literal: "#f99b15", - chroma.LiteralDate: "#48b685", - chroma.LiteralString: "#48b685", - chroma.LiteralStringChar: "#2f1e2e", - chroma.LiteralStringDoc: "#8d8687", - chroma.LiteralStringEscape: "#f99b15", - chroma.LiteralStringInterpol: "#f99b15", - chroma.GenericDeleted: "#ef6155", - chroma.GenericEmph: "italic", - chroma.GenericHeading: "bold #2f1e2e", - chroma.GenericInserted: "#48b685", - chroma.GenericPrompt: "bold #8d8687", - chroma.GenericStrong: "bold", - chroma.GenericSubheading: "bold #5bc4bf", - chroma.Background: "bg:#e7e9db", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/pastie.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/pastie.go deleted file mode 100644 index 9a68544392..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/pastie.go +++ /dev/null @@ -1,52 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Pastie style. -var Pastie = Register(chroma.MustNewStyle("pastie", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "#888888", - chroma.CommentPreproc: "bold #cc0000", - chroma.CommentSpecial: "bg:#fff0f0 bold #cc0000", - chroma.LiteralString: "bg:#fff0f0 #dd2200", - chroma.LiteralStringRegex: "bg:#fff0ff #008800", - chroma.LiteralStringOther: "bg:#f0fff0 #22bb22", - chroma.LiteralStringSymbol: "#aa6600", - chroma.LiteralStringInterpol: "#3333bb", - chroma.LiteralStringEscape: "#0044dd", - chroma.OperatorWord: "#008800", - chroma.Keyword: "bold #008800", - chroma.KeywordPseudo: "nobold", - chroma.KeywordType: "#888888", - chroma.NameClass: "bold #bb0066", - chroma.NameException: "bold #bb0066", - chroma.NameFunction: "bold #0066bb", - chroma.NameProperty: "bold #336699", - chroma.NameNamespace: "bold #bb0066", - chroma.NameBuiltin: "#003388", - chroma.NameVariable: "#336699", - chroma.NameVariableClass: "#336699", - chroma.NameVariableInstance: "#3333bb", - chroma.NameVariableGlobal: "#dd7700", - chroma.NameConstant: "bold #003366", - chroma.NameTag: "bold #bb0066", - chroma.NameAttribute: "#336699", - chroma.NameDecorator: "#555555", - chroma.NameLabel: "italic #336699", - chroma.LiteralNumber: "bold #0000DD", - chroma.GenericHeading: "#333", - chroma.GenericSubheading: "#666", - chroma.GenericDeleted: "bg:#ffdddd #000000", - chroma.GenericInserted: "bg:#ddffdd #000000", - chroma.GenericError: "#aa0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "#555555", - chroma.GenericOutput: "#888888", - chroma.GenericTraceback: "#aa0000", - chroma.GenericUnderline: "underline", - chroma.Error: "bg:#e3d2d2 #a61717", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/perldoc.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/perldoc.go deleted file mode 100644 index e1372fdfb4..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/perldoc.go +++ /dev/null @@ -1,44 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Perldoc style. -var Perldoc = Register(chroma.MustNewStyle("perldoc", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "#228B22", - chroma.CommentPreproc: "#1e889b", - chroma.CommentSpecial: "#8B008B bold", - chroma.LiteralString: "#CD5555", - chroma.LiteralStringHeredoc: "#1c7e71 italic", - chroma.LiteralStringRegex: "#1c7e71", - chroma.LiteralStringOther: "#cb6c20", - chroma.LiteralNumber: "#B452CD", - chroma.OperatorWord: "#8B008B", - chroma.Keyword: "#8B008B bold", - chroma.KeywordType: "#00688B", - chroma.NameClass: "#008b45 bold", - chroma.NameException: "#008b45 bold", - chroma.NameFunction: "#008b45", - chroma.NameNamespace: "#008b45 underline", - chroma.NameVariable: "#00688B", - chroma.NameConstant: "#00688B", - chroma.NameDecorator: "#707a7c", - chroma.NameTag: "#8B008B bold", - chroma.NameAttribute: "#658b00", - chroma.NameBuiltin: "#658b00", - chroma.GenericHeading: "bold #000080", - chroma.GenericSubheading: "bold #800080", - chroma.GenericDeleted: "#aa0000", - chroma.GenericInserted: "#00aa00", - chroma.GenericError: "#aa0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "#555555", - chroma.GenericOutput: "#888888", - chroma.GenericTraceback: "#aa0000", - chroma.GenericUnderline: "underline", - chroma.Error: "bg:#e3d2d2 #a61717", - chroma.Background: " bg:#eeeedd", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/pygments.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/pygments.go deleted file mode 100644 index 327033b717..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/pygments.go +++ /dev/null @@ -1,55 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Pygments default theme. -var Pygments = Register(chroma.MustNewStyle("pygments", chroma.StyleEntries{ - chroma.Whitespace: "#bbbbbb", - chroma.Comment: "italic #408080", - chroma.CommentPreproc: "noitalic #BC7A00", - - chroma.Keyword: "bold #008000", - chroma.KeywordPseudo: "nobold", - chroma.KeywordType: "nobold #B00040", - - chroma.Operator: "#666666", - chroma.OperatorWord: "bold #AA22FF", - - chroma.NameBuiltin: "#008000", - chroma.NameFunction: "#0000FF", - chroma.NameClass: "bold #0000FF", - chroma.NameNamespace: "bold #0000FF", - chroma.NameException: "bold #D2413A", - chroma.NameVariable: "#19177C", - chroma.NameConstant: "#880000", - chroma.NameLabel: "#A0A000", - chroma.NameEntity: "bold #999999", - chroma.NameAttribute: "#7D9029", - chroma.NameTag: "bold #008000", - chroma.NameDecorator: "#AA22FF", - - chroma.String: "#BA2121", - chroma.StringDoc: "italic", - chroma.StringInterpol: "bold #BB6688", - chroma.StringEscape: "bold #BB6622", - chroma.StringRegex: "#BB6688", - chroma.StringSymbol: "#19177C", - chroma.StringOther: "#008000", - chroma.Number: "#666666", - - chroma.GenericHeading: "bold #000080", - chroma.GenericSubheading: "bold #800080", - chroma.GenericDeleted: "#A00000", - chroma.GenericInserted: "#00A000", - chroma.GenericError: "#FF0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "bold #000080", - chroma.GenericOutput: "#888", - chroma.GenericTraceback: "#04D", - chroma.GenericUnderline: "underline", - - chroma.Error: "border:#FF0000", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/rainbow_dash.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/rainbow_dash.go deleted file mode 100644 index 37d66ca25b..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/rainbow_dash.go +++ /dev/null @@ -1,47 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// RainbowDash style. -var RainbowDash = Register(chroma.MustNewStyle("rainbow_dash", chroma.StyleEntries{ - chroma.Comment: "italic #0080ff", - chroma.CommentPreproc: "noitalic", - chroma.CommentSpecial: "bold", - chroma.Error: "bg:#cc0000 #ffffff", - chroma.GenericDeleted: "border:#c5060b bg:#ffcccc", - chroma.GenericEmph: "italic", - chroma.GenericError: "#ff0000", - chroma.GenericHeading: "bold #2c5dcd", - chroma.GenericInserted: "border:#00cc00 bg:#ccffcc", - chroma.GenericOutput: "#aaaaaa", - chroma.GenericPrompt: "bold #2c5dcd", - chroma.GenericStrong: "bold", - chroma.GenericSubheading: "bold #2c5dcd", - chroma.GenericTraceback: "#c5060b", - chroma.GenericUnderline: "underline", - chroma.Keyword: "bold #2c5dcd", - chroma.KeywordPseudo: "nobold", - chroma.KeywordType: "#5918bb", - chroma.NameAttribute: "italic #2c5dcd", - chroma.NameBuiltin: "bold #5918bb", - chroma.NameClass: "underline", - chroma.NameConstant: "#318495", - chroma.NameDecorator: "bold #ff8000", - chroma.NameEntity: "bold #5918bb", - chroma.NameException: "bold #5918bb", - chroma.NameFunction: "bold #ff8000", - chroma.NameTag: "bold #2c5dcd", - chroma.LiteralNumber: "bold #5918bb", - chroma.Operator: "#2c5dcd", - chroma.OperatorWord: "bold", - chroma.LiteralString: "#00cc66", - chroma.LiteralStringDoc: "italic", - chroma.LiteralStringEscape: "bold #c5060b", - chroma.LiteralStringOther: "#318495", - chroma.LiteralStringSymbol: "bold #c5060b", - chroma.Text: "#4d4d4d", - chroma.TextWhitespace: "#cbcbcb", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/rrt.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/rrt.go deleted file mode 100644 index 2ccf2cadfc..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/rrt.go +++ /dev/null @@ -1,20 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Rrt style. -var Rrt = Register(chroma.MustNewStyle("rrt", chroma.StyleEntries{ - chroma.CommentPreproc: "#e5e5e5", - chroma.Comment: "#00ff00", - chroma.KeywordType: "#ee82ee", - chroma.Keyword: "#ff0000", - chroma.LiteralNumber: "#ff6600", - chroma.LiteralStringSymbol: "#ff6600", - chroma.LiteralString: "#87ceeb", - chroma.NameFunction: "#ffff00", - chroma.NameConstant: "#7fffd4", - chroma.NameVariable: "#eedd82", - chroma.Background: "#f8f8f2 bg:#000000", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-dark.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-dark.go deleted file mode 100644 index 2724df24e2..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-dark.go +++ /dev/null @@ -1,46 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// SolarizedDark style. -var SolarizedDark = Register(chroma.MustNewStyle("solarized-dark", chroma.StyleEntries{ - chroma.Keyword: "#719e07", - chroma.KeywordConstant: "#CB4B16", - chroma.KeywordDeclaration: "#268BD2", - chroma.KeywordReserved: "#268BD2", - chroma.KeywordType: "#DC322F", - chroma.NameAttribute: "#93A1A1", - chroma.NameBuiltin: "#B58900", - chroma.NameBuiltinPseudo: "#268BD2", - chroma.NameClass: "#268BD2", - chroma.NameConstant: "#CB4B16", - chroma.NameDecorator: "#268BD2", - chroma.NameEntity: "#CB4B16", - chroma.NameException: "#CB4B16", - chroma.NameFunction: "#268BD2", - chroma.NameTag: "#268BD2", - chroma.NameVariable: "#268BD2", - chroma.LiteralString: "#2AA198", - chroma.LiteralStringBacktick: "#586E75", - chroma.LiteralStringChar: "#2AA198", - chroma.LiteralStringDoc: "#93A1A1", - chroma.LiteralStringEscape: "#CB4B16", - chroma.LiteralStringHeredoc: "#93A1A1", - chroma.LiteralStringRegex: "#DC322F", - chroma.LiteralNumber: "#2AA198", - chroma.Operator: "#719e07", - chroma.Comment: "#586E75", - chroma.CommentPreproc: "#719e07", - chroma.CommentSpecial: "#719e07", - chroma.GenericDeleted: "#DC322F", - chroma.GenericEmph: "italic", - chroma.GenericError: "#DC322F bold", - chroma.GenericHeading: "#CB4B16", - chroma.GenericInserted: "#719e07", - chroma.GenericStrong: "bold", - chroma.GenericSubheading: "#268BD2", - chroma.Background: "#93A1A1 bg:#002B36", - chroma.Other: "#CB4B16", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-dark256.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-dark256.go deleted file mode 100644 index a24ddc1539..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-dark256.go +++ /dev/null @@ -1,48 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// SolarizedDark256 style. -var SolarizedDark256 = Register(chroma.MustNewStyle("solarized-dark256", chroma.StyleEntries{ - chroma.Keyword: "#5f8700", - chroma.KeywordConstant: "#d75f00", - chroma.KeywordDeclaration: "#0087ff", - chroma.KeywordNamespace: "#d75f00", - chroma.KeywordReserved: "#0087ff", - chroma.KeywordType: "#af0000", - chroma.NameAttribute: "#8a8a8a", - chroma.NameBuiltin: "#0087ff", - chroma.NameBuiltinPseudo: "#0087ff", - chroma.NameClass: "#0087ff", - chroma.NameConstant: "#d75f00", - chroma.NameDecorator: "#0087ff", - chroma.NameEntity: "#d75f00", - chroma.NameException: "#af8700", - chroma.NameFunction: "#0087ff", - chroma.NameTag: "#0087ff", - chroma.NameVariable: "#0087ff", - chroma.LiteralString: "#00afaf", - chroma.LiteralStringBacktick: "#4e4e4e", - chroma.LiteralStringChar: "#00afaf", - chroma.LiteralStringDoc: "#00afaf", - chroma.LiteralStringEscape: "#af0000", - chroma.LiteralStringHeredoc: "#00afaf", - chroma.LiteralStringRegex: "#af0000", - chroma.LiteralNumber: "#00afaf", - chroma.Operator: "#8a8a8a", - chroma.OperatorWord: "#5f8700", - chroma.Comment: "#4e4e4e", - chroma.CommentPreproc: "#5f8700", - chroma.CommentSpecial: "#5f8700", - chroma.GenericDeleted: "#af0000", - chroma.GenericEmph: "italic", - chroma.GenericError: "#af0000 bold", - chroma.GenericHeading: "#d75f00", - chroma.GenericInserted: "#5f8700", - chroma.GenericStrong: "bold", - chroma.GenericSubheading: "#0087ff", - chroma.Background: "#8a8a8a bg:#1c1c1c", - chroma.Other: "#d75f00", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-light.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-light.go deleted file mode 100644 index b6d5234a78..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/solarized-light.go +++ /dev/null @@ -1,24 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// SolarizedLight style. -var SolarizedLight = Register(chroma.MustNewStyle("solarized-light", chroma.StyleEntries{ - chroma.Text: "bg: #eee8d5 #586e75", - chroma.Keyword: "#859900", - chroma.KeywordConstant: "bold", - chroma.KeywordNamespace: "#dc322f bold", - chroma.KeywordType: "bold", - chroma.Name: "#268bd2", - chroma.NameBuiltin: "#cb4b16", - chroma.NameClass: "#cb4b16", - chroma.NameTag: "bold", - chroma.Literal: "#2aa198", - chroma.LiteralNumber: "bold", - chroma.OperatorWord: "#859900", - chroma.Comment: "#93a1a1 italic", - chroma.Generic: "#d33682", - chroma.Background: " bg:#eee8d5", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/swapoff.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/swapoff.go deleted file mode 100644 index e4daae61c1..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/swapoff.go +++ /dev/null @@ -1,25 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// SwapOff theme. -var SwapOff = Register(chroma.MustNewStyle("swapoff", chroma.StyleEntries{ - chroma.Background: "#lightgray bg:#black", - chroma.Number: "bold #ansiyellow", - chroma.Comment: "#ansiteal", - chroma.CommentPreproc: "bold #ansigreen", - chroma.String: "bold #ansiturquoise", - chroma.Keyword: "bold #ansiwhite", - chroma.NameKeyword: "bold #ansiwhite", - chroma.NameBuiltin: "bold #ansiwhite", - chroma.GenericHeading: "bold", - chroma.GenericSubheading: "bold", - chroma.GenericStrong: "bold", - chroma.GenericUnderline: "underline", - chroma.NameTag: "bold", - chroma.NameAttribute: "#ansiteal", - chroma.Error: "#ansired", - chroma.LiteralDate: "bold #ansiyellow", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/tango.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/tango.go deleted file mode 100644 index ae1afe0643..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/tango.go +++ /dev/null @@ -1,79 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Tango style. -var Tango = Register(chroma.MustNewStyle("tango", chroma.StyleEntries{ - chroma.TextWhitespace: "underline #f8f8f8", - chroma.Error: "#a40000 border:#ef2929", - chroma.Other: "#000000", - chroma.Comment: "italic #8f5902", - chroma.CommentMultiline: "italic #8f5902", - chroma.CommentPreproc: "italic #8f5902", - chroma.CommentSingle: "italic #8f5902", - chroma.CommentSpecial: "italic #8f5902", - chroma.Keyword: "bold #204a87", - chroma.KeywordConstant: "bold #204a87", - chroma.KeywordDeclaration: "bold #204a87", - chroma.KeywordNamespace: "bold #204a87", - chroma.KeywordPseudo: "bold #204a87", - chroma.KeywordReserved: "bold #204a87", - chroma.KeywordType: "bold #204a87", - chroma.Operator: "bold #ce5c00", - chroma.OperatorWord: "bold #204a87", - chroma.Punctuation: "bold #000000", - chroma.Name: "#000000", - chroma.NameAttribute: "#c4a000", - chroma.NameBuiltin: "#204a87", - chroma.NameBuiltinPseudo: "#3465a4", - chroma.NameClass: "#000000", - chroma.NameConstant: "#000000", - chroma.NameDecorator: "bold #5c35cc", - chroma.NameEntity: "#ce5c00", - chroma.NameException: "bold #cc0000", - chroma.NameFunction: "#000000", - chroma.NameProperty: "#000000", - chroma.NameLabel: "#f57900", - chroma.NameNamespace: "#000000", - chroma.NameOther: "#000000", - chroma.NameTag: "bold #204a87", - chroma.NameVariable: "#000000", - chroma.NameVariableClass: "#000000", - chroma.NameVariableGlobal: "#000000", - chroma.NameVariableInstance: "#000000", - chroma.LiteralNumber: "bold #0000cf", - chroma.LiteralNumberFloat: "bold #0000cf", - chroma.LiteralNumberHex: "bold #0000cf", - chroma.LiteralNumberInteger: "bold #0000cf", - chroma.LiteralNumberIntegerLong: "bold #0000cf", - chroma.LiteralNumberOct: "bold #0000cf", - chroma.Literal: "#000000", - chroma.LiteralDate: "#000000", - chroma.LiteralString: "#4e9a06", - chroma.LiteralStringBacktick: "#4e9a06", - chroma.LiteralStringChar: "#4e9a06", - chroma.LiteralStringDoc: "italic #8f5902", - chroma.LiteralStringDouble: "#4e9a06", - chroma.LiteralStringEscape: "#4e9a06", - chroma.LiteralStringHeredoc: "#4e9a06", - chroma.LiteralStringInterpol: "#4e9a06", - chroma.LiteralStringOther: "#4e9a06", - chroma.LiteralStringRegex: "#4e9a06", - chroma.LiteralStringSingle: "#4e9a06", - chroma.LiteralStringSymbol: "#4e9a06", - chroma.Generic: "#000000", - chroma.GenericDeleted: "#a40000", - chroma.GenericEmph: "italic #000000", - chroma.GenericError: "#ef2929", - chroma.GenericHeading: "bold #000080", - chroma.GenericInserted: "#00A000", - chroma.GenericOutput: "italic #000000", - chroma.GenericPrompt: "#8f5902", - chroma.GenericStrong: "bold #000000", - chroma.GenericSubheading: "bold #800080", - chroma.GenericTraceback: "bold #a40000", - chroma.GenericUnderline: "underline", - chroma.Background: " bg:#f8f8f8", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/trac.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/trac.go deleted file mode 100644 index 3b09c44e83..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/trac.go +++ /dev/null @@ -1,42 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Trac style. -var Trac = Register(chroma.MustNewStyle("trac", chroma.StyleEntries{ - chroma.TextWhitespace: "#bbbbbb", - chroma.Comment: "italic #999988", - chroma.CommentPreproc: "bold noitalic #999999", - chroma.CommentSpecial: "bold #999999", - chroma.Operator: "bold", - chroma.LiteralString: "#bb8844", - chroma.LiteralStringRegex: "#808000", - chroma.LiteralNumber: "#009999", - chroma.Keyword: "bold", - chroma.KeywordType: "#445588", - chroma.NameBuiltin: "#999999", - chroma.NameFunction: "bold #990000", - chroma.NameClass: "bold #445588", - chroma.NameException: "bold #990000", - chroma.NameNamespace: "#555555", - chroma.NameVariable: "#008080", - chroma.NameConstant: "#008080", - chroma.NameTag: "#000080", - chroma.NameAttribute: "#008080", - chroma.NameEntity: "#800080", - chroma.GenericHeading: "#999999", - chroma.GenericSubheading: "#aaaaaa", - chroma.GenericDeleted: "bg:#ffdddd #000000", - chroma.GenericInserted: "bg:#ddffdd #000000", - chroma.GenericError: "#aa0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "#555555", - chroma.GenericOutput: "#888888", - chroma.GenericTraceback: "#aa0000", - chroma.GenericUnderline: "underline", - chroma.Error: "bg:#e3d2d2 #a61717", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/vim.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/vim.go deleted file mode 100644 index 6296042c20..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/vim.go +++ /dev/null @@ -1,36 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Vim style. -var Vim = Register(chroma.MustNewStyle("vim", chroma.StyleEntries{ - chroma.Background: "#cccccc bg:#000000", - chroma.Comment: "#000080", - chroma.CommentSpecial: "bold #cd0000", - chroma.Keyword: "#cdcd00", - chroma.KeywordDeclaration: "#00cd00", - chroma.KeywordNamespace: "#cd00cd", - chroma.KeywordType: "#00cd00", - chroma.Operator: "#3399cc", - chroma.OperatorWord: "#cdcd00", - chroma.NameClass: "#00cdcd", - chroma.NameBuiltin: "#cd00cd", - chroma.NameException: "bold #666699", - chroma.NameVariable: "#00cdcd", - chroma.LiteralString: "#cd0000", - chroma.LiteralNumber: "#cd00cd", - chroma.GenericHeading: "bold #000080", - chroma.GenericSubheading: "bold #800080", - chroma.GenericDeleted: "#cd0000", - chroma.GenericInserted: "#00cd00", - chroma.GenericError: "#FF0000", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "bold #000080", - chroma.GenericOutput: "#888", - chroma.GenericTraceback: "#04D", - chroma.GenericUnderline: "underline", - chroma.Error: "border:#FF0000", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/vs.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/vs.go deleted file mode 100644 index acbcb9153f..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/vs.go +++ /dev/null @@ -1,23 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// VisualStudio style. -var VisualStudio = Register(chroma.MustNewStyle("vs", chroma.StyleEntries{ - chroma.Comment: "#008000", - chroma.CommentPreproc: "#0000ff", - chroma.Keyword: "#0000ff", - chroma.OperatorWord: "#0000ff", - chroma.KeywordType: "#2b91af", - chroma.NameClass: "#2b91af", - chroma.LiteralString: "#a31515", - chroma.GenericHeading: "bold", - chroma.GenericSubheading: "bold", - chroma.GenericEmph: "italic", - chroma.GenericStrong: "bold", - chroma.GenericPrompt: "bold", - chroma.Error: "border:#FF0000", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/styles/xcode.go b/workhorse-vendor/github.com/alecthomas/chroma/styles/xcode.go deleted file mode 100644 index 115cf71cd6..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/styles/xcode.go +++ /dev/null @@ -1,29 +0,0 @@ -package styles - -import ( - "github.com/alecthomas/chroma" -) - -// Xcode style. -var Xcode = Register(chroma.MustNewStyle("xcode", chroma.StyleEntries{ - chroma.Comment: "#177500", - chroma.CommentPreproc: "#633820", - chroma.LiteralString: "#C41A16", - chroma.LiteralStringChar: "#2300CE", - chroma.Operator: "#000000", - chroma.Keyword: "#A90D91", - chroma.Name: "#000000", - chroma.NameAttribute: "#836C28", - chroma.NameClass: "#3F6E75", - chroma.NameFunction: "#000000", - chroma.NameBuiltin: "#A90D91", - chroma.NameBuiltinPseudo: "#5B269A", - chroma.NameVariable: "#000000", - chroma.NameTag: "#000000", - chroma.NameDecorator: "#000000", - chroma.NameLabel: "#000000", - chroma.Literal: "#1C01CE", - chroma.LiteralNumber: "#1C01CE", - chroma.Error: "#000000", - chroma.Background: " bg:#ffffff", -})) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/table.py b/workhorse-vendor/github.com/alecthomas/chroma/table.py deleted file mode 100755 index 1caa7cc569..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/table.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python3 -from collections import defaultdict -from subprocess import check_output - -lines = check_output(["go", "run", "./cmd/chroma/main.go", "--list"]).decode('utf-8').splitlines() -lines = [line.strip() for line in lines if line.startswith(" ") and not line.startswith(" ")] -lines = sorted(lines, key=lambda l: l.lower()) - -table = defaultdict(list) - -for line in lines: - table[line[0].upper()].append(line) - -for key, value in table.items(): - print("{} | {}".format(key, ', '.join(value))) diff --git a/workhorse-vendor/github.com/alecthomas/chroma/tokentype_string.go b/workhorse-vendor/github.com/alecthomas/chroma/tokentype_string.go deleted file mode 100644 index 6fe3867494..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/tokentype_string.go +++ /dev/null @@ -1,213 +0,0 @@ -// Code generated by "stringer -type TokenType"; DO NOT EDIT. - -package chroma - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[Background - -1] - _ = x[LineNumbers - -2] - _ = x[LineNumbersTable - -3] - _ = x[LineHighlight - -4] - _ = x[LineTable - -5] - _ = x[LineTableTD - -6] - _ = x[Error - -7] - _ = x[Other - -8] - _ = x[None - -9] - _ = x[EOFType-0] - _ = x[Keyword-1000] - _ = x[KeywordConstant-1001] - _ = x[KeywordDeclaration-1002] - _ = x[KeywordNamespace-1003] - _ = x[KeywordPseudo-1004] - _ = x[KeywordReserved-1005] - _ = x[KeywordType-1006] - _ = x[Name-2000] - _ = x[NameAttribute-2001] - _ = x[NameBuiltin-2002] - _ = x[NameBuiltinPseudo-2003] - _ = x[NameClass-2004] - _ = x[NameConstant-2005] - _ = x[NameDecorator-2006] - _ = x[NameEntity-2007] - _ = x[NameException-2008] - _ = x[NameFunction-2009] - _ = x[NameFunctionMagic-2010] - _ = x[NameKeyword-2011] - _ = x[NameLabel-2012] - _ = x[NameNamespace-2013] - _ = x[NameOperator-2014] - _ = x[NameOther-2015] - _ = x[NamePseudo-2016] - _ = x[NameProperty-2017] - _ = x[NameTag-2018] - _ = x[NameVariable-2019] - _ = x[NameVariableAnonymous-2020] - _ = x[NameVariableClass-2021] - _ = x[NameVariableGlobal-2022] - _ = x[NameVariableInstance-2023] - _ = x[NameVariableMagic-2024] - _ = x[Literal-3000] - _ = x[LiteralDate-3001] - _ = x[LiteralOther-3002] - _ = x[LiteralString-3100] - _ = x[LiteralStringAffix-3101] - _ = x[LiteralStringAtom-3102] - _ = x[LiteralStringBacktick-3103] - _ = x[LiteralStringBoolean-3104] - _ = x[LiteralStringChar-3105] - _ = x[LiteralStringDelimiter-3106] - _ = x[LiteralStringDoc-3107] - _ = x[LiteralStringDouble-3108] - _ = x[LiteralStringEscape-3109] - _ = x[LiteralStringHeredoc-3110] - _ = x[LiteralStringInterpol-3111] - _ = x[LiteralStringName-3112] - _ = x[LiteralStringOther-3113] - _ = x[LiteralStringRegex-3114] - _ = x[LiteralStringSingle-3115] - _ = x[LiteralStringSymbol-3116] - _ = x[LiteralNumber-3200] - _ = x[LiteralNumberBin-3201] - _ = x[LiteralNumberFloat-3202] - _ = x[LiteralNumberHex-3203] - _ = x[LiteralNumberInteger-3204] - _ = x[LiteralNumberIntegerLong-3205] - _ = x[LiteralNumberOct-3206] - _ = x[Operator-4000] - _ = x[OperatorWord-4001] - _ = x[Punctuation-5000] - _ = x[Comment-6000] - _ = x[CommentHashbang-6001] - _ = x[CommentMultiline-6002] - _ = x[CommentSingle-6003] - _ = x[CommentSpecial-6004] - _ = x[CommentPreproc-6100] - _ = x[CommentPreprocFile-6101] - _ = x[Generic-7000] - _ = x[GenericDeleted-7001] - _ = x[GenericEmph-7002] - _ = x[GenericError-7003] - _ = x[GenericHeading-7004] - _ = x[GenericInserted-7005] - _ = x[GenericOutput-7006] - _ = x[GenericPrompt-7007] - _ = x[GenericStrong-7008] - _ = x[GenericSubheading-7009] - _ = x[GenericTraceback-7010] - _ = x[GenericUnderline-7011] - _ = x[Text-8000] - _ = x[TextWhitespace-8001] - _ = x[TextSymbol-8002] - _ = x[TextPunctuation-8003] -} - -const _TokenType_name = "NoneOtherErrorLineTableTDLineTableLineHighlightLineNumbersTableLineNumbersBackgroundEOFTypeKeywordKeywordConstantKeywordDeclarationKeywordNamespaceKeywordPseudoKeywordReservedKeywordTypeNameNameAttributeNameBuiltinNameBuiltinPseudoNameClassNameConstantNameDecoratorNameEntityNameExceptionNameFunctionNameFunctionMagicNameKeywordNameLabelNameNamespaceNameOperatorNameOtherNamePseudoNamePropertyNameTagNameVariableNameVariableAnonymousNameVariableClassNameVariableGlobalNameVariableInstanceNameVariableMagicLiteralLiteralDateLiteralOtherLiteralStringLiteralStringAffixLiteralStringAtomLiteralStringBacktickLiteralStringBooleanLiteralStringCharLiteralStringDelimiterLiteralStringDocLiteralStringDoubleLiteralStringEscapeLiteralStringHeredocLiteralStringInterpolLiteralStringNameLiteralStringOtherLiteralStringRegexLiteralStringSingleLiteralStringSymbolLiteralNumberLiteralNumberBinLiteralNumberFloatLiteralNumberHexLiteralNumberIntegerLiteralNumberIntegerLongLiteralNumberOctOperatorOperatorWordPunctuationCommentCommentHashbangCommentMultilineCommentSingleCommentSpecialCommentPreprocCommentPreprocFileGenericGenericDeletedGenericEmphGenericErrorGenericHeadingGenericInsertedGenericOutputGenericPromptGenericStrongGenericSubheadingGenericTracebackGenericUnderlineTextTextWhitespaceTextSymbolTextPunctuation" - -var _TokenType_map = map[TokenType]string{ - -9: _TokenType_name[0:4], - -8: _TokenType_name[4:9], - -7: _TokenType_name[9:14], - -6: _TokenType_name[14:25], - -5: _TokenType_name[25:34], - -4: _TokenType_name[34:47], - -3: _TokenType_name[47:63], - -2: _TokenType_name[63:74], - -1: _TokenType_name[74:84], - 0: _TokenType_name[84:91], - 1000: _TokenType_name[91:98], - 1001: _TokenType_name[98:113], - 1002: _TokenType_name[113:131], - 1003: _TokenType_name[131:147], - 1004: _TokenType_name[147:160], - 1005: _TokenType_name[160:175], - 1006: _TokenType_name[175:186], - 2000: _TokenType_name[186:190], - 2001: _TokenType_name[190:203], - 2002: _TokenType_name[203:214], - 2003: _TokenType_name[214:231], - 2004: _TokenType_name[231:240], - 2005: _TokenType_name[240:252], - 2006: _TokenType_name[252:265], - 2007: _TokenType_name[265:275], - 2008: _TokenType_name[275:288], - 2009: _TokenType_name[288:300], - 2010: _TokenType_name[300:317], - 2011: _TokenType_name[317:328], - 2012: _TokenType_name[328:337], - 2013: _TokenType_name[337:350], - 2014: _TokenType_name[350:362], - 2015: _TokenType_name[362:371], - 2016: _TokenType_name[371:381], - 2017: _TokenType_name[381:393], - 2018: _TokenType_name[393:400], - 2019: _TokenType_name[400:412], - 2020: _TokenType_name[412:433], - 2021: _TokenType_name[433:450], - 2022: _TokenType_name[450:468], - 2023: _TokenType_name[468:488], - 2024: _TokenType_name[488:505], - 3000: _TokenType_name[505:512], - 3001: _TokenType_name[512:523], - 3002: _TokenType_name[523:535], - 3100: _TokenType_name[535:548], - 3101: _TokenType_name[548:566], - 3102: _TokenType_name[566:583], - 3103: _TokenType_name[583:604], - 3104: _TokenType_name[604:624], - 3105: _TokenType_name[624:641], - 3106: _TokenType_name[641:663], - 3107: _TokenType_name[663:679], - 3108: _TokenType_name[679:698], - 3109: _TokenType_name[698:717], - 3110: _TokenType_name[717:737], - 3111: _TokenType_name[737:758], - 3112: _TokenType_name[758:775], - 3113: _TokenType_name[775:793], - 3114: _TokenType_name[793:811], - 3115: _TokenType_name[811:830], - 3116: _TokenType_name[830:849], - 3200: _TokenType_name[849:862], - 3201: _TokenType_name[862:878], - 3202: _TokenType_name[878:896], - 3203: _TokenType_name[896:912], - 3204: _TokenType_name[912:932], - 3205: _TokenType_name[932:956], - 3206: _TokenType_name[956:972], - 4000: _TokenType_name[972:980], - 4001: _TokenType_name[980:992], - 5000: _TokenType_name[992:1003], - 6000: _TokenType_name[1003:1010], - 6001: _TokenType_name[1010:1025], - 6002: _TokenType_name[1025:1041], - 6003: _TokenType_name[1041:1054], - 6004: _TokenType_name[1054:1068], - 6100: _TokenType_name[1068:1082], - 6101: _TokenType_name[1082:1100], - 7000: _TokenType_name[1100:1107], - 7001: _TokenType_name[1107:1121], - 7002: _TokenType_name[1121:1132], - 7003: _TokenType_name[1132:1144], - 7004: _TokenType_name[1144:1158], - 7005: _TokenType_name[1158:1173], - 7006: _TokenType_name[1173:1186], - 7007: _TokenType_name[1186:1199], - 7008: _TokenType_name[1199:1212], - 7009: _TokenType_name[1212:1229], - 7010: _TokenType_name[1229:1245], - 7011: _TokenType_name[1245:1261], - 8000: _TokenType_name[1261:1265], - 8001: _TokenType_name[1265:1279], - 8002: _TokenType_name[1279:1289], - 8003: _TokenType_name[1289:1304], -} - -func (i TokenType) String() string { - if str, ok := _TokenType_map[i]; ok { - return str - } - return "TokenType(" + strconv.FormatInt(int64(i), 10) + ")" -} diff --git a/workhorse-vendor/github.com/alecthomas/chroma/types.go b/workhorse-vendor/github.com/alecthomas/chroma/types.go deleted file mode 100644 index b102f308ab..0000000000 --- a/workhorse-vendor/github.com/alecthomas/chroma/types.go +++ /dev/null @@ -1,347 +0,0 @@ -package chroma - -import ( - "encoding/json" - "fmt" -) - -//go:generate stringer -type TokenType - -// TokenType is the type of token to highlight. -// -// It is also an Emitter, emitting a single token of itself -type TokenType int - -func (t TokenType) MarshalJSON() ([]byte, error) { return json.Marshal(t.String()) } -func (t *TokenType) UnmarshalJSON(data []byte) error { - key := "" - err := json.Unmarshal(data, &key) - if err != nil { - return err - } - for tt, text := range _TokenType_map { - if text == key { - *t = tt - return nil - } - } - return fmt.Errorf("unknown TokenType %q", data) -} - -// Set of TokenTypes. -// -// Categories of types are grouped in ranges of 1000, while sub-categories are in ranges of 100. For -// example, the literal category is in the range 3000-3999. The sub-category for literal strings is -// in the range 3100-3199. - -// Meta token types. -const ( - // Default background style. - Background TokenType = -1 - iota - // Line numbers in output. - LineNumbers - // Line numbers in output when in table. - LineNumbersTable - // Line higlight style. - LineHighlight - // Line numbers table wrapper style. - LineTable - // Line numbers table TD wrapper style. - LineTableTD - // Input that could not be tokenised. - Error - // Other is used by the Delegate lexer to indicate which tokens should be handled by the delegate. - Other - // No highlighting. - None - // Used as an EOF marker / nil token - EOFType TokenType = 0 -) - -// Keywords. -const ( - Keyword TokenType = 1000 + iota - KeywordConstant - KeywordDeclaration - KeywordNamespace - KeywordPseudo - KeywordReserved - KeywordType -) - -// Names. -const ( - Name TokenType = 2000 + iota - NameAttribute - NameBuiltin - NameBuiltinPseudo - NameClass - NameConstant - NameDecorator - NameEntity - NameException - NameFunction - NameFunctionMagic - NameKeyword - NameLabel - NameNamespace - NameOperator - NameOther - NamePseudo - NameProperty - NameTag - NameVariable - NameVariableAnonymous - NameVariableClass - NameVariableGlobal - NameVariableInstance - NameVariableMagic -) - -// Literals. -const ( - Literal TokenType = 3000 + iota - LiteralDate - LiteralOther -) - -// Strings. -const ( - LiteralString TokenType = 3100 + iota - LiteralStringAffix - LiteralStringAtom - LiteralStringBacktick - LiteralStringBoolean - LiteralStringChar - LiteralStringDelimiter - LiteralStringDoc - LiteralStringDouble - LiteralStringEscape - LiteralStringHeredoc - LiteralStringInterpol - LiteralStringName - LiteralStringOther - LiteralStringRegex - LiteralStringSingle - LiteralStringSymbol -) - -// Literals. -const ( - LiteralNumber TokenType = 3200 + iota - LiteralNumberBin - LiteralNumberFloat - LiteralNumberHex - LiteralNumberInteger - LiteralNumberIntegerLong - LiteralNumberOct -) - -// Operators. -const ( - Operator TokenType = 4000 + iota - OperatorWord -) - -// Punctuation. -const ( - Punctuation TokenType = 5000 + iota -) - -// Comments. -const ( - Comment TokenType = 6000 + iota - CommentHashbang - CommentMultiline - CommentSingle - CommentSpecial -) - -// Preprocessor "comments". -const ( - CommentPreproc TokenType = 6100 + iota - CommentPreprocFile -) - -// Generic tokens. -const ( - Generic TokenType = 7000 + iota - GenericDeleted - GenericEmph - GenericError - GenericHeading - GenericInserted - GenericOutput - GenericPrompt - GenericStrong - GenericSubheading - GenericTraceback - GenericUnderline -) - -// Text. -const ( - Text TokenType = 8000 + iota - TextWhitespace - TextSymbol - TextPunctuation -) - -// Aliases. -const ( - Whitespace = TextWhitespace - - Date = LiteralDate - - String = LiteralString - StringAffix = LiteralStringAffix - StringBacktick = LiteralStringBacktick - StringChar = LiteralStringChar - StringDelimiter = LiteralStringDelimiter - StringDoc = LiteralStringDoc - StringDouble = LiteralStringDouble - StringEscape = LiteralStringEscape - StringHeredoc = LiteralStringHeredoc - StringInterpol = LiteralStringInterpol - StringOther = LiteralStringOther - StringRegex = LiteralStringRegex - StringSingle = LiteralStringSingle - StringSymbol = LiteralStringSymbol - - Number = LiteralNumber - NumberBin = LiteralNumberBin - NumberFloat = LiteralNumberFloat - NumberHex = LiteralNumberHex - NumberInteger = LiteralNumberInteger - NumberIntegerLong = LiteralNumberIntegerLong - NumberOct = LiteralNumberOct -) - -var ( - StandardTypes = map[TokenType]string{ - Background: "chroma", - LineNumbers: "ln", - LineNumbersTable: "lnt", - LineHighlight: "hl", - LineTable: "lntable", - LineTableTD: "lntd", - Text: "", - Whitespace: "w", - Error: "err", - Other: "x", - // I have no idea what this is used for... - // Escape: "esc", - - Keyword: "k", - KeywordConstant: "kc", - KeywordDeclaration: "kd", - KeywordNamespace: "kn", - KeywordPseudo: "kp", - KeywordReserved: "kr", - KeywordType: "kt", - - Name: "n", - NameAttribute: "na", - NameBuiltin: "nb", - NameBuiltinPseudo: "bp", - NameClass: "nc", - NameConstant: "no", - NameDecorator: "nd", - NameEntity: "ni", - NameException: "ne", - NameFunction: "nf", - NameFunctionMagic: "fm", - NameProperty: "py", - NameLabel: "nl", - NameNamespace: "nn", - NameOther: "nx", - NameTag: "nt", - NameVariable: "nv", - NameVariableClass: "vc", - NameVariableGlobal: "vg", - NameVariableInstance: "vi", - NameVariableMagic: "vm", - - Literal: "l", - LiteralDate: "ld", - - String: "s", - StringAffix: "sa", - StringBacktick: "sb", - StringChar: "sc", - StringDelimiter: "dl", - StringDoc: "sd", - StringDouble: "s2", - StringEscape: "se", - StringHeredoc: "sh", - StringInterpol: "si", - StringOther: "sx", - StringRegex: "sr", - StringSingle: "s1", - StringSymbol: "ss", - - Number: "m", - NumberBin: "mb", - NumberFloat: "mf", - NumberHex: "mh", - NumberInteger: "mi", - NumberIntegerLong: "il", - NumberOct: "mo", - - Operator: "o", - OperatorWord: "ow", - - Punctuation: "p", - - Comment: "c", - CommentHashbang: "ch", - CommentMultiline: "cm", - CommentPreproc: "cp", - CommentPreprocFile: "cpf", - CommentSingle: "c1", - CommentSpecial: "cs", - - Generic: "g", - GenericDeleted: "gd", - GenericEmph: "ge", - GenericError: "gr", - GenericHeading: "gh", - GenericInserted: "gi", - GenericOutput: "go", - GenericPrompt: "gp", - GenericStrong: "gs", - GenericSubheading: "gu", - GenericTraceback: "gt", - GenericUnderline: "gl", - } -) - -func (t TokenType) Parent() TokenType { - if t%100 != 0 { - return t / 100 * 100 - } - if t%1000 != 0 { - return t / 1000 * 1000 - } - return 0 -} - -func (t TokenType) Category() TokenType { - return t / 1000 * 1000 -} - -func (t TokenType) SubCategory() TokenType { - return t / 100 * 100 -} - -func (t TokenType) InCategory(other TokenType) bool { - return t/1000 == other/1000 -} - -func (t TokenType) InSubCategory(other TokenType) bool { - return t/100 == other/100 -} - -func (t TokenType) Emit(groups []string, lexer Lexer) Iterator { - return Literator(Token{Type: t, Value: groups[0]}) -}