Changeset 5512

Show
Ignore:
Timestamp:
01/25/08 21:19:07 (5 years ago)
Author:
ursm
Message:

lang/vim/autoend: pluggable にした

Location:
lang/vim/autoend
Files:
1 added
2 modified

Legend:

Unmodified
Added
Removed
  • lang/vim/autoend

  • lang/vim/autoend/plugin/autoend.vim

    r5480 r5512  
    2424 
    2525  module Helper 
    26     module_function 
    27  
    2826    def append_line(str, row = $curbuf.line_number) 
    2927      return if str.nil? || str.empty? 
     
    3836      $curwin.cursor.last.succ == $curbuf.line.size 
    3937    end 
     38 
     39    HERE = File.join(VIM.evaluate('&runtimepath').split(',', 2).first, 'plugin') 
    4040  end 
    4141end 
    4242 
    43 class AutoEnd::Handler::Ruby 
    44   include AutoEnd::Helper 
    45  
    46   def self.filetypes 
    47     %w(ruby) 
    48   end 
    49  
    50   def initialize 
    51     @exps = [ 
    52       /^\s*#/, 
    53       /^(=begin)\b/, 
    54       /^\s*(class|module|def)\b(?!.*;)/, 
    55       /([(\[]|\bbegin)\s*$/, 
    56       /(\bdo|\{)(?:\s*\|.*\|)?\s*$/, 
    57       /<<-?["'`]?(\w+)["'`]?/ 
    58     ] 
    59  
    60     @assoc = Hash.new {|h, k| k }.merge( 
    61       'class'  => 'end', 
    62       'module' => 'end', 
    63       'def'    => 'end', 
    64       'begin'  => 'end', 
    65       'do'     => 'end', 
    66       '('      => ')', 
    67       '{'      => '}', 
    68       '['      => ']', 
    69       '=begin' => '=end' 
    70     ) 
    71   end 
    72  
    73   def handle(line = $curbuf.line) 
    74     return unless eol? && @exps.find {|e| e =~ line } 
    75     append_line(indent + @assoc[$1]) if $1 
    76   end 
     43Dir.glob(File.join(AutoEnd::Helper::HERE, 'autoend_*.rb')) do |f| 
     44  require f 
    7745end 
    7846