rouge 4.1.3 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b018694487d82223169762c7e7231fdc62382011f8b6b82bb57bd7677d7ba0c0
4
- data.tar.gz: 026d1ea6626c3df24491451ef54688af78123207d8d5147c6ac878da6605f029
3
+ metadata.gz: a3281f8cbea5fa288016ada176d8fd748d2426af2f6a02a49c4f519ae4a385c9
4
+ data.tar.gz: a0e5aae51677fa27c6c448d3d617b0f4748934ad267dc0be49b705e2fc89f93b
5
5
  SHA512:
6
- metadata.gz: 6bc574ff5559d97bb347cdd2677abf1d2446ead33382a83ff7876876c6ad7bec715bd201debddf93cf2dac1ba004126d636a47958f372691c737174a37f9c7a9
7
- data.tar.gz: 1404ac65d64ba46dc54843f32ec93f7dc9106b6175d6f070ac0c64fdb59d255916c402e6442b7b75402d29de67728be7df3a25dc8d588e7a4ef6445515e2ea89
6
+ metadata.gz: 3fe33d5d2a60be45a82839227de784d92440a99c77e700d55cba412f1d8a2cb5b516013bd92f7db62f88a25fa6aee8bdd65415cd9c2203c1e4a1538549d7a1a7
7
+ data.tar.gz: 1b4598ed31db53da50a79e5aeaff8eca539c91dd7102b07a7e1106c4bd050071e689fb21a4d435b2e8d465cb91ae8a9275a91d777509961a6c95739e1ecc8d76
@@ -0,0 +1,6 @@
1
+ # Specify a default Code Owner by using a wildcard:
2
+ * @default-codeowner
3
+
4
+ /docs/ @all-docs
5
+
6
+ [Development] @dev-team
@@ -0,0 +1,29 @@
1
+ <!-- This file is made up from several examples on https://svelte.dev/examples and is not expected to function. -->
2
+ <script lang="ts">
3
+ import Image from './Image.svelte';
4
+
5
+ let src: string = '/tutorial/image.gif';
6
+ let count: number = 1;
7
+ $: doubled = count * 2; // the `$:` is special in svelte
8
+ </script>
9
+
10
+ <Image {src} bind:alt="{name.capitalize()} dancing" user={name.toUpperCase(false, 42, {key: 'value'})}
11
+ tooltip="I'm helping" false text=asdf on:message={handleMessage} />
12
+
13
+ {#await loadSrc(src)}
14
+ loading...
15
+ {:then data}
16
+ {#each cats as { name }, i}
17
+ <li>{name}</li>
18
+ {/each}
19
+
20
+ <!-- Keyed Each Block -->
21
+ {#each cats as cat (cat.id)}
22
+ <li>{cat.name}</li>
23
+ {/each}
24
+ {:catch err}
25
+ {@debug err}
26
+ {#await solveErr(err, {x: 'asdf'}) then reason}{@html reason}{/await}
27
+ {/await}
28
+
29
+ <style>p {font-family: 'Comic Sans MS', cursive;}</style>
@@ -9,11 +9,11 @@ module Rouge
9
9
  tag 'bpf'
10
10
 
11
11
  TYPE_KEYWORDS = %w(
12
- u8 u16 u32 u64 ll
12
+ u8 u16 u32 u64 s8 s16 s32 s64 ll
13
13
  ).join('|')
14
14
 
15
15
  MISC_KEYWORDS = %w(
16
- be16 be32 be64 exit lock map
16
+ be16 be32 be64 le16 le32 le64 bswap16 bswap32 bswap64 exit lock map
17
17
  ).join('|')
18
18
 
19
19
  state :root do
@@ -32,21 +32,21 @@ module Rouge
32
32
  rule %r/(call)(\s+)(\d+)/i do
33
33
  groups Keyword, Text::Whitespace, Literal::Number::Integer
34
34
  end
35
- rule %r/(call)(\s+)(\w+)(#)(\d+)/i do
35
+ rule %r/(call)(\s+)(\w+)(?:(#)(\d+))?/i do
36
36
  groups Keyword, Text::Whitespace, Name::Builtin, Punctuation, Literal::Number::Integer
37
37
  end
38
38
 
39
39
  # Unconditional jumps
40
- rule %r/(goto)(\s*)(\+\d+)?(\s*)(<?\w+>?)/i do
41
- groups Keyword, Text::Whitespace, Literal::Number::Integer, Text::Whitespace, Name::Label
40
+ rule %r/(gotol?)(\s*)([-+]0x\w+)?([-+]\d+)?(\s*)(<?\w+>?)/i do
41
+ groups Keyword, Text::Whitespace, Literal::Number::Hex, Literal::Number::Integer, Text::Whitespace, Name::Label
42
42
  end
43
43
 
44
44
  # Conditional jumps
45
- rule %r/(if)(\s+)([rw]\d+)(\s*)([s!=<>]+)(\s*)(0x\h+|[-]?\d+)(\s*)(goto)(\s*)(\+\d+)?(\s*)(<?\w+>?)/i do
46
- groups Keyword, Text::Whitespace, Name, Text::Whitespace, Operator, Text::Whitespace, Literal::Number, Text::Whitespace, Keyword, Text::Whitespace, Literal::Number::Integer, Text::Whitespace, Name::Label
45
+ rule %r/(if)(\s+)([rw]\d+)(\s*)([s!=<>]+)(\s*)(0x\h+|[-]?\d+)(\s*)(gotol?)(\s*)([-+]0x\w+)?([-+]\d+)?(\s*)(<?\w+>?)/i do
46
+ groups Keyword, Text::Whitespace, Name, Text::Whitespace, Operator, Text::Whitespace, Literal::Number, Text::Whitespace, Keyword, Text::Whitespace, Literal::Number::Hex, Literal::Number::Integer, Text::Whitespace, Name::Label
47
47
  end
48
- rule %r/(if)(\s+)([rw]\d+)(\s*)([s!=<>]+)(\s*)([rw]\d+)(\s*)(goto)(\s*)(\+\d+)?(\s*)(<?\w+>?)/i do
49
- groups Keyword, Text::Whitespace, Name, Text::Whitespace, Operator, Text::Whitespace, Name, Text::Whitespace, Keyword, Text::Whitespace, Literal::Number::Integer, Text::Whitespace, Name::Label
48
+ rule %r/(if)(\s+)([rw]\d+)(\s*)([s!=<>]+)(\s*)([rw]\d+)(\s*)(gotol?)(\s*)([-+]0x\w+)?([-+]\d+)?(\s*)(<?\w+>?)/i do
49
+ groups Keyword, Text::Whitespace, Name, Text::Whitespace, Operator, Text::Whitespace, Name, Text::Whitespace, Keyword, Text::Whitespace, Literal::Number::Hex, Literal::Number::Integer, Text::Whitespace, Name::Label
50
50
  end
51
51
 
52
52
  # Dereferences
@@ -70,7 +70,7 @@ module Rouge
70
70
  rule %r/#{MISC_KEYWORDS}/i, Keyword
71
71
 
72
72
  # Literals and global objects (maps) refered by name
73
- rule %r/(0x\h+|[-]?\d+)(\s*)(ll)?/i do
73
+ rule %r/([-]?0x\h+|[-]?\d+)(\s*)(ll)?/i do
74
74
  groups Literal::Number, Text::Whitespace, Keyword::Type
75
75
  end
76
76
  rule %r/(\w+)(\s*)(ll)/i do
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Codeowners < RegexLexer
7
+ title 'CODEOWNERS'
8
+ desc 'Code Owners syntax (https://docs.gitlab.com/ee/user/project/codeowners/reference.html)'
9
+ tag 'codeowners'
10
+ filenames 'CODEOWNERS'
11
+
12
+ state :root do
13
+ rule %r/[ \t\r\n]+/, Text::Whitespace
14
+ rule %r/^\s*#.*$/, Comment::Single
15
+
16
+ rule %r(
17
+ (\^?\[(?!\d+\])[^\]]+\])
18
+ (\[\d+\])?
19
+ )x do
20
+ groups Name::Namespace, Literal::Number
21
+ end
22
+
23
+ rule %r/\S*@\S+/, Name::Function
24
+
25
+ rule %r/[\p{Word}\.\/\-\*]+/, Name
26
+ rule %r/.*\\[\#\s]/, Name
27
+ end
28
+ end
29
+ end
30
+ end
@@ -18,7 +18,7 @@ module Rouge
18
18
 
19
19
  declarations = %w(
20
20
  abstract base async dynamic const covariant external extends factory final get implements
21
- inline interface late native on operator required sealed set static sync typedef var
21
+ interface late native on operator required sealed set static sync typedef var
22
22
  )
23
23
 
24
24
  types = %w(bool Comparable double Dynamic enum Function int List Map Never Null num Object Pattern Record Set String Symbol Type Uri void)
@@ -14,6 +14,10 @@ module Rouge
14
14
 
15
15
  filenames '*.ex', '*.exs'
16
16
 
17
+ def self.detect?(text)
18
+ return true if text.shebang?('elixir')
19
+ end
20
+
17
21
  mimetypes 'text/x-elixir', 'application/x-elixir'
18
22
 
19
23
  state :root do
@@ -23,7 +23,7 @@ module Rouge
23
23
 
24
24
  def self.declarations
25
25
  @declarations ||= Set.new %w(
26
- abstract const enum extends final implements native private
26
+ abstract const extends final implements native private
27
27
  protected public static strictfp super synchronized throws
28
28
  transient volatile
29
29
  )
@@ -31,7 +31,7 @@ module Rouge
31
31
 
32
32
  def self.types
33
33
  @types ||= Set.new %w(
34
- def boolean byte char double float int long short void
34
+ def var boolean byte char double float int long short void
35
35
  )
36
36
  end
37
37
 
@@ -56,7 +56,7 @@ module Rouge
56
56
  rule %r(//.*?$), Comment::Single
57
57
  rule %r(/[*].*?[*]/)m, Comment::Multiline
58
58
  rule %r/@\w[\w.]*/, Name::Decorator
59
- rule %r/(class|interface|trait)\b/, Keyword::Declaration, :class
59
+ rule %r/(class|interface|trait|enum|record)\b/, Keyword::Declaration, :class
60
60
  rule %r/package\b/, Keyword::Namespace, :import
61
61
  rule %r/import\b/, Keyword::Namespace, :import
62
62
 
@@ -8,8 +8,8 @@ module Rouge
8
8
  desc "The Python programming language (python.org)"
9
9
  tag 'python'
10
10
  aliases 'py'
11
- filenames '*.py', '*.pyw', '*.sc', 'SConstruct', 'SConscript', '*.tac',
12
- '*.bzl', 'BUCK', 'BUILD', 'BUILD.bazel', 'WORKSPACE'
11
+ filenames '*.py', '*.pyi', '*.pyw', '*.sc', 'SConstruct', 'SConscript',
12
+ '*.tac', '*.bzl', 'BUCK', 'BUILD', 'BUILD.bazel', 'WORKSPACE'
13
13
  mimetypes 'text/x-python', 'application/x-python'
14
14
 
15
15
  def self.detect?(text)
@@ -0,0 +1,91 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ load_lexer 'html.rb'
7
+
8
+ class Svelte < HTML
9
+ desc 'Svelte single-file components (https://svelte.dev/)'
10
+ tag 'svelte'
11
+ filenames '*.svelte'
12
+ mimetypes 'text/x-svelte', 'application/x-svelte'
13
+
14
+ def initialize(*)
15
+ super
16
+ # todo add support for typescript script blocks
17
+ @js = Javascript.new(options)
18
+ end
19
+
20
+ # Shorthand syntax for passing attributes - ex, `{src}` instead of `src={src}`
21
+ prepend :tag do
22
+ rule %r/(\{)\s*([a-zA-Z0-9_]+)\s*(})/m do
23
+ groups Str::Interpol, Name::Variable, Str::Interpol
24
+ pop!
25
+ end
26
+ end
27
+
28
+ prepend :attr do
29
+ # Duplicate template_start mixin here with a pop!
30
+ # Because otherwise we'll never exit the attr state
31
+ rule %r/\{/ do
32
+ token Str::Interpol
33
+ pop!
34
+ push :template
35
+ end
36
+ end
37
+
38
+ # handle templates within attribute single/double quotes
39
+ prepend :dq do
40
+ mixin :template_start
41
+ end
42
+
43
+ prepend :sq do
44
+ mixin :template_start
45
+ end
46
+
47
+ prepend :root do
48
+ # detect curly braces within HTML text (outside of tags/attributes)
49
+ rule %r/([^<&{]*)(\{)(\s*)/ do
50
+ groups Text, Str::Interpol, Text
51
+ push :template
52
+ end
53
+ end
54
+
55
+ state :template_start do
56
+ # open template
57
+ rule %r/\s*\{\s*/, Str::Interpol, :template
58
+ end
59
+
60
+ state :template do
61
+ # template end
62
+ rule %r/}/, Str::Interpol, :pop!
63
+
64
+ # Allow JS lexer to handle matched curly braces within template
65
+ rule(/(?<=^|[^\\])\{.*?(?<=^|[^\\])\}/) do
66
+ delegate @js
67
+ end
68
+
69
+ # keywords
70
+ rule %r/@(debug|html)\b/, Keyword
71
+ rule %r/(#await)(.*)(then|catch)(\s+)(\w+)/ do |m|
72
+ token Keyword, m[1]
73
+ delegate @js, m[2]
74
+ token Keyword, m[3]
75
+ token Text, m[4]
76
+ delegate @js, m[5]
77
+ end
78
+ rule %r/([#\/])(await|each|if|key)\b/, Keyword
79
+ rule %r/(:else)(\s+)(if)?\b/ do
80
+ groups Keyword, Text, Keyword
81
+ end
82
+ rule %r/:?(catch|then)\b/, Keyword
83
+
84
+ # allow JS parser to handle anything that's not a curly brace
85
+ rule %r/[^{}]+/ do
86
+ delegate @js
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -12,20 +12,20 @@ module Rouge
12
12
 
13
13
  keywords = %w(
14
14
  addhandler aggregates array asc assigns attributes begin break
15
- byref byval call case catch class const continue char ctype declare
15
+ byref byval call case catch class const continue color ctype declare
16
16
  delegate dim do downto each else elseif end enum event exception
17
17
  exit extends false finally for function global goto if
18
18
  implements inherits interface lib loop mod module
19
19
  new next nil object of optional paramarray
20
20
  private property protected public raise raiseevent rect redim
21
21
  removehandler return select shared soft static step sub super
22
- then to true try until using uend uhile
22
+ then to true try until using var wend while
23
23
  )
24
24
 
25
25
  keywords_type = %w(
26
- boolean cfstringref cgfloat cstring curency date double int8 int16
27
- int32 int64 integer ostype pstring ptr short single
28
- single string structure variant uinteger uint8 uint16 uint32 uint64
26
+ boolean byte cfstringref cgfloat cstring currency date datetime double int8 int16
27
+ int32 int64 integer ostype pair pstring ptr short single
28
+ string structure variant uinteger uint8 uint16 uint32 uint64
29
29
  ushort windowptr wstring
30
30
  )
31
31
 
data/lib/rouge/version.rb CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  module Rouge
5
5
  def self.version
6
- "4.1.3"
6
+ "4.2.0"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rouge
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.3
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeanine Adkisson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-31 00:00:00.000000000 Z
11
+ date: 2023-10-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Rouge aims to a be a simple, easy-to-extend drop-in replacement for pygments.
14
14
  email:
@@ -49,6 +49,7 @@ files:
49
49
  - lib/rouge/demos/clojure
50
50
  - lib/rouge/demos/cmake
51
51
  - lib/rouge/demos/cmhg
52
+ - lib/rouge/demos/codeowners
52
53
  - lib/rouge/demos/coffeescript
53
54
  - lib/rouge/demos/common_lisp
54
55
  - lib/rouge/demos/conf
@@ -210,6 +211,7 @@ files:
210
211
  - lib/rouge/demos/stan
211
212
  - lib/rouge/demos/stata
212
213
  - lib/rouge/demos/supercollider
214
+ - lib/rouge/demos/svelte
213
215
  - lib/rouge/demos/swift
214
216
  - lib/rouge/demos/systemd
215
217
  - lib/rouge/demos/syzlang
@@ -290,6 +292,7 @@ files:
290
292
  - lib/rouge/lexers/clojure.rb
291
293
  - lib/rouge/lexers/cmake.rb
292
294
  - lib/rouge/lexers/cmhg.rb
295
+ - lib/rouge/lexers/codeowners.rb
293
296
  - lib/rouge/lexers/coffeescript.rb
294
297
  - lib/rouge/lexers/common_lisp.rb
295
298
  - lib/rouge/lexers/conf.rb
@@ -463,6 +466,7 @@ files:
463
466
  - lib/rouge/lexers/stan.rb
464
467
  - lib/rouge/lexers/stata.rb
465
468
  - lib/rouge/lexers/supercollider.rb
469
+ - lib/rouge/lexers/svelte.rb
466
470
  - lib/rouge/lexers/swift.rb
467
471
  - lib/rouge/lexers/systemd.rb
468
472
  - lib/rouge/lexers/syzlang.rb
@@ -543,7 +547,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
543
547
  - !ruby/object:Gem::Version
544
548
  version: '0'
545
549
  requirements: []
546
- rubygems_version: 3.4.13
550
+ rubygems_version: 3.4.10
547
551
  signing_key:
548
552
  specification_version: 4
549
553
  summary: A pure-ruby colorizer based on pygments