"============================================================================= " File : autoload/unite/sources/outline/defaults/rst.vim " Author : h1mesuke " Updated : 2012-01-11 " " Licensed under the MIT license: " http://www.opensource.org/licenses/mit-license.php " "============================================================================= " Default outline info for reStructuredText " Version: 0.0.3 function! unite#sources#outline#defaults#rst#outline_info() abort return s:outline_info endfunction "----------------------------------------------------------------------------- " Outline Info let s:outline_info = { \ 'heading+1': '^[[:punct:]]\{4,}$', \ } function! s:outline_info.before(context) abort let s:adornment_levels = {} let s:adornment_id = 2 endfunction function! s:outline_info.create_heading(which, heading_line, matched_line, context) abort let heading = { \ 'word' : a:heading_line, \ 'level': 0, \ 'type' : 'generic', \ } let lines = a:context.lines let h_lnum = a:context.heading_lnum " Check the matching strictly. if a:matched_line =~ '^\([[:punct:]]\)\1\{3,}$' if h_lnum > 1 && lines[h_lnum - 1] == a:matched_line " Title let heading.level = 1 else " Sections let adchar = a:matched_line[0] if !has_key(s:adornment_levels, adchar) let s:adornment_levels[adchar] = s:adornment_id let s:adornment_id += 1 endif let heading.level = s:adornment_levels[adchar] endif endif if heading.level > 0 return heading else return {} endif endfunction