merrol 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +7 -0
- data/.gitignore +4 -0
- data/.rspec +2 -0
- data/LICENSE +23 -0
- data/README.md +58 -0
- data/ROADMAP.md +22 -0
- data/Rakefile +63 -0
- data/autotest/discover.rb +2 -0
- data/bin/m +9 -0
- data/config/commands.yml +150 -0
- data/config/language.yml +47 -0
- data/config/messages.yml +3 -0
- data/config/settings.yml +3 -0
- data/config/snippets/rails.yml +22 -0
- data/config/snippets/rspec.yml +35 -0
- data/config/snippets/ruby.yml +97 -0
- data/config/styles/Railscasts.xml +121 -0
- data/config/templates/rails.yml +21 -0
- data/config/templates/rspec.yml +6 -0
- data/data/images/merrol.svg +412 -0
- data/data/images/merrol2.svg +531 -0
- data/data/images/modified.svg +156 -0
- data/data/images/saved.svg +156 -0
- data/lib/merrol/controllers/controller.rb +26 -0
- data/lib/merrol/controllers/edit_controller.rb +24 -0
- data/lib/merrol/controllers/file_controller.rb +61 -0
- data/lib/merrol/controllers/help_controller.rb +6 -0
- data/lib/merrol/controllers/main_controller.rb +26 -0
- data/lib/merrol/controllers/search_controller.rb +5 -0
- data/lib/merrol/controllers/tools_controller.rb +28 -0
- data/lib/merrol/gtk/bin.rb +11 -0
- data/lib/merrol/gtk/image.rb +8 -0
- data/lib/merrol/gtk/list_view.rb +43 -0
- data/lib/merrol/gtk/source_view.rb +22 -0
- data/lib/merrol/gtk/widget.rb +12 -0
- data/lib/merrol/gtk/window.rb +18 -0
- data/lib/merrol/keyboard_map.rb +136 -0
- data/lib/merrol/lib/application.rb +29 -0
- data/lib/merrol/lib/commands.rb +40 -0
- data/lib/merrol/lib/file.rb +6 -0
- data/lib/merrol/lib/shortcut.rb +35 -0
- data/lib/merrol/lib/widget_builder.rb +49 -0
- data/lib/merrol/lib/yaml.rb +10 -0
- data/lib/merrol/models/source_model.rb +44 -0
- data/lib/merrol/views/edit.yml +50 -0
- data/lib/merrol/views/file_list.yml +11 -0
- data/lib/merrol/views/file_path.yml +8 -0
- data/lib/merrol/views/file_status.yml +6 -0
- data/lib/merrol/views/hbox.yml +6 -0
- data/lib/merrol/views/main.yml +9 -0
- data/lib/merrol/views/scroll_bars.yml +15 -0
- data/lib/merrol/views/status_bar.yml +7 -0
- data/lib/merrol.rb +16 -0
- data/lib/prerequisites.rb +54 -0
- data/merrol.gemspec +24 -0
- data/spec/controllers/controller_spec.rb +27 -0
- data/spec/controllers/edit_controller_spec.rb +38 -0
- data/spec/controllers/file_controller_spec.rb +209 -0
- data/spec/controllers/main_controller_spec.rb +20 -0
- data/spec/gtk/bin_spec.rb +13 -0
- data/spec/gtk/list_view_spec.rb +114 -0
- data/spec/gtk/source_view_spec.rb +41 -0
- data/spec/gtk/widget_spec.rb +37 -0
- data/spec/gtk/window_spec.rb +28 -0
- data/spec/integration/000_startup_spec.rb +14 -0
- data/spec/integration/001_load_from_commandline_spec.rb +25 -0
- data/spec/integration/002_loading_and_saving_spec.rb +35 -0
- data/spec/integration/003_tab_file_switching_spec.rb +49 -0
- data/spec/integration/ideas_spec.rb +23 -0
- data/spec/integration_helper.rb +11 -0
- data/spec/lib/application_spec.rb +57 -0
- data/spec/lib/commands_spec.rb +63 -0
- data/spec/lib/file_spec.rb +9 -0
- data/spec/lib/shortcut_spec.rb +59 -0
- data/spec/lib/widget_builder_spec.rb +77 -0
- data/spec/lib/yaml_spec.rb +26 -0
- data/spec/models/source_model_spec.rb +80 -0
- data/spec/spec_helper.rb +18 -0
- data/spec/support/actions.rb +28 -0
- data/spec/support/expectations.rb +46 -0
- data/spec/support/setup.rb +32 -0
- metadata +224 -0
data/.autotest
ADDED
data/.gitignore
ADDED
data/.rspec
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
(The MIT License)
|
2
|
+
|
3
|
+
Copyright (c) 2010 Phil Thompson
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
|
data/README.md
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
Merrol
|
2
|
+
======
|
3
|
+
Minimalist Editor for Ruby, Rails and Other Languages
|
4
|
+
|
5
|
+
|
6
|
+
Status
|
7
|
+
----------------------------------
|
8
|
+
**Under development (October 2010)**
|
9
|
+
|
10
|
+
The first milestone (0.0.1) will soon be released. This will have syntax highlighting, load mulitple files (from command line), save (CTRL+S) and switch files (CTRL+TAB). It should be stable but there isn't much to it yet.
|
11
|
+
|
12
|
+
|
13
|
+
What
|
14
|
+
----------------------------------
|
15
|
+
An editor for Ruby, Rails and supporting langauges, written in pure Ruby (1.9) and GTK using some Rails idioms with an open design to allow customization and enhancement.
|
16
|
+
|
17
|
+
|
18
|
+
Why
|
19
|
+
----------------------------------
|
20
|
+
I noticed, while using other editors that I found myself constantly re-arranging windows to get the optimum setup. I was also frustrated by little bugs, design issues and sensible shortcuts. I thought, there must be a better way.
|
21
|
+
|
22
|
+
I want to make an editor that is really easy to tweak. Users would be able to fork it and customize it as they saw fit. It will also make use of existing apps such as autotest and rails generators and commands such as grep.
|
23
|
+
|
24
|
+
I want to try something different. To create an editor that is focused on BDD and TDD from the ground up.
|
25
|
+
|
26
|
+
|
27
|
+
Goals
|
28
|
+
----------------------------------
|
29
|
+
To get the most out of a screen whether it's a 30" desktop or a 13" laptop. Control screens without having to resize windows. Maximize the workspace.
|
30
|
+
|
31
|
+
Foremost, it will be a Rails and Ruby editor with an emphasis on Behaviour and Test Driven Development. There will be nothing stopping it being customized for other languages and there will be nothing to stop it being forked or plugins added, although a plugin system is not currently planned.
|
32
|
+
|
33
|
+
No toolbars, menus, icons or any other extra fluff. Straightforward shortcuts will allow access to all functions.
|
34
|
+
|
35
|
+
It will be robust, built with well factored, well tested, pure Ruby code
|
36
|
+
|
37
|
+
There will be no dialogs. Panels will allow a more versatile and accessible way to accept input.
|
38
|
+
|
39
|
+
Support multiple instances for loading different application directories.
|
40
|
+
|
41
|
+
It will be developed primarily for the Linux OS in particular it uses ruby GNOME 2. However, this is a cross platform library so it should work on Windows and Mac OS.
|
42
|
+
|
43
|
+
|
44
|
+
!What
|
45
|
+
----------------------------------
|
46
|
+
It will not be a full blown IDE. There are plenty of these about and I don't believe they are necessary for Ruby or Rails development.
|
47
|
+
|
48
|
+
It will not support TextMate bundles.
|
49
|
+
|
50
|
+
|
51
|
+
Features
|
52
|
+
----------------------------------
|
53
|
+
* Configuration is all done in YAML files. Configure anything then CTRL+Y to reload all YAML files. Change shortcuts, settings, themes, views, snippets, etc.
|
54
|
+
* Panels - replace the outdated dialog box. Continue working even with it open.
|
55
|
+
* Fuzzy File Panel - Open, create and rename files quickly and easily by pattern matching and selection. Starts with a folder view to aid navigation. Supports exclusions via .gitignore and globs (configurable, obviously)
|
56
|
+
* Written with pure Ruby version 1.9.2 and Ruby-GNOME2
|
57
|
+
* Fast startup time
|
58
|
+
|
data/ROADMAP.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Open file in the current window with fuzzy matcher (CTRL+O)
|
2
|
+
Autoload configuration (YAML files)
|
3
|
+
Close file (CTRL+W)
|
4
|
+
Multi-file switching (CTRL+TAB)
|
5
|
+
Remove trailing space (on save)
|
6
|
+
Save window position
|
7
|
+
Show Keyboard shortcuts
|
8
|
+
Single blank line at end of file (on save)
|
9
|
+
Snippets (Smart code tab completion)
|
10
|
+
Find/Replace (CTRL+F)
|
11
|
+
Multi-file find/replace (CTRL+SHIFT+F)
|
12
|
+
Output window
|
13
|
+
Integrated autospec
|
14
|
+
Mouse support will be added for functions that really do benefit (e.g. file browsing?) after keyboard support has been completed
|
15
|
+
|
16
|
+
rails generator snippets
|
17
|
+
rcov - pretty test coverage output
|
18
|
+
rspec - pretty html specs output
|
19
|
+
Git support (do git add before reloading files? or between loads/saves?)
|
20
|
+
rdoc - builtin help using rdoc - somehow for ruby as well
|
21
|
+
handle really large files (e.g. SQL dump or log file. Probably turn off highlighting)
|
22
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
desc 'runs the specs (except integration)'
|
2
|
+
task :spec do
|
3
|
+
specs = (Dir['spec/*/'] - ['spec/integration/']).join(' ')
|
4
|
+
coverage = 'export COVERAGE=true && ' if ENV['COVERAGE']
|
5
|
+
raise 'FAILED: Specs' unless system "#{coverage}rspec #{specs}"
|
6
|
+
end
|
7
|
+
|
8
|
+
desc 'runs integration specs'
|
9
|
+
task :integration do
|
10
|
+
raise 'FAILED: Integration' unless system 'rspec spec/integration'
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'builds the gem'
|
14
|
+
task :build do
|
15
|
+
raise 'FAILED: Unable to build gem' unless system 'gem build merrol.gemspec'
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'builds and installs the gem'
|
19
|
+
task :install => :build do
|
20
|
+
system "gem uninstall -x merrol"
|
21
|
+
raise 'FAILED: Unable to install gem' unless system "gem install #{gem_name}"
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'run local app. Loads application.rb by default. Override with f=file,file,file'
|
25
|
+
task :run do
|
26
|
+
require_relative 'lib/merrol'
|
27
|
+
module Merrol
|
28
|
+
files = %w(lib/merrol/lib/application.rb README.md lib/merrol/lib/widget_builder.rb)
|
29
|
+
Application.new WORKING_DIR, (ENV['f'] && ENV['f'].split(',')) || files
|
30
|
+
Gtk.main
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
desc 'tests, builds, installs and runs the app'
|
35
|
+
task :default => [:spec, :integration, :build, :install] do
|
36
|
+
system 'm'
|
37
|
+
end
|
38
|
+
|
39
|
+
desc 'code coverage'
|
40
|
+
task :coverage do
|
41
|
+
ENV['COVERAGE'] = 'true'
|
42
|
+
Rake::Task['spec'].invoke
|
43
|
+
end
|
44
|
+
|
45
|
+
desc 'takes the version in the gemspec creates a git tag and sends the gem to rubygems'
|
46
|
+
task :release do
|
47
|
+
name, version = gemspec_details
|
48
|
+
system "git tag -f -a v#{version} -m 'Version #{version}'"
|
49
|
+
system "gem push #{name}-#{version}.gem"
|
50
|
+
end
|
51
|
+
|
52
|
+
def gem_name
|
53
|
+
name, version = gemspec_details
|
54
|
+
"#{name}-#{version}.gem"
|
55
|
+
end
|
56
|
+
|
57
|
+
def gemspec_details
|
58
|
+
gemspec = File.read('merrol.gemspec')
|
59
|
+
name = gemspec.scan(/s\.name.*=.*"(.*)"/).first.first
|
60
|
+
version = gemspec.scan(/s\.version.*=.*"(.*)"/).first.first
|
61
|
+
[name, version]
|
62
|
+
end
|
63
|
+
|
data/bin/m
ADDED
data/config/commands.yml
ADDED
@@ -0,0 +1,150 @@
|
|
1
|
+
# Shortcuts must be written in the correct order and must be all uppercase
|
2
|
+
# 1. CTRL (Optional)
|
3
|
+
# 2. ALT (Optional)
|
4
|
+
# 3. SHIFT (Optional)
|
5
|
+
# 4. key (Mandatory)
|
6
|
+
# example: CTRL+ALT+SHIFT+K
|
7
|
+
# Special keys:
|
8
|
+
# ESC, TAB, CAPS_LOCK, BACKSPACE, ENTER
|
9
|
+
# INSERT, DELETE, HOME, END, PAGE_UP, PAGE_DOWN, PAUSE
|
10
|
+
# UP, DOWN, LEFT, RIGHT, SPACE
|
11
|
+
|
12
|
+
|
13
|
+
help:
|
14
|
+
commands:
|
15
|
+
help: Opens command help panel (Subsequent presses cycle through different sort orders)
|
16
|
+
key: F1
|
17
|
+
|
18
|
+
help:
|
19
|
+
help: Displays keyboard layout help. Cancels when CTRL key is released
|
20
|
+
key: CTRL+F1
|
21
|
+
|
22
|
+
about:
|
23
|
+
help: Displays information about the editor
|
24
|
+
key: CTRL+SHIFT+F1
|
25
|
+
|
26
|
+
file:
|
27
|
+
new:
|
28
|
+
help: Shows file create panel. Allow navigation and completion of path. Creates any folders that do not exist
|
29
|
+
key: CTRL+N
|
30
|
+
|
31
|
+
open:
|
32
|
+
help: Shows open panel and allows a pattern to be entered to select and open a file. Characters are matched against the relative path. Spaces are wildcards. New files can also be created from here.
|
33
|
+
key: CTRL+O
|
34
|
+
|
35
|
+
save:
|
36
|
+
help: Save and apply any reformatting modules
|
37
|
+
key: CTRL+S
|
38
|
+
|
39
|
+
rename:
|
40
|
+
help: Rename or move a file. Opens panel with file path. Make any adjustments and press ENTER
|
41
|
+
key: CTRL+M
|
42
|
+
|
43
|
+
switch:
|
44
|
+
help: Switch between open files. Like an ALT+TAB window switcher holding down CTRL keeps the list open while pressing TAB cycles through it.
|
45
|
+
key: CTRL+TAB
|
46
|
+
|
47
|
+
close:
|
48
|
+
help: Closes an open file
|
49
|
+
key: CTRL+W
|
50
|
+
|
51
|
+
search:
|
52
|
+
find:
|
53
|
+
help: Find and replace. Uses grep to search the project
|
54
|
+
key: CTRL+F
|
55
|
+
|
56
|
+
line:
|
57
|
+
help: Move to the line number entered
|
58
|
+
key: CTRL+L
|
59
|
+
|
60
|
+
top_left:
|
61
|
+
help: Switches to the top left source code window
|
62
|
+
key: ALT+1
|
63
|
+
|
64
|
+
top_right:
|
65
|
+
help: Switches to the top right source code window
|
66
|
+
key: ALT+2
|
67
|
+
|
68
|
+
bottom_left:
|
69
|
+
help: Switches to the bottom left source code window
|
70
|
+
key: ALT+3
|
71
|
+
|
72
|
+
bottom_right:
|
73
|
+
help: Switches to the bottom right source code window
|
74
|
+
key: ALT+4
|
75
|
+
|
76
|
+
edit:
|
77
|
+
undo:
|
78
|
+
help: Undoes a keystroke or several if previously entered quickly
|
79
|
+
key: CTRL+Z
|
80
|
+
|
81
|
+
redo:
|
82
|
+
help: Redoes the previously undone key or keys
|
83
|
+
key: CTRL+SHIFT+Z
|
84
|
+
|
85
|
+
cut:
|
86
|
+
help: Cuts the selected text and stores it in the clipboard
|
87
|
+
key: CTRL+X
|
88
|
+
|
89
|
+
copy:
|
90
|
+
help: Copies the selected text to the clipboard
|
91
|
+
key: CTRL+C
|
92
|
+
|
93
|
+
paste:
|
94
|
+
help: Pastes text from the clipboard at the current cursor position
|
95
|
+
key: CTRL+V
|
96
|
+
|
97
|
+
select_all:
|
98
|
+
help: Selects all text in current window
|
99
|
+
key: CTRL+A
|
100
|
+
|
101
|
+
select_none:
|
102
|
+
help: Selects all text in current window
|
103
|
+
key: CTRL+SHIFT+A
|
104
|
+
|
105
|
+
delete:
|
106
|
+
help: Remove the selected text
|
107
|
+
key: DELETE
|
108
|
+
|
109
|
+
del_line:
|
110
|
+
help: Remove a while line and move following lines up
|
111
|
+
key: CTRL+D
|
112
|
+
|
113
|
+
tools:
|
114
|
+
complete:
|
115
|
+
help: Triggered by pressing TAB after some text. ESC cancels. Press TAB to move to next variable. Same syntax as gEdit. Configured by going to snippets folder and opening the YAML file for the relevant file extension or editing the global.yml file.
|
116
|
+
key: TAB
|
117
|
+
|
118
|
+
test:
|
119
|
+
help: Switches between code and spec or test. Works for models, views, controllers, helpers, lib, features and steps (maybe)
|
120
|
+
key: CTRL+T
|
121
|
+
|
122
|
+
diff:
|
123
|
+
help: Switches to a git diff of the file in the current window
|
124
|
+
key: CTRL+K
|
125
|
+
|
126
|
+
snippets:
|
127
|
+
help: Opens the snippets file(s) related to the current file being edited
|
128
|
+
key: CTRL+J
|
129
|
+
|
130
|
+
reload:
|
131
|
+
help: Reload configuration files located in config/ and subdirectories
|
132
|
+
key: CTRL+Y
|
133
|
+
|
134
|
+
error:
|
135
|
+
help: Goto to last error
|
136
|
+
key: CTRL+E
|
137
|
+
|
138
|
+
main:
|
139
|
+
numbers:
|
140
|
+
help: Toggle line numbers
|
141
|
+
key: CTRL+SHIFT+L
|
142
|
+
|
143
|
+
quit:
|
144
|
+
help: Exit editor (ALT+F4 should also work)
|
145
|
+
key: CTRL+Q
|
146
|
+
|
147
|
+
cancel:
|
148
|
+
help: Cancels (and hides) any open panels and returns to the last focused window
|
149
|
+
key: ESC
|
150
|
+
|
data/config/language.yml
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# The matcher will find the first language that matches the pattern plus any exists or a bang line
|
2
|
+
# So if ruby was placed before rubyonrails it would always match and never get to rubyonrails
|
3
|
+
|
4
|
+
css:
|
5
|
+
pattern: css
|
6
|
+
|
7
|
+
cucumber:
|
8
|
+
pattern: .feature
|
9
|
+
|
10
|
+
haml:
|
11
|
+
pattern: .haml
|
12
|
+
|
13
|
+
js:
|
14
|
+
pattern: .js
|
15
|
+
|
16
|
+
html:
|
17
|
+
pattern: .html .htm
|
18
|
+
|
19
|
+
markdown:
|
20
|
+
pattern: .md .markdown
|
21
|
+
|
22
|
+
rubyonrails:
|
23
|
+
snippets: ruby rails rspec cucumber
|
24
|
+
pattern: .rb .rake Rakefile
|
25
|
+
exists: config/routes.rb
|
26
|
+
|
27
|
+
ruby:
|
28
|
+
snippets: ruby rspec cucumber
|
29
|
+
pattern: .rb .rake Rakefile Gemfile .gemspec .ru
|
30
|
+
bang: ruby
|
31
|
+
|
32
|
+
sh:
|
33
|
+
pattern: .sh
|
34
|
+
bang: bash sh
|
35
|
+
|
36
|
+
sass:
|
37
|
+
pattern: .sass
|
38
|
+
|
39
|
+
sql:
|
40
|
+
pattern: sql
|
41
|
+
|
42
|
+
xml:
|
43
|
+
pattern: xml
|
44
|
+
|
45
|
+
yaml:
|
46
|
+
pattern: .yaml .yml
|
47
|
+
|
data/config/messages.yml
ADDED
data/config/settings.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
bf: |
|
2
|
+
before_filter
|
3
|
+
|
4
|
+
af: |
|
5
|
+
after_filter :@<action>, :@<except|only> => [:@<actions>] $0
|
6
|
+
|
7
|
+
bel: |
|
8
|
+
belongs_to :@<model>
|
9
|
+
|
10
|
+
# validators
|
11
|
+
|
12
|
+
va: validates_associated :@<attribute>
|
13
|
+
vc: validates_confirmation_of :@<attribute>
|
14
|
+
ve: validates_exclusion_of :@<attribute>
|
15
|
+
vf: validates_format_of :@<attribute>
|
16
|
+
vi: validates_inclusion_of :@<attribute>, :@<in> => @<range>
|
17
|
+
vl: validates_length_of :@<attribute>, :within => @<length>
|
18
|
+
vn: validates_numericality_of :@<attribute>
|
19
|
+
vp: validates_presence_of :@<attribute>
|
20
|
+
vpif: validates_presence_of :@<attribute>, :if => proc { |object| @<condition> }
|
21
|
+
vu: validates_uniqueness_of :@<attribute>
|
22
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
desc: |
|
2
|
+
describe ${${ClassName}|'${description}'} do
|
3
|
+
${}
|
4
|
+
end
|
5
|
+
|
6
|
+
context: |
|
7
|
+
context ${${ClassName}|'${description}'} do
|
8
|
+
${}
|
9
|
+
end
|
10
|
+
|
11
|
+
it: |
|
12
|
+
it 'does something' do
|
13
|
+
${}
|
14
|
+
end
|
15
|
+
|
16
|
+
before: |
|
17
|
+
before :each do
|
18
|
+
${}
|
19
|
+
end
|
20
|
+
|
21
|
+
beforea: |
|
22
|
+
before :all do
|
23
|
+
${}
|
24
|
+
end
|
25
|
+
|
26
|
+
after: |
|
27
|
+
before :each do
|
28
|
+
${}
|
29
|
+
end
|
30
|
+
|
31
|
+
aftera: |
|
32
|
+
before :all do
|
33
|
+
${}
|
34
|
+
end
|
35
|
+
|
@@ -0,0 +1,97 @@
|
|
1
|
+
req: |
|
2
|
+
require '<file>'
|
3
|
+
<>
|
4
|
+
|
5
|
+
load: |
|
6
|
+
load '<file>'
|
7
|
+
<>
|
8
|
+
|
9
|
+
module: |
|
10
|
+
module <name>
|
11
|
+
<>
|
12
|
+
end
|
13
|
+
|
14
|
+
class: |
|
15
|
+
class <name>
|
16
|
+
<>
|
17
|
+
end
|
18
|
+
|
19
|
+
r: |
|
20
|
+
attr_reader :<attributes>
|
21
|
+
|
22
|
+
w: |
|
23
|
+
attr_writer :<attributes>
|
24
|
+
|
25
|
+
rw: |
|
26
|
+
attr_accessor :<attributes>
|
27
|
+
|
28
|
+
cr: |
|
29
|
+
cattr_reader :<attributes>
|
30
|
+
|
31
|
+
cw: |
|
32
|
+
cattr_writer :<attributes>
|
33
|
+
|
34
|
+
crw: |
|
35
|
+
cattr_accessor :<attributes>
|
36
|
+
|
37
|
+
map: |
|
38
|
+
map { |<element>| <> }
|
39
|
+
|
40
|
+
inj: |
|
41
|
+
inject(<object>) { |<injection>, <element>| <> }
|
42
|
+
|
43
|
+
rej: |
|
44
|
+
reject { |<element>| <element>.<> }
|
45
|
+
|
46
|
+
sel: |
|
47
|
+
select { |<element>| <element>.<> }
|
48
|
+
|
49
|
+
lam: |
|
50
|
+
lambda { |<args>| <> }
|
51
|
+
|
52
|
+
def: |
|
53
|
+
def <name>
|
54
|
+
<>
|
55
|
+
end
|
56
|
+
|
57
|
+
defs: |
|
58
|
+
self.def <name>
|
59
|
+
<>
|
60
|
+
end
|
61
|
+
|
62
|
+
init: |
|
63
|
+
def initialize <params>
|
64
|
+
<>
|
65
|
+
end
|
66
|
+
|
67
|
+
do: |
|
68
|
+
do
|
69
|
+
<>
|
70
|
+
end
|
71
|
+
|
72
|
+
doo: |
|
73
|
+
do |<element>|
|
74
|
+
<>
|
75
|
+
end
|
76
|
+
|
77
|
+
while: |
|
78
|
+
while <condition>
|
79
|
+
<>
|
80
|
+
end
|
81
|
+
|
82
|
+
if: |
|
83
|
+
if <condition>
|
84
|
+
<>
|
85
|
+
end
|
86
|
+
|
87
|
+
el: |
|
88
|
+
else
|
89
|
+
<>
|
90
|
+
|
91
|
+
ei: |
|
92
|
+
elsif <condition>
|
93
|
+
<>
|
94
|
+
|
95
|
+
yaml: |
|
96
|
+
<hash> = YAML.load File.open('<filename>')
|
97
|
+
|
@@ -0,0 +1,121 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!--
|
3
|
+
Copyright (C) 2009 tm2gtksw2(Alexandre da Silva)
|
4
|
+
|
5
|
+
This file was generated from a textmate theme named Railscasts
|
6
|
+
with tm2gtksw2 tool. (Alexandre da Silva)
|
7
|
+
|
8
|
+
This library is free software; you can redistribute it and/or
|
9
|
+
modify it under the terms of the GNU Library General Public
|
10
|
+
License as published by the Free Software Foundation; either
|
11
|
+
version 2 of the License, or (at your option) any later version.
|
12
|
+
|
13
|
+
This library is distributed in the hope that it will be useful,
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
16
|
+
Library General Public License for more details.
|
17
|
+
|
18
|
+
You should have received a copy of the GNU Library General Public
|
19
|
+
License along with this library; if not, write to the
|
20
|
+
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
21
|
+
Boston, MA 02111-1307, USA.
|
22
|
+
-->
|
23
|
+
|
24
|
+
<style-scheme id="railscasts" _name="Railscasts" version="1.0">
|
25
|
+
<author>tm2gtksw2(Alexandre da Silva)</author>
|
26
|
+
<_description>GMate Theme - Generated from textmate theme with tm2gtksw2</_description>
|
27
|
+
|
28
|
+
<style name="bracket-match" background="#3d3f40"/>
|
29
|
+
<style name="bracket-mismatch" background="#333435" underline="true"/>
|
30
|
+
<style name="css:at-rules" foreground="#cc7833"/>
|
31
|
+
<style name="css:color" foreground="#6d9cbe"/>
|
32
|
+
<style name="css:keyword" foreground="#6e9cbe"/>
|
33
|
+
<style name="current-line" background="#333435"/>
|
34
|
+
<style name="cursor" foreground="#ffffff"/>
|
35
|
+
<style name="def:base-n-integer" foreground="#a5c261"/>
|
36
|
+
<style name="def:boolean" foreground="#6e9cbe"/>
|
37
|
+
<style name="def:builtin" foreground="#6e9cbe"/>
|
38
|
+
<style name="def:character" foreground="#a5c261"/>
|
39
|
+
<style name="def:comment" foreground="#bc9458" italic="true"/>
|
40
|
+
<style name="def:complex" foreground="#a5c261"/>
|
41
|
+
<style name="def:constant" foreground="#6d9cbe"/>
|
42
|
+
<style name="def:decimal" foreground="#a5c261"/>
|
43
|
+
<style name="def:doc-comment" foreground="#bc9458" italic="true"/>
|
44
|
+
<style name="def:doc-comment-element" foreground="#bc9458" italic="true"/>
|
45
|
+
<style name="def:error" foreground="#ffffff" background="#990000"/>
|
46
|
+
<style name="def:floating-point" foreground="#a5c261"/>
|
47
|
+
<style name="def:function" foreground="#ffc66d"/>
|
48
|
+
<style name="def:identifier" foreground="#d0d0ff"/>
|
49
|
+
<style name="def:keyword" foreground="#cc7833"/>
|
50
|
+
<style name="def:note" foreground="#bc9458" italic="true"/>
|
51
|
+
<style name="def:number" foreground="#a5c261"/>
|
52
|
+
<style name="def:operator" foreground="#cc7833"/>
|
53
|
+
<style name="def:preprocessor" foreground="#a5c261"/>
|
54
|
+
<style name="def:reserved" foreground="#cc7833"/>
|
55
|
+
<style name="def:shebang" foreground="#bc9458" italic="true"/>
|
56
|
+
<style name="def:special-char" foreground="#519f50"/>
|
57
|
+
<style name="def:special-constant" foreground="#6e9cbe"/>
|
58
|
+
<style name="def:statement" foreground="#cc7833"/>
|
59
|
+
<style name="def:string" foreground="#a5c261"/>
|
60
|
+
<style name="def:type" foreground="#6e9cbe"/>
|
61
|
+
<style name="diff:added-line" foreground="#e6e1dc" background="#144212"/>
|
62
|
+
<style name="diff:location" background="#2f33ab"/>
|
63
|
+
<style name="diff:removed-line" foreground="#e6e1dc" background="#660000"/>
|
64
|
+
<style name="draw-spaces" foreground="#404040"/>
|
65
|
+
<style name="html:dtd" foreground="#a5c261"/>
|
66
|
+
<style name="html:tag" foreground="#e8bf6a"/>
|
67
|
+
<style name="js:function" foreground="#da4939"/>
|
68
|
+
<style name="line-numbers" foreground="#e6e1dc" background="#333435"/>
|
69
|
+
<style name="perl:builtin" foreground="#ffc66d"/>
|
70
|
+
<style name="perl:include-statement" foreground="#cc7833"/>
|
71
|
+
<style name="perl:line-directive" foreground="#6d9cbe"/>
|
72
|
+
<style name="perl:special-variable" foreground="#da4939"/>
|
73
|
+
<style name="perl:type" foreground="#6d9cbe"/>
|
74
|
+
<style name="perl:variable" foreground="#d0d0ff"/>
|
75
|
+
<style name="php:string" foreground="#a5c261"/>
|
76
|
+
<style name="python:builtin-constant" foreground="#cc7833"/>
|
77
|
+
<style name="python:builtin-function" foreground="#ffc66d"/>
|
78
|
+
<style name="python:builtin-object" foreground="#6d9cbe"/>
|
79
|
+
<style name="python:module-handler" foreground="#cc7833"/>
|
80
|
+
<style name="python:special-variable" foreground="#cc7833"/>
|
81
|
+
<style name="ruby:attribute-definition" foreground="#da4939"/>
|
82
|
+
<style name="ruby:builtin" foreground="#da4939"/>
|
83
|
+
<style name="ruby:support-constant" foreground="#da4939"/>
|
84
|
+
<style name="ruby:class-variable" foreground="#d0d0ff"/>
|
85
|
+
<style name="ruby:constant" foreground="#da4939"/>
|
86
|
+
<style name="ruby:global-variable" foreground="#ffc66d"/>
|
87
|
+
<style name="ruby:instance-variable" foreground="#d0d0ff"/>
|
88
|
+
<style name="ruby:module-handler" foreground="#cc7833"/>
|
89
|
+
<style name="ruby:predefined-variable" foreground="#6e9cbe"/>
|
90
|
+
<style name="ruby:regex" foreground="#a5c261"/>
|
91
|
+
<style name="ruby:special-variable" foreground="#cc7833"/>
|
92
|
+
<style name="ruby:symbol" foreground="#6d9cbe"/>
|
93
|
+
<style name="rubyonrails:attribute-definition" foreground="#da4939"/>
|
94
|
+
<style name="rubyonrails:builtin" foreground="#da4939"/>
|
95
|
+
<style name="rubyonrails:support-constant" foreground="#da4939"/>
|
96
|
+
<style name="rubyonrails:class-inherit" foreground="#ffffff"/>
|
97
|
+
<style name="rubyonrails:class-name" foreground="#ffffff"/>
|
98
|
+
<style name="rubyonrails:class-variable" foreground="#d0d0ff"/>
|
99
|
+
<style name="rubyonrails:complex-interpolation" foreground="#519f50"/>
|
100
|
+
<style name="rubyonrails:constant" foreground="#da4939"/>
|
101
|
+
<style name="rubyonrails:global-variable" foreground="#ffc66d"/>
|
102
|
+
<style name="rubyonrails:instance-variable" foreground="#d0d0ff"/>
|
103
|
+
<style name="rubyonrails:module-handler" foreground="#cc7833"/>
|
104
|
+
<style name="rubyonrails:module-name" foreground="#ffffff"/>
|
105
|
+
<style name="rubyonrails:predefined-variable" foreground="#6e9cbe"/>
|
106
|
+
<style name="rubyonrails:rails" foreground="#da4939"/>
|
107
|
+
<style name="rubyonrails:regex" foreground="#a5c261"/>
|
108
|
+
<style name="rubyonrails:simple-interpolation" foreground="#519f50"/>
|
109
|
+
<style name="rubyonrails:special-variable" foreground="#cc7833"/>
|
110
|
+
<style name="rubyonrails:symbol" foreground="#6d9cbe"/>
|
111
|
+
<style name="search-match" background="#333435" bold="true" underline="true"/>
|
112
|
+
<style name="selection" foreground="#e6e1dc" background="#545d73"/>
|
113
|
+
<style name="text" foreground="#e6e1dc" background="#2b2b2b"/>
|
114
|
+
<style name="xml:attribute-name" foreground="#e8bf6a"/>
|
115
|
+
<style name="xml:doctype" foreground="#e8bf6a"/>
|
116
|
+
<style name="xml:element-name" foreground="#e8bf6a"/>
|
117
|
+
<style name="xml:namespace" foreground="#e8bf6a"/>
|
118
|
+
<style name="xml:tag" foreground="#e8bf6a"/>
|
119
|
+
|
120
|
+
</style-scheme>
|
121
|
+
|