diff --git a/docs/Languages.md b/docs/Languages.md index 4dd1064ef6..c9536b9c3d 100644 --- a/docs/Languages.md +++ b/docs/Languages.md @@ -124,6 +124,7 @@ - Mason (`mason`) - Mathematica (`mathematica`) - MATLAB (`matlab`) +- Meson (`meson`) - MiniZinc (`minizinc`) - MoonScript (`moonscript`) - Mosel (`mosel`) diff --git a/lib/rouge/lexers/meson.rb b/lib/rouge/lexers/meson.rb index 2c313a3b1a..616cb4f1c1 100644 --- a/lib/rouge/lexers/meson.rb +++ b/lib/rouge/lexers/meson.rb @@ -8,6 +8,7 @@ class Meson < RegexLexer desc "Meson's specification language (mesonbuild.com)" tag 'meson' filenames 'meson.build', 'meson_options.txt' + mimetypes 'text/x-meson' def self.keywords @keywords ||= %w( @@ -40,7 +41,7 @@ def self.builtin_functions dotted_identifier = /[[:alpha:]_.][[:alnum:]_.]*/ def current_string - @string_register ||= StringRegister.new + @current_string ||= StringRegister.new end state :root do diff --git a/spec/lexers/meson_spec.rb b/spec/lexers/meson_spec.rb new file mode 100644 index 0000000000..4d083bf42c --- /dev/null +++ b/spec/lexers/meson_spec.rb @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # + +describe Rouge::Lexers::Meson do + let(:subject) { Rouge::Lexers::Meson.new } + + describe 'guessing' do + include Support::Guessing + + it 'guesses by filename' do + assert_guess :filename => 'meson.build' + assert_guess :filename => 'meson_options.txt' + end + + it 'guesses by mimetype' do + assert_guess :mimetype => 'text/x-meson' + end + end +end