korekto 1.1.210313 → 1.5.210328
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/korekto +3 -2
- data/lib/korekto.rb +1 -1
- data/lib/korekto/main.rb +9 -4
- data/lib/korekto/statement.rb +6 -6
- data/lib/korekto/symbols.rb +4 -3
- data/rplugin/ruby/korekto.rb +1 -1
- data/start/korekto/syntax/korekto.vim +14 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a36bc0a8ec8d847c96d81ffaa6b6e5a5e2b4d554e3d6f6ab2ea169a5f5f5a33c
|
4
|
+
data.tar.gz: 93ad065ad45a8c4467c506a904873ef6ffa0f8b78e6d1d9c35124997704f09c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cae7009cc93cbe9b0d64c47e88a9d4731c0127516ca5d6e5a995f3941b49e3c87e5533f553aec627e392ac57a2bbb85c421da3e36ea1cf40f9c4328a349e2918
|
7
|
+
data.tar.gz: 5865c023419dea802ec58d8ba1ffc11b177ffb7494095d785b47e5bd3d56a2b7830713b9a8250cda702415e3f45be88a2aa639aa7eae587a26298188af738338
|
data/bin/korekto
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'help_parser'
|
3
3
|
|
4
|
-
OPTIONS = HelpParser['1.
|
4
|
+
OPTIONS = HelpParser['1.5.210328', <<HELP]
|
5
5
|
Usage:
|
6
|
-
korekto [:options
|
6
|
+
korekto [:options]
|
7
7
|
Options:
|
8
8
|
-h --help
|
9
9
|
-v --version
|
10
|
+
--edits \tShow only needed edits
|
10
11
|
--install \tInstalls the korekto neovim ruby plugin
|
11
12
|
--readme \tOpen korekto github page
|
12
13
|
# Example usage:
|
data/lib/korekto.rb
CHANGED
data/lib/korekto/main.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Korekto
|
2
2
|
class Main
|
3
|
-
MD_STATEMENT_CODE_TITLE = %r{^(?<statement>.*)\s#(?<code>[A-Z](\d+(/[\w,.]+)?)?)( (?<title>\S.*?\S))?$}
|
3
|
+
MD_STATEMENT_CODE_TITLE = %r{^(?<statement>.*)\s#(?<code>[A-Z](\d+(\.\w+)?(/[\w,.]+)?)?)( (?<title>\S.*?\S))?$}
|
4
4
|
MD_FILENAME = %r{^< (?<filename>[/\w\-.]+)$}
|
5
5
|
MD_KLASS_METHOD_DEFINITION = /^(?<klass>::[A-Z]\w+)#(?<method>\w+)(?<definition>[^=]*=.+)$/ # patch
|
6
6
|
MD_RULE = /^[?] (?<rule>\S.*)$/
|
@@ -15,8 +15,9 @@ class Main
|
|
15
15
|
|
16
16
|
def initialize(filename='-', statements: Statements.new, imports: [])
|
17
17
|
@filename,@statements,@imports = filename,statements,imports
|
18
|
-
@imports.push @filename
|
18
|
+
@imports.push @filename.freeze
|
19
19
|
@line,@active = nil,false
|
20
|
+
@section = File.basename(@filename,'.*')
|
20
21
|
@m_fence_korekto = /^```korekto$/
|
21
22
|
end
|
22
23
|
|
@@ -65,6 +66,8 @@ class Main
|
|
65
66
|
@statements.symbols.set_scanner value
|
66
67
|
when 'fence'
|
67
68
|
@m_fence_korekto = Regexp.new "^```#{value}$"
|
69
|
+
when 'section'
|
70
|
+
@section = value
|
68
71
|
when 'save'
|
69
72
|
BACKUPS[value] = Marshal.dump(@statements)
|
70
73
|
when 'restore'
|
@@ -113,9 +116,11 @@ class Main
|
|
113
116
|
code,title = @statements.add(md[:statement].strip,
|
114
117
|
md[:code],
|
115
118
|
md[:title],
|
116
|
-
@
|
119
|
+
@section,
|
117
120
|
statement_number)
|
118
|
-
|
121
|
+
if not OPTIONS.edits? or (@filename=='-' and not (md[:code]==code and md[:title]==title))
|
122
|
+
puts "#{@filename}:#{line_number}:#{code}:#{title}"
|
123
|
+
end
|
119
124
|
else
|
120
125
|
raise Error, 'unrecognized korekto line'
|
121
126
|
end
|
data/lib/korekto/statement.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
module Korekto
|
2
2
|
class Statement
|
3
|
-
attr_reader :code,:title,:regexp,:
|
4
|
-
def initialize(statement,code,title,
|
5
|
-
@statement,@code,@title,@statement_number,@context =
|
6
|
-
|
7
|
-
@statement.freeze; @
|
3
|
+
attr_reader :code,:title,:regexp,:section,:statement_number
|
4
|
+
def initialize(statement,code,title,section,statement_number,context)
|
5
|
+
@statement,@code,@title,@section,@statement_number,@context =
|
6
|
+
statement,code,title,section,statement_number,context
|
7
|
+
@statement.freeze; @section.freeze; @statement_number.freeze
|
8
8
|
syntax_check unless @statement[0]=='/' and @statement[-1]=='/' and ['A','L','M','E','I'].include?(@code[0])
|
9
9
|
@regexp = nil
|
10
10
|
set_acceptance_code
|
@@ -73,6 +73,7 @@ class Statement
|
|
73
73
|
|
74
74
|
def set_statement(support=nil, title=nil)
|
75
75
|
@code = "#{@code[0]}#{@statement_number}"
|
76
|
+
@code += '.' + @section unless @section=='-'
|
76
77
|
@code += "/#{support}" if support
|
77
78
|
@title = title.split(':',2).first if title
|
78
79
|
end
|
@@ -81,7 +82,6 @@ class Statement
|
|
81
82
|
support = []
|
82
83
|
s.each do |s|
|
83
84
|
c = s.code.split('/',2)[0]
|
84
|
-
c = s.filename+'.'+c unless s.filename=='-'
|
85
85
|
support.push(c)
|
86
86
|
end
|
87
87
|
return support.join(',')
|
data/lib/korekto/symbols.rb
CHANGED
@@ -37,7 +37,7 @@ class Symbols
|
|
37
37
|
Regexp.new(statement[1..-2])
|
38
38
|
else
|
39
39
|
pattern,count,seen = '\A',0,{}
|
40
|
-
|
40
|
+
statement.scan(@scanner) do |v|
|
41
41
|
if n=seen[v]
|
42
42
|
pattern << '\\'+n
|
43
43
|
elsif type = @v2t[v]
|
@@ -50,8 +50,9 @@ class Symbols
|
|
50
50
|
pattern << '('+regex+')'
|
51
51
|
end
|
52
52
|
else
|
53
|
-
#
|
54
|
-
|
53
|
+
# Escape Regexp specials
|
54
|
+
v = Regexp.quote v
|
55
|
+
# To avoid collisions with back-references, isolate digit in square brackets:
|
55
56
|
'0123456789'.include?(_=v[0]) and v[0]='['+_+']'
|
56
57
|
pattern << v
|
57
58
|
end
|
data/rplugin/ruby/korekto.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Neovim.plugin do |plug|
|
2
2
|
plug.command(:Korekto) do |nvim|
|
3
|
-
validations = nvim.command_output('w !korekto').strip.split("\n").map(&:strip)
|
3
|
+
validations = nvim.command_output('w !korekto --edits').strip.split("\n").map(&:strip)
|
4
4
|
msg = 'OK'
|
5
5
|
unless validations.empty?
|
6
6
|
buf = nvim.get_current_buf
|
@@ -1,12 +1,21 @@
|
|
1
|
+
syntax match Unsup /#[A-Z]\d\+\(\.\w\+\)\?/ contained containedin=Type
|
2
|
+
syntax match Sup /#[A-Z]\d\+\(\.\w\+\)\?\/\S\+/ contained containedin=Type
|
3
|
+
syntax match Title / [^:]\+/ contained containedin=Type
|
4
|
+
syntax match Undef /:[^#]\+$/ contained containedin=Type
|
5
|
+
syntax match Type /\s#[A-Z][^#]\+/ contains=Unsup,Sup,Title,Undef
|
1
6
|
syntax match Comment /^\s*#.\+$/
|
2
|
-
syntax match
|
3
|
-
syntax match Syntax /^[?] \w.\+$/
|
7
|
+
syntax match Syntax /^[?] \S.\+$/
|
4
8
|
syntax match Patch /^::[A-Z]\w\+#\w\+[^=]\+=.\+$/
|
5
9
|
syntax match Import /^< [\/A-Za-z\_\-\.]\+$/
|
10
|
+
syntax match Setting /^! \S.*$/
|
11
|
+
highlight Unsup ctermfg=brown
|
12
|
+
highlight Sup ctermfg=darkgreen
|
13
|
+
highlight Title ctermfg=darkblue
|
14
|
+
highlight Undef ctermfg=red
|
6
15
|
highlight Comment ctermfg=darkblue
|
7
|
-
highlight
|
8
|
-
highlight Syntax ctermfg=darkmagenta
|
16
|
+
highlight Import ctermfg=brown
|
9
17
|
highlight Patch ctermfg=darkgrey
|
10
|
-
highlight
|
18
|
+
highlight Syntax ctermfg=darkgrey
|
19
|
+
highlight Setting ctermfg=darkmagenta
|
11
20
|
setlocal tabstop=23
|
12
21
|
map <F7> :Korekto<CR>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: korekto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.210328
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- carlosjhr64
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: help_parser
|