mdlint 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.pre-commit-hooks.yaml +6 -0
- data/CHANGELOG.md +33 -0
- data/README.md +136 -4
- data/Rakefile +14 -0
- data/Steepfile +17 -0
- data/action.yml +54 -0
- data/benchmark/compare.rb +49 -0
- data/benchmark/format.rb +29 -0
- data/lib/mdlint/cache_store.rb +85 -0
- data/lib/mdlint/cli/output_formatter.rb +150 -0
- data/lib/mdlint/cli.rb +268 -106
- data/lib/mdlint/config.rb +87 -1
- data/lib/mdlint/dialect.rb +53 -0
- data/lib/mdlint/linter/directive_filter.rb +91 -0
- data/lib/mdlint/linter/rule.rb +25 -5
- data/lib/mdlint/linter/rule_engine.rb +44 -7
- data/lib/mdlint/linter/rules/code_block_syntax.rb +128 -0
- data/lib/mdlint/linter/rules/first_line_heading.rb +10 -3
- data/lib/mdlint/linter/rules/heading_increment.rb +4 -3
- data/lib/mdlint/linter/rules/heading_style.rb +24 -2
- data/lib/mdlint/linter/rules/japanese.rb +201 -0
- data/lib/mdlint/linter/rules/line_length.rb +37 -0
- data/lib/mdlint/linter/rules/link_check.rb +151 -0
- data/lib/mdlint/linter/rules/no_multiple_blanks.rb +1 -0
- data/lib/mdlint/linter/rules/no_trailing_spaces.rb +1 -0
- data/lib/mdlint/linter/rules/source_style.rb +317 -0
- data/lib/mdlint/linter/violation.rb +16 -1
- data/lib/mdlint/linter.rb +9 -3
- data/lib/mdlint/lsp.rb +176 -0
- data/lib/mdlint/parallel_runner.rb +42 -0
- data/lib/mdlint/parser/block_parser.rb +627 -50
- data/lib/mdlint/parser/inline_parser.rb +259 -27
- data/lib/mdlint/parser/state.rb +21 -2
- data/lib/mdlint/parser.rb +5 -5
- data/lib/mdlint/plugin.rb +31 -0
- data/lib/mdlint/renderer/html_renderer.rb +346 -0
- data/lib/mdlint/renderer/md_renderer.rb +147 -11
- data/lib/mdlint/renderer.rb +5 -0
- data/lib/mdlint/text_width.rb +39 -0
- data/lib/mdlint/toc.rb +80 -0
- data/lib/mdlint/token.rb +3 -1
- data/lib/mdlint/version.rb +1 -1
- data/lib/mdlint.rb +25 -5
- data/script/commonmark_compatibility.rb +24 -0
- data/script/fetch_commonmark_spec.rb +14 -0
- data/sig/internal.rbs +405 -0
- data/sig/mdlint.rbs +107 -0
- metadata +26 -2
data/sig/mdlint.rbs
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
module Mdlint
|
|
2
|
+
class Error < StandardError
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
type options = Hash[Symbol, untyped]
|
|
6
|
+
|
|
7
|
+
def self.format: (String source, ?options options) -> String
|
|
8
|
+
def self.update_toc: (String source, ?options options) -> String
|
|
9
|
+
def self.html: (String source, ?options options) -> String
|
|
10
|
+
def self.parse: (String source, ?options options) -> Array[Token]
|
|
11
|
+
def self.fix: (String source, ?options options) -> String
|
|
12
|
+
def self.format_file: (String path, ?options options) -> (String | bool)
|
|
13
|
+
def self.lint: (String source, ?options options) -> Array[Linter::Violation]
|
|
14
|
+
def self.lint_file: (String path, ?options options) -> Array[Linter::Violation]
|
|
15
|
+
|
|
16
|
+
VERSION: String
|
|
17
|
+
|
|
18
|
+
class Dialect
|
|
19
|
+
attr_reader name: Symbol
|
|
20
|
+
attr_reader features: Array[Symbol]
|
|
21
|
+
def initialize: (?Symbol | String name, ?features: Array[Symbol]) -> void
|
|
22
|
+
def gfm?: () -> bool
|
|
23
|
+
def feature?: (Symbol feature) -> bool
|
|
24
|
+
def to_sym: () -> Symbol
|
|
25
|
+
def self.features: () -> Hash[Symbol, Array[Symbol]]
|
|
26
|
+
def self.resolve: (untyped value) -> Dialect
|
|
27
|
+
def self.register: (Symbol | String name, ?features: Array[Symbol]) -> Symbol
|
|
28
|
+
def self.registered: () -> Array[Symbol]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
module Plugin
|
|
32
|
+
class Error < Mdlint::Error
|
|
33
|
+
end
|
|
34
|
+
def self.register_rule: (Class rule_class) -> Class
|
|
35
|
+
def self.register_dialect: (Symbol | String name, ?features: Array[Symbol]) -> Symbol
|
|
36
|
+
def self.unregister_rule: (Class rule_class) -> void
|
|
37
|
+
def self.load: (String path) -> untyped
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
module Parser
|
|
41
|
+
def self.parse: (String source, ?options options) -> Array[Token]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
module Renderer
|
|
45
|
+
def self.render: (Array[Token] tokens, ?options options) -> String
|
|
46
|
+
def self.render_html: (Array[Token] tokens, ?options options) -> String
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
module Toc
|
|
50
|
+
def self.update: (String source, ?options options) -> String
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class Token
|
|
54
|
+
attr_accessor type: Symbol
|
|
55
|
+
attr_accessor tag: String?
|
|
56
|
+
attr_accessor nesting: Integer
|
|
57
|
+
attr_accessor level: Integer
|
|
58
|
+
attr_accessor content: String
|
|
59
|
+
attr_accessor markup: String
|
|
60
|
+
attr_accessor info: String
|
|
61
|
+
attr_accessor meta: Hash[Symbol, untyped]
|
|
62
|
+
attr_accessor map: Array[Integer]?
|
|
63
|
+
attr_accessor children: Array[Token]
|
|
64
|
+
attr_accessor attrs: Hash[Symbol, untyped]
|
|
65
|
+
def initialize: (type: Symbol, **untyped) -> void
|
|
66
|
+
def opening?: () -> bool
|
|
67
|
+
def closing?: () -> bool
|
|
68
|
+
def self_closing?: () -> bool
|
|
69
|
+
def block?: () -> bool
|
|
70
|
+
def inline?: () -> bool
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
module Linter
|
|
74
|
+
def self.fix: (String source, ?options options) -> String
|
|
75
|
+
def self.check: (String source, ?options options) -> Array[Violation]
|
|
76
|
+
|
|
77
|
+
class Violation
|
|
78
|
+
attr_reader rule_id: String
|
|
79
|
+
attr_reader message: String
|
|
80
|
+
attr_reader line: Integer
|
|
81
|
+
attr_reader column: Integer?
|
|
82
|
+
attr_reader severity: Symbol
|
|
83
|
+
attr_reader fixable: bool
|
|
84
|
+
def initialize: (rule_id: String, message: String, line: Integer, ?column: Integer?, ?severity: Symbol, ?fixable: bool) -> void
|
|
85
|
+
def to_s: () -> String
|
|
86
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
87
|
+
def fixable?: () -> bool
|
|
88
|
+
def error?: () -> bool
|
|
89
|
+
def warning?: () -> bool
|
|
90
|
+
def info?: () -> bool
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
class Rule
|
|
94
|
+
def initialize: (?options options) -> void
|
|
95
|
+
def check: (Array[Token] tokens, String source) -> Array[Violation]
|
|
96
|
+
def fix: (Array[Token] tokens, String source) -> String
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
class RuleRegistry
|
|
100
|
+
def self.all: () -> Array[singleton(Rule)]
|
|
101
|
+
def self.find: (String rule_id) -> singleton(Rule)?
|
|
102
|
+
def self.register: (singleton(Rule) rule_class) -> void
|
|
103
|
+
def self.unregister: (Class rule_class) -> void
|
|
104
|
+
def self.normalize_id: (String rule_id) -> String
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mdlint
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yudai Takada
|
|
@@ -19,31 +19,55 @@ executables:
|
|
|
19
19
|
extensions: []
|
|
20
20
|
extra_rdoc_files: []
|
|
21
21
|
files:
|
|
22
|
+
- ".pre-commit-hooks.yaml"
|
|
22
23
|
- CHANGELOG.md
|
|
23
24
|
- LICENSE.txt
|
|
24
25
|
- README.md
|
|
25
26
|
- Rakefile
|
|
27
|
+
- Steepfile
|
|
28
|
+
- action.yml
|
|
29
|
+
- benchmark/compare.rb
|
|
30
|
+
- benchmark/format.rb
|
|
26
31
|
- exe/mdlint
|
|
27
32
|
- lib/mdlint.rb
|
|
33
|
+
- lib/mdlint/cache_store.rb
|
|
28
34
|
- lib/mdlint/cli.rb
|
|
35
|
+
- lib/mdlint/cli/output_formatter.rb
|
|
29
36
|
- lib/mdlint/config.rb
|
|
37
|
+
- lib/mdlint/dialect.rb
|
|
30
38
|
- lib/mdlint/linter.rb
|
|
39
|
+
- lib/mdlint/linter/directive_filter.rb
|
|
31
40
|
- lib/mdlint/linter/rule.rb
|
|
32
41
|
- lib/mdlint/linter/rule_engine.rb
|
|
42
|
+
- lib/mdlint/linter/rules/code_block_syntax.rb
|
|
33
43
|
- lib/mdlint/linter/rules/first_line_heading.rb
|
|
34
44
|
- lib/mdlint/linter/rules/heading_increment.rb
|
|
35
45
|
- lib/mdlint/linter/rules/heading_style.rb
|
|
46
|
+
- lib/mdlint/linter/rules/japanese.rb
|
|
47
|
+
- lib/mdlint/linter/rules/line_length.rb
|
|
48
|
+
- lib/mdlint/linter/rules/link_check.rb
|
|
36
49
|
- lib/mdlint/linter/rules/no_multiple_blanks.rb
|
|
37
50
|
- lib/mdlint/linter/rules/no_trailing_spaces.rb
|
|
51
|
+
- lib/mdlint/linter/rules/source_style.rb
|
|
38
52
|
- lib/mdlint/linter/violation.rb
|
|
53
|
+
- lib/mdlint/lsp.rb
|
|
54
|
+
- lib/mdlint/parallel_runner.rb
|
|
39
55
|
- lib/mdlint/parser.rb
|
|
40
56
|
- lib/mdlint/parser/block_parser.rb
|
|
41
57
|
- lib/mdlint/parser/inline_parser.rb
|
|
42
58
|
- lib/mdlint/parser/state.rb
|
|
59
|
+
- lib/mdlint/plugin.rb
|
|
43
60
|
- lib/mdlint/renderer.rb
|
|
61
|
+
- lib/mdlint/renderer/html_renderer.rb
|
|
44
62
|
- lib/mdlint/renderer/md_renderer.rb
|
|
63
|
+
- lib/mdlint/text_width.rb
|
|
64
|
+
- lib/mdlint/toc.rb
|
|
45
65
|
- lib/mdlint/token.rb
|
|
46
66
|
- lib/mdlint/version.rb
|
|
67
|
+
- script/commonmark_compatibility.rb
|
|
68
|
+
- script/fetch_commonmark_spec.rb
|
|
69
|
+
- sig/internal.rbs
|
|
70
|
+
- sig/mdlint.rbs
|
|
47
71
|
homepage: https://github.com/ydah/mdlint
|
|
48
72
|
licenses:
|
|
49
73
|
- MIT
|
|
@@ -67,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
67
91
|
- !ruby/object:Gem::Version
|
|
68
92
|
version: '0'
|
|
69
93
|
requirements: []
|
|
70
|
-
rubygems_version: 4.0.
|
|
94
|
+
rubygems_version: 4.0.6
|
|
71
95
|
specification_version: 4
|
|
72
96
|
summary: A Pure Ruby Markdown linter and formatter
|
|
73
97
|
test_files: []
|