merrol 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/.autotest +7 -0
  2. data/.gitignore +4 -0
  3. data/.rspec +2 -0
  4. data/LICENSE +23 -0
  5. data/README.md +58 -0
  6. data/ROADMAP.md +22 -0
  7. data/Rakefile +63 -0
  8. data/autotest/discover.rb +2 -0
  9. data/bin/m +9 -0
  10. data/config/commands.yml +150 -0
  11. data/config/language.yml +47 -0
  12. data/config/messages.yml +3 -0
  13. data/config/settings.yml +3 -0
  14. data/config/snippets/rails.yml +22 -0
  15. data/config/snippets/rspec.yml +35 -0
  16. data/config/snippets/ruby.yml +97 -0
  17. data/config/styles/Railscasts.xml +121 -0
  18. data/config/templates/rails.yml +21 -0
  19. data/config/templates/rspec.yml +6 -0
  20. data/data/images/merrol.svg +412 -0
  21. data/data/images/merrol2.svg +531 -0
  22. data/data/images/modified.svg +156 -0
  23. data/data/images/saved.svg +156 -0
  24. data/lib/merrol/controllers/controller.rb +26 -0
  25. data/lib/merrol/controllers/edit_controller.rb +24 -0
  26. data/lib/merrol/controllers/file_controller.rb +61 -0
  27. data/lib/merrol/controllers/help_controller.rb +6 -0
  28. data/lib/merrol/controllers/main_controller.rb +26 -0
  29. data/lib/merrol/controllers/search_controller.rb +5 -0
  30. data/lib/merrol/controllers/tools_controller.rb +28 -0
  31. data/lib/merrol/gtk/bin.rb +11 -0
  32. data/lib/merrol/gtk/image.rb +8 -0
  33. data/lib/merrol/gtk/list_view.rb +43 -0
  34. data/lib/merrol/gtk/source_view.rb +22 -0
  35. data/lib/merrol/gtk/widget.rb +12 -0
  36. data/lib/merrol/gtk/window.rb +18 -0
  37. data/lib/merrol/keyboard_map.rb +136 -0
  38. data/lib/merrol/lib/application.rb +29 -0
  39. data/lib/merrol/lib/commands.rb +40 -0
  40. data/lib/merrol/lib/file.rb +6 -0
  41. data/lib/merrol/lib/shortcut.rb +35 -0
  42. data/lib/merrol/lib/widget_builder.rb +49 -0
  43. data/lib/merrol/lib/yaml.rb +10 -0
  44. data/lib/merrol/models/source_model.rb +44 -0
  45. data/lib/merrol/views/edit.yml +50 -0
  46. data/lib/merrol/views/file_list.yml +11 -0
  47. data/lib/merrol/views/file_path.yml +8 -0
  48. data/lib/merrol/views/file_status.yml +6 -0
  49. data/lib/merrol/views/hbox.yml +6 -0
  50. data/lib/merrol/views/main.yml +9 -0
  51. data/lib/merrol/views/scroll_bars.yml +15 -0
  52. data/lib/merrol/views/status_bar.yml +7 -0
  53. data/lib/merrol.rb +16 -0
  54. data/lib/prerequisites.rb +54 -0
  55. data/merrol.gemspec +24 -0
  56. data/spec/controllers/controller_spec.rb +27 -0
  57. data/spec/controllers/edit_controller_spec.rb +38 -0
  58. data/spec/controllers/file_controller_spec.rb +209 -0
  59. data/spec/controllers/main_controller_spec.rb +20 -0
  60. data/spec/gtk/bin_spec.rb +13 -0
  61. data/spec/gtk/list_view_spec.rb +114 -0
  62. data/spec/gtk/source_view_spec.rb +41 -0
  63. data/spec/gtk/widget_spec.rb +37 -0
  64. data/spec/gtk/window_spec.rb +28 -0
  65. data/spec/integration/000_startup_spec.rb +14 -0
  66. data/spec/integration/001_load_from_commandline_spec.rb +25 -0
  67. data/spec/integration/002_loading_and_saving_spec.rb +35 -0
  68. data/spec/integration/003_tab_file_switching_spec.rb +49 -0
  69. data/spec/integration/ideas_spec.rb +23 -0
  70. data/spec/integration_helper.rb +11 -0
  71. data/spec/lib/application_spec.rb +57 -0
  72. data/spec/lib/commands_spec.rb +63 -0
  73. data/spec/lib/file_spec.rb +9 -0
  74. data/spec/lib/shortcut_spec.rb +59 -0
  75. data/spec/lib/widget_builder_spec.rb +77 -0
  76. data/spec/lib/yaml_spec.rb +26 -0
  77. data/spec/models/source_model_spec.rb +80 -0
  78. data/spec/spec_helper.rb +18 -0
  79. data/spec/support/actions.rb +28 -0
  80. data/spec/support/expectations.rb +46 -0
  81. data/spec/support/setup.rb +32 -0
  82. metadata +224 -0
data/.autotest ADDED
@@ -0,0 +1,7 @@
1
+ unless ENV['INTEGRATION']
2
+ puts 'Not checking integration specs. run "INTEGRATION=true autotest" to include'
3
+ Autotest.add_hook :initialize do |at|
4
+ %w{.git vendor spec/integration}.each {|exception| at.add_exception(exception)}
5
+ end
6
+ end
7
+
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ .rvmrc
2
+ *.gem
3
+ coverage
4
+
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+
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
+
@@ -0,0 +1,2 @@
1
+ Autotest.add_discovery { "rspec2" }
2
+
data/bin/m ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'merrol'
4
+
5
+ module Merrol
6
+ Application.new WORKING_DIR, ARGV
7
+ Gtk.main
8
+ end
9
+
@@ -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
+
@@ -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
+
@@ -0,0 +1,3 @@
1
+ warning:
2
+ modified: Some files are not saved. Close or save them.
3
+
@@ -0,0 +1,3 @@
1
+ file:
2
+ ignore_pattern: .git log .bundle .gif .png .jpg .jpeg .ico
3
+
@@ -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
+