"============================================================================= " File: autoload/unite/sources/outline/defaults/haskell.vim " Author: igrep " Updated: 2013-01-03 " Version: 0.1.1 " TODO: " - support hspec, lhs, haddock, etc. " - how to handle comments? " Referred To: " - http://www.cs.utep.edu/cheon/cs3360/pages/haskell-syntax.html " - http://www.sampou.org/haskell/report-revised-j/syntax-iso.html " - http://www.haskell.org/haskellwiki/Keywords " " Licensed under the MIT license: " http://www.opensource.org/licenses/mit-license.php " "============================================================================= let s:declaration = '\%(module\|data\|type\|newtype\|class\|instance\)' " starts with lowercase or an parenthesis let s:signature = '\%([a-z(].*::\)' let s:heading = '^\%(' . s:declaration . '\|' . s:signature .'\)' " Don't need to skip line comment. " Because the header starts with '^' let s:skip = { 'block': ['{-', '-}'] } let s:outline_info = { \ 'heading': s:heading, \ 'skip': s:skip \ } function! unite#sources#outline#defaults#haskell#outline_info() abort return s:outline_info endfunction