From c0e5f08c88927854410c9eda9b8967d33be2649a Mon Sep 17 00:00:00 2001 From: Ryan Davis Date: Sun, 7 May 2023 15:47:33 -0700 Subject: [PATCH 1/2] Use #to_s to check for loaded lexers to avoid double loads. Drops `rake check:specs VERBOSE=1` from 331 lines to 144. --- lib/rouge/lexer.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rouge/lexer.rb b/lib/rouge/lexer.rb index 0e7f7b18ac..b7d0cf9516 100644 --- a/lib/rouge/lexer.rb +++ b/lib/rouge/lexer.rb @@ -527,8 +527,8 @@ module Lexers @_loaded_lexers = {} def self.load_lexer(relpath) - return if @_loaded_lexers.key?(relpath) - @_loaded_lexers[relpath] = true + return if @_loaded_lexers.key?(relpath.to_s) + @_loaded_lexers[relpath.to_s] = true Kernel::load File.join(BASE_DIR, relpath) end end From b595d669267a5fcf4c5ca17d08395cbe29255baa Mon Sep 17 00:00:00 2001 From: Ryan Davis Date: Wed, 10 May 2023 11:26:03 -0700 Subject: [PATCH 2/2] Fix double load warnings by using require_relative load will load, always. Don't use it unless you really really mean it. --- lib/rouge.rb | 89 ++++++++++++++++--------------- lib/rouge/lexer.rb | 7 +-- lib/rouge/lexers/apache.rb | 16 +----- lib/rouge/lexers/apiblueprint.rb | 2 +- lib/rouge/lexers/biml.rb | 2 +- lib/rouge/lexers/cpp.rb | 2 +- lib/rouge/lexers/cuda.rb | 2 +- lib/rouge/lexers/cython.rb | 2 +- lib/rouge/lexers/digdag.rb | 2 +- lib/rouge/lexers/freefem.rb | 2 +- lib/rouge/lexers/gherkin.rb | 6 +-- lib/rouge/lexers/glsl.rb | 2 +- lib/rouge/lexers/gradle.rb | 2 +- lib/rouge/lexers/hack.rb | 2 +- lib/rouge/lexers/hlsl.rb | 2 +- lib/rouge/lexers/hocon.rb | 2 +- lib/rouge/lexers/hql.rb | 2 +- lib/rouge/lexers/irb.rb | 4 +- lib/rouge/lexers/isbl.rb | 5 +- lib/rouge/lexers/json_doc.rb | 2 +- lib/rouge/lexers/jsx.rb | 2 +- lib/rouge/lexers/lasso.rb | 6 +-- lib/rouge/lexers/llvm.rb | 15 +----- lib/rouge/lexers/lua.rb | 5 +- lib/rouge/lexers/lutin.rb | 2 +- lib/rouge/lexers/mathematica.rb | 6 +-- lib/rouge/lexers/matlab.rb | 6 +-- lib/rouge/lexers/moonscript.rb | 2 +- lib/rouge/lexers/objective_c.rb | 4 +- lib/rouge/lexers/objective_cpp.rb | 4 +- lib/rouge/lexers/ocaml.rb | 2 +- lib/rouge/lexers/php.rb | 5 +- lib/rouge/lexers/qml.rb | 2 +- lib/rouge/lexers/reasonml.rb | 2 +- lib/rouge/lexers/rescript.rb | 2 +- lib/rouge/lexers/sass.rb | 2 +- lib/rouge/lexers/scss.rb | 2 +- lib/rouge/lexers/slice.rb | 2 +- lib/rouge/lexers/sqf.rb | 5 +- lib/rouge/lexers/terraform.rb | 2 +- lib/rouge/lexers/tsx.rb | 4 +- lib/rouge/lexers/twig.rb | 2 +- lib/rouge/lexers/typescript.rb | 4 +- lib/rouge/lexers/viml.rb | 5 +- lib/rouge/lexers/vue.rb | 2 +- lib/rouge/lexers/xquery.rb | 2 +- 46 files changed, 95 insertions(+), 157 deletions(-) diff --git a/lib/rouge.rb b/lib/rouge.rb index f8cffcb75c..a3005185ee 100644 --- a/lib/rouge.rb +++ b/lib/rouge.rb @@ -40,7 +40,8 @@ def highlight(text, lexer, formatter, &b) # # @api private def load_file(path) - Kernel::load File.join(LIB_DIR, "rouge/#{path}.rb") + warn "just use require_relative %p" % ["rouge/#{path}"] + require_relative "rouge/#{path}" end # Load the lexers in the `lib/rouge/lexers` directory. @@ -55,52 +56,52 @@ def load_lexers end end -Rouge.load_file 'version' -Rouge.load_file 'util' -Rouge.load_file 'text_analyzer' -Rouge.load_file 'token' +require_relative 'rouge/version' +require_relative 'rouge/util' +require_relative 'rouge/text_analyzer' +require_relative 'rouge/token' -Rouge.load_file 'lexer' -Rouge.load_file 'regex_lexer' -Rouge.load_file 'template_lexer' +require_relative 'rouge/lexer' +require_relative 'rouge/regex_lexer' +require_relative 'rouge/template_lexer' Rouge.load_lexers -Rouge.load_file 'guesser' -Rouge.load_file 'guessers/util' -Rouge.load_file 'guessers/glob_mapping' -Rouge.load_file 'guessers/modeline' -Rouge.load_file 'guessers/filename' -Rouge.load_file 'guessers/mimetype' -Rouge.load_file 'guessers/source' -Rouge.load_file 'guessers/disambiguation' +require_relative 'rouge/guesser' +require_relative 'rouge/guessers/util' +require_relative 'rouge/guessers/glob_mapping' +require_relative 'rouge/guessers/modeline' +require_relative 'rouge/guessers/filename' +require_relative 'rouge/guessers/mimetype' +require_relative 'rouge/guessers/source' +require_relative 'rouge/guessers/disambiguation' -Rouge.load_file 'formatter' -Rouge.load_file 'formatters/html' -Rouge.load_file 'formatters/html_table' -Rouge.load_file 'formatters/html_pygments' -Rouge.load_file 'formatters/html_legacy' -Rouge.load_file 'formatters/html_linewise' -Rouge.load_file 'formatters/html_line_highlighter' -Rouge.load_file 'formatters/html_line_table' -Rouge.load_file 'formatters/html_inline' -Rouge.load_file 'formatters/terminal256' -Rouge.load_file 'formatters/terminal_truecolor' -Rouge.load_file 'formatters/tex' -Rouge.load_file 'formatters/null' +require_relative 'rouge/formatter' +require_relative 'rouge/formatters/html' +require_relative 'rouge/formatters/html_table' +require_relative 'rouge/formatters/html_pygments' +require_relative 'rouge/formatters/html_legacy' +require_relative 'rouge/formatters/html_linewise' +require_relative 'rouge/formatters/html_line_highlighter' +require_relative 'rouge/formatters/html_line_table' +require_relative 'rouge/formatters/html_inline' +require_relative 'rouge/formatters/terminal256' +require_relative 'rouge/formatters/terminal_truecolor' +require_relative 'rouge/formatters/tex' +require_relative 'rouge/formatters/null' -Rouge.load_file 'theme' -Rouge.load_file 'tex_theme_renderer' -Rouge.load_file 'themes/thankful_eyes' -Rouge.load_file 'themes/colorful' -Rouge.load_file 'themes/base16' -Rouge.load_file 'themes/github' -Rouge.load_file 'themes/igor_pro' -Rouge.load_file 'themes/monokai' -Rouge.load_file 'themes/molokai' -Rouge.load_file 'themes/monokai_sublime' -Rouge.load_file 'themes/gruvbox' -Rouge.load_file 'themes/tulip' -Rouge.load_file 'themes/pastie' -Rouge.load_file 'themes/bw' -Rouge.load_file 'themes/magritte' +require_relative 'rouge/theme' +require_relative 'rouge/tex_theme_renderer' +require_relative 'rouge/themes/thankful_eyes' +require_relative 'rouge/themes/colorful' +require_relative 'rouge/themes/base16' +require_relative 'rouge/themes/github' +require_relative 'rouge/themes/igor_pro' +require_relative 'rouge/themes/monokai' +require_relative 'rouge/themes/molokai' +require_relative 'rouge/themes/monokai_sublime' +require_relative 'rouge/themes/gruvbox' +require_relative 'rouge/themes/tulip' +require_relative 'rouge/themes/pastie' +require_relative 'rouge/themes/bw' +require_relative 'rouge/themes/magritte' diff --git a/lib/rouge/lexer.rb b/lib/rouge/lexer.rb index b7d0cf9516..28214759f9 100644 --- a/lib/rouge/lexer.rb +++ b/lib/rouge/lexer.rb @@ -523,13 +523,8 @@ def self.detect?(text) end module Lexers - BASE_DIR = "#{__dir__}/lexers".freeze - @_loaded_lexers = {} - def self.load_lexer(relpath) - return if @_loaded_lexers.key?(relpath.to_s) - @_loaded_lexers[relpath.to_s] = true - Kernel::load File.join(BASE_DIR, relpath) + require_relative "lexers/#{relpath}" end end end diff --git a/lib/rouge/lexers/apache.rb b/lib/rouge/lexers/apache.rb index 2b8046bd4a..ae341c0d24 100644 --- a/lib/rouge/lexers/apache.rb +++ b/lib/rouge/lexers/apache.rb @@ -11,21 +11,7 @@ class Apache < RegexLexer mimetypes 'text/x-httpd-conf', 'text/x-apache-conf' filenames '.htaccess', 'httpd.conf' - # self-modifying method that loads the keywords file - def self.directives - Kernel::load File.join(Lexers::BASE_DIR, 'apache/keywords.rb') - directives - end - - def self.sections - Kernel::load File.join(Lexers::BASE_DIR, 'apache/keywords.rb') - sections - end - - def self.values - Kernel::load File.join(Lexers::BASE_DIR, 'apache/keywords.rb') - values - end + require_relative "apache/keywords" def name_for_token(token, tktype) if self.class.sections.include? token diff --git a/lib/rouge/lexers/apiblueprint.rb b/lib/rouge/lexers/apiblueprint.rb index 7695c39081..3f755e9089 100644 --- a/lib/rouge/lexers/apiblueprint.rb +++ b/lib/rouge/lexers/apiblueprint.rb @@ -2,7 +2,7 @@ module Rouge module Lexers - load_lexer 'markdown.rb' + require_relative 'markdown' class APIBlueprint < Markdown title 'API Blueprint' diff --git a/lib/rouge/lexers/biml.rb b/lib/rouge/lexers/biml.rb index 602a57a23c..1a0a521c92 100644 --- a/lib/rouge/lexers/biml.rb +++ b/lib/rouge/lexers/biml.rb @@ -2,7 +2,7 @@ module Rouge module Lexers - load_lexer 'xml.rb' + require_relative 'xml' class BIML < XML title "BIML" diff --git a/lib/rouge/lexers/cpp.rb b/lib/rouge/lexers/cpp.rb index 31698c2594..9840e8b733 100644 --- a/lib/rouge/lexers/cpp.rb +++ b/lib/rouge/lexers/cpp.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'c.rb' + require_relative 'c' class Cpp < C title "C++" diff --git a/lib/rouge/lexers/cuda.rb b/lib/rouge/lexers/cuda.rb index c973ddd62a..2164db6676 100644 --- a/lib/rouge/lexers/cuda.rb +++ b/lib/rouge/lexers/cuda.rb @@ -2,7 +2,7 @@ module Rouge module Lexers - load_lexer 'cpp.rb' + require_relative 'cpp' class CUDA < Cpp title "CUDA" diff --git a/lib/rouge/lexers/cython.rb b/lib/rouge/lexers/cython.rb index 945cbc198d..4f24b65524 100644 --- a/lib/rouge/lexers/cython.rb +++ b/lib/rouge/lexers/cython.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'python.rb' + require_relative 'python' class Cython < Python title "Cython" diff --git a/lib/rouge/lexers/digdag.rb b/lib/rouge/lexers/digdag.rb index 407d646ea7..fc27f2d8d3 100644 --- a/lib/rouge/lexers/digdag.rb +++ b/lib/rouge/lexers/digdag.rb @@ -3,7 +3,7 @@ require 'set' module Rouge module Lexers - load_lexer 'yaml.rb' + require_relative 'yaml' class Digdag < YAML title 'digdag' diff --git a/lib/rouge/lexers/freefem.rb b/lib/rouge/lexers/freefem.rb index 11df6676da..d9a9a7d24c 100644 --- a/lib/rouge/lexers/freefem.rb +++ b/lib/rouge/lexers/freefem.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'cpp.rb' + require_relative 'cpp' class FreeFEM < Cpp title "FreeFEM" diff --git a/lib/rouge/lexers/gherkin.rb b/lib/rouge/lexers/gherkin.rb index 0b655b093d..80d4e0c094 100644 --- a/lib/rouge/lexers/gherkin.rb +++ b/lib/rouge/lexers/gherkin.rb @@ -17,11 +17,7 @@ def self.detect?(text) return true if text.shebang? 'cucumber' end - # self-modifying method that loads the keywords file - def self.keywords - Kernel::load File.join(Lexers::BASE_DIR, 'gherkin/keywords.rb') - keywords - end + require_relative "gherkin/keywords" def self.step_regex # in Gherkin's config, keywords that end in < don't diff --git a/lib/rouge/lexers/glsl.rb b/lib/rouge/lexers/glsl.rb index aea62eaa0b..8b2636d3ce 100644 --- a/lib/rouge/lexers/glsl.rb +++ b/lib/rouge/lexers/glsl.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'c.rb' + require_relative 'c' # This file defines the GLSL language lexer to the Rouge # syntax highlighter. diff --git a/lib/rouge/lexers/gradle.rb b/lib/rouge/lexers/gradle.rb index 27b5f967eb..dae9a3be71 100644 --- a/lib/rouge/lexers/gradle.rb +++ b/lib/rouge/lexers/gradle.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'groovy.rb' + require_relative 'groovy' class Gradle < Groovy title "Gradle" diff --git a/lib/rouge/lexers/hack.rb b/lib/rouge/lexers/hack.rb index 1e8f8317b5..6b227f6dbb 100644 --- a/lib/rouge/lexers/hack.rb +++ b/lib/rouge/lexers/hack.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'php.rb' + require_relative 'php' class Hack < PHP title 'Hack' diff --git a/lib/rouge/lexers/hlsl.rb b/lib/rouge/lexers/hlsl.rb index 8fac6fa86e..fa197f474d 100644 --- a/lib/rouge/lexers/hlsl.rb +++ b/lib/rouge/lexers/hlsl.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'c.rb' + require_relative 'c' class HLSL < C title "HLSL" diff --git a/lib/rouge/lexers/hocon.rb b/lib/rouge/lexers/hocon.rb index 881a969a00..d1c8af47ff 100644 --- a/lib/rouge/lexers/hocon.rb +++ b/lib/rouge/lexers/hocon.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'json.rb' + require_relative 'json' class HOCON < JSON title 'HOCON' diff --git a/lib/rouge/lexers/hql.rb b/lib/rouge/lexers/hql.rb index ba7dab474a..45d7860091 100644 --- a/lib/rouge/lexers/hql.rb +++ b/lib/rouge/lexers/hql.rb @@ -2,7 +2,7 @@ module Rouge module Lexers - load_lexer 'sql.rb' + require_relative 'sql' class HQL < SQL title "HQL" diff --git a/lib/rouge/lexers/irb.rb b/lib/rouge/lexers/irb.rb index b3720ec783..8590d2afeb 100644 --- a/lib/rouge/lexers/irb.rb +++ b/lib/rouge/lexers/irb.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'console.rb' + require_relative 'console' class IRBLexer < ConsoleLexer tag 'irb' @@ -37,7 +37,7 @@ def allow_comments? end end - load_lexer 'ruby.rb' + require_relative 'ruby' class IRBOutputLexer < Ruby tag 'irb_output' diff --git a/lib/rouge/lexers/isbl.rb b/lib/rouge/lexers/isbl.rb index 2e1184b79f..effa6ee6a6 100644 --- a/lib/rouge/lexers/isbl.rb +++ b/lib/rouge/lexers/isbl.rb @@ -9,10 +9,7 @@ class ISBL < RegexLexer tag 'isbl' filenames '*.isbl' - def self.builtins - Kernel::load File.join(Lexers::BASE_DIR, 'isbl/builtins.rb') - self.builtins - end + require_relative "isbl/builtins" def self.constants @constants ||= self.builtins["const"].merge(self.builtins["enum"]).collect!(&:downcase) diff --git a/lib/rouge/lexers/json_doc.rb b/lib/rouge/lexers/json_doc.rb index c243709100..d81e20fff6 100644 --- a/lib/rouge/lexers/json_doc.rb +++ b/lib/rouge/lexers/json_doc.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'json.rb' + require_relative 'json' class JSONDOC < JSON desc "JavaScript Object Notation with extensions for documentation" diff --git a/lib/rouge/lexers/jsx.rb b/lib/rouge/lexers/jsx.rb index 7b2ad339a5..e8e845c5f2 100644 --- a/lib/rouge/lexers/jsx.rb +++ b/lib/rouge/lexers/jsx.rb @@ -2,7 +2,7 @@ module Rouge module Lexers - load_lexer 'javascript.rb' + require_relative 'javascript' class JSX < Javascript title 'JSX' diff --git a/lib/rouge/lexers/lasso.rb b/lib/rouge/lexers/lasso.rb index cad38e9ec2..ae91b22d6f 100644 --- a/lib/rouge/lexers/lasso.rb +++ b/lib/rouge/lexers/lasso.rb @@ -34,11 +34,7 @@ def start_inline? push :lasso if start_inline? end - # self-modifying method that loads the keywords file - def self.keywords - Kernel::load File.join(Lexers::BASE_DIR, 'lasso/keywords.rb') - keywords - end + require_relative "lasso/keywords" id = /[a-z_][\w.]*/i diff --git a/lib/rouge/lexers/llvm.rb b/lib/rouge/lexers/llvm.rb index b5ffa4459c..cf03dd8c1e 100644 --- a/lib/rouge/lexers/llvm.rb +++ b/lib/rouge/lexers/llvm.rb @@ -14,20 +14,7 @@ class LLVM < RegexLexer string = /"[^"]*?"/ identifier = /([-a-zA-Z$._][-a-zA-Z$._0-9]*|#{string})/ - def self.keywords - Kernel::load File.join(Lexers::BASE_DIR, "llvm/keywords.rb") - keywords - end - - def self.instructions - Kernel::load File.join(Lexers::BASE_DIR, "llvm/keywords.rb") - instructions - end - - def self.types - Kernel::load File.join(Lexers::BASE_DIR, "llvm/keywords.rb") - types - end + require_relative "llvm/keywords" state :basic do rule %r/;.*?$/, Comment::Single diff --git a/lib/rouge/lexers/lua.rb b/lib/rouge/lexers/lua.rb index 6e1887b084..287b3137d1 100644 --- a/lib/rouge/lexers/lua.rb +++ b/lib/rouge/lexers/lua.rb @@ -24,10 +24,7 @@ def self.detect?(text) return true if text.shebang? 'lua' end - def self.builtins - Kernel::load File.join(Lexers::BASE_DIR, 'lua/keywords.rb') - builtins - end + require_relative "lua/keywords" def builtins return [] unless @function_highlighting diff --git a/lib/rouge/lexers/lutin.rb b/lib/rouge/lexers/lutin.rb index cc1ac539ed..b0e00fc5d3 100644 --- a/lib/rouge/lexers/lutin.rb +++ b/lib/rouge/lexers/lutin.rb @@ -4,7 +4,7 @@ # adapted from lustre.rf (adapted from ocaml.rb), hence some ocaml-ism migth remains module Rouge module Lexers - load_lexer 'lustre.rb' + require_relative 'lustre' class Lutin < Lustre title "Lutin" diff --git a/lib/rouge/lexers/mathematica.rb b/lib/rouge/lexers/mathematica.rb index 2fdeefc5a5..f69e56deb3 100644 --- a/lib/rouge/lexers/mathematica.rb +++ b/lib/rouge/lexers/mathematica.rb @@ -54,11 +54,7 @@ def self.keywords ) end - # The list of built-in symbols comes from a wolfram server and is created automatically by rake - def self.builtins - Kernel::load File.join(Lexers::BASE_DIR, 'mathematica/keywords.rb') - builtins - end + require_relative "mathematica/keywords" state :root do rule %r/\s+/, Text::Whitespace diff --git a/lib/rouge/lexers/matlab.rb b/lib/rouge/lexers/matlab.rb index d284401d5d..9ea102a279 100644 --- a/lib/rouge/lexers/matlab.rb +++ b/lib/rouge/lexers/matlab.rb @@ -19,11 +19,7 @@ def self.keywords ) end - # self-modifying method that loads the builtins file - def self.builtins - Kernel::load File.join(Lexers::BASE_DIR, 'matlab/keywords.rb') - builtins - end + require_relative 'matlab/keywords' state :root do rule %r/\s+/m, Text # Whitespace diff --git a/lib/rouge/lexers/moonscript.rb b/lib/rouge/lexers/moonscript.rb index 055422b640..861e2d0a96 100644 --- a/lib/rouge/lexers/moonscript.rb +++ b/lib/rouge/lexers/moonscript.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'lua.rb' + require_relative 'lua' class Moonscript < RegexLexer title "MoonScript" diff --git a/lib/rouge/lexers/objective_c.rb b/lib/rouge/lexers/objective_c.rb index 36ab6c5442..3a46d4b9f3 100644 --- a/lib/rouge/lexers/objective_c.rb +++ b/lib/rouge/lexers/objective_c.rb @@ -3,8 +3,8 @@ module Rouge module Lexers - load_lexer 'c.rb' - load_lexer 'objective_c/common.rb' + require_relative 'c' + require_relative 'objective_c/common' class ObjectiveC < C extend ObjectiveCCommon diff --git a/lib/rouge/lexers/objective_cpp.rb b/lib/rouge/lexers/objective_cpp.rb index 21606922b3..446eb35fe8 100644 --- a/lib/rouge/lexers/objective_cpp.rb +++ b/lib/rouge/lexers/objective_cpp.rb @@ -3,8 +3,8 @@ module Rouge module Lexers - load_lexer 'cpp.rb' - load_lexer 'objective_c/common.rb' + require_relative 'cpp' + require_relative 'objective_c/common' class ObjectiveCpp < Cpp extend ObjectiveCCommon diff --git a/lib/rouge/lexers/ocaml.rb b/lib/rouge/lexers/ocaml.rb index 684b367229..63ba51556c 100644 --- a/lib/rouge/lexers/ocaml.rb +++ b/lib/rouge/lexers/ocaml.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'ocaml/common.rb' + require_relative 'ocaml/common' class OCaml < OCamlCommon title "OCaml" diff --git a/lib/rouge/lexers/php.rb b/lib/rouge/lexers/php.rb index 1580b47068..9030852af4 100644 --- a/lib/rouge/lexers/php.rb +++ b/lib/rouge/lexers/php.rb @@ -48,10 +48,7 @@ def self.keywords ) end - def self.builtins - Kernel::load File.join(Lexers::BASE_DIR, 'php/keywords.rb') - builtins - end + require_relative "php/keywords" def builtins return [] unless @funcnamehighlighting diff --git a/lib/rouge/lexers/qml.rb b/lib/rouge/lexers/qml.rb index 577939fa2e..9ac77df61d 100644 --- a/lib/rouge/lexers/qml.rb +++ b/lib/rouge/lexers/qml.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'javascript.rb' + require_relative 'javascript' class Qml < Javascript title "QML" diff --git a/lib/rouge/lexers/reasonml.rb b/lib/rouge/lexers/reasonml.rb index 07c9f6c4e1..7ba2f6acc2 100644 --- a/lib/rouge/lexers/reasonml.rb +++ b/lib/rouge/lexers/reasonml.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'ocaml/common.rb' + require_relative 'ocaml/common' class ReasonML < OCamlCommon title "ReasonML" diff --git a/lib/rouge/lexers/rescript.rb b/lib/rouge/lexers/rescript.rb index 35daf12658..113a578a81 100644 --- a/lib/rouge/lexers/rescript.rb +++ b/lib/rouge/lexers/rescript.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'ocaml/common.rb' + require_relative 'ocaml/common' class ReScript < OCamlCommon title "ReScript" diff --git a/lib/rouge/lexers/sass.rb b/lib/rouge/lexers/sass.rb index 7758beb1be..3539e04d83 100644 --- a/lib/rouge/lexers/sass.rb +++ b/lib/rouge/lexers/sass.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'sass/common.rb' + require_relative 'sass/common' class Sass < SassCommon include Indentation diff --git a/lib/rouge/lexers/scss.rb b/lib/rouge/lexers/scss.rb index 7cf178ca93..8e8ac6ac5e 100644 --- a/lib/rouge/lexers/scss.rb +++ b/lib/rouge/lexers/scss.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'sass/common.rb' + require_relative 'sass/common' class Scss < SassCommon title "SCSS" diff --git a/lib/rouge/lexers/slice.rb b/lib/rouge/lexers/slice.rb index f2739cbd95..20381fc188 100644 --- a/lib/rouge/lexers/slice.rb +++ b/lib/rouge/lexers/slice.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'c.rb' + require_relative 'c' class Slice < C tag 'slice' diff --git a/lib/rouge/lexers/sqf.rb b/lib/rouge/lexers/sqf.rb index 331dafc29f..e7c15599fc 100644 --- a/lib/rouge/lexers/sqf.rb +++ b/lib/rouge/lexers/sqf.rb @@ -54,10 +54,7 @@ def self.diag_commands ) end - def self.commands - Kernel::load File.join(Lexers::BASE_DIR, "sqf/keywords.rb") - commands - end + require_relative "sqf/keywords" state :root do # Whitespace diff --git a/lib/rouge/lexers/terraform.rb b/lib/rouge/lexers/terraform.rb index 1732b93af9..ad2d38f419 100644 --- a/lib/rouge/lexers/terraform.rb +++ b/lib/rouge/lexers/terraform.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'hcl.rb' + require_relative 'hcl' class Terraform < Hcl title "Terraform" diff --git a/lib/rouge/lexers/tsx.rb b/lib/rouge/lexers/tsx.rb index e003bfb905..5c3f8b91fd 100644 --- a/lib/rouge/lexers/tsx.rb +++ b/lib/rouge/lexers/tsx.rb @@ -3,8 +3,8 @@ module Rouge module Lexers - load_lexer 'jsx.rb' - load_lexer 'typescript/common.rb' + require_relative 'jsx' + require_relative 'typescript/common' class TSX < JSX extend TypescriptCommon diff --git a/lib/rouge/lexers/twig.rb b/lib/rouge/lexers/twig.rb index 036ee38aaa..12a25718b8 100644 --- a/lib/rouge/lexers/twig.rb +++ b/lib/rouge/lexers/twig.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'jinja.rb' + require_relative 'jinja' class Twig < Jinja title "Twig" diff --git a/lib/rouge/lexers/typescript.rb b/lib/rouge/lexers/typescript.rb index 79a104b550..464171cc04 100644 --- a/lib/rouge/lexers/typescript.rb +++ b/lib/rouge/lexers/typescript.rb @@ -3,8 +3,8 @@ module Rouge module Lexers - load_lexer 'javascript.rb' - load_lexer 'typescript/common.rb' + require_relative 'javascript' + require_relative 'typescript/common' class Typescript < Javascript extend TypescriptCommon diff --git a/lib/rouge/lexers/viml.rb b/lib/rouge/lexers/viml.rb index 9ef1776b52..3c7cb977e1 100644 --- a/lib/rouge/lexers/viml.rb +++ b/lib/rouge/lexers/viml.rb @@ -13,10 +13,7 @@ class VimL < RegexLexer mimetypes 'text/x-vim' - def self.keywords - Kernel::load File.join(Lexers::BASE_DIR, 'viml/keywords.rb') - self.keywords - end + require_relative "viml/keywords" state :root do rule %r/^(\s*)(".*?)$/ do diff --git a/lib/rouge/lexers/vue.rb b/lib/rouge/lexers/vue.rb index 5b64f3d037..a0a78d5c58 100644 --- a/lib/rouge/lexers/vue.rb +++ b/lib/rouge/lexers/vue.rb @@ -2,7 +2,7 @@ module Rouge module Lexers - load_lexer 'html.rb' + require_relative 'html' class Vue < HTML desc 'Vue.js single-file components' diff --git a/lib/rouge/lexers/xquery.rb b/lib/rouge/lexers/xquery.rb index eb0d7a7662..bc554d60ba 100644 --- a/lib/rouge/lexers/xquery.rb +++ b/lib/rouge/lexers/xquery.rb @@ -3,7 +3,7 @@ module Rouge module Lexers - load_lexer 'xpath.rb' + require_relative 'xpath' class XQuery < XPath title 'XQuery' desc 'XQuery 3.1: An XML Query Language'