ruco 0.2.18 → 0.2.19
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 +7 -0
- data/MIT-LICENSE.txt +20 -0
- data/bin/ruco +24 -30
- data/lib/ruco.rb +1 -3
- data/lib/ruco/command_bar.rb +1 -1
- data/lib/ruco/core_ext/range.rb +1 -1
- data/lib/ruco/core_ext/string.rb +2 -15
- data/lib/ruco/editor/colors.rb +2 -2
- data/lib/ruco/status_bar.rb +1 -1
- data/lib/ruco/syntax_parser.rb +1 -1
- data/lib/ruco/version.rb +1 -1
- data/lib/ruco/window.rb +1 -1
- metadata +34 -64
- data/.gitignore +0 -2
- data/.travis.yml +0 -7
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -39
- data/Rakefile +0 -32
- data/Readme.md +0 -164
- data/lib/ruco/keyboard.rb +0 -206
- data/lib/ruco/screen.rb +0 -148
- data/lib/ruco/style_map.rb +0 -108
- data/playground/benchmark_syntax_parser.rb +0 -23
- data/ruco.gemspec +0 -22
- data/spec/fixtures/slow.js +0 -4
- data/spec/fixtures/test.tmTheme +0 -186
- data/spec/ruco/application_spec.rb +0 -433
- data/spec/ruco/array_processor_spec.rb +0 -46
- data/spec/ruco/command_bar_spec.rb +0 -127
- data/spec/ruco/core_ext/array_spec.rb +0 -31
- data/spec/ruco/core_ext/range_spec.rb +0 -37
- data/spec/ruco/core_ext/string_spec.rb +0 -36
- data/spec/ruco/editor_spec.rb +0 -1261
- data/spec/ruco/file_store_spec.rb +0 -102
- data/spec/ruco/form_spec.rb +0 -83
- data/spec/ruco/history_spec.rb +0 -143
- data/spec/ruco/keyboard_spec.rb +0 -136
- data/spec/ruco/option_accessor_spec.rb +0 -26
- data/spec/ruco/screen_spec.rb +0 -52
- data/spec/ruco/status_bar_spec.rb +0 -49
- data/spec/ruco/style_map_spec.rb +0 -124
- data/spec/ruco/syntax_parser_spec.rb +0 -78
- data/spec/ruco/text_area_spec.rb +0 -183
- data/spec/ruco/tm_theme_spec.rb +0 -14
- data/spec/ruco/window_spec.rb +0 -170
- data/spec/ruco_spec.rb +0 -7
- data/spec/spec_helper.rb +0 -36
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c4b7d7e0b73027d1ef874c0f3494581976e973a5
|
4
|
+
data.tar.gz: 247ba8d64c6c7eab0592790dce749d6a79813a77
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7f096d447626e9462030116c3b0604a8360f2b9c9e75c45a4c22148517c0c3fe82609809cfa6908216d98371a45d85bb83a528493e0bbc586bb5e7dc2f3829e8
|
7
|
+
data.tar.gz: 94746342db307fda720f6c7a726d84f98b452fdacada82186b984708e7bab32fa69e6c8967c657cf402b0a2f76b58d43caf00e31c247528873f14915ccff92c8
|
data/MIT-LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (C) 2013 Michael Grosser <michael@grosser.it>
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/bin/ruco
CHANGED
@@ -48,41 +48,40 @@ def log(stuff)
|
|
48
48
|
File.open('ruco.log','ab'){|f| f.puts stuff }
|
49
49
|
end
|
50
50
|
|
51
|
-
# do not use colors if the terminal does not support colors
|
52
|
-
# so far the only terminal that supports it:
|
53
|
-
# - xterm-256color on osx
|
54
|
-
# - xterm and xterm-256color on ubuntu 10.04+
|
55
|
-
# (setting ENV['TERM'] will sometimes crash un-rescue-able -> test if it works)
|
56
|
-
def activate_256_colors
|
57
|
-
require 'ruco/file_store'
|
58
|
-
(
|
59
|
-
# not windows
|
60
|
-
RbConfig::CONFIG['host_os'] !~ /mswin|mingw/ and
|
61
|
-
|
62
|
-
# possible to open xterm-256color
|
63
|
-
['xterm', 'xterm-256color'].include?(ENV['TERM']) and
|
64
|
-
Ruco::FileStore.new('~/.ruco/cache').cache('color_possible'){
|
65
|
-
system(%{TERM=xterm-256color ruby -r curses -e 'Curses.noecho' > /dev/null 2>&1})
|
66
|
-
}
|
67
|
-
|
68
|
-
# finally switch terminal, so curses knows we want colors
|
69
|
-
) and ENV['TERM'] = 'xterm-256color'
|
70
|
-
end
|
71
|
-
|
72
51
|
options = parse_options
|
73
52
|
|
74
|
-
|
53
|
+
options[:colors] = if options[:no_colors]
|
75
54
|
false
|
76
55
|
elsif options[:colors]
|
77
56
|
true
|
78
57
|
else
|
79
|
-
|
58
|
+
# so far the only terminal that supports it:
|
59
|
+
# - xterm-256color on osx
|
60
|
+
# - xterm on ubuntu 10.04+
|
61
|
+
if RbConfig::CONFIG['host_os'] !~ /mswin|mingw/
|
62
|
+
if ENV["TERM"] == 'xterm-256color'
|
63
|
+
true
|
64
|
+
else
|
65
|
+
require 'ruco/file_store'
|
66
|
+
if ENV['TERM'] == 'xterm'
|
67
|
+
# switch terminal, so curses knows we want colors
|
68
|
+
# setting ENV['TERM'] will sometimes crash un-rescue-able -> test if it works
|
69
|
+
possible = Ruco::FileStore.new('~/.ruco/cache').cache('color_possible') do
|
70
|
+
system(%{TERM=xterm-256color ruby -r curses -e 'Curses.noecho' > /dev/null 2>&1})
|
71
|
+
end
|
72
|
+
ENV['TERM'] = 'xterm-256color' if possible
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
80
76
|
end
|
77
|
+
$ruco_colors = options[:colors]
|
81
78
|
|
82
79
|
require 'ruco'
|
83
80
|
|
84
81
|
# draw app and redraw after each keystroke (or paste)
|
85
|
-
|
82
|
+
Dispel::Screen.open(options) do |screen|
|
83
|
+
$ruco_screen = screen
|
84
|
+
|
86
85
|
app = Ruco::Application.new(ARGV[0],
|
87
86
|
:convert_tabs => options[:convert_tabs],
|
88
87
|
:undo_stack_size => options[:undo_stack_size],
|
@@ -91,15 +90,10 @@ Ruco::Screen.open(options) do |screen|
|
|
91
90
|
|
92
91
|
screen.draw *app.display_info
|
93
92
|
|
94
|
-
Keyboard.
|
95
|
-
Curses.getch
|
96
|
-
end
|
97
|
-
|
98
|
-
Keyboard.output do |key|
|
93
|
+
Dispel::Keyboard.output do |key|
|
99
94
|
screen.debug_key(key) if options[:debug_keys]
|
100
95
|
if key == :resize
|
101
96
|
app.resize(screen.lines, screen.columns)
|
102
|
-
screen.clear_cache
|
103
97
|
else
|
104
98
|
result = app.key key
|
105
99
|
break if result == :quit
|
data/lib/ruco.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'dispel'
|
1
2
|
require 'language_sniffer'
|
2
3
|
|
3
4
|
require 'ruco/version'
|
@@ -9,14 +10,11 @@ require 'ruco/core_ext/hash'
|
|
9
10
|
require 'ruco/core_ext/range'
|
10
11
|
require 'ruco/core_ext/file'
|
11
12
|
|
12
|
-
require 'ruco/keyboard'
|
13
13
|
require 'ruco/position'
|
14
14
|
require 'ruco/history'
|
15
15
|
require 'ruco/option_accessor'
|
16
16
|
require 'ruco/file_store'
|
17
17
|
require 'ruco/window'
|
18
|
-
require 'ruco/screen'
|
19
|
-
require 'ruco/style_map'
|
20
18
|
require 'ruco/syntax_parser'
|
21
19
|
|
22
20
|
require 'ruco/editor'
|
data/lib/ruco/command_bar.rb
CHANGED
data/lib/ruco/core_ext/range.rb
CHANGED
data/lib/ruco/core_ext/string.rb
CHANGED
@@ -1,13 +1,6 @@
|
|
1
1
|
class String
|
2
|
-
# http://grosser.it/2011/08/28/ruby-string-naive-split-because-split-is-to-clever/
|
3
|
-
# " ".split(' ') == []
|
4
|
-
# " ".naive_split(' ') == ['','','','']
|
5
|
-
# "".split(' ') == []
|
6
|
-
# "".naive_split(' ') == ['']
|
7
2
|
def naive_split(pattern)
|
8
|
-
|
9
|
-
result = split(pattern, -1)
|
10
|
-
result.empty? ? [''] : result
|
3
|
+
Dispel::Tools.naive_split(self, pattern)
|
11
4
|
end
|
12
5
|
|
13
6
|
def tabs_to_spaces!
|
@@ -53,14 +46,8 @@ class String
|
|
53
46
|
end unless defined? ellipsize
|
54
47
|
end
|
55
48
|
|
56
|
-
# http://grosser.it/2010/12/31/ruby-string-indexes-indices-find-all-indexes-in-a-string
|
57
49
|
class String
|
58
50
|
def indexes(needle)
|
59
|
-
|
60
|
-
current_index = -1
|
61
|
-
while current_index = index(needle, current_index+1)
|
62
|
-
found << current_index
|
63
|
-
end
|
64
|
-
found
|
51
|
+
Dispel::Tools.indexes(self, needle)
|
65
52
|
end
|
66
53
|
end
|
data/lib/ruco/editor/colors.rb
CHANGED
@@ -7,8 +7,8 @@ module Ruco
|
|
7
7
|
STYLING_TIMEOUT = 4
|
8
8
|
|
9
9
|
def style_map
|
10
|
-
$
|
11
|
-
$
|
10
|
+
$ruco_screen && $ruco_screen.options[:foreground] = theme.foreground
|
11
|
+
$ruco_screen && $ruco_screen.options[:background] = theme.background
|
12
12
|
map = super
|
13
13
|
|
14
14
|
return map if @colors_took_too_long or not @options[:language]
|
data/lib/ruco/status_bar.rb
CHANGED
data/lib/ruco/syntax_parser.rb
CHANGED
data/lib/ruco/version.rb
CHANGED
data/lib/ruco/window.rb
CHANGED
metadata
CHANGED
@@ -1,62 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruco
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.19
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Michael Grosser
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-12-23 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: clipboard
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 0.9.8
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 0.9.8
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: textpow
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: 1.3.0
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 1.3.0
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: language_sniffer
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: dispel
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
60
67
|
- !ruby/object:Gem::Version
|
61
68
|
version: '0'
|
62
69
|
description:
|
@@ -66,12 +73,7 @@ executables:
|
|
66
73
|
extensions: []
|
67
74
|
extra_rdoc_files: []
|
68
75
|
files:
|
69
|
-
- .
|
70
|
-
- .travis.yml
|
71
|
-
- Gemfile
|
72
|
-
- Gemfile.lock
|
73
|
-
- Rakefile
|
74
|
-
- Readme.md
|
76
|
+
- MIT-LICENSE.txt
|
75
77
|
- bin/ruco
|
76
78
|
- lib/ruco.rb
|
77
79
|
- lib/ruco/application.rb
|
@@ -91,74 +93,42 @@ files:
|
|
91
93
|
- lib/ruco/file_store.rb
|
92
94
|
- lib/ruco/form.rb
|
93
95
|
- lib/ruco/history.rb
|
94
|
-
- lib/ruco/keyboard.rb
|
95
96
|
- lib/ruco/option_accessor.rb
|
96
97
|
- lib/ruco/position.rb
|
97
|
-
- lib/ruco/screen.rb
|
98
98
|
- lib/ruco/status_bar.rb
|
99
|
-
- lib/ruco/style_map.rb
|
100
99
|
- lib/ruco/syntax_parser.rb
|
101
100
|
- lib/ruco/text_area.rb
|
102
101
|
- lib/ruco/text_field.rb
|
103
102
|
- lib/ruco/tm_theme.rb
|
104
103
|
- lib/ruco/version.rb
|
105
104
|
- lib/ruco/window.rb
|
106
|
-
- playground/benchmark_syntax_parser.rb
|
107
|
-
- ruco.gemspec
|
108
105
|
- spec/fixtures/railscasts.tmTheme
|
109
|
-
|
110
|
-
- spec/fixtures/test.tmTheme
|
111
|
-
- spec/ruco/application_spec.rb
|
112
|
-
- spec/ruco/array_processor_spec.rb
|
113
|
-
- spec/ruco/command_bar_spec.rb
|
114
|
-
- spec/ruco/core_ext/array_spec.rb
|
115
|
-
- spec/ruco/core_ext/range_spec.rb
|
116
|
-
- spec/ruco/core_ext/string_spec.rb
|
117
|
-
- spec/ruco/editor_spec.rb
|
118
|
-
- spec/ruco/file_store_spec.rb
|
119
|
-
- spec/ruco/form_spec.rb
|
120
|
-
- spec/ruco/history_spec.rb
|
121
|
-
- spec/ruco/keyboard_spec.rb
|
122
|
-
- spec/ruco/option_accessor_spec.rb
|
123
|
-
- spec/ruco/screen_spec.rb
|
124
|
-
- spec/ruco/status_bar_spec.rb
|
125
|
-
- spec/ruco/style_map_spec.rb
|
126
|
-
- spec/ruco/syntax_parser_spec.rb
|
127
|
-
- spec/ruco/text_area_spec.rb
|
128
|
-
- spec/ruco/tm_theme_spec.rb
|
129
|
-
- spec/ruco/window_spec.rb
|
130
|
-
- spec/ruco_spec.rb
|
131
|
-
- spec/spec_helper.rb
|
132
|
-
homepage: http://github.com/grosser/ruco
|
106
|
+
homepage: https://github.com/grosser/ruco
|
133
107
|
licenses:
|
134
108
|
- MIT
|
135
|
-
|
136
|
-
|
109
|
+
metadata: {}
|
110
|
+
post_install_message: |2+
|
111
|
+
|
112
|
+
Mac: shift/ctrl + arrow-keys only work in iterm (not Terminal.app)
|
113
|
+
Ubuntu: sudo apt-get install xclip # to use the clipboard
|
114
|
+
|
137
115
|
rdoc_options: []
|
138
116
|
require_paths:
|
139
117
|
- lib
|
140
118
|
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
-
none: false
|
142
119
|
requirements:
|
143
|
-
- -
|
120
|
+
- - '>='
|
144
121
|
- !ruby/object:Gem::Version
|
145
122
|
version: '0'
|
146
|
-
segments:
|
147
|
-
- 0
|
148
|
-
hash: 169951991926027466
|
149
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
|
-
none: false
|
151
124
|
requirements:
|
152
|
-
- -
|
125
|
+
- - '>='
|
153
126
|
- !ruby/object:Gem::Version
|
154
127
|
version: '0'
|
155
|
-
segments:
|
156
|
-
- 0
|
157
|
-
hash: 169951991926027466
|
158
128
|
requirements: []
|
159
129
|
rubyforge_project:
|
160
|
-
rubygems_version:
|
130
|
+
rubygems_version: 2.0.14
|
161
131
|
signing_key:
|
162
|
-
specification_version:
|
132
|
+
specification_version: 4
|
163
133
|
summary: Commandline editor written in ruby
|
164
134
|
test_files: []
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
ruco (0.2.18)
|
5
|
-
clipboard (>= 0.9.8)
|
6
|
-
language_sniffer
|
7
|
-
textpow (>= 1.3.0)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: http://rubygems.org/
|
11
|
-
specs:
|
12
|
-
bump (0.3.9)
|
13
|
-
clipboard (1.0.1)
|
14
|
-
diff-lcs (1.1.3)
|
15
|
-
language_sniffer (1.0.2)
|
16
|
-
oniguruma (1.1.0)
|
17
|
-
plist (3.1.0)
|
18
|
-
rake (0.9.2.2)
|
19
|
-
rspec (2.12.0)
|
20
|
-
rspec-core (~> 2.12.0)
|
21
|
-
rspec-expectations (~> 2.12.0)
|
22
|
-
rspec-mocks (~> 2.12.0)
|
23
|
-
rspec-core (2.12.2)
|
24
|
-
rspec-expectations (2.12.1)
|
25
|
-
diff-lcs (~> 1.1.3)
|
26
|
-
rspec-mocks (2.12.2)
|
27
|
-
textpow (1.3.1)
|
28
|
-
plist (>= 3.0.1)
|
29
|
-
|
30
|
-
PLATFORMS
|
31
|
-
ruby
|
32
|
-
|
33
|
-
DEPENDENCIES
|
34
|
-
bump
|
35
|
-
ffi
|
36
|
-
oniguruma
|
37
|
-
rake
|
38
|
-
rspec (~> 2)
|
39
|
-
ruco!
|