Skip to content

Commit

Permalink
Add Meson specs (#1848)
Browse files Browse the repository at this point in the history
* Add meson to the list of supported languages

* Add mimetypes detection for Meson

* Add specs for Meson lexer

* Use the same memoized variables as method name
  • Loading branch information
tancnle authored Jul 18, 2022
1 parent 8195f23 commit 9a0e690
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/Languages.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@
- Mason (`mason`)
- Mathematica (`mathematica`)
- MATLAB (`matlab`)
- Meson (`meson`)
- MiniZinc (`minizinc`)
- MoonScript (`moonscript`)
- Mosel (`mosel`)
Expand Down
3 changes: 2 additions & 1 deletion lib/rouge/lexers/meson.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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
Expand Down
18 changes: 18 additions & 0 deletions spec/lexers/meson_spec.rb
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 9a0e690

Please sign in to comment.