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
|
@@ -74,7 +74,7 @@ Then /the window "(.*)" should have (\d+) tabs?/ do |win_title, tab_num|
|
|
|
74
74
|
shells = display.get_shells.to_a
|
|
75
75
|
shell = shells.detect {|s| s.text == win_title}
|
|
76
76
|
sash_form = shell.children.to_a.first
|
|
77
|
-
tab_folders = sash_form.children.to_a[1].children.select{|c| c.is_a? Swt::Custom::CTabFolder}
|
|
77
|
+
tab_folders = sash_form.children.to_a[1].children.to_a[0].children.to_a.select{|c| c.is_a? Swt::Custom::CTabFolder}
|
|
78
78
|
items = tab_folders.map{|f| f.getItems.to_a}.flatten
|
|
79
79
|
items.map {|i| model_tab_for_item(i)}.length.should == tab_num
|
|
80
80
|
end
|
|
@@ -5,7 +5,7 @@ module SwtTabHelpers
|
|
|
5
5
|
display = Redcar::ApplicationSWT.display
|
|
6
6
|
shell = display.get_shells.to_a.first
|
|
7
7
|
sash_form = shell.children.to_a.first
|
|
8
|
-
tab_folders = sash_form.children.to_a[1].children.to_a
|
|
8
|
+
tab_folders = sash_form.children.to_a[1].children.to_a[0].children.to_a
|
|
9
9
|
tab_folders.length.should == 1
|
|
10
10
|
tab_folders.first
|
|
11
11
|
end
|
|
@@ -23,7 +23,7 @@ module SwtTabHelpers
|
|
|
23
23
|
display = Redcar::ApplicationSWT.display
|
|
24
24
|
shell = display.get_shells.to_a.first
|
|
25
25
|
sash_form = shell.children.to_a.first
|
|
26
|
-
tab_folders = sash_form.children.to_a[1].children.to_a.select{|c| c.is_a? Swt::Custom::CTabFolder}
|
|
26
|
+
tab_folders = sash_form.children.to_a[1].children.to_a[0].children.to_a.select{|c| c.is_a? Swt::Custom::CTabFolder}
|
|
27
27
|
items = tab_folders.map{|f| f.getItems.to_a}.flatten
|
|
28
28
|
items.map {|i| model_tab_for_item(i)}
|
|
29
29
|
end
|
|
@@ -16,20 +16,31 @@ module Redcar
|
|
|
16
16
|
attr_reader :undo_sensitivity, :redo_sensitivity
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
def self.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Sensitivity.new(:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
19
|
+
def self.sensitivities
|
|
20
|
+
[
|
|
21
|
+
Sensitivity.new(:edit_tab_focussed, Redcar.app, false, [:tab_focussed]) do |tab|
|
|
22
|
+
tab and tab.is_a?(EditTab)
|
|
23
|
+
end,
|
|
24
|
+
Sensitivity.new(:selected_text, Redcar.app, false, [:focussed_tab_selection_changed, :tab_focussed]) do
|
|
25
|
+
if win = Redcar.app.focussed_window
|
|
26
|
+
tab = win.focussed_notebook.focussed_tab
|
|
27
|
+
tab and tab.is_a?(EditTab) and tab.edit_view.document.selection?
|
|
28
|
+
end
|
|
29
|
+
end,
|
|
30
|
+
@undo_sensitivity =
|
|
31
|
+
Sensitivity.new(:undoable, Redcar.app, false, [:focussed_tab_changed, :tab_focussed]) do
|
|
32
|
+
tab = Redcar.app.focussed_window.focussed_notebook.focussed_tab
|
|
33
|
+
tab and tab.is_a?(EditTab) and tab.edit_view.undoable?
|
|
34
|
+
end,
|
|
35
|
+
@redo_sensitivity =
|
|
36
|
+
Sensitivity.new(:redoable, Redcar.app, false, [:focussed_tab_changed, :tab_focussed]) do
|
|
37
|
+
tab = Redcar.app.focussed_window.focussed_notebook.focussed_tab
|
|
38
|
+
tab and tab.is_a?(EditTab) and tab.edit_view.redoable?
|
|
39
|
+
end,
|
|
40
|
+
Sensitivity.new(:clipboard_not_empty, Redcar.app, false, [:clipboard_added, :focussed_window]) do
|
|
41
|
+
Redcar.app.clipboard.length > 0
|
|
32
42
|
end
|
|
43
|
+
]
|
|
33
44
|
end
|
|
34
45
|
|
|
35
46
|
attr_reader :document
|
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
|
|
2
2
|
module Redcar
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
# Events: new_mirror
|
|
3
|
+
# This class controls access to the document text in an edit tab.
|
|
4
|
+
# There are methods to read, modify and register listeners
|
|
5
|
+
# for the document.
|
|
8
6
|
class Document
|
|
9
7
|
include Redcar::Model
|
|
10
8
|
include Redcar::Observable
|
|
11
9
|
extend Forwardable
|
|
12
10
|
|
|
13
|
-
def_delegators :controller,
|
|
14
|
-
:length, :line_count, :to_s, :text=,
|
|
15
|
-
:line_at_offset, :get_line, :offset_at_line,
|
|
16
|
-
:cursor_offset, :cursor_offset=,
|
|
17
|
-
:selection_range, :replace, :set_selection_range
|
|
18
|
-
|
|
19
11
|
def self.register_controller_type(controller_type)
|
|
20
12
|
unless controller_type.ancestors.include?(Document::Controller)
|
|
21
13
|
raise "expected #{Document::Controller}"
|
|
22
14
|
end
|
|
23
|
-
|
|
15
|
+
document_controller_types << controller_type
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.document_controller_types
|
|
19
|
+
@document_controller_types ||= []
|
|
24
20
|
end
|
|
25
21
|
|
|
26
22
|
class << self
|
|
27
23
|
attr_accessor :default_mirror
|
|
28
|
-
attr_reader :document_controller_types
|
|
29
24
|
end
|
|
30
25
|
|
|
31
26
|
attr_reader :mirror
|
|
@@ -49,6 +44,10 @@ module Redcar
|
|
|
49
44
|
end
|
|
50
45
|
end
|
|
51
46
|
|
|
47
|
+
def controllers(klass)
|
|
48
|
+
@controllers.values.flatten.uniq.select {|c| c.is_a?(klass) }
|
|
49
|
+
end
|
|
50
|
+
|
|
52
51
|
def save!
|
|
53
52
|
@mirror.commit(to_s)
|
|
54
53
|
set_modified(false)
|
|
@@ -97,22 +96,197 @@ module Redcar
|
|
|
97
96
|
notify_listeners(:changed)
|
|
98
97
|
end
|
|
99
98
|
|
|
99
|
+
def selection_range_changed(start_offset, end_offset)
|
|
100
|
+
notify_listeners(:selection_range_changed, start_offset..end_offset)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# The line index the cursor is on (zero-based)
|
|
104
|
+
#
|
|
105
|
+
# @return [Integer]
|
|
100
106
|
def cursor_line
|
|
101
107
|
line_at_offset(cursor_offset)
|
|
102
108
|
end
|
|
103
109
|
|
|
110
|
+
|
|
111
|
+
def cursor_line_start_offset
|
|
112
|
+
offset_at_line(cursor_line)
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def cursor_line_end_offset
|
|
116
|
+
offset_at_line_end(cursor_line)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def offset_at_line_end(line_ix)
|
|
120
|
+
if line_ix == line_count - 1
|
|
121
|
+
end_offset = length
|
|
122
|
+
else
|
|
123
|
+
end_offset = offset_at_line(line_ix + 1)
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# Is there any text selected? (Or equivalently, is the length
|
|
128
|
+
# of the selection equal to 0)
|
|
129
|
+
#
|
|
130
|
+
# @return [Boolean]
|
|
104
131
|
def selection?
|
|
105
132
|
selection_range.count > 0
|
|
106
133
|
end
|
|
107
|
-
|
|
134
|
+
|
|
135
|
+
# Insert text
|
|
136
|
+
#
|
|
137
|
+
# @param [Integer] offset character offset from the start of the document
|
|
138
|
+
# @param [String] text text to insert
|
|
108
139
|
def insert(offset, text)
|
|
109
140
|
replace(offset, 0, text)
|
|
110
141
|
end
|
|
111
|
-
|
|
142
|
+
|
|
143
|
+
# Delete text
|
|
144
|
+
#
|
|
145
|
+
# @param [Integer] offset character offset from the start of the document
|
|
146
|
+
# @param [Integer] length length of text to delete
|
|
112
147
|
def delete(offset, length)
|
|
113
148
|
replace(offset, length, "")
|
|
114
149
|
end
|
|
150
|
+
|
|
151
|
+
# Replace text
|
|
152
|
+
#
|
|
153
|
+
# @param [Integer] offset character offset from the start of the document
|
|
154
|
+
# @param [Integer] length length of text to replace
|
|
155
|
+
# @param [String] text replacement text
|
|
156
|
+
def replace(offset, length, text)
|
|
157
|
+
controller.replace(offset, length, text)
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
# Length of the document in characters
|
|
161
|
+
#
|
|
162
|
+
# @return [Integer]
|
|
163
|
+
def length
|
|
164
|
+
controller.length
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# Number of lines.
|
|
168
|
+
#
|
|
169
|
+
# @return [Integer]
|
|
170
|
+
def line_count
|
|
171
|
+
controller.line_count
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# The entire contents of the document
|
|
175
|
+
#
|
|
176
|
+
# @return [String]
|
|
177
|
+
def to_s
|
|
178
|
+
controller.to_s
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Set the contents of the document
|
|
182
|
+
#
|
|
183
|
+
# @param [String] text new text
|
|
184
|
+
def text=(text)
|
|
185
|
+
controller.text = text
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
# Get the line index of the given offset
|
|
189
|
+
#
|
|
190
|
+
# @param [Integer] offset zero-based character offset
|
|
191
|
+
# @return [Integer] zero-based index
|
|
192
|
+
def line_at_offset(offset)
|
|
193
|
+
controller.line_at_offset(offset)
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
# Get the character offset at the start of the given line
|
|
197
|
+
#
|
|
198
|
+
# @param [Integer] line zero-based line index
|
|
199
|
+
# @return [Integer] zero-based character offset
|
|
200
|
+
def offset_at_line(line)
|
|
201
|
+
controller.offset_at_line(line)
|
|
202
|
+
end
|
|
115
203
|
|
|
204
|
+
# Get the position of the cursor.
|
|
205
|
+
#
|
|
206
|
+
# @return [Integer] zero-based character offset
|
|
207
|
+
def cursor_offset
|
|
208
|
+
controller.cursor_offset
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def cursor_line_offset
|
|
212
|
+
cursor_offset - offset_at_line(cursor_line)
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
# Set the position of the cursor.
|
|
216
|
+
#
|
|
217
|
+
# @param [Integer] offset zero-based character offset
|
|
218
|
+
def cursor_offset=(offset)
|
|
219
|
+
controller.cursor_offset = offset
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
# The range of text selected by the user.
|
|
223
|
+
#
|
|
224
|
+
# @return [Range<Integer>] a range between two character offsets
|
|
225
|
+
def selection_range
|
|
226
|
+
controller.selection_range
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
# The ranges of text selected by the user.
|
|
230
|
+
#
|
|
231
|
+
# @return [Range<Integer>] a range between two character offsets
|
|
232
|
+
def selection_ranges
|
|
233
|
+
controller.selection_ranges
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
# Set the range of text selected by the user.
|
|
237
|
+
#
|
|
238
|
+
# @param [Range<Integer>] range a range between two character offsets
|
|
239
|
+
def set_selection_range(range)
|
|
240
|
+
controller.set_selection_range(range.begin, range.end)
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
# Get the text selected by the user. If no text is selected
|
|
244
|
+
# returns "".
|
|
245
|
+
#
|
|
246
|
+
# @return [String]
|
|
247
|
+
def selected_text
|
|
248
|
+
get_range(selection_range.begin, selection_range.count)
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
def block_selection_mode?
|
|
252
|
+
controller.block_selection_mode?
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
def block_selection_mode=(boolean)
|
|
256
|
+
controller.block_selection_mode = !!boolean
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
# Get a range of text from the document.
|
|
260
|
+
#
|
|
261
|
+
# @param [String] start the character offset of the start of the range
|
|
262
|
+
# @param [String] length the length of the string to get
|
|
263
|
+
# @return [String] the text
|
|
264
|
+
def get_range(start, length)
|
|
265
|
+
controller.get_range(start, length)
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
# Get the text of a line by index. (Includes a trailing "\n",
|
|
269
|
+
# unless it is the last line in the document.)
|
|
270
|
+
#
|
|
271
|
+
# @param [Integer] line_ix the zero-based line number
|
|
272
|
+
# @return [String] the text of the line
|
|
273
|
+
def get_line(line_ix)
|
|
274
|
+
controller.get_range(
|
|
275
|
+
offset_at_line(line_ix),
|
|
276
|
+
offset_at_line_end(line_ix) - offset_at_line(line_ix)
|
|
277
|
+
)
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
# Replace a line in the document. This has two modes. In the first,
|
|
281
|
+
# you supply the replacement text as an argument:
|
|
282
|
+
#
|
|
283
|
+
# replace_line(10, "new line text")
|
|
284
|
+
#
|
|
285
|
+
# In the second, you supply a block. The block argument is the current
|
|
286
|
+
# text of the line, and the return value of the block is the
|
|
287
|
+
# replacement text:
|
|
288
|
+
#
|
|
289
|
+
# replace_line(10) {|current_text| current_text.upcase }
|
|
116
290
|
def replace_line(line_ix, text=nil)
|
|
117
291
|
text ||= yield(get_line(line_ix))
|
|
118
292
|
start_offset = offset_at_line(line_ix)
|
|
@@ -120,6 +294,9 @@ module Redcar
|
|
|
120
294
|
replace(start_offset, end_offset - start_offset, text)
|
|
121
295
|
end
|
|
122
296
|
|
|
297
|
+
# Get the offset at the end of a given line, *before* the newline character.
|
|
298
|
+
#
|
|
299
|
+
# @param [Integer] line_ix a zero-based line index
|
|
123
300
|
def offset_at_inner_end_of_line(line_ix)
|
|
124
301
|
if line_ix == line_count - 1
|
|
125
302
|
length
|
|
@@ -128,6 +305,47 @@ module Redcar
|
|
|
128
305
|
end
|
|
129
306
|
end
|
|
130
307
|
|
|
308
|
+
# Does the minimum amount of scrolling that brings the given line
|
|
309
|
+
# into the viewport. Which may be none at all.
|
|
310
|
+
#
|
|
311
|
+
# @param [Integer] line_ix a zero-based line index
|
|
312
|
+
def scroll_to_line(line_ix)
|
|
313
|
+
if line_ix > biggest_visible_line
|
|
314
|
+
top_line_ix = smallest_visible_line + (line_ix - biggest_visible_line) + 2
|
|
315
|
+
top_line_ix = [top_line_ix, line_count - 1].min
|
|
316
|
+
scroll_to_line_at_top(top_line_ix)
|
|
317
|
+
elsif line_ix < smallest_visible_line
|
|
318
|
+
bottom_line_ix = line_ix - 2
|
|
319
|
+
bottom_line_ix = [bottom_line_ix, 0].max
|
|
320
|
+
scroll_to_line_at_top(bottom_line_ix)
|
|
321
|
+
end
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
# Tries to scroll so the given line is at the top of the viewport.
|
|
325
|
+
#
|
|
326
|
+
# @param [Integer] line_ix a zero-based line index
|
|
327
|
+
def scroll_to_line_at_top(line_ix)
|
|
328
|
+
@edit_view.controller.scroll_to_line(line_ix)
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
# The line_ix of the line at the top of the viewport.
|
|
332
|
+
#
|
|
333
|
+
# @return [Integer] a zero-based line index
|
|
334
|
+
def smallest_visible_line
|
|
335
|
+
@edit_view.controller.smallest_visible_line
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
# The line_ix of the line at the bottom of the viewport.
|
|
339
|
+
#
|
|
340
|
+
# @return [Integer] a zero-based line index
|
|
341
|
+
def biggest_visible_line
|
|
342
|
+
@edit_view.controller.biggest_visible_line
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
def num_lines_visible
|
|
346
|
+
biggest_visible_line - smallest_visible_line
|
|
347
|
+
end
|
|
348
|
+
|
|
131
349
|
private
|
|
132
350
|
|
|
133
351
|
def update_from_mirror
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
module Redcar
|
|
2
2
|
class EditTab < Tab
|
|
3
|
-
include Redcar::Observable
|
|
4
3
|
|
|
5
4
|
attr_reader :edit_view
|
|
6
5
|
|
|
@@ -13,12 +12,13 @@ module Redcar
|
|
|
13
12
|
@edit_view = Redcar::EditView.new(self)
|
|
14
13
|
@edit_view.add_listener(:focussed, &method(:edit_view_focussed))
|
|
15
14
|
@edit_view.document.add_listener(:changed) { notify_listeners(:changed, self) }
|
|
15
|
+
@edit_view.document.add_listener(:selection_range_changed) { notify_listeners(:selection_changed) }
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def edit_view_focussed
|
|
19
19
|
notify_listeners(:focus)
|
|
20
20
|
end
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
def serialize
|
|
23
23
|
{ :title => title }
|
|
24
24
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
require 'edit_view_swt/document'
|
|
3
3
|
require 'edit_view_swt/edit_tab'
|
|
4
|
+
require 'edit_view_swt/word_movement'
|
|
4
5
|
|
|
5
6
|
require 'joni'
|
|
6
7
|
require 'jcodings'
|
|
@@ -12,15 +13,15 @@ module Redcar
|
|
|
12
13
|
class EditViewSWT
|
|
13
14
|
include Redcar::Observable
|
|
14
15
|
|
|
15
|
-
def self.
|
|
16
|
+
def self.start
|
|
16
17
|
gui = ApplicationSWT.gui
|
|
17
18
|
gui.register_controllers(Redcar::EditTab => EditViewSWT::Tab)
|
|
18
19
|
load_textmate_assets
|
|
19
20
|
end
|
|
20
21
|
|
|
21
22
|
def self.load_textmate_assets
|
|
22
|
-
JavaMateView::Bundle.load_bundles(Redcar
|
|
23
|
-
JavaMateView::ThemeManager.load_themes(Redcar
|
|
23
|
+
JavaMateView::Bundle.load_bundles(Redcar.root + "/textmate/")
|
|
24
|
+
JavaMateView::ThemeManager.load_themes(Redcar.root + "/textmate/")
|
|
24
25
|
end
|
|
25
26
|
|
|
26
27
|
attr_reader :mate_text, :widget
|
|
@@ -40,22 +41,27 @@ module Redcar
|
|
|
40
41
|
@mate_text.set_theme_by_name(ARGV.option("theme") || "Twilight")
|
|
41
42
|
create_undo_manager
|
|
42
43
|
@document.attach_modification_listeners # comes after undo manager
|
|
44
|
+
remove_control_keybindings
|
|
43
45
|
end
|
|
44
46
|
|
|
45
47
|
def create_mate_text
|
|
46
48
|
parent = @edit_tab.notebook.tab_folder
|
|
47
49
|
@widget = Swt::Widgets::Composite.new(parent, Swt::SWT::NONE)
|
|
48
50
|
layout = Swt::Layout::GridLayout.new
|
|
51
|
+
layout.verticalSpacing = 0
|
|
52
|
+
layout.marginHeight = 0
|
|
53
|
+
layout.horizontalSpacing = 0
|
|
54
|
+
layout.marginWidth = 0
|
|
49
55
|
layout.numColumns = 2
|
|
50
56
|
@widget.layout = layout
|
|
51
57
|
@mate_text = JavaMateView::MateText.new(@widget)
|
|
52
|
-
if
|
|
58
|
+
if Redcar.platform == :osx
|
|
53
59
|
default_font = "Monaco"
|
|
54
60
|
default_font_size = 15
|
|
55
|
-
elsif
|
|
61
|
+
elsif Redcar.platform == :linux
|
|
56
62
|
default_font = "Monospace"
|
|
57
63
|
default_font_size = 11
|
|
58
|
-
elsif
|
|
64
|
+
elsif Redcar.platform == :windows
|
|
59
65
|
default_font = "FixedSys"
|
|
60
66
|
default_font_size = 15
|
|
61
67
|
end
|
|
@@ -145,10 +151,12 @@ module Redcar
|
|
|
145
151
|
focus_control = ApplicationSWT.display.get_focus_control
|
|
146
152
|
focus_control.parent.parent == @mate_text
|
|
147
153
|
end
|
|
148
|
-
|
|
154
|
+
|
|
155
|
+
|
|
149
156
|
def attach_listeners
|
|
150
157
|
# h = @document.add_listener(:set_text, &method(:reparse))
|
|
151
158
|
# @handlers << [@document, h]
|
|
159
|
+
@mate_text.get_text_widget.add_word_movement_listener(WordMoveListener.new(self))
|
|
152
160
|
end
|
|
153
161
|
|
|
154
162
|
def reparse
|
|
@@ -164,13 +172,21 @@ module Redcar
|
|
|
164
172
|
end
|
|
165
173
|
|
|
166
174
|
def scroll_to_line(line_index)
|
|
167
|
-
@mate_text.
|
|
175
|
+
@mate_text.viewer.set_top_index(line_index)
|
|
168
176
|
end
|
|
169
177
|
|
|
170
178
|
def model_grammar_changed(name)
|
|
171
179
|
@mate_text.set_grammar_by_name(name)
|
|
172
180
|
end
|
|
173
181
|
|
|
182
|
+
def smallest_visible_line
|
|
183
|
+
@mate_text.viewer.get_top_index
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def biggest_visible_line
|
|
187
|
+
@mate_text.viewer.get_bottom_index
|
|
188
|
+
end
|
|
189
|
+
|
|
174
190
|
def update_grammar(new_mirror)
|
|
175
191
|
title = new_mirror.title
|
|
176
192
|
return if @mate_text.set_grammar_by_filename(title)
|
|
@@ -179,6 +195,19 @@ module Redcar
|
|
|
179
195
|
@mate_text.set_grammar_by_first_line(first_line) if first_line
|
|
180
196
|
end
|
|
181
197
|
|
|
198
|
+
STRIP_KEYS = {
|
|
199
|
+
:cut => 120|Swt::SWT::MOD1,
|
|
200
|
+
:copy => 99|Swt::SWT::MOD1,
|
|
201
|
+
:paste => 118|Swt::SWT::MOD1
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
def remove_control_keybindings
|
|
205
|
+
styled_text = @mate_text.get_text_widget
|
|
206
|
+
STRIP_KEYS.each do |_, key|
|
|
207
|
+
styled_text.set_key_binding(key, Swt::SWT::NULL)
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
182
211
|
def dispose
|
|
183
212
|
@combo.dispose
|
|
184
213
|
@widget.dispose
|