korekto 1.3.210316 → 1.6.210407
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 +2 -1
- data/lib/korekto/heap.rb +4 -0
- data/lib/korekto/main.rb +5 -5
- data/lib/korekto/statement.rb +7 -2
- data/lib/korekto/statements.rb +2 -1
- data/rplugin/ruby/korekto.rb +1 -1
- data/start/korekto/syntax/korekto.vim +14 -5
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63058c0e7d8ef9416a79f001e39c07988bb8f0627b6493737418adbdb8df4c21
|
4
|
+
data.tar.gz: fc413904c25e1ad6d93546ca10e91d5d548aecb19ca56c2bb032a0e2e741d649
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7107c848a39a79c564c02453a4f6c83c25c6621cd6fd89716ed33c3da14f679644024297f93ce8216a15605e728b5acde6406a7f88c70248e9c90dad4358ed9d
|
7
|
+
data.tar.gz: a1f836ef421b1466842aabccb091cc4b94fff05c5aab76a67486954505c6501e9cc3d6398e630ca5ce3db113732d9f52fb36667157dfbcd7e323a5fba4d321b8
|
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.6.210407', <<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/heap.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.*)$/
|
@@ -112,13 +112,13 @@ class Main
|
|
112
112
|
next unless active?
|
113
113
|
next if preprocess?
|
114
114
|
if md = MD_STATEMENT_CODE_TITLE.match(@line)
|
115
|
-
statement_number += 1
|
116
115
|
code,title = @statements.add(md[:statement].strip,
|
117
116
|
md[:code],
|
118
117
|
md[:title],
|
119
|
-
@section
|
120
|
-
|
121
|
-
|
118
|
+
@section){ statement_number += 1 }
|
119
|
+
if not OPTIONS.edits? or (@filename=='-' and not (md[:code]==code and md[:title]==title))
|
120
|
+
puts "#{@filename}:#{line_number}:#{code}:#{title}"
|
121
|
+
end
|
122
122
|
else
|
123
123
|
raise Error, 'unrecognized korekto line'
|
124
124
|
end
|
data/lib/korekto/statement.rb
CHANGED
@@ -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.section+'.'+c unless s.section=='-'
|
85
85
|
support.push(c)
|
86
86
|
end
|
87
87
|
return support.join(',')
|
@@ -150,7 +150,12 @@ class Statement
|
|
150
150
|
set_regexp
|
151
151
|
newlines_count(nl)
|
152
152
|
undefined_in_pattern
|
153
|
-
|
153
|
+
follows = @context.heap.to_a[0..nl].reverse
|
154
|
+
if @regexp.match? follows.map{_1.to_s}.join("\n")
|
155
|
+
set_statement(support(*follows))
|
156
|
+
else
|
157
|
+
set_statement
|
158
|
+
end
|
154
159
|
end
|
155
160
|
|
156
161
|
def tautology
|
data/lib/korekto/statements.rb
CHANGED
@@ -11,7 +11,7 @@ class Statements
|
|
11
11
|
def type(c) = @statements.select{_1.type==c}
|
12
12
|
def length = @statements.length
|
13
13
|
|
14
|
-
def add(statement,code,title,filename
|
14
|
+
def add(statement,code,title,filename)
|
15
15
|
c = code[0]; w = c=='W'
|
16
16
|
if restatement = @statements.detect{(w or _1.type==c) and _1.to_s==statement}
|
17
17
|
case restatement.type
|
@@ -24,6 +24,7 @@ class Statements
|
|
24
24
|
title ||= restatement.title
|
25
25
|
return code, title
|
26
26
|
end
|
27
|
+
statement_number = yield
|
27
28
|
statement = Statement.new(statement,code,title,filename,statement_number,self)
|
28
29
|
@statements.push statement
|
29
30
|
case statement.type
|
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.6.210407
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- carlosjhr64
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: help_parser
|
@@ -70,10 +70,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: '0'
|
72
72
|
requirements:
|
73
|
-
- 'ruby: ruby 3.0.
|
73
|
+
- 'ruby: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]'
|
74
74
|
- 'nvim: NVIM v0.4.4'
|
75
|
+
- 'neovim-ruby-host: 0.8.1'
|
75
76
|
- 'xdg-open: xdg-open 1.1.3+'
|
76
|
-
rubygems_version: 3.2.
|
77
|
+
rubygems_version: 3.2.15
|
77
78
|
signing_key:
|
78
79
|
specification_version: 4
|
79
80
|
summary: A general proof checker.
|