redcar 0.3.1dev → 0.3.2dev
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.
- data/CHANGES +34 -1
- data/README.md +2 -1
- data/ROADMAP.md +13 -45
- data/Rakefile +15 -14
- data/bin/redcar +4 -1
- data/lib/plugin_manager/README.md +61 -0
- data/lib/plugin_manager/Rakefile +55 -0
- data/lib/plugin_manager/bin/plugin_manager +4 -0
- data/lib/plugin_manager/lib/plugin_manager.rb +107 -0
- data/lib/plugin_manager/lib/plugin_manager/definition_builder.rb +37 -0
- data/lib/plugin_manager/lib/plugin_manager/plugin.rb +9 -0
- data/lib/plugin_manager/lib/plugin_manager/plugin_definition.rb +50 -0
- data/lib/plugin_manager/plugin_manager.gemspec +33 -0
- data/lib/plugin_manager/spec/fixtures/error_in_definition/core/plugin.rb +2 -0
- data/lib/plugin_manager/spec/fixtures/error_in_plugin/core/core.rb +4 -0
- data/lib/plugin_manager/spec/fixtures/error_in_plugin/core/plugin.rb +7 -0
- data/lib/plugin_manager/spec/fixtures/example/core/core.rb +20 -0
- data/lib/plugin_manager/spec/fixtures/example/core/plugin.rb +7 -0
- data/lib/plugin_manager/spec/fixtures/example/debug/debug.rb +6 -0
- data/lib/plugin_manager/spec/fixtures/example/debug/plugin.rb +8 -0
- data/lib/plugin_manager/spec/fixtures/example/extras/extras.rb +6 -0
- data/lib/plugin_manager/spec/fixtures/example/extras/plugin.rb +8 -0
- data/lib/plugin_manager/spec/fixtures/two_versions1/core/core.rb +20 -0
- data/lib/plugin_manager/spec/fixtures/two_versions1/core/plugin.rb +7 -0
- data/lib/plugin_manager/spec/fixtures/two_versions1/core2/core.rb +20 -0
- data/lib/plugin_manager/spec/fixtures/two_versions1/core2/plugin.rb +7 -0
- data/lib/plugin_manager/spec/fixtures/two_versions2/core/core.rb +20 -0
- data/lib/plugin_manager/spec/fixtures/two_versions2/core/plugin.rb +7 -0
- data/lib/plugin_manager/spec/fixtures/two_versions2/core2/core.rb +20 -0
- data/lib/plugin_manager/spec/fixtures/two_versions2/core2/plugin.rb +8 -0
- data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/core/core.rb +10 -0
- data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/core/plugin.rb +7 -0
- data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/debug/debug.rb +6 -0
- data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/debug/plugin.rb +8 -0
- data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/core/core.rb +10 -0
- data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/core/plugin.rb +7 -0
- data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/debug/debug.rb +6 -0
- data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/debug/plugin.rb +8 -0
- data/lib/plugin_manager/spec/plugin_manager_spec.rb +208 -0
- data/lib/plugin_manager/spec/spec_helper.rb +3 -0
- data/lib/redcar.rb +8 -3
- data/lib/redcar/boot.rb +59 -56
- data/lib/redcar/installer.rb +1 -1
- data/lib/redcar/instance_exec.rb +25 -0
- data/lib/redcar/runner.rb +5 -1
- data/lib/redcar/usage.rb +5 -1
- data/plugins/application/icons/close.png +0 -0
- data/plugins/application/lib/application.rb +61 -28
- data/plugins/application/lib/application/clipboard.rb +71 -0
- data/plugins/application/lib/application/dialog.rb +63 -0
- data/plugins/application/lib/application/menu.rb +32 -1
- data/plugins/application/lib/application/menu/builder.rb +10 -4
- data/plugins/application/lib/application/menu/item.rb +16 -3
- data/plugins/application/lib/application/notebook.rb +5 -0
- data/plugins/application/lib/application/speedbar.rb +73 -0
- data/plugins/application/lib/application/window.rb +25 -0
- data/plugins/application/plugin.rb +8 -0
- data/plugins/application/spec/application/clipboard_spec.rb +36 -0
- data/plugins/application/spec/application/menu_spec.rb +73 -1
- data/plugins/application/spec/application/speedbar_spec.rb +46 -0
- data/plugins/application/spec/spec_helper.rb +1 -1
- data/plugins/application_swt/lib/application_swt.rb +18 -11
- data/plugins/application_swt/lib/application_swt/clipboard.rb +42 -0
- data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +68 -0
- data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +1 -1
- data/plugins/application_swt/lib/application_swt/html_tab.rb +32 -0
- data/plugins/application_swt/lib/application_swt/menu.rb +57 -21
- data/plugins/application_swt/lib/application_swt/menu/binding_translator.rb +39 -2
- data/plugins/application_swt/lib/application_swt/notebook.rb +5 -0
- data/plugins/application_swt/lib/application_swt/speedbar.rb +187 -0
- data/plugins/application_swt/lib/application_swt/swt_wrapper.rb +24 -1
- data/plugins/application_swt/lib/application_swt/window.rb +33 -3
- data/plugins/application_swt/plugin.rb +8 -0
- data/plugins/application_swt/spec/spec_helper.rb +1 -1
- data/plugins/auto_completer/features/auto_complete.feature +65 -0
- data/plugins/auto_completer/features/step_definitions/auto_complete_steps.rb +4 -0
- data/plugins/auto_completer/features/support/env.rb +4 -0
- data/plugins/auto_completer/lib/auto_completer.rb +99 -0
- data/plugins/auto_completer/lib/auto_completer/document_controller.rb +52 -0
- data/plugins/auto_completer/lib/auto_completer/word_iterator.rb +48 -0
- data/plugins/auto_completer/lib/auto_completer/word_list.rb +40 -0
- data/plugins/auto_completer/plugin.rb +10 -0
- data/plugins/auto_indenter/lib/auto_indenter.rb +1 -1
- data/plugins/auto_indenter/lib/auto_indenter/document_controller.rb +1 -1
- data/plugins/auto_indenter/plugin.rb +8 -0
- data/plugins/core/lib/core.rb +6 -30
- data/plugins/core/lib/core/gui.rb +7 -2
- data/plugins/core/lib/core/logger.rb +7 -4
- data/plugins/core/lib/core/plugin/storage.rb +15 -5
- data/plugins/core/plugin.rb +7 -0
- data/plugins/core/spec/core/storage_spec.rb +0 -9
- data/plugins/edit_view/features/cut_and_paste.feature +45 -0
- data/plugins/edit_view/features/step_definitions/editing_steps.rb +22 -0
- data/plugins/edit_view/features/step_definitions/key_steps.rb +1 -1
- data/plugins/edit_view/features/step_definitions/notebook_steps.rb +1 -1
- data/plugins/edit_view/features/step_definitions/tab_steps.rb +2 -0
- data/plugins/edit_view/features/step_definitions/window_steps.rb +1 -1
- data/plugins/edit_view/features/support/env.rb +2 -2
- data/plugins/edit_view/lib/edit_view.rb +24 -13
- data/plugins/edit_view/lib/edit_view/document.rb +233 -15
- data/plugins/edit_view/lib/edit_view/edit_tab.rb +2 -2
- data/plugins/edit_view/plugin.rb +9 -0
- data/plugins/edit_view/spec/spec_helper.rb +1 -1
- data/plugins/edit_view_swt/lib/edit_view_swt.rb +37 -8
- data/plugins/edit_view_swt/lib/edit_view_swt/document.rb +59 -24
- data/plugins/edit_view_swt/lib/edit_view_swt/word_movement.rb +66 -0
- data/plugins/edit_view_swt/plugin.rb +9 -0
- data/plugins/edit_view_swt/spec/edit_view_swt/word_movement_spec.rb +29 -0
- data/plugins/edit_view_swt/spec/spec_helper.rb +6 -0
- data/plugins/html_view/assets/blueprint/ie.css +35 -0
- data/plugins/html_view/assets/blueprint/print.css +29 -0
- data/plugins/html_view/assets/blueprint/screen.css +257 -0
- data/plugins/html_view/assets/blueprint/src/forms.css +65 -0
- data/plugins/html_view/assets/blueprint/src/grid.css +281 -0
- data/plugins/html_view/assets/blueprint/src/grid.png +0 -0
- data/plugins/html_view/assets/blueprint/src/ie.css +76 -0
- data/plugins/html_view/assets/blueprint/src/print.css +85 -0
- data/plugins/html_view/assets/blueprint/src/reset.css +38 -0
- data/plugins/html_view/assets/blueprint/src/typography.css +106 -0
- data/plugins/html_view/assets/jquery-1.4.min.js +151 -0
- data/plugins/html_view/assets/redcar.css +12 -0
- data/plugins/html_view/lib/html_controller.rb +5 -0
- data/plugins/html_view/lib/html_view.rb +47 -0
- data/plugins/html_view/lib/html_view/html_tab.rb +16 -0
- data/plugins/html_view/plugin.rb +12 -0
- data/plugins/my_plugin/lib/my_plugin.rb +55 -0
- data/plugins/my_plugin/plugin.rb +8 -0
- data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +62 -0
- data/plugins/plugin_manager_ui/plugin.rb +12 -0
- data/plugins/plugin_manager_ui/views/index.html.erb +31 -0
- data/plugins/project/lib/project.rb +27 -13
- data/plugins/project/lib/project/find_file_dialog.rb +25 -19
- data/plugins/project/plugin.rb +8 -0
- data/plugins/project/spec/spec_helper.rb +1 -1
- data/plugins/redcar/plugin.rb +13 -0
- data/plugins/redcar/redcar.rb +249 -8
- data/plugins/repl/lib/repl.rb +22 -14
- data/plugins/repl/plugin.rb +8 -0
- data/plugins/repl/spec/spec_helper.rb +1 -1
- data/plugins/tree/plugin.rb +9 -0
- data/plugins/tree/spec/spec_helper.rb +1 -1
- data/plugins/tree_view_swt/plugin.rb +9 -0
- data/textmate/Bundles/Apache.tmbundle/Syntaxes/Apache.plist +544 -0
- data/textmate/Bundles/Apache.tmbundle/Syntaxes/mod_perl.tmLanguage +120 -0
- data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___HTML__.plist +88 -0
- data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___Markdown__.plist +89 -0
- data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___Text__.plist +74 -0
- data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___Textile__.plist +74 -0
- data/textmate/Bundles/Bundle Development.tmbundle/Syntaxes/LanguageGrammar.tmLanguage +1829 -0
- data/textmate/Bundles/C Sharp.tmbundle/Syntaxes/Build.tmLanguage +142 -0
- data/textmate/Bundles/C Sharp.tmbundle/Syntaxes/C__.tmLanguage +524 -0
- data/textmate/Bundles/C++ Qt.tmbundle/Syntaxes/Qt_C____.tmLanguage +62 -0
- data/textmate/Bundles/C++ Qt.tmbundle/Syntaxes/qmake_Project.tmLanguage +308 -0
- data/textmate/Bundles/C.tmbundle/Syntaxes/C.plist +90 -48
- data/textmate/Bundles/Clojure.tmbundle/Syntaxes/Clojure.tmLanguage +427 -0
- data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/Cucumber_Plain_Text_Feature.tmLanguage +106 -13
- data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/Cucumber_Steps.tmLanguage +177 -2
- data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/plaintext_template.erb +109 -17
- data/textmate/Bundles/D.tmbundle/Syntaxes/D.tmLanguage +908 -0
- data/textmate/Bundles/Diff.tmbundle/Syntaxes/Diff.plist +229 -0
- data/textmate/Bundles/DokuWiki.tmbundle/Syntaxes/DokuWiki.tmLanguage +649 -0
- data/textmate/Bundles/F-Script.tmbundle/Syntaxes/F__Script.plist +219 -0
- data/textmate/Bundles/Haskell.tmbundle/Syntaxes/Haskell.plist +646 -0
- data/textmate/Bundles/Haskell.tmbundle/Syntaxes/Literate_Haskell.plist +90 -0
- data/textmate/Bundles/Io.tmbundle/Syntaxes/Io.plist +225 -0
- data/textmate/Bundles/JSON.tmbundle/Syntaxes/JSON.tmLanguage +285 -0
- data/textmate/Bundles/JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript____Prototype.tmLanguage +193 -0
- data/textmate/Bundles/JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript____Prototype_Bracketed.tmLanguage +394 -0
- data/textmate/Bundles/JavaScript jQuery.tmbundle/Syntaxes/jQuery___JavaScript__.tmLanguage +440 -0
- data/textmate/Bundles/JavaScript.tmbundle/Syntaxes/JavaScript.plist +712 -0
- data/textmate/Bundles/Latex.tmbundle/Syntaxes/Bibtex.plist +406 -0
- data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX.plist +1601 -0
- data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX_Beamer.plist +106 -0
- data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX_Log.plist +141 -0
- data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX_Memoir.tmLanguage +165 -0
- data/textmate/Bundles/Latex.tmbundle/Syntaxes/TeX.plist +246 -0
- data/textmate/Bundles/Latex.tmbundle/Syntaxes/TeX_Math.plist +132 -0
- data/textmate/Bundles/Lisp.tmbundle/Syntaxes/Lisp.plist +160 -0
- data/textmate/Bundles/Makefile.tmbundle/Syntaxes/Makefile.plist +103 -0
- data/textmate/Bundles/Markdown.tmbundle/Syntaxes/Markdown.plist +1192 -0
- data/textmate/Bundles/Markdown.tmbundle/Syntaxes/MultiMarkdown.tmLanguage +80 -0
- data/textmate/Bundles/PHP.tmbundle/Syntaxes/PHP.plist +3481 -0
- data/textmate/Bundles/Perl HTML-Template.tmbundle/Syntaxes/Perl_HTML__Template.tmLanguage +217 -0
- data/textmate/Bundles/Perl Template Toolkit.tmbundle/Syntaxes/HTML___Template_Toolkit__.tmLanguage +339 -0
- data/textmate/Bundles/Postscript.tmbundle/Syntaxes/Postscript.tmLanguage +321 -0
- data/textmate/Bundles/Processing.tmbundle/Syntaxes/Processing.plist +296 -0
- data/textmate/Bundles/Property List.tmbundle/Syntaxes/Property_List.tmLanguage +1650 -0
- data/textmate/Bundles/Python Django Templates.tmbundle/Syntaxes/HTML___Django__.tmLanguage +104 -0
- data/textmate/Bundles/Python Django.tmbundle/Syntaxes/Python_Django.tmLanguage +57 -0
- data/textmate/Bundles/Python.tmbundle/Syntaxes/Python.tmLanguage +3016 -0
- data/textmate/Bundles/Python.tmbundle/Syntaxes/Regular_Expressions___Python__.tmLanguage +299 -0
- data/textmate/Bundles/Rez.tmbundle/Syntaxes/Rez.plist +219 -0
- data/textmate/Bundles/Ruby Haml.tmbundle/Syntaxes/Ruby_Haml.tmLanguage +403 -0
- data/textmate/Bundles/Ruby RSpec.tmbundle/Syntaxes/RSpec.tmLanguage +142 -0
- data/textmate/Bundles/Ruby.tmbundle/Syntaxes/Ruby.plist +139 -49
- data/textmate/Bundles/SQL.tmbundle/Syntaxes/SQL.plist +705 -0
- data/textmate/Bundles/SSH-Config.tmbundle/Syntaxes/SSH__Config.tmLanguage +88 -0
- data/textmate/Bundles/Scala.tmbundle/Syntaxes/Scala.tmLanguage +609 -0
- data/textmate/Bundles/Scala.tmbundle/Syntaxes/Scala_Properties.tmLanguage +54 -0
- data/textmate/Bundles/ShellScript.tmbundle/Syntaxes/Shell__Unix__Generic.plist +1855 -0
- data/textmate/Bundles/Tabular.tmbundle/Syntaxes/CSV.tmLanguage +178 -0
- data/textmate/Bundles/Tabular.tmbundle/Syntaxes/TSV.tmLanguage +135 -0
- data/textmate/Bundles/TextMate.tmbundle/Syntaxes/Regular_Expressions___Oniguruma__.tmLanguage +295 -0
- data/textmate/Bundles/TextMate.tmbundle/Syntaxes/Release_Notes.tmLanguage +126 -0
- data/textmate/Bundles/Textile.tmbundle/Syntaxes/Textile.plist +490 -0
- data/textmate/Bundles/Thrift.tmbundle/Syntaxes/Thrift.tmLanguage +1024 -0
- data/textmate/Bundles/XML.tmbundle/Syntaxes/XML.plist +576 -0
- data/textmate/Bundles/XML.tmbundle/Syntaxes/XSL.plist +157 -0
- data/textmate/Bundles/YAML.tmbundle/Syntaxes/YAML.plist +466 -0
- data/textmate/Themes/Django.tmTheme +436 -0
- metadata +371 -325
- data/config/default.yaml +0 -15
- data/lib/freebase2/README.txt +0 -47
- data/lib/freebase2/bin/default.yaml +0 -15
- data/lib/freebase2/bin/install.rb +0 -42
- data/lib/freebase2/bin/run.rb +0 -48
- data/lib/freebase2/lib/freebase/configuration.rb +0 -535
- data/lib/freebase2/lib/freebase/core.rb +0 -197
- data/lib/freebase2/lib/freebase/databus.rb +0 -1128
- data/lib/freebase2/lib/freebase/freebase.rb +0 -60
- data/lib/freebase2/lib/freebase/logger.rb +0 -117
- data/lib/freebase2/lib/freebase/plugin.rb +0 -384
- data/lib/freebase2/lib/freebase/properties.rb +0 -130
- data/lib/freebase2/lib/freebase/readers.rb +0 -328
- data/lib/freebase2/notes +0 -61
- data/lib/freebase2/plugins/raa_webrick/httpd.rb +0 -125
- data/lib/freebase2/plugins/raa_webrick/plugin.yaml +0 -7
- data/lib/freebase2/plugins/raa_webrick/web_root/test.html +0 -5
- data/lib/freebase2/plugins/raa_webrick/webserver.yaml +0 -6
- data/lib/freebase2/plugins/raa_xmlrpc4r/plugin.xml +0 -8
- data/lib/freebase2/plugins/raa_xmlrpc4r/rpcd.rb +0 -54
- data/lib/freebase2/regress/README +0 -1
- data/lib/little_plugger/History.txt +0 -20
- data/lib/little_plugger/Rakefile +0 -34
- data/lib/little_plugger/lib/little-plugger.rb +0 -323
- data/lib/little_plugger/spec/little-plugger_spec.rb +0 -26
- data/lib/little_plugger/spec/spec_helper.rb +0 -16
- data/lib/logging/History.txt +0 -240
- data/lib/logging/Rakefile +0 -37
- data/lib/logging/data/bad_logging_1.rb +0 -13
- data/lib/logging/data/bad_logging_2.rb +0 -21
- data/lib/logging/data/logging.rb +0 -42
- data/lib/logging/data/logging.yaml +0 -63
- data/lib/logging/data/simple_logging.rb +0 -13
- data/lib/logging/examples/appenders.rb +0 -47
- data/lib/logging/examples/classes.rb +0 -41
- data/lib/logging/examples/consolidation.rb +0 -83
- data/lib/logging/examples/formatting.rb +0 -51
- data/lib/logging/examples/hierarchies.rb +0 -73
- data/lib/logging/examples/layouts.rb +0 -48
- data/lib/logging/examples/loggers.rb +0 -29
- data/lib/logging/examples/names.rb +0 -43
- data/lib/logging/examples/simple.rb +0 -17
- data/lib/logging/lib/logging.rb +0 -501
- data/lib/logging/lib/logging/appender.rb +0 -251
- data/lib/logging/lib/logging/appenders.rb +0 -131
- data/lib/logging/lib/logging/appenders/buffering.rb +0 -168
- data/lib/logging/lib/logging/appenders/console.rb +0 -60
- data/lib/logging/lib/logging/appenders/email.rb +0 -75
- data/lib/logging/lib/logging/appenders/file.rb +0 -58
- data/lib/logging/lib/logging/appenders/growl.rb +0 -197
- data/lib/logging/lib/logging/appenders/io.rb +0 -69
- data/lib/logging/lib/logging/appenders/rolling_file.rb +0 -293
- data/lib/logging/lib/logging/appenders/string_io.rb +0 -68
- data/lib/logging/lib/logging/appenders/syslog.rb +0 -194
- data/lib/logging/lib/logging/config/configurator.rb +0 -188
- data/lib/logging/lib/logging/config/yaml_configurator.rb +0 -191
- data/lib/logging/lib/logging/layout.rb +0 -117
- data/lib/logging/lib/logging/layouts.rb +0 -47
- data/lib/logging/lib/logging/layouts/basic.rb +0 -32
- data/lib/logging/lib/logging/layouts/parseable.rb +0 -211
- data/lib/logging/lib/logging/layouts/pattern.rb +0 -311
- data/lib/logging/lib/logging/log_event.rb +0 -45
- data/lib/logging/lib/logging/logger.rb +0 -503
- data/lib/logging/lib/logging/repository.rb +0 -232
- data/lib/logging/lib/logging/root_logger.rb +0 -61
- data/lib/logging/lib/logging/stats.rb +0 -278
- data/lib/logging/lib/logging/utils.rb +0 -153
- data/lib/logging/lib/spec/logging_helper.rb +0 -34
- data/lib/logging/test/appenders/test_buffered_io.rb +0 -176
- data/lib/logging/test/appenders/test_console.rb +0 -66
- data/lib/logging/test/appenders/test_email.rb +0 -170
- data/lib/logging/test/appenders/test_file.rb +0 -95
- data/lib/logging/test/appenders/test_growl.rb +0 -127
- data/lib/logging/test/appenders/test_io.rb +0 -129
- data/lib/logging/test/appenders/test_rolling_file.rb +0 -200
- data/lib/logging/test/appenders/test_syslog.rb +0 -194
- data/lib/logging/test/benchmark.rb +0 -86
- data/lib/logging/test/config/test_configurator.rb +0 -70
- data/lib/logging/test/config/test_yaml_configurator.rb +0 -40
- data/lib/logging/test/layouts/test_basic.rb +0 -42
- data/lib/logging/test/layouts/test_json.rb +0 -112
- data/lib/logging/test/layouts/test_pattern.rb +0 -198
- data/lib/logging/test/layouts/test_yaml.rb +0 -121
- data/lib/logging/test/setup.rb +0 -44
- data/lib/logging/test/test_appender.rb +0 -152
- data/lib/logging/test/test_consolidate.rb +0 -46
- data/lib/logging/test/test_layout.rb +0 -110
- data/lib/logging/test/test_log_event.rb +0 -80
- data/lib/logging/test/test_logger.rb +0 -699
- data/lib/logging/test/test_logging.rb +0 -267
- data/lib/logging/test/test_repository.rb +0 -158
- data/lib/logging/test/test_root_logger.rb +0 -81
- data/lib/logging/test/test_stats.rb +0 -274
- data/lib/logging/test/test_utils.rb +0 -116
- data/plugins/application/plugin.yaml +0 -11
- data/plugins/application_swt/plugin.yaml +0 -11
- data/plugins/auto_indenter/plugin.yaml +0 -12
- data/plugins/core/plugin.yaml +0 -7
- data/plugins/edit_view/plugin.yaml +0 -14
- data/plugins/edit_view_swt/plugin.yaml +0 -14
- data/plugins/project/plugin.yaml +0 -12
- data/plugins/redcar/plugin.yaml +0 -18
- data/plugins/repl/plugin.yaml +0 -12
- data/plugins/tree/plugin.yaml +0 -14
- data/plugins/tree_view_swt/plugin.yaml +0 -14
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module Redcar
|
|
2
|
+
class AutoCompleter
|
|
3
|
+
class DocumentController
|
|
4
|
+
include Redcar::Document::Controller
|
|
5
|
+
include Redcar::Document::Controller::ModificationCallbacks
|
|
6
|
+
|
|
7
|
+
def start_completion
|
|
8
|
+
@in_completion = true
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def end_completion
|
|
12
|
+
@in_completion = false
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def in_completion?
|
|
16
|
+
@in_completion
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def start_modification
|
|
20
|
+
@in_modification = true
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def end_modification
|
|
24
|
+
@in_modification = false
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def in_modification?
|
|
28
|
+
@in_modification
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
attr_accessor :index
|
|
32
|
+
attr_accessor :length_of_previous
|
|
33
|
+
attr_accessor :word_list, :word, :left, :right
|
|
34
|
+
|
|
35
|
+
def before_modify(*_)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def after_modify(*_)
|
|
39
|
+
unless in_modification?
|
|
40
|
+
@in_completion = false
|
|
41
|
+
@index = 0
|
|
42
|
+
@length_of_previous = nil
|
|
43
|
+
@word_list = nil
|
|
44
|
+
@word = nil
|
|
45
|
+
@left = nil
|
|
46
|
+
@right = nil
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
|
|
2
|
+
module Redcar
|
|
3
|
+
class AutoCompleter
|
|
4
|
+
class WordIterator
|
|
5
|
+
def initialize(document, word_chars)
|
|
6
|
+
@document = document
|
|
7
|
+
@word_chars = word_chars
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# word_chars is a regex, that defines word characters
|
|
11
|
+
def each_word_with_offset(prefix)
|
|
12
|
+
inside_word = false
|
|
13
|
+
text = @document.to_s
|
|
14
|
+
char_offset = 0
|
|
15
|
+
word_offset = 0
|
|
16
|
+
word = []
|
|
17
|
+
|
|
18
|
+
text.each_char do |char|
|
|
19
|
+
# p [inside_word, char, word]
|
|
20
|
+
if char =~ @word_chars
|
|
21
|
+
unless inside_word
|
|
22
|
+
word_offset = char_offset
|
|
23
|
+
inside_word = true
|
|
24
|
+
end
|
|
25
|
+
word << char
|
|
26
|
+
else
|
|
27
|
+
if inside_word
|
|
28
|
+
joined = word.join
|
|
29
|
+
if joined =~ /^#{prefix}/
|
|
30
|
+
# p [:yield, joined]
|
|
31
|
+
yield joined, word_offset
|
|
32
|
+
end
|
|
33
|
+
inside_word = false
|
|
34
|
+
word = []
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
char_offset += 1
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# also yield the last word of the document if it matches
|
|
41
|
+
if word.join =~ /^#{prefix}/
|
|
42
|
+
#p [:yield, word.join]
|
|
43
|
+
yield word.join, word_offset
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
|
|
2
|
+
module Redcar
|
|
3
|
+
class AutoCompleter
|
|
4
|
+
# the list of words plus their relative distance (beginning of the word to the cursor)
|
|
5
|
+
# this information can just be updated, as long as the cursor is moving through the document.
|
|
6
|
+
# as soon as typing happens, a word will have to be added or replaced.
|
|
7
|
+
class WordList
|
|
8
|
+
include Enumerable
|
|
9
|
+
|
|
10
|
+
attr_reader :words
|
|
11
|
+
|
|
12
|
+
def initialize
|
|
13
|
+
@words = Hash.new
|
|
14
|
+
@offset = 0
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# adds a new word, iff it doesn't yet exist.
|
|
18
|
+
# if the word exists, the distance will be adjusted, if it's lower.
|
|
19
|
+
def add_word(word, distance)
|
|
20
|
+
if @words.include?(word)
|
|
21
|
+
if distance < @words[word]
|
|
22
|
+
@words[word] = distance
|
|
23
|
+
end
|
|
24
|
+
else
|
|
25
|
+
@words[word] = distance
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# yield the completions for the given prefix
|
|
30
|
+
def completions
|
|
31
|
+
filtered = @words.keys
|
|
32
|
+
return filtered.sort!{|a,b| @words[a] <=> @words[b] }
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def each
|
|
36
|
+
@words.each {|word,distance| yield word, distance }
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -7,7 +7,7 @@ module Redcar
|
|
|
7
7
|
|
|
8
8
|
def after_newline(line_ix)
|
|
9
9
|
if line_ix > 0
|
|
10
|
-
previous_line = document.get_line(line_ix - 1)
|
|
10
|
+
previous_line = document.get_line(line_ix - 1).gsub("\n", "")
|
|
11
11
|
whitespace_prefix = whitespace_prefix(previous_line)
|
|
12
12
|
offset = document.offset_at_line(line_ix)
|
|
13
13
|
document.insert(offset, whitespace_prefix)
|
data/plugins/core/lib/core.rb
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
|
|
2
4
|
require "core/logger"
|
|
3
5
|
require "core/controller"
|
|
4
6
|
require "core/gui"
|
|
@@ -11,38 +13,12 @@ module Redcar
|
|
|
11
13
|
class Core
|
|
12
14
|
include HasLogger
|
|
13
15
|
|
|
14
|
-
def self.
|
|
16
|
+
def self.loaded
|
|
15
17
|
Core::Logger.init
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# Platform symbol
|
|
19
|
-
#
|
|
20
|
-
# @return [:osx/:windows/:linux]
|
|
21
|
-
def self.platform
|
|
22
|
-
case Config::CONFIG["target_os"]
|
|
23
|
-
when /darwin/
|
|
24
|
-
:osx
|
|
25
|
-
when /mswin/
|
|
26
|
-
:windows
|
|
27
|
-
when /linux/
|
|
28
|
-
:linux
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# Platform specific ~/.redcar
|
|
33
|
-
#
|
|
34
|
-
# @return [String] expanded path
|
|
35
|
-
def self.user_dir
|
|
36
|
-
if platform == :windows
|
|
37
|
-
if ENV['USERPROFILE'].nil?
|
|
38
|
-
userdir = "C:/My Documents/.redcar/"
|
|
39
|
-
else
|
|
40
|
-
userdir = File.join(ENV['USERPROFILE'], "redcar")
|
|
41
|
-
end
|
|
42
|
-
else
|
|
43
|
-
userdir = File.join(ENV['HOME'], ".redcar") unless ENV['HOME'].nil?
|
|
18
|
+
unless File.exist?(Redcar.user_dir)
|
|
19
|
+
FileUtils.mkdir(Redcar.user_dir)
|
|
44
20
|
end
|
|
45
|
-
|
|
21
|
+
|
|
46
22
|
end
|
|
47
23
|
|
|
48
24
|
end
|
|
@@ -31,8 +31,13 @@ module Redcar
|
|
|
31
31
|
|
|
32
32
|
# Starts the event loop for this gui.
|
|
33
33
|
def start
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
if ARGV.include?("--quit-immediately")
|
|
35
|
+
logger.info("Quitting straight away")
|
|
36
|
+
exit
|
|
37
|
+
else
|
|
38
|
+
logger.info("Starting event loop")
|
|
39
|
+
@event_loop.start
|
|
40
|
+
end
|
|
36
41
|
end
|
|
37
42
|
|
|
38
43
|
# Stops the event loop for this gui.
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'logger'
|
|
2
|
+
|
|
1
3
|
module Redcar
|
|
2
4
|
def self.logger
|
|
3
5
|
Core::Logger.root_logger
|
|
@@ -6,19 +8,20 @@ module Redcar
|
|
|
6
8
|
class Core
|
|
7
9
|
module HasLogger
|
|
8
10
|
def logger
|
|
9
|
-
|
|
11
|
+
Core::Logger.root_logger
|
|
10
12
|
end
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
module Logger
|
|
14
16
|
def self.init
|
|
15
17
|
level = ENV["REDCAR_LOG"] || "error"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
root_logger.level = ::Logger::ERROR
|
|
19
|
+
# appender = Logging::Appenders.stdout(:level => level)
|
|
20
|
+
# root_logger.add_appenders(appender)
|
|
18
21
|
end
|
|
19
22
|
|
|
20
23
|
def self.root_logger
|
|
21
|
-
|
|
24
|
+
@logger ||= ::Logger.new(STDOUT)
|
|
22
25
|
end
|
|
23
26
|
end
|
|
24
27
|
end
|
|
@@ -2,13 +2,9 @@
|
|
|
2
2
|
module Redcar
|
|
3
3
|
class Plugin
|
|
4
4
|
class Storage
|
|
5
|
-
|
|
6
|
-
extend Forwardable
|
|
7
|
-
|
|
8
|
-
def_delegators :@storage, :[], :[]=, :keys
|
|
9
5
|
|
|
10
6
|
def self.storage_dir
|
|
11
|
-
|
|
7
|
+
Redcar.user_dir
|
|
12
8
|
end
|
|
13
9
|
|
|
14
10
|
# Open a storage file or create it if it doesn't exist.
|
|
@@ -37,6 +33,20 @@ module Redcar
|
|
|
37
33
|
self
|
|
38
34
|
end
|
|
39
35
|
|
|
36
|
+
def [](key)
|
|
37
|
+
@storage[key]
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def []=(key, value)
|
|
41
|
+
@storage[key] = value
|
|
42
|
+
save
|
|
43
|
+
value
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def keys
|
|
47
|
+
@storage.keys
|
|
48
|
+
end
|
|
49
|
+
|
|
40
50
|
private
|
|
41
51
|
|
|
42
52
|
def path
|
|
@@ -10,18 +10,9 @@ describe Redcar::Plugin::Storage do
|
|
|
10
10
|
storage[:some_key].should == "some other value"
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
it "rolls back to an empty hash if it hasn't been saved" do
|
|
14
|
-
storage = Redcar::Plugin::Storage.new('test')
|
|
15
|
-
storage[:some_key] = "some value"
|
|
16
|
-
storage[:some_key].should == "some value"
|
|
17
|
-
storage.rollback
|
|
18
|
-
storage[:some_key].should be_nil
|
|
19
|
-
end
|
|
20
|
-
|
|
21
13
|
it "saves to disk" do
|
|
22
14
|
storage = Redcar::Plugin::Storage.new('test_storage_saved')
|
|
23
15
|
storage[:some_key] = "some value"
|
|
24
|
-
storage.save
|
|
25
16
|
storage = Redcar::Plugin::Storage.new('test_storage_saved')
|
|
26
17
|
storage[:some_key].should == "some value"
|
|
27
18
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Feature: Cut and Paste
|
|
2
|
+
|
|
3
|
+
Scenario: Cut removes the text
|
|
4
|
+
When I open a new edit tab
|
|
5
|
+
And I replace the contents with "Frank"
|
|
6
|
+
And I select from 0 to 3
|
|
7
|
+
And I cut text
|
|
8
|
+
Then I should not see "Fra" in the edit tab
|
|
9
|
+
And I should see "nk" in the edit tab
|
|
10
|
+
|
|
11
|
+
Scenario: Copy leaves the text
|
|
12
|
+
When I open a new edit tab
|
|
13
|
+
And I replace the contents with "Frank"
|
|
14
|
+
And I select from 0 to 3
|
|
15
|
+
And I copy text
|
|
16
|
+
Then I should see "Frank" in the edit tab
|
|
17
|
+
|
|
18
|
+
Scenario: Paste inserts the cut text
|
|
19
|
+
When I open a new edit tab
|
|
20
|
+
And I replace the contents with "Frank"
|
|
21
|
+
And I select from 0 to 3
|
|
22
|
+
And I cut text
|
|
23
|
+
And I move the cursor to 2
|
|
24
|
+
And I paste text
|
|
25
|
+
Then I should see "nkFra" in the edit tab
|
|
26
|
+
|
|
27
|
+
Scenario: Paste inserts the copied text
|
|
28
|
+
When I open a new edit tab
|
|
29
|
+
And I replace the contents with "Frank"
|
|
30
|
+
And I select from 0 to 3
|
|
31
|
+
And I copy text
|
|
32
|
+
And I move the cursor to 2
|
|
33
|
+
And I paste text
|
|
34
|
+
Then I should see "FrFraank" in the edit tab
|
|
35
|
+
|
|
36
|
+
Scenario: Paste pastes the most recent copy
|
|
37
|
+
When I open a new edit tab
|
|
38
|
+
And I replace the contents with "Frank"
|
|
39
|
+
And I select from 0 to 3
|
|
40
|
+
And I copy text
|
|
41
|
+
And I select from 3 to 5
|
|
42
|
+
And I copy text
|
|
43
|
+
And I move the cursor to 0
|
|
44
|
+
And I paste text
|
|
45
|
+
Then I should see "nkFrank" in the edit tab
|
|
@@ -5,3 +5,25 @@ end
|
|
|
5
5
|
When /^I redo$/ do
|
|
6
6
|
Redcar::Top::RedoCommand.new.run
|
|
7
7
|
end
|
|
8
|
+
|
|
9
|
+
When /^I select from (\d+) to (\d+)$/ do |start_offset, end_offset|
|
|
10
|
+
doc = Redcar.app.focussed_window.focussed_notebook.focussed_tab.edit_view.document
|
|
11
|
+
doc.set_selection_range((start_offset.to_i)..(end_offset.to_i))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
When /^I copy text$/ do
|
|
15
|
+
Redcar::Top::CopyCommand.new.run
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
When /^I cut text$/ do
|
|
19
|
+
Redcar::Top::CutCommand.new.run
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
When /^I paste text$/ do
|
|
23
|
+
Redcar::Top::PasteCommand.new.run
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
When /^I move the cursor to (\d+)$/ do |offset|
|
|
27
|
+
doc = Redcar.app.focussed_window.focussed_notebook.focussed_tab.edit_view.document
|
|
28
|
+
doc.cursor_offset = offset.to_i
|
|
29
|
+
end
|
|
@@ -19,6 +19,7 @@ When /^I close the focussed tab$/ do
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
When /^I replace the contents with "([^\"]*)"$/ do |arg1|
|
|
22
|
+
arg1 = arg1.gsub("\\n", "\n")
|
|
22
23
|
win = Redcar.app.windows.first
|
|
23
24
|
tab = win.focussed_notebook.focussed_tab
|
|
24
25
|
tab.edit_view.document.text = arg1
|
|
@@ -76,6 +77,7 @@ Then /^the tab should have the keyboard focus$/ do
|
|
|
76
77
|
end
|
|
77
78
|
|
|
78
79
|
Then /^I should (not )?see "(.*)" in the edit tab$/ do |bool, content|
|
|
80
|
+
content = content.gsub("\\n", "\n")
|
|
79
81
|
bool = !bool
|
|
80
82
|
matcher = bool ? be_true : be_false
|
|
81
83
|
focussed_tab.edit_view.document.to_s.include?(content).should matcher
|