fixing submodules
[stack/conf/vim.git] / addons / TagHighlight / autoload / TagHighlight / Libraries.vim
diff --git a/addons/TagHighlight/autoload/TagHighlight/Libraries.vim b/addons/TagHighlight/autoload/TagHighlight/Libraries.vim
deleted file mode 100644 (file)
index 8ecbab0..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-" Tag Highlighter:
-"   Author:  A. S. Budden <abudden _at_ gmail _dot_ com>
-" Copyright: Copyright (C) 2009-2011 A. S. Budden
-"            Permission is hereby granted to use and distribute this code,
-"            with or without modifications, provided that this copyright
-"            notice is copied with it. Like anything else that's free,
-"            the TagHighlight plugin is provided *as is* and comes with no
-"            warranty of any kind, either expressed or implied. By using
-"            this plugin, you agree that in no event will the copyright
-"            holder be liable for any damages resulting from the use
-"            of this software.
-
-" ---------------------------------------------------------------------
-try
-       if &cp || v:version < 700 || (exists('g:loaded_TagHLLibraries') && (g:plugin_development_mode != 1))
-               throw "Already loaded"
-       endif
-catch
-       finish
-endtry
-let g:loaded_TagHLLibraries = 1
-
-function! TagHighlight#Libraries#LoadLibraries()
-       if has_key(g:TagHighlightPrivate,'Libraries')
-               " Already loaded
-               return
-       endif
-       call TagHLDebug("Loading standard library information", "Information")
-
-       let g:TagHighlightPrivate['LibraryPath'] = g:TagHighlightPrivate['PluginPath'] . '/standard_libraries'
-       let g:TagHighlightPrivate['Libraries'] = {}
-       let library_config_files = split(glob(g:TagHighlightPrivate['LibraryPath'] . '/*/library_types.txt'), '\n')
-
-       let required_keys = ["LibraryName","TypesFiles","CheckMode","TypesSuffixes"]
-       for library_config in library_config_files
-               call TagHLDebug("Loading information for " . library_config, "Information")
-               let skip = 0
-               let library_details = TagHighlight#LoadDataFile#LoadFile(library_config)
-               for key in required_keys
-                       if ! has_key(library_details, key)
-                               call TagHLDebug("Could not load library from " . library_config, "Warning")
-                               let skip = 1
-                               break
-                       endif
-               endfor
-               if skip
-                       continue
-               endif
-               " Config looks valid; check fields that should be lists are:
-               let list_keys = ["TypesFiles","TypesSuffixes","MatchREs"]
-               for key in list_keys
-                       if has_key(library_details,key) && type(library_details[key]) == type('')
-                               let value = library_details[key]
-                               unlet library_details[key]
-                               let library_details[key] = [value]
-                       endif
-               endfor
-               " Store the absolute path to the all types files
-               let library_details['TypesFileFullPaths'] = []
-               for types_file in library_details['TypesFiles']
-                       let library_details['TypesFileFullPaths'] += [fnamemodify(library_config, ':p:h') . '/' . types_file]
-               endfor
-
-               " Handle some defaults
-               if ! has_key(library_details,'MatchREs')
-                       " Default matcher will never match on any file
-                       let library_details['MatchREs'] = ['.\%^']
-               endif
-               if ! has_key(library_details, 'CustomFunction')
-                       " Default custom function will always return 'Skip'
-                       let library_details['CustomFunction'] = 'TagHighlight#Libraries#NeverMatch'
-               endif
-               if ! has_key(library_details, 'MatchLines')
-                       " Just use a suitable default value
-                       let library_details['MatchLines'] = 30
-               endif
-               
-               call TagHLDebug("Loaded library: " . string(library_details), "Information")
-               let g:TagHighlightPrivate['Libraries'][library_details['LibraryName']] = library_details
-       endfor
-endfunction
-
-function! TagHighlight#Libraries#FindUserLibraries()
-       " Open any explicitly configured libraries
-       call TagHLDebug("Searching for user libraries", "Information")
-       let user_library_dir = TagHighlight#Option#GetOption('UserLibraryDir')
-       let user_libraries = TagHighlight#Option#GetOption('UserLibraries')
-
-       call TagHLDebug("Library Dir: " . user_library_dir, "Information")
-       call TagHLDebug("Library List: " . string(user_libraries), "Information")
-
-       let libraries_to_load = []
-
-       for library in user_libraries
-               " If it looks like an absolute path, just load it
-               if (library[1] == ':' || library['0'] == '/') && filereadable(library)
-                       call TagHLDebug("User library is absolute path: " . library, "Information")
-                       let libraries_to_load +=
-                                               \ [{
-                                               \     'Name': 'User Library',
-                                               \     'Filename': fnamemodify(library, ':t'),
-                                               \     'Path': fnamemodify(library, '%:p'),
-                                               \ }]
-               " Otherwise, try appending to the library dir
-               elseif filereadable(user_library_dir . '/' . library)
-                       call TagHLDebug("User library is relative path: " . library, "Information")
-                       let library_path = user_library_dir . '/' . library
-                       let libraries_to_load +=
-                                               \ [{
-                                               \     'Name': 'User Library',
-                                               \     'Filename': fnamemodify(library_path, ':t'),
-                                               \     'Path': fnamemodify(library_path, '%:p'),
-                                               \ }]
-               else
-                       call TagHLDebug("Cannot load user library " . library, "Error")
-               endif
-       endfor
-       return libraries_to_load
-endfunction
-
-function! TagHighlight#Libraries#FindLibraryFiles(suffix)
-       " Should only actually read the libraries once
-       call TagHLDebug("Finding library files for current file with suffix " . a:suffix, "Information")
-       call TagHighlight#Libraries#LoadLibraries()
-
-       let libraries_to_load = []
-       let forced_standard_libraries = TagHighlight#Option#GetOption('ForcedStandardLibraries')
-
-       if TagHighlight#Option#GetOption('DisableStandardLibraries')
-               call TagHLDebug("Standard library loading disabled", "Information")
-               return []
-       endif
-
-       for library in values(g:TagHighlightPrivate['Libraries'])
-               call TagHLDebug("Checking " . library['LibraryName'], "Information")
-               let load = 0
-               if index(library['TypesSuffixes'], a:suffix) != -1
-                       " Suffix is in the list of acceptable ones
-                       if index(forced_standard_libraries, library['LibraryName']) != -1
-                               call TagHLDebug("Library(".library['LibraryName']."): Forced", "Information")
-                               let load = 1
-                       elseif library['CheckMode'] == 'Always'
-                               call TagHLDebug("Library(".library['LibraryName']."): Always", "Information")
-                               let load = 1
-                       elseif library['CheckMode'] == 'MatchStart'
-                               call TagHLDebug("Library(".library['LibraryName']."): Checking MatchStart", "Information")
-                               for matcher in library['MatchREs']
-                                       call cursor(1,1)
-                                       if search(matcher, 'nc',library['MatchLines'])
-                                               call TagHLDebug("Library(".library['LibraryName']."): Match!", "Information")
-                                               let load = 1
-                                               break
-                                       endif
-                               endfor
-                       elseif library['CheckMode'] == 'MatchEnd'
-                               call TagHLDebug("Library(".library['LibraryName']."): Checking MatchEnd", "Information")
-                               for matcher in library['MatchREs']
-                                       call cursor(1000000,1000000)
-                                       if search(matcher, 'ncb', library['MatchLines'])
-                                               call TagHLDebug("Library(".library['LibraryName']."): Match!", "Information")
-                                               let load = 1
-                                               break
-                                       endif
-                               endfor
-                       elseif library['CheckMode'] == 'Custom'
-                               call TagHLDebug("Library(".library['LibraryName']."): Custom (".library['CustomFunction'].")", "Information")
-                               " The hope is that this won't really ever be used, but
-                               " call the function and check that it returns the right
-                               " kind of thing (takes suffix as parameter)
-                               exe 'let result = ' . library['CustomFunction'] . '(' . a:suffix . ')'
-                               if result == 'Load'
-                                       call TagHLDebug("Custom result: Load", "Information")
-                                       let load = 1
-                               elseif result == 'Skip'
-                                       call TagHLDebug("Custom result: Skip", "Information")
-                                       " Pass
-                               else
-                                       call TagHLDebug("Misconfigured library: custom function has invalid return value", "Critical")
-                               endif
-                       endif
-               endif
-               if load
-                       for full_path in library['TypesFileFullPaths']
-                               let libraries_to_load += 
-                                                       \ [{
-                                                       \     'Name': library['LibraryName'],
-                                                       \     'Filename': fnamemodify(full_path, ':t'),
-                                                       \     'Path': full_path,
-                                                       \ }]
-                       endfor
-               else
-                       call TagHLDebug("No match:" . library['LibraryName'], "Information")
-               endif
-       endfor
-
-       return libraries_to_load
-endfunction
-
-function! TagHighlight#Libraries#NeverMatch()
-       return 'Skip'
-endfunction