"=============================================================================
" File : autoload/unite/sources/outline/defaults/asciidoc.vim
" Author : thawk
" Updated : 2015-07-25
"
" Licensed under the MIT license:
" http://www.opensource.org/licenses/mit-license.php
"
"=============================================================================
" Default outline info for Asciidoc
" Version: 0.0.1
function! unite#sources#outline#defaults#asciidoc#outline_info() abort
return s:outline_info
endfunction
"-----------------------------------------------------------------------------
" Outline Info
let s:outline_info = {
\ 'heading' : '^=\{1,5}\s',
\ 'heading+1': '^=\{4,}$\|^-\{4,}$\|^\~\{4,}$\|^\^\{4,}$\|^+\{4,}$',
\ }
function! s:outline_info.create_heading(which, heading_line, matched_line, context) abort
let heading = {
\ 'word' : a:heading_line,
\ 'level': 0,
\ 'type' : 'generic',
\ }
if a:which ==# 'heading'
let heading.level = strlen(matchstr(a:heading_line, '^=\+'))
let heading.word = substitute(heading.word, '^=\+\s*', '', '')
let heading.word = substitute(heading.word, '\s*=\+\s*$', '', '')
elseif a:which ==# 'heading+1' && strwidth(a:heading_line) == strwidth(a:matched_line)
if a:matched_line =~ '^='
let heading.level = 1
elseif a:matched_line =~ '^-'
let heading.level = 2
elseif a:matched_line =~ '^\~'
let heading.level = 3
elseif a:matched_line =~ '^\^'
let heading.level = 4
else
let heading.level = 5
endif
endif
if heading.level > 0
return heading
else
return {}
endif
endfunction