From 27903c5b8656c796564ef073c1ebe77a2f0154e1 Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Thu, 28 Sep 2017 22:18:09 +0200 Subject: Revert inlining basic language pack --- autoload/ada.vim | 641 -- autoload/adacomplete.vim | 113 - autoload/ccomplete.vim | 614 -- autoload/clojurecomplete.vim | 26 - autoload/context.vim | 188 - autoload/contextcomplete.vim | 29 - autoload/csscomplete.vim | 744 --- autoload/decada.vim | 79 - autoload/getscript.vim | 671 --- autoload/gnat.vim | 151 - autoload/gzip.vim | 224 - autoload/htmlcomplete.vim | 812 --- autoload/javascriptcomplete.vim | 629 -- autoload/netrw.vim | 12046 -------------------------------------- autoload/netrwFileHandlers.vim | 366 -- autoload/netrwSettings.vim | 249 - autoload/netrw_gitignore.vim | 82 - autoload/paste.vim | 39 - autoload/phpcomplete.vim | 2959 ---------- autoload/python3complete.vim | 611 -- autoload/pythoncomplete.vim | 630 -- autoload/rubycomplete.vim | 837 --- autoload/rust.vim | 419 -- autoload/rustfmt.vim | 111 - autoload/spellfile.vim | 213 - autoload/sqlcomplete.vim | 1000 ---- autoload/syntaxcomplete.vim | 759 --- autoload/tar.vim | 630 -- autoload/tohtml.vim | 927 --- autoload/vimball.vim | 779 --- autoload/xml/html32.vim | 387 -- autoload/xml/html401f.vim | 472 -- autoload/xml/html401s.vim | 414 -- autoload/xml/html401t.vim | 464 -- autoload/xml/html40f.vim | 472 -- autoload/xml/html40s.vim | 414 -- autoload/xml/html40t.vim | 464 -- autoload/xml/xhtml10f.vim | 473 -- autoload/xml/xhtml10s.vim | 414 -- autoload/xml/xhtml10t.vim | 464 -- autoload/xml/xhtml11.vim | 438 -- autoload/xml/xsd.vim | 134 - autoload/xml/xsl.vim | 42 - autoload/xmlcomplete.vim | 543 -- autoload/zip.vim | 465 -- 45 files changed, 33638 deletions(-) delete mode 100644 autoload/ada.vim delete mode 100644 autoload/adacomplete.vim delete mode 100644 autoload/ccomplete.vim delete mode 100644 autoload/context.vim delete mode 100644 autoload/contextcomplete.vim delete mode 100644 autoload/csscomplete.vim delete mode 100644 autoload/decada.vim delete mode 100644 autoload/getscript.vim delete mode 100644 autoload/gnat.vim delete mode 100644 autoload/gzip.vim delete mode 100644 autoload/javascriptcomplete.vim delete mode 100644 autoload/netrw.vim delete mode 100644 autoload/netrwFileHandlers.vim delete mode 100644 autoload/netrwSettings.vim delete mode 100644 autoload/netrw_gitignore.vim delete mode 100644 autoload/paste.vim delete mode 100644 autoload/phpcomplete.vim delete mode 100644 autoload/python3complete.vim delete mode 100644 autoload/pythoncomplete.vim delete mode 100644 autoload/spellfile.vim delete mode 100644 autoload/sqlcomplete.vim delete mode 100644 autoload/syntaxcomplete.vim delete mode 100644 autoload/tar.vim delete mode 100644 autoload/tohtml.vim delete mode 100644 autoload/vimball.vim delete mode 100644 autoload/xml/html32.vim delete mode 100644 autoload/xml/html401f.vim delete mode 100644 autoload/xml/html401s.vim delete mode 100644 autoload/xml/html401t.vim delete mode 100644 autoload/xml/html40f.vim delete mode 100644 autoload/xml/html40s.vim delete mode 100644 autoload/xml/html40t.vim delete mode 100644 autoload/xml/xhtml10f.vim delete mode 100644 autoload/xml/xhtml10s.vim delete mode 100644 autoload/xml/xhtml10t.vim delete mode 100644 autoload/xml/xhtml11.vim delete mode 100644 autoload/xml/xsd.vim delete mode 100644 autoload/xml/xsl.vim delete mode 100644 autoload/xmlcomplete.vim delete mode 100644 autoload/zip.vim (limited to 'autoload') diff --git a/autoload/ada.vim b/autoload/ada.vim deleted file mode 100644 index c62db2b8..00000000 --- a/autoload/ada.vim +++ /dev/null @@ -1,641 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -"------------------------------------------------------------------------------ -" Description: Perform Ada specific completion & tagging. -" Language: Ada (2005) -" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $ -" Maintainer: Mathias Brousset -" Martin Krischik -" Taylor Venable -" Neil Bird -" Ned Okie -" $Author: krischik $ -" $Date: 2017-01-31 20:20:05 +0200 (Mon, 01 Jan 2017) $ -" Version: 4.6 -" $Revision: 887 $ -" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $ -" History: 24.05.2006 MK Unified Headers -" 26.05.2006 MK ' should not be in iskeyword. -" 16.07.2006 MK Ada-Mode as vim-ball -" 02.10.2006 MK Better folding. -" 15.10.2006 MK Bram's suggestion for runtime integration -" 05.11.2006 MK Bram suggested not to use include protection for -" autoload -" 05.11.2006 MK Bram suggested to save on spaces -" 08.07.2007 TV fix mapleader problems. -" 09.05.2007 MK Session just won't work no matter how much -" tweaking is done -" 19.09.2007 NO still some mapleader problems -" 31.01.2017 MB fix more mapleader problems -" Help Page: ft-ada-functions -"------------------------------------------------------------------------------ - -if version < 700 - finish -endif -let s:keepcpo= &cpo -set cpo&vim - -" Section: Constants {{{1 -" -let g:ada#DotWordRegex = '\a\w*\(\_s*\.\_s*\a\w*\)*' -let g:ada#WordRegex = '\a\w*' -let g:ada#Comment = "\\v^(\"[^\"]*\"|'.'|[^\"']){-}\\zs\\s*--.*" -let g:ada#Keywords = [] - -" Section: g:ada#Keywords {{{1 -" -" Section: add Ada keywords {{{2 -" -for Item in ['abort', 'else', 'new', 'return', 'abs', 'elsif', 'not', 'reverse', 'abstract', 'end', 'null', 'accept', 'entry', 'select', 'access', 'exception', 'of', 'separate', 'aliased', 'exit', 'or', 'subtype', 'all', 'others', 'synchronized', 'and', 'for', 'out', 'array', 'function', 'overriding', 'tagged', 'at', 'task', 'generic', 'package', 'terminate', 'begin', 'goto', 'pragma', 'then', 'body', 'private', 'type', 'if', 'procedure', 'case', 'in', 'protected', 'until', 'constant', 'interface', 'use', 'is', 'raise', 'declare', 'range', 'when', 'delay', 'limited', 'record', 'while', 'delta', 'loop', 'rem', 'with', 'digits', 'renames', 'do', 'mod', 'requeue', 'xor'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'keyword', - \ 'info': 'Ada keyword.', - \ 'kind': 'k', - \ 'icase': 1}] -endfor - -" Section: GNAT Project Files {{{3 -" -if exists ('g:ada_with_gnat_project_files') - for Item in ['project'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'keyword', - \ 'info': 'GNAT projectfile keyword.', - \ 'kind': 'k', - \ 'icase': 1}] - endfor -endif - -" Section: add standart exception {{{2 -" -for Item in ['Constraint_Error', 'Program_Error', 'Storage_Error', 'Tasking_Error', 'Status_Error', 'Mode_Error', 'Name_Error', 'Use_Error', 'Device_Error', 'End_Error', 'Data_Error', 'Layout_Error', 'Length_Error', 'Pattern_Error', 'Index_Error', 'Translation_Error', 'Time_Error', 'Argument_Error', 'Tag_Error', 'Picture_Error', 'Terminator_Error', 'Conversion_Error', 'Pointer_Error', 'Dereference_Error', 'Update_Error'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'exception', - \ 'info': 'Ada standart exception.', - \ 'kind': 'x', - \ 'icase': 1}] -endfor - -" Section: add GNAT exception {{{3 -" -if exists ('g:ada_gnat_extensions') - for Item in ['Assert_Failure'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'exception', - \ 'info': 'GNAT exception.', - \ 'kind': 'x', - \ 'icase': 1}] - endfor -endif - -" Section: add Ada buildin types {{{2 -" -for Item in ['Boolean', 'Integer', 'Natural', 'Positive', 'Float', 'Character', 'Wide_Character', 'Wide_Wide_Character', 'String', 'Wide_String', 'Wide_Wide_String', 'Duration'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'type', - \ 'info': 'Ada buildin type.', - \ 'kind': 't', - \ 'icase': 1}] -endfor - -" Section: add GNAT buildin types {{{3 -" -if exists ('g:ada_gnat_extensions') - for Item in ['Short_Integer', 'Short_Short_Integer', 'Long_Integer', 'Long_Long_Integer', 'Short_Float', 'Short_Short_Float', 'Long_Float', 'Long_Long_Float'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'type', - \ 'info': 'GNAT buildin type.', - \ 'kind': 't', - \ 'icase': 1}] - endfor -endif - -" Section: add Ada Attributes {{{2 -" -for Item in ['''Access', '''Address', '''Adjacent', '''Aft', '''Alignment', '''Base', '''Bit_Order', '''Body_Version', '''Callable', '''Caller', '''Ceiling', '''Class', '''Component_Size', '''Compose', '''Constrained', '''Copy_Sign', '''Count', '''Definite', '''Delta', '''Denorm', '''Digits', '''Emax', '''Exponent', '''External_Tag', '''Epsilon', '''First', '''First_Bit', '''Floor', '''Fore', '''Fraction', '''Identity', '''Image', '''Input', '''Large', '''Last', '''Last_Bit', '''Leading_Part', '''Length', '''Machine', '''Machine_Emax', '''Machine_Emin', '''Machine_Mantissa', '''Machine_Overflows', '''Machine_Radix', '''Machine_Rounding', '''Machine_Rounds', '''Mantissa', '''Max', '''Max_Size_In_Storage_Elements', '''Min', '''Mod', '''Model', '''Model_Emin', '''Model_Epsilon', '''Model_Mantissa', '''Model_Small', '''Modulus', '''Output', '''Partition_ID', '''Pos', '''Position', '''Pred', '''Priority', '''Range', '''Read', '''Remainder', '''Round', '''Rounding', '''Safe_Emax', '''Safe_First', '''Safe_Large', '''Safe_Last', '''Safe_Small', '''Scale', '''Scaling', '''Signed_Zeros', '''Size', '''Small', '''Storage_Pool', '''Storage_Size', '''Stream_Size', '''Succ', '''Tag', '''Terminated', '''Truncation', '''Unbiased_Rounding', '''Unchecked_Access', '''Val', '''Valid', '''Value', '''Version', '''Wide_Image', '''Wide_Value', '''Wide_Wide_Image', '''Wide_Wide_Value', '''Wide_Wide_Width', '''Wide_Width', '''Width', '''Write'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'attribute', - \ 'info': 'Ada attribute.', - \ 'kind': 'a', - \ 'icase': 1}] -endfor - -" Section: add GNAT Attributes {{{3 -" -if exists ('g:ada_gnat_extensions') - for Item in ['''Abort_Signal', '''Address_Size', '''Asm_Input', '''Asm_Output', '''AST_Entry', '''Bit', '''Bit_Position', '''Code_Address', '''Default_Bit_Order', '''Elaborated', '''Elab_Body', '''Elab_Spec', '''Emax', '''Enum_Rep', '''Epsilon', '''Fixed_Value', '''Has_Access_Values', '''Has_Discriminants', '''Img', '''Integer_Value', '''Machine_Size', '''Max_Interrupt_Priority', '''Max_Priority', '''Maximum_Alignment', '''Mechanism_Code', '''Null_Parameter', '''Object_Size', '''Passed_By_Reference', '''Range_Length', '''Storage_Unit', '''Target_Name', '''Tick', '''To_Address', '''Type_Class', '''UET_Address', '''Unconstrained_Array', '''Universal_Literal_String', '''Unrestricted_Access', '''VADS_Size', '''Value_Size', '''Wchar_T_Size', '''Word_Size'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'attribute', - \ 'info': 'GNAT attribute.', - \ 'kind': 'a', - \ 'icase': 1}] - endfor -endif - -" Section: add Ada Pragmas {{{2 -" -for Item in ['All_Calls_Remote', 'Assert', 'Assertion_Policy', 'Asynchronous', 'Atomic', 'Atomic_Components', 'Attach_Handler', 'Controlled', 'Convention', 'Detect_Blocking', 'Discard_Names', 'Elaborate', 'Elaborate_All', 'Elaborate_Body', 'Export', 'Import', 'Inline', 'Inspection_Point', 'Interface (Obsolescent)', 'Interrupt_Handler', 'Interrupt_Priority', 'Linker_Options', 'List', 'Locking_Policy', 'Memory_Size (Obsolescent)', 'No_Return', 'Normalize_Scalars', 'Optimize', 'Pack', 'Page', 'Partition_Elaboration_Policy', 'Preelaborable_Initialization', 'Preelaborate', 'Priority', 'Priority_Specific_Dispatching', 'Profile', 'Pure', 'Queueing_Policy', 'Relative_Deadline', 'Remote_Call_Interface', 'Remote_Types', 'Restrictions', 'Reviewable', 'Shared (Obsolescent)', 'Shared_Passive', 'Storage_Size', 'Storage_Unit (Obsolescent)', 'Suppress', 'System_Name (Obsolescent)', 'Task_Dispatching_Policy', 'Unchecked_Union', 'Unsuppress', 'Volatile', 'Volatile_Components'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'pragma', - \ 'info': 'Ada pragma.', - \ 'kind': 'p', - \ 'icase': 1}] -endfor - -" Section: add GNAT Pragmas {{{3 -" -if exists ('g:ada_gnat_extensions') - for Item in ['Abort_Defer', 'Ada_83', 'Ada_95', 'Ada_05', 'Annotate', 'Ast_Entry', 'C_Pass_By_Copy', 'Comment', 'Common_Object', 'Compile_Time_Warning', 'Complex_Representation', 'Component_Alignment', 'Convention_Identifier', 'CPP_Class', 'CPP_Constructor', 'CPP_Virtual', 'CPP_Vtable', 'Debug', 'Elaboration_Checks', 'Eliminate', 'Export_Exception', 'Export_Function', 'Export_Object', 'Export_Procedure', 'Export_Value', 'Export_Valued_Procedure', 'Extend_System', 'External', 'External_Name_Casing', 'Finalize_Storage_Only', 'Float_Representation', 'Ident', 'Import_Exception', 'Import_Function', 'Import_Object', 'Import_Procedure', 'Import_Valued_Procedure', 'Initialize_Scalars', 'Inline_Always', 'Inline_Generic', 'Interface_Name', 'Interrupt_State', 'Keep_Names', 'License', 'Link_With', 'Linker_Alias', 'Linker_Section', 'Long_Float', 'Machine_Attribute', 'Main_Storage', 'Obsolescent', 'Passive', 'Polling', 'Profile_Warnings', 'Propagate_Exceptions', 'Psect_Object', 'Pure_Function', 'Restriction_Warnings', 'Source_File_Name', 'Source_File_Name_Project', 'Source_Reference', 'Stream_Convert', 'Style_Checks', 'Subtitle', 'Suppress_All', 'Suppress_Exception_Locations', 'Suppress_Initialization', 'Task_Info', 'Task_Name', 'Task_Storage', 'Thread_Body', 'Time_Slice', 'Title', 'Unimplemented_Unit', 'Universal_Data', 'Unreferenced', 'Unreserve_All_Interrupts', 'Use_VADS_Size', 'Validity_Checks', 'Warnings', 'Weak_External'] - let g:ada#Keywords += [{ - \ 'word': Item, - \ 'menu': 'pragma', - \ 'info': 'GNAT pragma.', - \ 'kind': 'p', - \ 'icase': 1}] - endfor -endif -" 1}}} - -" Section: g:ada#Ctags_Kinds {{{1 -" -let g:ada#Ctags_Kinds = { - \ 'P': ["packspec", "package specifications"], - \ 'p': ["package", "packages"], - \ 'T': ["typespec", "type specifications"], - \ 't': ["type", "types"], - \ 'U': ["subspec", "subtype specifications"], - \ 'u': ["subtype", "subtypes"], - \ 'c': ["component", "record type components"], - \ 'l': ["literal", "enum type literals"], - \ 'V': ["varspec", "variable specifications"], - \ 'v': ["variable", "variables"], - \ 'f': ["formal", "generic formal parameters"], - \ 'n': ["constant", "constants"], - \ 'x': ["exception", "user defined exceptions"], - \ 'R': ["subprogspec", "subprogram specifications"], - \ 'r': ["subprogram", "subprograms"], - \ 'K': ["taskspec", "task specifications"], - \ 'k': ["task", "tasks"], - \ 'O': ["protectspec", "protected data specifications"], - \ 'o': ["protected", "protected data"], - \ 'E': ["entryspec", "task/protected data entry specifications"], - \ 'e': ["entry", "task/protected data entries"], - \ 'b': ["label", "labels"], - \ 'i': ["identifier", "loop/declare identifiers"], - \ 'a': ["autovar", "automatic variables"], - \ 'y': ["annon", "loops and blocks with no identifier"]} - -" Section: ada#Word (...) {{{1 -" -" Extract current Ada word across multiple lines -" AdaWord ([line, column])\ -" -function ada#Word (...) - if a:0 > 1 - let l:Line_Nr = a:1 - let l:Column_Nr = a:2 - 1 - else - let l:Line_Nr = line('.') - let l:Column_Nr = col('.') - 1 - endif - - let l:Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' ) - - " Cope with tag searching for items in comments; if we are, don't loop - " backards looking for previous lines - if l:Column_Nr > strlen(l:Line) - " We were in a comment - let l:Line = getline(l:Line_Nr) - let l:Search_Prev_Lines = 0 - else - let l:Search_Prev_Lines = 1 - endif - - " Go backwards until we find a match (Ada ID) that *doesn't* include our - " location - i.e., the previous ID. This is because the current 'correct' - " match will toggle matching/not matching as we traverse characters - " backwards. Thus, we have to find the previous unrelated match, exclude - " it, then use the next full match (ours). - " Remember to convert vim column 'l:Column_Nr' [1..n] to string offset [0..(n-1)] - " ... but start, here, one after the required char. - let l:New_Column = l:Column_Nr + 1 - while 1 - let l:New_Column = l:New_Column - 1 - if l:New_Column < 0 - " Have to include previous l:Line from file - let l:Line_Nr = l:Line_Nr - 1 - if l:Line_Nr < 1 || !l:Search_Prev_Lines - " Start of file or matching in a comment - let l:Line_Nr = 1 - let l:New_Column = 0 - let l:Our_Match = match (l:Line, g:ada#WordRegex ) - break - endif - " Get previous l:Line, and prepend it to our search string - let l:New_Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' ) - let l:New_Column = strlen (l:New_Line) - 1 - let l:Column_Nr = l:Column_Nr + l:New_Column - let l:Line = l:New_Line . l:Line - endif - " Check to see if this is a match excluding 'us' - let l:Match_End = l:New_Column + - \ matchend (strpart (l:Line,l:New_Column), g:ada#WordRegex ) - 1 - if l:Match_End >= l:New_Column && - \ l:Match_End < l:Column_Nr - " Yes - let l:Our_Match = l:Match_End+1 + - \ match (strpart (l:Line,l:Match_End+1), g:ada#WordRegex ) - break - endif - endwhile - - " Got anything? - if l:Our_Match < 0 - return '' - else - let l:Line = strpart (l:Line, l:Our_Match) - endif - - " Now simply add further lines until the match gets no bigger - let l:Match_String = matchstr (l:Line, g:ada#WordRegex) - let l:Last_Line = line ('$') - let l:Line_Nr = line ('.') + 1 - while l:Line_Nr <= l:Last_Line - let l:Last_Match = l:Match_String - let l:Line = l:Line . - \ substitute (getline (l:Line_Nr), g:ada#Comment, '', '') - let l:Match_String = matchstr (l:Line, g:ada#WordRegex) - if l:Match_String == l:Last_Match - break - endif - endwhile - - " Strip whitespace & return - return substitute (l:Match_String, '\s\+', '', 'g') -endfunction ada#Word - -" Section: ada#List_Tag (...) {{{1 -" -" List tags in quickfix window -" -function ada#List_Tag (...) - if a:0 > 1 - let l:Tag_Word = ada#Word (a:1, a:2) - elseif a:0 > 0 - let l:Tag_Word = a:1 - else - let l:Tag_Word = ada#Word () - endif - - echo "Searching for" l:Tag_Word - - let l:Pattern = '^' . l:Tag_Word . '$' - let l:Tag_List = taglist (l:Pattern) - let l:Error_List = [] - " - " add symbols - " - for Tag_Item in l:Tag_List - if l:Tag_Item['kind'] == '' - let l:Tag_Item['kind'] = 's' - endif - - let l:Error_List += [ - \ l:Tag_Item['filename'] . '|' . - \ l:Tag_Item['cmd'] . '|' . - \ l:Tag_Item['kind'] . "\t" . - \ l:Tag_Item['name'] ] - endfor - set errorformat=%f\|%l\|%m - cexpr l:Error_List - cwindow -endfunction ada#List_Tag - -" Section: ada#Jump_Tag (Word, Mode) {{{1 -" -" Word tag - include '.' and if Ada make uppercase -" -function ada#Jump_Tag (Word, Mode) - if a:Word == '' - " Get current word - let l:Word = ada#Word() - if l:Word == '' - throw "NOT_FOUND: no identifier found." - endif - else - let l:Word = a:Word - endif - - echo "Searching for " . l:Word - - try - execute a:Mode l:Word - catch /.*:E426:.*/ - let ignorecase = &ignorecase - set ignorecase - execute a:Mode l:Word - let &ignorecase = ignorecase - endtry - - return -endfunction ada#Jump_Tag - -" Section: ada#Insert_Backspace () {{{1 -" -" Backspace at end of line after auto-inserted commentstring '-- ' wipes it -" -function ada#Insert_Backspace () - let l:Line = getline ('.') - if col ('.') > strlen (l:Line) && - \ match (l:Line, '-- $') != -1 && - \ match (&comments,'--') != -1 - return "\\\" - else - return "\" - endif - - return -endfunction ada#InsertBackspace - -" Section: Insert Completions {{{1 -" -" Section: ada#User_Complete(findstart, base) {{{2 -" -" This function is used for the 'complete' option. -" -function! ada#User_Complete(findstart, base) - if a:findstart == 1 - " - " locate the start of the word - " - let line = getline ('.') - let start = col ('.') - 1 - while start > 0 && line[start - 1] =~ '\i\|''' - let start -= 1 - endwhile - return start - else - " - " look up matches - " - let l:Pattern = '^' . a:base . '.*$' - " - " add keywords - " - for Tag_Item in g:ada#Keywords - if l:Tag_Item['word'] =~? l:Pattern - if complete_add (l:Tag_Item) == 0 - return [] - endif - if complete_check () - return [] - endif - endif - endfor - return [] - endif -endfunction ada#User_Complete - -" Section: ada#Completion (cmd) {{{2 -" -" Word completion (^N/^R/^X^]) - force '.' inclusion -function ada#Completion (cmd) - set iskeyword+=46 - return a:cmd . "\=ada#Completion_End ()\" -endfunction ada#Completion - -" Section: ada#Completion_End () {{{2 -" -function ada#Completion_End () - set iskeyword-=46 - return '' -endfunction ada#Completion_End - -" Section: ada#Create_Tags {{{1 -" -function ada#Create_Tags (option) - if a:option == 'file' - let l:Filename = fnamemodify (bufname ('%'), ':p') - elseif a:option == 'dir' - let l:Filename = - \ fnamemodify (bufname ('%'), ':p:h') . "*.ada " . - \ fnamemodify (bufname ('%'), ':p:h') . "*.adb " . - \ fnamemodify (bufname ('%'), ':p:h') . "*.ads" - else - let l:Filename = a:option - endif - execute '!ctags --excmd=number ' . l:Filename -endfunction ada#Create_Tags - -" Section: ada#Switch_Session {{{1 -" -function ada#Switch_Session (New_Session) - " - " you should not save to much date into the seession since they will - " be sourced - " - let l:sessionoptions=&sessionoptions - - try - set sessionoptions=buffers,curdir,folds,globals,resize,slash,tabpages,tabpages,unix,winpos,winsize - - if a:New_Session != v:this_session - " - " We actually got a new session - otherwise there - " is nothing to do. - " - if strlen (v:this_session) > 0 - execute 'mksession! ' . v:this_session - endif - - let v:this_session = a:New_Session - - "if filereadable (v:this_session) - "execute 'source ' . v:this_session - "endif - - augroup ada_session - autocmd! - autocmd VimLeavePre * execute 'mksession! ' . v:this_session - augroup END - - "if exists ("g:Tlist_Auto_Open") && g:Tlist_Auto_Open - "TlistOpen - "endif - - endif - finally - let &sessionoptions=l:sessionoptions - endtry - - return -endfunction ada#Switch_Session - -" Section: GNAT Pretty Printer folding {{{1 -" -if exists('g:ada_folding') && g:ada_folding[0] == 'g' - " - " Lines consisting only of ')' ';' are due to a gnat pretty bug and - " have the same level as the line above (can't happen in the first - " line). - " - let s:Fold_Collate = '^\([;)]*$\|' - - " - " some lone statements are folded with the line above - " - if stridx (g:ada_folding, 'i') >= 0 - let s:Fold_Collate .= '\s\+\$\|' - endif - if stridx (g:ada_folding, 'b') >= 0 - let s:Fold_Collate .= '\s\+\$\|' - endif - if stridx (g:ada_folding, 'p') >= 0 - let s:Fold_Collate .= '\s\+\$\|' - endif - if stridx (g:ada_folding, 'x') >= 0 - let s:Fold_Collate .= '\s\+\$\|' - endif - - " We also handle empty lines and - " comments here. - let s:Fold_Collate .= '--\)' - - function ada#Pretty_Print_Folding (Line) " {{{2 - let l:Text = getline (a:Line) - - if l:Text =~ s:Fold_Collate - " - " fold with line above - " - let l:Level = "=" - elseif l:Text =~ '^\s\+(' - " - " gnat outdents a line which stards with a ( by one characters so - " that parameters which follow are aligned. - " - let l:Level = (indent (a:Line) + 1) / &shiftwidth - else - let l:Level = indent (a:Line) / &shiftwidth - endif - - return l:Level - endfunction ada#Pretty_Print_Folding " }}}2 -endif - -" Section: Options and Menus {{{1 -" -" Section: ada#Switch_Syntax_Options {{{2 -" -function ada#Switch_Syntax_Option (option) - syntax off - if exists ('g:ada_' . a:option) - unlet g:ada_{a:option} - echo a:option . 'now off' - else - let g:ada_{a:option}=1 - echo a:option . 'now on' - endif - syntax on -endfunction ada#Switch_Syntax_Option - -" Section: ada#Map_Menu {{{2 -" -function ada#Map_Menu (Text, Keys, Command) - if a:Keys[0] == ':' - execute - \ "50amenu " . - \ "Ada." . escape(a:Text, ' ') . - \ "" . a:Keys . - \ " :" . a:Command . "" - execute - \ "command -buffer " . - \ a:Keys[1:] . - \" :" . a:Command . "" - elseif a:Keys[0] == '<' - execute - \ "50amenu " . - \ "Ada." . escape(a:Text, ' ') . - \ "" . a:Keys . - \ " :" . a:Command . "" - execute - \ "nnoremap " . - \ a:Keys . - \" :" . a:Command . "" - execute - \ "inoremap " . - \ a:Keys . - \" :" . a:Command . "" - else - if exists("g:mapleader") - let l:leader = g:mapleader - else - let l:leader = '\' - endif - execute - \ "50amenu " . - \ "Ada." . escape(a:Text, ' ') . - \ "" . escape(l:leader . "a" . a:Keys , '\') . - \ " :" . a:Command . "" - execute - \ "nnoremap " . - \ " a" . a:Keys . - \" :" . a:Command - execute - \ "inoremap " . - \ " a" . a:Keys . - \" :" . a:Command - endif - return -endfunction - -" Section: ada#Map_Popup {{{2 -" -function ada#Map_Popup (Text, Keys, Command) - if exists("g:mapleader") - let l:leader = g:mapleader - else - let l:leader = '\' - endif - execute - \ "50amenu " . - \ "PopUp." . escape(a:Text, ' ') . - \ "" . escape(l:leader . "a" . a:Keys , '\') . - \ " :" . a:Command . "" - - call ada#Map_Menu (a:Text, a:Keys, a:Command) - return -endfunction ada#Map_Popup - -" }}}1 - -lockvar g:ada#WordRegex -lockvar g:ada#DotWordRegex -lockvar g:ada#Comment -lockvar! g:ada#Keywords -lockvar! g:ada#Ctags_Kinds - -let &cpo = s:keepcpo -unlet s:keepcpo - -finish " 1}}} - -"------------------------------------------------------------------------------ -" Copyright (C) 2006 Martin Krischik -" -" Vim is Charityware - see ":help license" or uganda.txt for licence details. -"------------------------------------------------------------------------------ -" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab -" vim: foldmethod=marker - -endif diff --git a/autoload/adacomplete.vim b/autoload/adacomplete.vim deleted file mode 100644 index 575f87c9..00000000 --- a/autoload/adacomplete.vim +++ /dev/null @@ -1,113 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -"------------------------------------------------------------------------------ -" Description: Vim Ada omnicompletion file -" Language: Ada (2005) -" $Id: adacomplete.vim 887 2008-07-08 14:29:01Z krischik $ -" Maintainer: Martin Krischik -" $Author: krischik $ -" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $ -" Version: 4.6 -" $Revision: 887 $ -" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $ -" History: 24.05.2006 MK Unified Headers -" 26.05.2006 MK improved search for begin of word. -" 16.07.2006 MK Ada-Mode as vim-ball -" 15.10.2006 MK Bram's suggestion for runtime integration -" 05.11.2006 MK Bram suggested not to use include protection for -" autoload -" 05.11.2006 MK Bram suggested agaist using setlocal omnifunc -" 05.11.2006 MK Bram suggested to save on spaces -" Help Page: ft-ada-omni -"------------------------------------------------------------------------------ - -if version < 700 - finish -endif - -" Section: adacomplete#Complete () {{{1 -" -" This function is used for the 'omnifunc' option. -" -function! adacomplete#Complete (findstart, base) - if a:findstart == 1 - return ada#User_Complete (a:findstart, a:base) - else - " - " look up matches - " - if exists ("g:ada_omni_with_keywords") - call ada#User_Complete (a:findstart, a:base) - endif - " - " search tag file for matches - " - let l:Pattern = '^' . a:base . '.*$' - let l:Tag_List = taglist (l:Pattern) - " - " add symbols - " - for Tag_Item in l:Tag_List - if l:Tag_Item['kind'] == '' - " - " Tag created by gnat xref - " - let l:Match_Item = { - \ 'word': l:Tag_Item['name'], - \ 'menu': l:Tag_Item['filename'], - \ 'info': "Symbol from file " . l:Tag_Item['filename'] . " line " . l:Tag_Item['cmd'], - \ 'kind': 's', - \ 'icase': 1} - else - " - " Tag created by ctags - " - let l:Info = 'Symbol : ' . l:Tag_Item['name'] . "\n" - let l:Info .= 'Of type : ' . g:ada#Ctags_Kinds[l:Tag_Item['kind']][1] . "\n" - let l:Info .= 'Defined in File : ' . l:Tag_Item['filename'] . "\n" - - if has_key( l:Tag_Item, 'package') - let l:Info .= 'Package : ' . l:Tag_Item['package'] . "\n" - let l:Menu = l:Tag_Item['package'] - elseif has_key( l:Tag_Item, 'separate') - let l:Info .= 'Separate from Package : ' . l:Tag_Item['separate'] . "\n" - let l:Menu = l:Tag_Item['separate'] - elseif has_key( l:Tag_Item, 'packspec') - let l:Info .= 'Package Specification : ' . l:Tag_Item['packspec'] . "\n" - let l:Menu = l:Tag_Item['packspec'] - elseif has_key( l:Tag_Item, 'type') - let l:Info .= 'Datetype : ' . l:Tag_Item['type'] . "\n" - let l:Menu = l:Tag_Item['type'] - else - let l:Menu = l:Tag_Item['filename'] - endif - - let l:Match_Item = { - \ 'word': l:Tag_Item['name'], - \ 'menu': l:Menu, - \ 'info': l:Info, - \ 'kind': l:Tag_Item['kind'], - \ 'icase': 1} - endif - if complete_add (l:Match_Item) == 0 - return [] - endif - if complete_check () - return [] - endif - endfor - return [] - endif -endfunction adacomplete#Complete - -finish " 1}}} - -"------------------------------------------------------------------------------ -" Copyright (C) 2006 Martin Krischik -" -" Vim is Charityware - see ":help license" or uganda.txt for licence details. -"------------------------------------------------------------------------------ -" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab -" vim: foldmethod=marker - -endif diff --git a/autoload/ccomplete.vim b/autoload/ccomplete.vim deleted file mode 100644 index ccfac84e..00000000 --- a/autoload/ccomplete.vim +++ /dev/null @@ -1,614 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Vim completion script -" Language: C -" Maintainer: Bram Moolenaar -" Last Change: 2012 Jun 20 - -let s:cpo_save = &cpo -set cpo&vim - -" This function is used for the 'omnifunc' option. -function! ccomplete#Complete(findstart, base) - if a:findstart - " Locate the start of the item, including ".", "->" and "[...]". - let line = getline('.') - let start = col('.') - 1 - let lastword = -1 - while start > 0 - if line[start - 1] =~ '\w' - let start -= 1 - elseif line[start - 1] =~ '\.' - if lastword == -1 - let lastword = start - endif - let start -= 1 - elseif start > 1 && line[start - 2] == '-' && line[start - 1] == '>' - if lastword == -1 - let lastword = start - endif - let start -= 2 - elseif line[start - 1] == ']' - " Skip over [...]. - let n = 0 - let start -= 1 - while start > 0 - let start -= 1 - if line[start] == '[' - if n == 0 - break - endif - let n -= 1 - elseif line[start] == ']' " nested [] - let n += 1 - endif - endwhile - else - break - endif - endwhile - - " Return the column of the last word, which is going to be changed. - " Remember the text that comes before it in s:prepended. - if lastword == -1 - let s:prepended = '' - return start - endif - let s:prepended = strpart(line, start, lastword - start) - return lastword - endif - - " Return list of matches. - - let base = s:prepended . a:base - - " Don't do anything for an empty base, would result in all the tags in the - " tags file. - if base == '' - return [] - endif - - " init cache for vimgrep to empty - let s:grepCache = {} - - " Split item in words, keep empty word after "." or "->". - " "aa" -> ['aa'], "aa." -> ['aa', ''], "aa.bb" -> ['aa', 'bb'], etc. - " We can't use split, because we need to skip nested [...]. - let items = [] - let s = 0 - while 1 - let e = match(base, '\.\|->\|\[', s) - if e < 0 - if s == 0 || base[s - 1] != ']' - call add(items, strpart(base, s)) - endif - break - endif - if s == 0 || base[s - 1] != ']' - call add(items, strpart(base, s, e - s)) - endif - if base[e] == '.' - let s = e + 1 " skip over '.' - elseif base[e] == '-' - let s = e + 2 " skip over '->' - else - " Skip over [...]. - let n = 0 - let s = e - let e += 1 - while e < len(base) - if base[e] == ']' - if n == 0 - break - endif - let n -= 1 - elseif base[e] == '[' " nested [...] - let n += 1 - endif - let e += 1 - endwhile - let e += 1 - call add(items, strpart(base, s, e - s)) - let s = e - endif - endwhile - - " Find the variable items[0]. - " 1. in current function (like with "gd") - " 2. in tags file(s) (like with ":tag") - " 3. in current file (like with "gD") - let res = [] - if searchdecl(items[0], 0, 1) == 0 - " Found, now figure out the type. - " TODO: join previous line if it makes sense - let line = getline('.') - let col = col('.') - if stridx(strpart(line, 0, col), ';') != -1 - " Handle multiple declarations on the same line. - let col2 = col - 1 - while line[col2] != ';' - let col2 -= 1 - endwhile - let line = strpart(line, col2 + 1) - let col -= col2 - endif - if stridx(strpart(line, 0, col), ',') != -1 - " Handle multiple declarations on the same line in a function - " declaration. - let col2 = col - 1 - while line[col2] != ',' - let col2 -= 1 - endwhile - if strpart(line, col2 + 1, col - col2 - 1) =~ ' *[^ ][^ ]* *[^ ]' - let line = strpart(line, col2 + 1) - let col -= col2 - endif - endif - if len(items) == 1 - " Completing one word and it's a local variable: May add '[', '.' or - " '->'. - let match = items[0] - let kind = 'v' - if match(line, '\<' . match . '\s*\[') > 0 - let match .= '[' - else - let res = s:Nextitem(strpart(line, 0, col), [''], 0, 1) - if len(res) > 0 - " There are members, thus add "." or "->". - if match(line, '\*[ \t(]*' . match . '\>') > 0 - let match .= '->' - else - let match .= '.' - endif - endif - endif - let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}] - else - " Completing "var.", "var.something", etc. - let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1) - endif - endif - - if len(items) == 1 - " Only one part, no "." or "->": complete from tags file. - let tags = taglist('^' . base) - - " Remove members, these can't appear without something in front. - call filter(tags, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1') - - " Remove static matches in other files. - call filter(tags, '!has_key(v:val, "static") || !v:val["static"] || bufnr("%") == bufnr(v:val["filename"])') - - call extend(res, map(tags, 's:Tag2item(v:val)')) - endif - - if len(res) == 0 - " Find the variable in the tags file(s) - let diclist = taglist('^' . items[0] . '$') - - " Remove members, these can't appear without something in front. - call filter(diclist, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1') - - let res = [] - for i in range(len(diclist)) - " New ctags has the "typeref" field. Patched version has "typename". - if has_key(diclist[i], 'typename') - call extend(res, s:StructMembers(diclist[i]['typename'], items[1:], 1)) - elseif has_key(diclist[i], 'typeref') - call extend(res, s:StructMembers(diclist[i]['typeref'], items[1:], 1)) - endif - - " For a variable use the command, which must be a search pattern that - " shows the declaration of the variable. - if diclist[i]['kind'] == 'v' - let line = diclist[i]['cmd'] - if line[0] == '/' && line[1] == '^' - let col = match(line, '\<' . items[0] . '\>') - call extend(res, s:Nextitem(strpart(line, 2, col - 2), items[1:], 0, 1)) - endif - endif - endfor - endif - - if len(res) == 0 && searchdecl(items[0], 1) == 0 - " Found, now figure out the type. - " TODO: join previous line if it makes sense - let line = getline('.') - let col = col('.') - let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1) - endif - - " If the last item(s) are [...] they need to be added to the matches. - let last = len(items) - 1 - let brackets = '' - while last >= 0 - if items[last][0] != '[' - break - endif - let brackets = items[last] . brackets - let last -= 1 - endwhile - - return map(res, 's:Tagline2item(v:val, brackets)') -endfunc - -function! s:GetAddition(line, match, memarg, bracket) - " Guess if the item is an array. - if a:bracket && match(a:line, a:match . '\s*\[') > 0 - return '[' - endif - - " Check if the item has members. - if len(s:SearchMembers(a:memarg, [''], 0)) > 0 - " If there is a '*' before the name use "->". - if match(a:line, '\*[ \t(]*' . a:match . '\>') > 0 - return '->' - else - return '.' - endif - endif - return '' -endfunction - -" Turn the tag info "val" into an item for completion. -" "val" is is an item in the list returned by taglist(). -" If it is a variable we may add "." or "->". Don't do it for other types, -" such as a typedef, by not including the info that s:GetAddition() uses. -function! s:Tag2item(val) - let res = {'match': a:val['name']} - - let res['extra'] = s:Tagcmd2extra(a:val['cmd'], a:val['name'], a:val['filename']) - - let s = s:Dict2info(a:val) - if s != '' - let res['info'] = s - endif - - let res['tagline'] = '' - if has_key(a:val, "kind") - let kind = a:val['kind'] - let res['kind'] = kind - if kind == 'v' - let res['tagline'] = "\t" . a:val['cmd'] - let res['dict'] = a:val - elseif kind == 'f' - let res['match'] = a:val['name'] . '(' - endif - endif - - return res -endfunction - -" Use all the items in dictionary for the "info" entry. -function! s:Dict2info(dict) - let info = '' - for k in sort(keys(a:dict)) - let info .= k . repeat(' ', 10 - len(k)) - if k == 'cmd' - let info .= substitute(matchstr(a:dict['cmd'], '/^\s*\zs.*\ze$/'), '\\\(.\)', '\1', 'g') - else - let info .= a:dict[k] - endif - let info .= "\n" - endfor - return info -endfunc - -" Parse a tag line and return a dictionary with items like taglist() -function! s:ParseTagline(line) - let l = split(a:line, "\t") - let d = {} - if len(l) >= 3 - let d['name'] = l[0] - let d['filename'] = l[1] - let d['cmd'] = l[2] - let n = 2 - if l[2] =~ '^/' - " Find end of cmd, it may contain Tabs. - while n < len(l) && l[n] !~ '/;"$' - let n += 1 - let d['cmd'] .= " " . l[n] - endwhile - endif - for i in range(n + 1, len(l) - 1) - if l[i] == 'file:' - let d['static'] = 1 - elseif l[i] !~ ':' - let d['kind'] = l[i] - else - let d[matchstr(l[i], '[^:]*')] = matchstr(l[i], ':\zs.*') - endif - endfor - endif - - return d -endfunction - -" Turn a match item "val" into an item for completion. -" "val['match']" is the matching item. -" "val['tagline']" is the tagline in which the last part was found. -function! s:Tagline2item(val, brackets) - let line = a:val['tagline'] - let add = s:GetAddition(line, a:val['match'], [a:val], a:brackets == '') - let res = {'word': a:val['match'] . a:brackets . add } - - if has_key(a:val, 'info') - " Use info from Tag2item(). - let res['info'] = a:val['info'] - else - " Parse the tag line and add each part to the "info" entry. - let s = s:Dict2info(s:ParseTagline(line)) - if s != '' - let res['info'] = s - endif - endif - - if has_key(a:val, 'kind') - let res['kind'] = a:val['kind'] - elseif add == '(' - let res['kind'] = 'f' - else - let s = matchstr(line, '\t\(kind:\)\=\zs\S\ze\(\t\|$\)') - if s != '' - let res['kind'] = s - endif - endif - - if has_key(a:val, 'extra') - let res['menu'] = a:val['extra'] - return res - endif - - " Isolate the command after the tag and filename. - let s = matchstr(line, '[^\t]*\t[^\t]*\t\zs\(/^.*$/\|[^\t]*\)\ze\(;"\t\|\t\|$\)') - if s != '' - let res['menu'] = s:Tagcmd2extra(s, a:val['match'], matchstr(line, '[^\t]*\t\zs[^\t]*\ze\t')) - endif - return res -endfunction - -" Turn a command from a tag line to something that is useful in the menu -function! s:Tagcmd2extra(cmd, name, fname) - if a:cmd =~ '^/^' - " The command is a search command, useful to see what it is. - let x = matchstr(a:cmd, '^/^\s*\zs.*\ze$/') - let x = substitute(x, '\<' . a:name . '\>', '@@', '') - let x = substitute(x, '\\\(.\)', '\1', 'g') - let x = x . ' - ' . a:fname - elseif a:cmd =~ '^\d*$' - " The command is a line number, the file name is more useful. - let x = a:fname . ' - ' . a:cmd - else - " Not recognized, use command and file name. - let x = a:cmd . ' - ' . a:fname - endif - return x -endfunction - -" Find composing type in "lead" and match items[0] with it. -" Repeat this recursively for items[1], if it's there. -" When resolving typedefs "depth" is used to avoid infinite recursion. -" Return the list of matches. -function! s:Nextitem(lead, items, depth, all) - - " Use the text up to the variable name and split it in tokens. - let tokens = split(a:lead, '\s\+\|\<') - - " Try to recognize the type of the variable. This is rough guessing... - let res = [] - for tidx in range(len(tokens)) - - " Skip tokens starting with a non-ID character. - if tokens[tidx] !~ '^\h' - continue - endif - - " Recognize "struct foobar" and "union foobar". - " Also do "class foobar" when it's C++ after all (doesn't work very well - " though). - if (tokens[tidx] == 'struct' || tokens[tidx] == 'union' || tokens[tidx] == 'class') && tidx + 1 < len(tokens) - let res = s:StructMembers(tokens[tidx] . ':' . tokens[tidx + 1], a:items, a:all) - break - endif - - " TODO: add more reserved words - if index(['int', 'short', 'char', 'float', 'double', 'static', 'unsigned', 'extern'], tokens[tidx]) >= 0 - continue - endif - - " Use the tags file to find out if this is a typedef. - let diclist = taglist('^' . tokens[tidx] . '$') - for tagidx in range(len(diclist)) - let item = diclist[tagidx] - - " New ctags has the "typeref" field. Patched version has "typename". - if has_key(item, 'typeref') - call extend(res, s:StructMembers(item['typeref'], a:items, a:all)) - continue - endif - if has_key(item, 'typename') - call extend(res, s:StructMembers(item['typename'], a:items, a:all)) - continue - endif - - " Only handle typedefs here. - if item['kind'] != 't' - continue - endif - - " Skip matches local to another file. - if has_key(item, 'static') && item['static'] && bufnr('%') != bufnr(item['filename']) - continue - endif - - " For old ctags we recognize "typedef struct aaa" and - " "typedef union bbb" in the tags file command. - let cmd = item['cmd'] - let ei = matchend(cmd, 'typedef\s\+') - if ei > 1 - let cmdtokens = split(strpart(cmd, ei), '\s\+\|\<') - if len(cmdtokens) > 1 - if cmdtokens[0] == 'struct' || cmdtokens[0] == 'union' || cmdtokens[0] == 'class' - let name = '' - " Use the first identifier after the "struct" or "union" - for ti in range(len(cmdtokens) - 1) - if cmdtokens[ti] =~ '^\w' - let name = cmdtokens[ti] - break - endif - endfor - if name != '' - call extend(res, s:StructMembers(cmdtokens[0] . ':' . name, a:items, a:all)) - endif - elseif a:depth < 10 - " Could be "typedef other_T some_T". - call extend(res, s:Nextitem(cmdtokens[0], a:items, a:depth + 1, a:all)) - endif - endif - endif - endfor - if len(res) > 0 - break - endif - endfor - - return res -endfunction - - -" Search for members of structure "typename" in tags files. -" Return a list with resulting matches. -" Each match is a dictionary with "match" and "tagline" entries. -" When "all" is non-zero find all, otherwise just return 1 if there is any -" member. -function! s:StructMembers(typename, items, all) - " Todo: What about local structures? - let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")')) - if fnames == '' - return [] - endif - - let typename = a:typename - let qflist = [] - let cached = 0 - if a:all == 0 - let n = '1' " stop at first found match - if has_key(s:grepCache, a:typename) - let qflist = s:grepCache[a:typename] - let cached = 1 - endif - else - let n = '' - endif - if !cached - while 1 - exe 'silent! keepj noautocmd ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames - - let qflist = getqflist() - if len(qflist) > 0 || match(typename, "::") < 0 - break - endif - " No match for "struct:context::name", remove "context::" and try again. - let typename = substitute(typename, ':[^:]*::', ':', '') - endwhile - - if a:all == 0 - " Store the result to be able to use it again later. - let s:grepCache[a:typename] = qflist - endif - endif - - " Put matching members in matches[]. - let matches = [] - for l in qflist - let memb = matchstr(l['text'], '[^\t]*') - if memb =~ '^' . a:items[0] - " Skip matches local to another file. - if match(l['text'], "\tfile:") < 0 || bufnr('%') == bufnr(matchstr(l['text'], '\t\zs[^\t]*')) - let item = {'match': memb, 'tagline': l['text']} - - " Add the kind of item. - let s = matchstr(l['text'], '\t\(kind:\)\=\zs\S\ze\(\t\|$\)') - if s != '' - let item['kind'] = s - if s == 'f' - let item['match'] = memb . '(' - endif - endif - - call add(matches, item) - endif - endif - endfor - - if len(matches) > 0 - " Skip over [...] items - let idx = 1 - while 1 - if idx >= len(a:items) - return matches " No further items, return the result. - endif - if a:items[idx][0] != '[' - break - endif - let idx += 1 - endwhile - - " More items following. For each of the possible members find the - " matching following members. - return s:SearchMembers(matches, a:items[idx :], a:all) - endif - - " Failed to find anything. - return [] -endfunction - -" For matching members, find matches for following items. -" When "all" is non-zero find all, otherwise just return 1 if there is any -" member. -function! s:SearchMembers(matches, items, all) - let res = [] - for i in range(len(a:matches)) - let typename = '' - if has_key(a:matches[i], 'dict') - if has_key(a:matches[i].dict, 'typename') - let typename = a:matches[i].dict['typename'] - elseif has_key(a:matches[i].dict, 'typeref') - let typename = a:matches[i].dict['typeref'] - endif - let line = "\t" . a:matches[i].dict['cmd'] - else - let line = a:matches[i]['tagline'] - let e = matchend(line, '\ttypename:') - if e < 0 - let e = matchend(line, '\ttyperef:') - endif - if e > 0 - " Use typename field - let typename = matchstr(line, '[^\t]*', e) - endif - endif - - if typename != '' - call extend(res, s:StructMembers(typename, a:items, a:all)) - else - " Use the search command (the declaration itself). - let s = match(line, '\t\zs/^') - if s > 0 - let e = match(line, '\<' . a:matches[i]['match'] . '\>', s) - if e > 0 - call extend(res, s:Nextitem(strpart(line, s, e - s), a:items, 0, a:all)) - endif - endif - endif - if a:all == 0 && len(res) > 0 - break - endif - endfor - return res -endfunc - -let &cpo = s:cpo_save -unlet s:cpo_save - -endif diff --git a/autoload/clojurecomplete.vim b/autoload/clojurecomplete.vim index 790d7e8d..aa2644c4 100644 --- a/autoload/clojurecomplete.vim +++ b/autoload/clojurecomplete.vim @@ -1,29 +1,3 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Vim completion script -" Language: Clojure -" Maintainer: Sung Pae -" URL: https://github.com/guns/vim-clojure-static -" License: Same as Vim -" Last Change: 18 July 2016 - -" -*- COMPLETION WORDS -*- -" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj -" Clojure version 1.8.0 -let s:words = ["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-readably*","*read-eval*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods",".","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc!","assoc","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","booleans","bound-fn","bound-fn*","bound?","butlast","byte","byte-array","bytes","case","cast","cat","catch","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj!","conj","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","def","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj!","disj","dissoc!","dissoc","distinct","distinct?","do","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","finally","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","identical?","identity","if","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","init-proxy","instance?","int","int-array","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","monitor-enter","monitor-exit","munge","name","namespace","namespace-munge","neg?","new","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop!","pop","pop-thread-bindings","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","quot","quote","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","recur","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seque","sequence","sequential?","set!","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","throw","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","try","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","use","val","vals","var","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"] - -" Simple word completion for special forms and public vars in clojure.core -function! clojurecomplete#Complete(findstart, base) - if a:findstart - return searchpos('\<', 'bnW', line('.'))[1] - 1 - else - return { 'words': filter(copy(s:words), 'v:val =~# "\\V\\^' . a:base . '"') } - endif -endfunction - -" vim:sts=8:sw=8:ts=8:noet - -endif if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'clojure') == -1 " Vim completion script diff --git a/autoload/context.vim b/autoload/context.vim deleted file mode 100644 index 15157dc2..00000000 --- a/autoload/context.vim +++ /dev/null @@ -1,188 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Language: ConTeXt typesetting engine -" Maintainer: Nicola Vitacolonna -" Latest Revision: 2016 Oct 21 - -let s:keepcpo= &cpo -set cpo&vim - -" Helper functions {{{ -function! s:context_echo(message, mode) - redraw - echo "\r" - execute 'echohl' a:mode - echomsg '[ConTeXt]' a:message - echohl None -endf - -function! s:sh() - return has('win32') || has('win64') || has('win16') || has('win95') - \ ? ['cmd.exe', '/C'] - \ : ['/bin/sh', '-c'] -endfunction - -" For backward compatibility -if exists('*win_getid') - - function! s:win_getid() - return win_getid() - endf - - function! s:win_id2win(winid) - return win_id2win(a:winid) - endf - -else - - function! s:win_getid() - return winnr() - endf - - function! s:win_id2win(winnr) - return a:winnr - endf - -endif -" }}} - -" ConTeXt jobs {{{ -if has('job') - - let g:context_jobs = [] - - " Print the status of ConTeXt jobs - function! context#job_status() - let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"') - let l:n = len(l:jobs) - call s:context_echo( - \ 'There '.(l:n == 1 ? 'is' : 'are').' '.(l:n == 0 ? 'no' : l:n) - \ .' job'.(l:n == 1 ? '' : 's').' running' - \ .(l:n == 0 ? '.' : ' (' . join(l:jobs, ', ').').'), - \ 'ModeMsg') - endfunction - - " Stop all ConTeXt jobs - function! context#stop_jobs() - let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"') - for job in l:jobs - call job_stop(job) - endfor - sleep 1 - let l:tmp = [] - for job in l:jobs - if job_status(job) == "run" - call add(l:tmp, job) - endif - endfor - let g:context_jobs = l:tmp - if empty(g:context_jobs) - call s:context_echo('Done. No jobs running.', 'ModeMsg') - else - call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg') - endif - endfunction - - function! context#callback(path, job, status) - if index(g:context_jobs, a:job) != -1 && job_status(a:job) != 'run' " just in case - call remove(g:context_jobs, index(g:context_jobs, a:job)) - endif - call s:callback(a:path, a:job, a:status) - endfunction - - function! context#close_cb(channel) - call job_status(ch_getjob(a:channel)) " Trigger exit_cb's callback for faster feedback - endfunction - - function! s:typeset(path) - call add(g:context_jobs, - \ job_start(add(s:sh(), context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))), { - \ 'close_cb' : 'context#close_cb', - \ 'exit_cb' : function(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')), - \ [a:path]), - \ 'in_io' : 'null' - \ })) - endfunction - -else " No jobs - - function! context#job_status() - call s:context_echo('Not implemented', 'WarningMsg') - endfunction! - - function! context#stop_jobs() - call s:context_echo('Not implemented', 'WarningMsg') - endfunction - - function! context#callback(path, job, status) - call s:callback(a:path, a:job, a:status) - endfunction - - function! s:typeset(path) - execute '!' . context#command() . ' ' . shellescape(fnamemodify(a:path, ":t")) - call call(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')), - \ [a:path, 0, v:shell_error]) - endfunction - -endif " has('job') - -function! s:callback(path, job, status) abort - if a:status < 0 " Assume the job was terminated - return - endif - " Get info about the current window - let l:winid = s:win_getid() " Save window id - let l:efm = &l:errorformat " Save local errorformat - let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory - " Set errorformat to parse ConTeXt errors - execute 'setl efm=' . escape(b:context_errorformat, ' ') - try " Set cwd to expand error file correctly - execute 'lcd' fnameescape(fnamemodify(a:path, ':h')) - catch /.*/ - execute 'setl efm=' . escape(l:efm, ' ') - throw v:exception - endtry - try - execute 'cgetfile' fnameescape(fnamemodify(a:path, ':r') . '.log') - botright cwindow - finally " Restore cwd and errorformat - execute s:win_id2win(l:winid) . 'wincmd w' - execute 'lcd ' . fnameescape(l:cwd) - execute 'setl efm=' . escape(l:efm, ' ') - endtry - if a:status == 0 - call s:context_echo('Success!', 'ModeMsg') - else - call s:context_echo('There are errors. ', 'ErrorMsg') - endif -endfunction - -function! context#command() - return get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun')) - \ . ' --script context --autogenerate --nonstopmode' - \ . ' --synctex=' . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0') - \ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', '')) -endfunction - -" Accepts an optional path (useful for big projects, when the file you are -" editing is not the project's root document). If no argument is given, uses -" the path of the current buffer. -function! context#typeset(...) abort - let l:path = fnamemodify(strlen(a:000[0]) > 0 ? a:1 : expand("%"), ":p") - let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory - call s:context_echo('Typesetting...', 'ModeMsg') - execute 'lcd' fnameescape(fnamemodify(l:path, ":h")) - try - call s:typeset(l:path) - finally " Restore local working directory - execute 'lcd ' . fnameescape(l:cwd) - endtry -endfunction! -"}}} - -let &cpo = s:keepcpo -unlet s:keepcpo - -" vim: sw=2 fdm=marker - -endif diff --git a/autoload/contextcomplete.vim b/autoload/contextcomplete.vim deleted file mode 100644 index d4ffa05a..00000000 --- a/autoload/contextcomplete.vim +++ /dev/null @@ -1,29 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Language: ConTeXt typesetting engine -" Maintainer: Nicola Vitacolonna -" Latest Revision: 2016 Oct 15 - -let s:keepcpo= &cpo -set cpo&vim - -" Complete keywords in MetaPost blocks -function! contextcomplete#Complete(findstart, base) - if a:findstart == 1 - if len(synstack(line('.'), 1)) > 0 && - \ synIDattr(synstack(line('.'), 1)[0], "name") ==# 'contextMPGraphic' - return syntaxcomplete#Complete(a:findstart, a:base) - else - return -3 - endif - else - return syntaxcomplete#Complete(a:findstart, a:base) - endif -endfunction - -let &cpo = s:keepcpo -unlet s:keepcpo - -" vim: sw=2 fdm=marker - -endif diff --git a/autoload/csscomplete.vim b/autoload/csscomplete.vim deleted file mode 100644 index 06e0ab5e..00000000 --- a/autoload/csscomplete.vim +++ /dev/null @@ -1,744 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Vim completion script -" Language: CSS -" Based on MDN CSS Reference at 2016 Jan -" plus CSS Speech Module -" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com ) -" Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl ) -" Last Change: 2016 Jan 11 - -let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom") - - -function! csscomplete#CompleteCSS(findstart, base) - - if a:findstart - " We need whole line to proper checking - let line = getline('.') - let start = col('.') - 1 - let compl_begin = col('.') - 2 - while start >= 0 && line[start - 1] =~ '\%(\k\|-\)' - let start -= 1 - endwhile - let b:after = line[compl_begin :] - let b:compl_context = line[0:compl_begin] - return start - endif - - " There are few chars important for context: - " ^ ; : { } /* */ - " Where ^ is start of line and /* */ are comment borders - " Depending on their relative position to cursor we will know what should - " be completed. - " 1. if nearest are ^ or { or ; current word is property - " 2. if : it is value (with exception of pseudo things) - " 3. if } we are outside of css definitions - " 4. for comments ignoring is be the easiest but assume they are the same - " as 1. - " 5. if @ complete at-rule - " 6. if ! complete important - if exists("b:compl_context") - let line = b:compl_context - let after = b:after - unlet! b:compl_context - else - let line = a:base - endif - - let res = [] - let res2 = [] - let borders = {} - - " Check last occurrence of sequence - - let openbrace = strridx(line, '{') - let closebrace = strridx(line, '}') - let colon = strridx(line, ':') - let semicolon = strridx(line, ';') - let opencomm = strridx(line, '/*') - let closecomm = strridx(line, '*/') - let style = strridx(line, 'style\s*=') - let atrule = strridx(line, '@') - let exclam = strridx(line, '!') - - if openbrace > -1 - let borders[openbrace] = "openbrace" - endif - if closebrace > -1 - let borders[closebrace] = "closebrace" - endif - if colon > -1 - let borders[colon] = "colon" - endif - if semicolon > -1 - let borders[semicolon] = "semicolon" - endif - if opencomm > -1 - let borders[opencomm] = "opencomm" - endif - if closecomm > -1 - let borders[closecomm] = "closecomm" - endif - if style > -1 - let borders[style] = "style" - endif - if atrule > -1 - let borders[atrule] = "atrule" - endif - if exclam > -1 - let borders[exclam] = "exclam" - endif - - - if len(borders) == 0 || borders[max(keys(borders))] =~ '^\%(openbrace\|semicolon\|opencomm\|closecomm\|style\)$' - " Complete properties - - - let entered_property = matchstr(line, '.\{-}\zs[a-zA-Z-]*$') - - for m in s:values - if m =~? '^'.entered_property - call add(res, m . ':') - elseif m =~? entered_property - call add(res2, m . ':') - endif - endfor - - return res + res2 - - elseif borders[max(keys(borders))] == 'colon' - " Get name of property - let prop = tolower(matchstr(line, '\zs[a-zA-Z-]*\ze\s*:[^:]\{-}$')) - - let wide_keywords = ["initial", "inherit", "unset"] - let color_values = ["transparent", "rgb(", "rgba(", "hsl(", "hsla(", "#"] - let border_style_values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"] - let border_width_values = ["thin", "thick", "medium"] - let list_style_type_values = ["decimal", "decimal-leading-zero", "arabic-indic", "armenian", "upper-armenian", "lower-armenian", "bengali", "cambodian", "khmer", "cjk-decimal", "devanagari", "georgian", "gujarati", "gurmukhi", "hebrew", "kannada", "lao", "malayalam", "mongolian", "myanmar", "oriya", "persian", "lower-roman", "upper-roman", "tamil", "telugu", "thai", "tibetan", "lower-alpha", "lower-latin", "upper-alpha", "upper-latin", "cjk-earthly-branch", "cjk-heavenly-stem", "lower-greek", "hiragana", "hiragana-iroha", "katakana", "katakana-iroha", "disc", "circle", "square", "disclosure-open", "disclosure-closed"] - let timing_functions = ["cubic-bezier(", "steps(", "linear", "ease", "ease-in", "ease-in-out", "ease-out", "step-start", "step-end"] - - if prop == 'all' - let values = [] - elseif prop == 'additive-symbols' - let values = [] - elseif prop == 'align-content' - let values = ["flex-start", "flex-end", "center", "space-between", "space-around", "stretch"] - elseif prop == 'align-items' - let values = ["flex-start", "flex-end", "center", "baseline", "stretch"] - elseif prop == 'align-self' - let values = ["auto", "flex-start", "flex-end", "center", "baseline", "stretch"] - elseif prop == 'animation' - let values = timing_functions + ["normal", "reverse", "alternate", "alternate-reverse"] + ["none", "forwards", "backwards", "both"] + ["running", "paused"] - elseif prop == 'animation-delay' - let values = [] - elseif prop == 'animation-direction' - let values = ["normal", "reverse", "alternate", "alternate-reverse"] - elseif prop == 'animation-duration' - let values = [] - elseif prop == 'animation-fill-mode' - let values = ["none", "forwards", "backwards", "both"] - elseif prop == 'animation-iteration-count' - let values = [] - elseif prop == 'animation-name' - let values = [] - elseif prop == 'animation-play-state' - let values = ["running", "paused"] - elseif prop == 'animation-timing-function' - let values = timing_functions - elseif prop == 'background-attachment' - let values = ["scroll", "fixed"] - elseif prop == 'background-color' - let values = color_values - elseif prop == 'background-image' - let values = ["url(", "none"] - elseif prop == 'background-position' - let vals = matchstr(line, '.*:\s*\zs.*') - if vals =~ '^\%([a-zA-Z]\+\)\?$' - let values = ["top", "center", "bottom"] - elseif vals =~ '^[a-zA-Z]\+\s\+\%([a-zA-Z]\+\)\?$' - let values = ["left", "center", "right"] - else - return [] - endif - elseif prop == 'background-repeat' - let values = ["repeat", "repeat-x", "repeat-y", "no-repeat"] - elseif prop == 'background-size' - let values = ["auto", "contain", "cover"] - elseif prop == 'background' - let values = ["scroll", "fixed"] + color_values + ["url(", "none"] + ["top", "center", "bottom", "left", "right"] + ["repeat", "repeat-x", "repeat-y", "no-repeat"] + ["auto", "contain", "cover"] - elseif prop =~ 'border\%(-top\|-right\|-bottom\|-left\|-block-start\|-block-end\)\?$' - let vals = matchstr(line, '.*:\s*\zs.*') - if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$' - let values = border_width_values - elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$' - let values = border_style_values - elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$' - let values = color_values - else - return [] - endif - elseif prop =~ 'border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-color' - let values = color_values - elseif prop =~ 'border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-style' - let values = border_style_values - elseif prop =~ 'border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-width' - let values = border_width_values - elseif prop == 'border-color' - let values = color_values - elseif prop == 'border-style' - let values = border_style_values - elseif prop == 'border-width' - let values = border_width_values - elseif prop == 'bottom' - let values = ["auto"] - elseif prop == 'box-decoration-break' - let values = ["slice", "clone"] - elseif prop == 'box-shadow' - let values = ["inset"] - elseif prop == 'box-sizing' - let values = ["border-box", "content-box"] - elseif prop =~ 'break-\%(before\|after\)' - let values = ["auto", "always", "avoid", "left", "right", "page", "column", "region", "recto", "verso", "avoid-page", "avoid-column", "avoid-region"] - elseif prop == 'break-inside' - let values = ["auto", "avoid", "avoid-page", "avoid-column", "avoid-region"] - elseif prop == 'caption-side' - let values = ["top", "bottom"] - elseif prop == 'clear' - let values = ["none", "left", "right", "both"] - elseif prop == 'clip' - let values = ["auto", "rect("] - elseif prop == 'clip-path' - let values = ["fill-box", "stroke-box", "view-box", "none"] - elseif prop == 'color' - let values = color_values - elseif prop == 'columns' - let values = [] - elseif prop == 'column-count' - let values = ['auto'] - elseif prop == 'column-fill' - let values = ['auto', 'balance'] - elseif prop == 'column-rule-color' - let values = color_values - elseif prop == 'column-rule-style' - let values = border_style_values - elseif prop == 'column-rule-width' - let values = border_width_values - elseif prop == 'column-rule' - let vals = matchstr(line, '.*:\s*\zs.*') - if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$' - let values = border_width_values - elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$' - let values = border_style_values - elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$' - let values = color_values - else - return [] - endif - elseif prop == 'column-span' - let values = ["none", "all"] - elseif prop == 'column-width' - let values = ["auto"] - elseif prop == 'content' - let values = ["normal", "attr(", "open-quote", "close-quote", "no-open-quote", "no-close-quote"] - elseif prop =~ 'counter-\%(increment\|reset\)$' - let values = ["none"] - elseif prop =~ 'cue\%(-after\|-before\)\=$' - let values = ["url("] - elseif prop == 'cursor' - let values = ["url(", "auto", "crosshair", "default", "pointer", "move", "e-resize", "ne-resize", "nw-resize", "n-resize", "se-resize", "sw-resize", "s-resize", "w-resize", "text", "wait", "help", "progress"] - elseif prop == 'direction' - let values = ["ltr", "rtl"] - elseif prop == 'display' - let values = ["inline", "block", "list-item", "inline-list-item", "run-in", "inline-block", "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption", "none", "flex", "inline-flex", "grid", "inline-grid", "ruby", "ruby-base", "ruby-text", "ruby-base-container", "ruby-text-container", "contents"] - elseif prop == 'elevation' - let values = ["below", "level", "above", "higher", "lower"] - elseif prop == 'empty-cells' - let values = ["show", "hide"] - elseif prop == 'fallback' - let values = list_style_type_values - elseif prop == 'filter' - let values = ["blur(", "brightness(", "contrast(", "drop-shadow(", "grayscale(", "hue-rotate(", "invert(", "opacity(", "sepia(", "saturate("] - elseif prop == 'flex-basis' - let values = ["auto", "content"] - elseif prop == 'flex-flow' - let values = ["row", "row-reverse", "column", "column-reverse", "nowrap", "wrap", "wrap-reverse"] - elseif prop == 'flex-grow' - let values = [] - elseif prop == 'flex-shrink' - let values = [] - elseif prop == 'flex-wrap' - let values = ["nowrap", "wrap", "wrap-reverse"] - elseif prop == 'flex' - let values = ["nowrap", "wrap", "wrap-reverse"] + ["row", "row-reverse", "column", "column-reverse", "nowrap", "wrap", "wrap-reverse"] + ["auto", "content"] - elseif prop == 'float' - let values = ["left", "right", "none"] - elseif prop == 'font-family' - let values = ["sans-serif", "serif", "monospace", "cursive", "fantasy"] - elseif prop == 'font-feature-settings' - let values = ["normal", '"aalt"', '"abvf"', '"abvm"', '"abvs"', '"afrc"', '"akhn"', '"blwf"', '"blwm"', '"blws"', '"calt"', '"case"', '"ccmp"', '"cfar"', '"cjct"', '"clig"', '"cpct"', '"cpsp"', '"cswh"', '"curs"', '"cv', '"c2pc"', '"c2sc"', '"dist"', '"dlig"', '"dnom"', '"dtls"', '"expt"', '"falt"', '"fin2"', '"fin3"', '"fina"', '"flac"', '"frac"', '"fwid"', '"half"', '"haln"', '"halt"', '"hist"', '"hkna"', '"hlig"', '"hngl"', '"hojo"', '"hwid"', '"init"', '"isol"', '"ital"', '"jalt"', '"jp78"', '"jp83"', '"jp90"', '"jp04"', '"kern"', '"lfbd"', '"liga"', '"ljmo"', '"lnum"', '"locl"', '"ltra"', '"ltrm"', '"mark"', '"med2"', '"medi"', '"mgrk"', '"mkmk"', '"mset"', '"nalt"', '"nlck"', '"nukt"', '"numr"', '"onum"', '"opbd"', '"ordn"', '"ornm"', '"palt"', '"pcap"', '"pkna"', '"pnum"', '"pref"', '"pres"', '"pstf"', '"psts"', '"pwid"', '"qwid"', '"rand"', '"rclt"', '"rkrf"', '"rlig"', '"rphf"', '"rtbd"', '"rtla"', '"rtlm"', '"ruby"', '"salt"', '"sinf"', '"size"', '"smcp"', '"smpl"', '"ss01"', '"ss02"', '"ss03"', '"ss04"', '"ss05"', '"ss06"', '"ss07"', '"ss08"', '"ss09"', '"ss10"', '"ss11"', '"ss12"', '"ss13"', '"ss14"', '"ss15"', '"ss16"', '"ss17"', '"ss18"', '"ss19"', '"ss20"', '"ssty"', '"stch"', '"subs"', '"sups"', '"swsh"', '"titl"', '"tjmo"', '"tnam"', '"tnum"', '"trad"', '"twid"', '"unic"', '"valt"', '"vatu"', '"vert"', '"vhal"', '"vjmo"', '"vkna"', '"vkrn"', '"vpal"', '"vrt2"', '"zero"'] - elseif prop == 'font-kerning' - let values = ["auto", "normal", "none"] - elseif prop == 'font-language-override' - let values = ["normal"] - elseif prop == 'font-size' - let values = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller"] - elseif prop == 'font-size-adjust' - let values = [] - elseif prop == 'font-stretch' - let values = ["normal", "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"] - elseif prop == 'font-style' - let values = ["normal", "italic", "oblique"] - elseif prop == 'font-synthesis' - let values = ["none", "weight", "style"] - elseif prop == 'font-variant-alternates' - let values = ["normal", "historical-forms", "stylistic(", "styleset(", "character-variant(", "swash(", "ornaments(", "annotation("] - elseif prop == 'font-variant-caps' - let values = ["normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"] - elseif prop == 'font-variant-asian' - let values = ["normal", "ruby", "jis78", "jis83", "jis90", "jis04", "simplified", "traditional"] - elseif prop == 'font-variant-ligatures' - let values = ["normal", "none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual"] - elseif prop == 'font-variant-numeric' - let values = ["normal", "ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"] - elseif prop == 'font-variant-position' - let values = ["normal", "sub", "super"] - elseif prop == 'font-variant' - let values = ["normal", "historical-forms", "stylistic(", "styleset(", "character-variant(", "swash(", "ornaments(", "annotation("] + ["small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"] + ["ruby", "jis78", "jis83", "jis90", "jis04", "simplified", "traditional"] + ["none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual"] + ["ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"] + ["sub", "super"] - elseif prop == 'font-weight' - let values = ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"] - elseif prop == 'font' - let values = ["normal", "italic", "oblique", "small-caps", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900", "xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller", "sans-serif", "serif", "monospace", "cursive", "fantasy", "caption", "icon", "menu", "message-box", "small-caption", "status-bar"] - elseif prop =~ '^\%(height\|width\)$' - let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"] - elseif prop =~ '^\%(left\|rigth\)$' - let values = ["auto"] - elseif prop == 'image-rendering' - let values = ["auto", "crisp-edges", "pixelated"] - elseif prop == 'image-orientation' - let values = ["from-image", "flip"] - elseif prop == 'ime-mode' - let values = ["auto", "normal", "active", "inactive", "disabled"] - elseif prop == 'inline-size' - let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"] - elseif prop == 'isolation' - let values = ["auto", "isolate"] - elseif prop == 'justify-content' - let values = ["flex-start", "flex-end", "center", "space-between", "space-around"] - elseif prop == 'letter-spacing' - let values = ["normal"] - elseif prop == 'line-break' - let values = ["auto", "loose", "normal", "strict"] - elseif prop == 'line-height' - let values = ["normal"] - elseif prop == 'list-style-image' - let values = ["url(", "none"] - elseif prop == 'list-style-position' - let values = ["inside", "outside"] - elseif prop == 'list-style-type' - let values = list_style_type_values - elseif prop == 'list-style' - let values = list_style_type_values + ["inside", "outside"] + ["url(", "none"] - elseif prop == 'margin' - let values = ["auto"] - elseif prop =~ 'margin-\%(right\|left\|top\|bottom\|block-start\|block-end\|inline-start\|inline-end\)$' - let values = ["auto"] - elseif prop == 'marks' - let values = ["crop", "cross", "none"] - elseif prop == 'mask' - let values = ["url("] - elseif prop == 'mask-type' - let values = ["luminance", "alpha"] - elseif prop == '\%(max\|min\)-\%(block\|inline\)-size' - let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"] - elseif prop == '\%(max\|min\)-\%(height\|width\)' - let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"] - elseif prop == '\%(max\|min\)-zoom' - let values = ["auto"] - elseif prop == 'mix-blend-mode' - let values = ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"] - elseif prop == 'opacity' - let values = [] - elseif prop == 'orientation' - let values = ["auto", "portrait", "landscape"] - elseif prop == 'orphans' - let values = [] - elseif prop == 'outline-offset' - let values = [] - elseif prop == 'outline-color' - let values = color_values - elseif prop == 'outline-style' - let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"] - elseif prop == 'outline-width' - let values = ["thin", "thick", "medium"] - elseif prop == 'outline' - let vals = matchstr(line, '.*:\s*\zs.*') - if vals =~ '^\%([a-zA-Z0-9,()#]\+\)\?$' - let values = color_values - elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+\%([a-zA-Z]\+\)\?$' - let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"] - elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$' - let values = ["thin", "thick", "medium"] - else - return [] - endif - elseif prop == 'overflow-wrap' - let values = ["normal", "break-word"] - elseif prop =~ 'overflow\%(-x\|-y\)\=' - let values = ["visible", "hidden", "scroll", "auto"] - elseif prop == 'pad' - let values = [] - elseif prop == 'padding' - let values = [] - elseif prop =~ 'padding-\%(top\|right\|bottom\|left\|inline-start\|inline-end\|block-start\|block-end\)$' - let values = [] - elseif prop =~ 'page-break-\%(after\|before\)$' - let values = ["auto", "always", "avoid", "left", "right", "recto", "verso"] - elseif prop == 'page-break-inside' - let values = ["auto", "avoid"] - elseif prop =~ 'pause\%(-after\|-before\)\=$' - let values = ["none", "x-weak", "weak", "medium", "strong", "x-strong"] - elseif prop == 'perspective' - let values = ["none"] - elseif prop == 'perspective-origin' - let values = ["top", "bottom", "left", "center", " right"] - elseif prop == 'pointer-events' - let values = ["auto", "none", "visiblePainted", "visibleFill", "visibleStroke", "visible", "painted", "fill", "stroke", "all"] - elseif prop == 'position' - let values = ["static", "relative", "absolute", "fixed", "sticky"] - elseif prop == 'prefix' - let values = [] - elseif prop == 'quotes' - let values = ["none"] - elseif prop == 'range' - let values = ["auto", "infinite"] - elseif prop == 'resize' - let values = ["none", "both", "horizontal", "vertical"] - elseif prop =~ 'rest\%(-after\|-before\)\=$' - let values = ["none", "x-weak", "weak", "medium", "strong", "x-strong"] - elseif prop == 'ruby-align' - let values = ["start", "center", "space-between", "space-around"] - elseif prop == 'ruby-merge' - let values = ["separate", "collapse", "auto"] - elseif prop == 'ruby-position' - let values = ["over", "under", "inter-character"] - elseif prop == 'scroll-behavior' - let values = ["auto", "smooth"] - elseif prop == 'scroll-snap-coordinate' - let values = ["none"] - elseif prop == 'scroll-snap-destination' - return [] - elseif prop == 'scroll-snap-points-\%(x\|y\)$' - let values = ["none", "repeat("] - elseif prop == 'scroll-snap-type\%(-x\|-y\)\=$' - let values = ["none", "mandatory", "proximity"] - elseif prop == 'shape-image-threshold' - let values = [] - elseif prop == 'shape-margin' - let values = [] - elseif prop == 'shape-outside' - let values = ["margin-box", "border-box", "padding-box", "content-box", 'inset(', 'circle(', 'ellipse(', 'polygon(', 'url('] - elseif prop == 'speak' - let values = ["auto", "none", "normal"] - elseif prop == 'speak-as' - let values = ["auto", "normal", "spell-out", "digits"] - elseif prop == 'src' - let values = ["url("] - elseif prop == 'suffix' - let values = [] - elseif prop == 'symbols' - let values = [] - elseif prop == 'system' - let vals = matchstr(line, '.*:\s*\zs.*') - if vals =~ '^extends' - let values = list_style_type_values - else - let values = ["cyclic", "numeric", "alphabetic", "symbolic", "additive", "fixed", "extends"] - endif - elseif prop == 'table-layout' - let values = ["auto", "fixed"] - elseif prop == 'tab-size' - let values = [] - elseif prop == 'text-align' - let values = ["start", "end", "left", "right", "center", "justify", "match-parent"] - elseif prop == 'text-align-last' - let values = ["auto", "start", "end", "left", "right", "center", "justify"] - elseif prop == 'text-combine-upright' - let values = ["none", "all", "digits"] - elseif prop == 'text-decoration-line' - let values = ["none", "underline", "overline", "line-through", "blink"] - elseif prop == 'text-decoration-color' - let values = color_values - elseif prop == 'text-decoration-style' - let values = ["solid", "double", "dotted", "dashed", "wavy"] - elseif prop == 'text-decoration' - let values = ["none", "underline", "overline", "line-through", "blink"] + ["solid", "double", "dotted", "dashed", "wavy"] + color_values - elseif prop == 'text-emphasis-color' - let values = color_values - elseif prop == 'text-emphasis-position' - let values = ["over", "under", "left", "right"] - elseif prop == 'text-emphasis-style' - let values = ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame"] - elseif prop == 'text-emphasis' - let values = color_values + ["over", "under", "left", "right"] + ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame"] - elseif prop == 'text-indent' - let values = ["hanging", "each-line"] - elseif prop == 'text-orientation' - let values = ["mixed", "upright", "sideways", "sideways-right", "use-glyph-orientation"] - elseif prop == 'text-overflow' - let values = ["clip", "ellipsis"] - elseif prop == 'text-rendering' - let values = ["auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"] - elseif prop == 'text-shadow' - let values = color_values - elseif prop == 'text-transform' - let values = ["capitalize", "uppercase", "lowercase", "full-width", "none"] - elseif prop == 'text-underline-position' - let values = ["auto", "under", "left", "right"] - elseif prop == 'touch-action' - let values = ["auto", "none", "pan-x", "pan-y", "manipulation", "pan-left", "pan-right", "pan-top", "pan-down"] - elseif prop == 'transform' - let values = ["matrix(", "translate(", "translateX(", "translateY(", "scale(", "scaleX(", "scaleY(", "rotate(", "skew(", "skewX(", "skewY(", "matrix3d(", "translate3d(", "translateZ(", "scale3d(", "scaleZ(", "rotate3d(", "rotateX(", "rotateY(", "rotateZ(", "perspective("] - elseif prop == 'transform-box' - let values = ["border-box", "fill-box", "view-box"] - elseif prop == 'transform-origin' - let values = ["left", "center", "right", "top", "bottom"] - elseif prop == 'transform-style' - let values = ["flat", "preserve-3d"] - elseif prop == 'top' - let values = ["auto"] - elseif prop == 'transition-property' - let values = ["all", "none"] + s:values - elseif prop == 'transition-duration' - let values = [] - elseif prop == 'transition-delay' - let values = [] - elseif prop == 'transition-timing-function' - let values = timing_functions - elseif prop == 'transition' - let values = ["all", "none"] + s:values + timing_functions - elseif prop == 'unicode-bidi' - let values = ["normal", "embed", "isolate", "bidi-override", "isolate-override", "plaintext"] - elseif prop == 'unicode-range' - let values = ["U+"] - elseif prop == 'user-zoom' - let values = ["zoom", "fixed"] - elseif prop == 'vertical-align' - let values = ["baseline", "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom"] - elseif prop == 'visibility' - let values = ["visible", "hidden", "collapse"] - elseif prop == 'voice-volume' - let values = ["silent", "x-soft", "soft", "medium", "loud", "x-loud"] - elseif prop == 'voice-balance' - let values = ["left", "center", "right", "leftwards", "rightwards"] - elseif prop == 'voice-family' - let values = [] - elseif prop == 'voice-rate' - let values = ["normal", "x-slow", "slow", "medium", "fast", "x-fast"] - elseif prop == 'voice-pitch' - let values = ["absolute", "x-low", "low", "medium", "high", "x-high"] - elseif prop == 'voice-range' - let values = ["absolute", "x-low", "low", "medium", "high", "x-high"] - elseif prop == 'voice-stress' - let values = ["normal", "strong", "moderate", "none", "reduced "] - elseif prop == 'voice-duration' - let values = ["auto"] - elseif prop == 'white-space' - let values = ["normal", "pre", "nowrap", "pre-wrap", "pre-line"] - elseif prop == 'widows' - let values = [] - elseif prop == 'will-change' - let values = ["auto", "scroll-position", "contents"] + s:values - elseif prop == 'word-break' - let values = ["normal", "break-all", "keep-all"] - elseif prop == 'word-spacing' - let values = ["normal"] - elseif prop == 'word-wrap' - let values = ["normal", "break-word"] - elseif prop == 'writing-mode' - let values = ["horizontal-tb", "vertical-rl", "vertical-lr", "sideways-rl", "sideways-lr"] - elseif prop == 'z-index' - let values = ["auto"] - elseif prop == 'zoom' - let values = ["auto"] - else - " If no property match it is possible we are outside of {} and - " trying to complete pseudo-(class|element) - let element = tolower(matchstr(line, '\zs[a-zA-Z1-6]*\ze:[^:[:space:]]\{-}$')) - if stridx('a,abbr,address,area,article,aside,audio,b,base,bdi,bdo,bgsound,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,content,data,datalist,dd,del,details,dfn,dialog,div,dl,dt,element,em,embed,fieldset,figcaption,figure,font,footer,form,frame,frameset,head,header,hgroup,hr,html,i,iframe,image,img,input,ins,isindex,kbd,keygen,label,legend,li,link,main,map,mark,menu,menuitem,meta,meter,nav,nobr,noframes,noscript,object,ol,optgroup,option,output,p,param,picture,pre,progress,q,rp,rt,rtc,ruby,s,samp,script,section,select,shadow,small,source,span,strong,style,sub,summary,sup,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,u,ul,var,video,wbr', ','.element.',') > -1 - let values = ["active", "any", "checked", "default", "dir(", "disabled", "empty", "enabled", "first", "first-child", "first-of-type", "fullscreen", "focus", "hover", "indeterminate", "in-range", "invalid", "lang(", "last-child", "last-of-type", "left", "link", "not(", "nth-child(", "nth-last-child(", "nth-last-of-type(", "nth-of-type(", "only-child", "only-of-type", "optional", "out-of-range", "read-only", "read-write", "required", "right", "root", "scope", "target", "valid", "visited", "first-line", "first-letter", "before", "after", "selection", "backdrop"] - else - return [] - endif - endif - - let values = wide_keywords + values - " Complete values - let entered_value = matchstr(line, '.\{-}\zs[a-zA-Z0-9#,.(_-]*$') - - for m in values - if m =~? '^'.entered_value - call add(res, m) - elseif m =~? entered_value - call add(res2, m) - endif - endfor - - return res + res2 - - elseif borders[max(keys(borders))] == 'closebrace' - - return [] - - elseif borders[max(keys(borders))] == 'exclam' - - " Complete values - let entered_imp = matchstr(line, '.\{-}!\s*\zs[a-zA-Z ]*$') - - let values = ["important"] - - for m in values - if m =~? '^'.entered_imp - call add(res, m) - endif - endfor - - return res - - elseif borders[max(keys(borders))] == 'atrule' - - let afterat = matchstr(line, '.*@\zs.*') - - if afterat =~ '\s' - - let atrulename = matchstr(line, '.*@\zs[a-zA-Z-]\+\ze') - - if atrulename == 'media' - let entered_atruleafter = matchstr(line, '.*@media\s\+\zs.*$') - - if entered_atruleafter =~ "([^)]*$" - let entered_atruleafter = matchstr(entered_atruleafter, '(\s*\zs[^)]*$') - let values = ["max-width", "min-width", "width", "max-height", "min-height", "height", "max-aspect-ration", "min-aspect-ration", "aspect-ratio", "orientation", "max-resolution", "min-resolution", "resolution", "scan", "grid", "update-frequency", "overflow-block", "overflow-inline", "max-color", "min-color", "color", "max-color-index", "min-color-index", "color-index", "monochrome", "inverted-colors", "pointer", "hover", "any-pointer", "any-hover", "light-level", "scripting"] - else - let values = ["screen", "print", "speech", "all", "not", "and", "("] - endif - - elseif atrulename == 'supports' - let entered_atruleafter = matchstr(line, '.*@supports\s\+\zs.*$') - - if entered_atruleafter =~ "([^)]*$" - let entered_atruleafter = matchstr(entered_atruleafter, '(\s*\zs.*$') - let values = s:values - else - let values = ["("] - endif - - elseif atrulename == 'charset' - let entered_atruleafter = matchstr(line, '.*@charset\s\+\zs.*$') - let values = [ - \ '"UTF-8";', '"ANSI_X3.4-1968";', '"ISO_8859-1:1987";', '"ISO_8859-2:1987";', '"ISO_8859-3:1988";', '"ISO_8859-4:1988";', '"ISO_8859-5:1988";', - \ '"ISO_8859-6:1987";', '"ISO_8859-7:1987";', '"ISO_8859-8:1988";', '"ISO_8859-9:1989";', '"ISO-8859-10";', '"ISO_6937-2-add";', '"JIS_X0201";', - \ '"JIS_Encoding";', '"Shift_JIS";', '"Extended_UNIX_Code_Packed_Format_for_Japanese";', '"Extended_UNIX_Code_Fixed_Width_for_Japanese";', - \ '"BS_4730";', '"SEN_850200_C";', '"IT";', '"ES";', '"DIN_66003";', '"NS_4551-1";', '"NF_Z_62-010";', '"ISO-10646-UTF-1";', '"ISO_646.basic:1983";', - \ '"INVARIANT";', '"ISO_646.irv:1983";', '"NATS-SEFI";', '"NATS-SEFI-ADD";', '"NATS-DANO";', '"NATS-DANO-ADD";', '"SEN_850200_B";', '"KS_C_5601-1987";', - \ '"ISO-2022-KR";', '"EUC-KR";', '"ISO-2022-JP";', '"ISO-2022-JP-2";', '"JIS_C6220-1969-jp";', '"JIS_C6220-1969-ro";', '"PT";', '"greek7-old";', - \ '"latin-greek";', '"NF_Z_62-010_(1973)";', '"Latin-greek-1";', '"ISO_5427";', '"JIS_C6226-1978";', '"BS_viewdata";', '"INIS";', '"INIS-8";', - \ '"INIS-cyrillic";', '"ISO_5427:1981";', '"ISO_5428:1980";', '"GB_1988-80";', '"GB_2312-80";', '"NS_4551-2";', '"videotex-suppl";', '"PT2";', - \ '"ES2";', '"MSZ_7795.3";', '"JIS_C6226-1983";', '"greek7";', '"ASMO_449";', '"iso-ir-90";', '"JIS_C6229-1984-a";', '"JIS_C6229-1984-b";', - \ '"JIS_C6229-1984-b-add";', '"JIS_C6229-1984-hand";', '"JIS_C6229-1984-hand-add";', '"JIS_C6229-1984-kana";', '"ISO_2033-1983";', - \ '"ANSI_X3.110-1983";', '"T.61-7bit";', '"T.61-8bit";', '"ECMA-cyrillic";', '"CSA_Z243.4-1985-1";', '"CSA_Z243.4-1985-2";', '"CSA_Z243.4-1985-gr";', - \ '"ISO_8859-6-E";', '"ISO_8859-6-I";', '"T.101-G2";', '"ISO_8859-8-E";', '"ISO_8859-8-I";', '"CSN_369103";', '"JUS_I.B1.002";', '"IEC_P27-1";', - \ '"JUS_I.B1.003-serb";', '"JUS_I.B1.003-mac";', '"greek-ccitt";', '"NC_NC00-10:81";', '"ISO_6937-2-25";', '"GOST_19768-74";', '"ISO_8859-supp";', - \ '"ISO_10367-box";', '"latin-lap";', '"JIS_X0212-1990";', '"DS_2089";', '"us-dk";', '"dk-us";', '"KSC5636";', '"UNICODE-1-1-UTF-7";', '"ISO-2022-CN";', - \ '"ISO-2022-CN-EXT";', '"ISO-8859-13";', '"ISO-8859-14";', '"ISO-8859-15";', '"ISO-8859-16";', '"GBK";', '"GB18030";', '"OSD_EBCDIC_DF04_15";', - \ '"OSD_EBCDIC_DF03_IRV";', '"OSD_EBCDIC_DF04_1";', '"ISO-11548-1";', '"KZ-1048";', '"ISO-10646-UCS-2";', '"ISO-10646-UCS-4";', '"ISO-10646-UCS-Basic";', - \ '"ISO-10646-Unicode-Latin1";', '"ISO-10646-J-1";', '"ISO-Unicode-IBM-1261";', '"ISO-Unicode-IBM-1268";', '"ISO-Unicode-IBM-1276";', - \ '"ISO-Unicode-IBM-1264";', '"ISO-Unicode-IBM-1265";', '"UNICODE-1-1";', '"SCSU";', '"UTF-7";', '"UTF-16BE";', '"UTF-16LE";', '"UTF-16";', '"CESU-8";', - \ '"UTF-32";', '"UTF-32BE";', '"UTF-32LE";', '"BOCU-1";', '"ISO-8859-1-Windows-3.0-Latin-1";', '"ISO-8859-1-Windows-3.1-Latin-1";', - \ '"ISO-8859-2-Windows-Latin-2";', '"ISO-8859-9-Windows-Latin-5";', '"hp-roman8";', '"Adobe-Standard-Encoding";', '"Ventura-US";', - \ '"Ventura-International";', '"DEC-MCS";', '"IBM850";', '"PC8-Danish-Norwegian";', '"IBM862";', '"PC8-Turkish";', '"IBM-Symbols";', '"IBM-Thai";', - \ '"HP-Legal";', '"HP-Pi-font";', '"HP-Math8";', '"Adobe-Symbol-Encoding";', '"HP-DeskTop";', '"Ventura-Math";', '"Microsoft-Publishing";', - \ '"Windows-31J";', '"GB2312";', '"Big5";', '"macintosh";', '"IBM037";', '"IBM038";', '"IBM273";', '"IBM274";', '"IBM275";', '"IBM277";', '"IBM278";', - \ '"IBM280";', '"IBM281";', '"IBM284";', '"IBM285";', '"IBM290";', '"IBM297";', '"IBM420";', '"IBM423";', '"IBM424";', '"IBM437";', '"IBM500";', '"IBM851";', - \ '"IBM852";', '"IBM855";', '"IBM857";', '"IBM860";', '"IBM861";', '"IBM863";', '"IBM864";', '"IBM865";', '"IBM868";', '"IBM869";', '"IBM870";', '"IBM871";', - \ '"IBM880";', '"IBM891";', '"IBM903";', '"IBM904";', '"IBM905";', '"IBM918";', '"IBM1026";', '"EBCDIC-AT-DE";', '"EBCDIC-AT-DE-A";', '"EBCDIC-CA-FR";', - \ '"EBCDIC-DK-NO";', '"EBCDIC-DK-NO-A";', '"EBCDIC-FI-SE";', '"EBCDIC-FI-SE-A";', '"EBCDIC-FR";', '"EBCDIC-IT";', '"EBCDIC-PT";', '"EBCDIC-ES";', - \ '"EBCDIC-ES-A";', '"EBCDIC-ES-S";', '"EBCDIC-UK";', '"EBCDIC-US";', '"UNKNOWN-8BIT";', '"MNEMONIC";', '"MNEM";', '"VISCII";', '"VIQR";', '"KOI8-R";', - \ '"HZ-GB-2312";', '"IBM866";', '"IBM775";', '"KOI8-U";', '"IBM00858";', '"IBM00924";', '"IBM01140";', '"IBM01141";', '"IBM01142";', '"IBM01143";', - \ '"IBM01144";', '"IBM01145";', '"IBM01146";', '"IBM01147";', '"IBM01148";', '"IBM01149";', '"Big5-HKSCS";', '"IBM1047";', '"PTCP154";', '"Amiga-1251";', - \ '"KOI7-switched";', '"BRF";', '"TSCII";', '"windows-1250";', '"windows-1251";', '"windows-1252";', '"windows-1253";', '"windows-1254";', '"windows-1255";', - \ '"windows-1256";', '"windows-1257";', '"windows-1258";', '"TIS-620";'] - - elseif atrulename == 'namespace' - let entered_atruleafter = matchstr(line, '.*@namespace\s\+\zs.*$') - let values = ["url("] - - elseif atrulename == 'document' - let entered_atruleafter = matchstr(line, '.*@document\s\+\zs.*$') - let values = ["url(", "url-prefix(", "domain(", "regexp("] - - elseif atrulename == 'import' - let entered_atruleafter = matchstr(line, '.*@import\s\+\zs.*$') - - if entered_atruleafter =~ "^[\"']" - let filestart = matchstr(entered_atruleafter, '^.\zs.*') - let files = split(glob(filestart.'*'), '\n') - let values = map(copy(files), '"\"".v:val') - - elseif entered_atruleafter =~ "^url(" - let filestart = matchstr(entered_atruleafter, "^url([\"']\\?\\zs.*") - let files = split(glob(filestart.'*'), '\n') - let values = map(copy(files), '"url(".v:val') - - else - let values = ['"', 'url('] - - endif - - else - return [] - - endif - - for m in values - if m =~? '^'.entered_atruleafter - if entered_atruleafter =~? '^"' && m =~? '^"' - let m = m[1:] - endif - if b:after =~? '"' && stridx(m, '"') > -1 - let m = m[0:stridx(m, '"')-1] - endif - call add(res, m) - elseif m =~? entered_atruleafter - if m =~? '^"' - let m = m[1:] - endif - call add(res2, m) - endif - endfor - - return res + res2 - - endif - - let values = ["charset", "page", "media", "import", "font-face", "namespace", "supports", "keyframes", "viewport", "document"] - - let entered_atrule = matchstr(line, '.*@\zs[a-zA-Z-]*$') - - for m in values - if m =~? '^'.entered_atrule - call add(res, m .' ') - elseif m =~? entered_atrule - call add(res2, m .' ') - endif - endfor - - return res + res2 - - endif - - return [] - -endfunction - -endif diff --git a/autoload/decada.vim b/autoload/decada.vim deleted file mode 100644 index c7483023..00000000 --- a/autoload/decada.vim +++ /dev/null @@ -1,79 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -"------------------------------------------------------------------------------ -" Description: Vim Ada/Dec Ada compiler file -" Language: Ada (Dec Ada) -" $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $ -" Copyright: Copyright (C) 2006 Martin Krischik -" Maintainer: Martin Krischik -" $Author: krischik $ -" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $ -" Version: 4.6 -" $Revision: 887 $ -" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $ -" History: 21.07.2006 MK New Dec Ada -" 15.10.2006 MK Bram's suggestion for runtime integration -" 05.11.2006 MK Bram suggested not to use include protection for -" autoload -" 05.11.2006 MK Bram suggested to save on spaces -" Help Page: compiler-decada -"------------------------------------------------------------------------------ - -if version < 700 - finish -endif - -function decada#Unit_Name () dict " {{{1 - " Convert filename into acs unit: - " 1: remove the file extenstion. - " 2: replace all double '_' or '-' with an dot (which denotes a separate) - " 3: remove a trailing '_' (wich denotes a specification) - return substitute (substitute (expand ("%:t:r"), '__\|-', ".", "g"), '_$', "", '') -endfunction decada#Unit_Name " }}}1 - -function decada#Make () dict " {{{1 - let l:make_prg = substitute (g:self.Make_Command, '%<', self.Unit_Name(), '') - let &errorformat = g:self.Error_Format - let &makeprg = l:make_prg - wall - make - copen - set wrap - wincmd W -endfunction decada#Build " }}}1 - -function decada#Set_Session (...) dict " {{{1 - if a:0 > 0 - call ada#Switch_Session (a:1) - elseif argc() == 0 && strlen (v:servername) > 0 - call ada#Switch_Session ( - \ expand('~')[0:-2] . ".vimfiles.session]decada_" . - \ v:servername . ".vim") - endif - return -endfunction decada#Set_Session " }}}1 - -function decada#New () " }}}1 - let Retval = { - \ 'Make' : function ('decada#Make'), - \ 'Unit_Name' : function ('decada#Unit_Name'), - \ 'Set_Session' : function ('decada#Set_Session'), - \ 'Project_Dir' : '', - \ 'Make_Command' : 'ACS COMPILE /Wait /Log /NoPreLoad /Optimize=Development /Debug %<', - \ 'Error_Format' : '%+A%%ADAC-%t-%m,%C %#%m,%Zat line number %l in file %f,' . - \ '%+I%%ada-I-%m,%C %#%m,%Zat line number %l in file %f'} - - return Retval -endfunction decada#New " }}}1 - -finish " 1}}} - -"------------------------------------------------------------------------------ -" Copyright (C) 2006 Martin Krischik -" -" Vim is Charityware - see ":help license" or uganda.txt for licence details. -"------------------------------------------------------------------------------ -" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab -" vim: foldmethod=marker - -endif diff --git a/autoload/getscript.vim b/autoload/getscript.vim deleted file mode 100644 index 06f4d3d9..00000000 --- a/autoload/getscript.vim +++ /dev/null @@ -1,671 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" --------------------------------------------------------------------- -" getscript.vim -" Author: Charles E. Campbell -" Date: Jan 21, 2014 -" Version: 36 -" Installing: :help glvs-install -" Usage: :help glvs -" -" GetLatestVimScripts: 642 1 :AutoInstall: getscript.vim -"redraw!|call inputsave()|call input("Press to continue")|call inputrestore() -" --------------------------------------------------------------------- -" Initialization: {{{1 -" if you're sourcing this file, surely you can't be -" expecting vim to be in its vi-compatible mode! -if exists("g:loaded_getscript") - finish -endif -let g:loaded_getscript= "v36" -if &cp - echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)" - finish -endif -if v:version < 702 - echohl WarningMsg - echo "***warning*** this version of getscript needs vim 7.2" - echohl Normal - finish -endif -let s:keepcpo = &cpo -set cpo&vim -"DechoTabOn - -" --------------------------- -" Global Variables: {{{1 -" --------------------------- -" Cygwin Detection ------- {{{2 -if !exists("g:getscript_cygwin") - if has("win32") || has("win95") || has("win64") || has("win16") - if &shell =~ '\%(\\|\\)\%(\.exe\)\=$' - let g:getscript_cygwin= 1 - else - let g:getscript_cygwin= 0 - endif - else - let g:getscript_cygwin= 0 - endif -endif - -" wget vs curl {{{2 -if !exists("g:GetLatestVimScripts_wget") - if executable("wget") - let g:GetLatestVimScripts_wget= "wget" - elseif executable("curl") - let g:GetLatestVimScripts_wget= "curl" - else - let g:GetLatestVimScripts_wget = 'echo "GetLatestVimScripts needs wget or curl"' - let g:GetLatestVimScripts_options = "" - endif -endif - -" options that wget and curl require: -if !exists("g:GetLatestVimScripts_options") - if g:GetLatestVimScripts_wget == "wget" - let g:GetLatestVimScripts_options= "-q -O" - elseif g:GetLatestVimScripts_wget == "curl" - let g:GetLatestVimScripts_options= "-s -O" - else - let g:GetLatestVimScripts_options= "" - endif -endif - -" by default, allow autoinstall lines to work -if !exists("g:GetLatestVimScripts_allowautoinstall") - let g:GetLatestVimScripts_allowautoinstall= 1 -endif - -" set up default scriptaddr address -if !exists("g:GetLatestVimScripts_scriptaddr") - let g:GetLatestVimScripts_scriptaddr = 'http://vim.sourceforge.net/script.php?script_id=' -endif - -"" For debugging: -"let g:GetLatestVimScripts_wget = "echo" -"let g:GetLatestVimScripts_options = "options" - -" --------------------------------------------------------------------- -" Check If AutoInstall Capable: {{{1 -let s:autoinstall= "" -if g:GetLatestVimScripts_allowautoinstall - - if (has("win32") || has("gui_win32") || has("gui_win32s") || has("win16") || has("win64") || has("win32unix") || has("win95")) && &shell != "bash" - " windows (but not cygwin/bash) - let s:dotvim= "vimfiles" - if !exists("g:GetLatestVimScripts_mv") - let g:GetLatestVimScripts_mv= "ren" - endif - - else - " unix - let s:dotvim= ".vim" - if !exists("g:GetLatestVimScripts_mv") - let g:GetLatestVimScripts_mv= "mv" - endif - endif - - if exists("g:GetLatestVimScripts_autoinstalldir") && isdirectory(g:GetLatestVimScripts_autoinstalldir) - let s:autoinstall= g:GetLatestVimScripts_autoinstalldir" - elseif exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim) - let s:autoinstall= $HOME."/".s:dotvim - endif -" call Decho("s:autoinstall<".s:autoinstall.">") -"else "Decho -" call Decho("g:GetLatestVimScripts_allowautoinstall=".g:GetLatestVimScripts_allowautoinstall.": :AutoInstall: disabled") -endif - -" --------------------------------------------------------------------- -" Public Interface: {{{1 -com! -nargs=0 GetLatestVimScripts call getscript#GetLatestVimScripts() -com! -nargs=0 GetScript call getscript#GetLatestVimScripts() -silent! com -nargs=0 GLVS call getscript#GetLatestVimScripts() - -" --------------------------------------------------------------------- -" GetLatestVimScripts: this function gets the latest versions of {{{1 -" scripts based on the list in -" (first dir in runtimepath)/GetLatest/GetLatestVimScripts.dat -fun! getscript#GetLatestVimScripts() -" call Dfunc("GetLatestVimScripts() autoinstall<".s:autoinstall.">") - -" insure that wget is executable - if executable(g:GetLatestVimScripts_wget) != 1 - echoerr "GetLatestVimScripts needs ".g:GetLatestVimScripts_wget." which apparently is not available on your system" -" call Dret("GetLatestVimScripts : wget not executable/availble") - return - endif - - " insure that fnameescape() is available - if !exists("*fnameescape") - echoerr "GetLatestVimScripts needs fnameescape() (provided by 7.1.299 or later)" - return - endif - - " Find the .../GetLatest subdirectory under the runtimepath - for datadir in split(&rtp,',') + [''] - if isdirectory(datadir."/GetLatest") -" call Decho("found directory<".datadir.">") - let datadir= datadir . "/GetLatest" - break - endif - if filereadable(datadir."GetLatestVimScripts.dat") -" call Decho("found ".datadir."/GetLatestVimScripts.dat") - break - endif - endfor - - " Sanity checks: readability and writability - if datadir == "" - echoerr 'Missing "GetLatest/" on your runtimepath - see :help glvs-dist-install' -" call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory") - return - endif - if filewritable(datadir) != 2 - echoerr "(getLatestVimScripts) Your ".datadir." isn't writable" -" call Dret("GetLatestVimScripts : non-writable directory<".datadir.">") - return - endif - let datafile= datadir."/GetLatestVimScripts.dat" - if !filereadable(datafile) - echoerr "Your data file<".datafile."> isn't readable" -" call Dret("GetLatestVimScripts : non-readable datafile<".datafile.">") - return - endif - if !filewritable(datafile) - echoerr "Your data file<".datafile."> isn't writable" -" call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">") - return - endif - " -------------------- - " Passed sanity checks - " -------------------- - -" call Decho("datadir <".datadir.">") -" call Decho("datafile <".datafile.">") - - " don't let any event handlers interfere (like winmanager's, taglist's, etc) - let eikeep = &ei - let hlskeep = &hls - let acdkeep = &acd - set ei=all hls&vim noacd - - " Edit the datafile (ie. GetLatestVimScripts.dat): - " 1. record current directory (origdir), - " 2. change directory to datadir, - " 3. split window - " 4. edit datafile - let origdir= getcwd() -" call Decho("exe cd ".fnameescape(substitute(datadir,'\','/','ge'))) - exe "cd ".fnameescape(substitute(datadir,'\','/','ge')) - split -" call Decho("exe e ".fnameescape(substitute(datafile,'\','/','ge'))) - exe "e ".fnameescape(substitute(datafile,'\','/','ge')) - res 1000 - let s:downloads = 0 - let s:downerrors= 0 - - " Check on dependencies mentioned in plugins -" call Decho(" ") -" call Decho("searching plugins for GetLatestVimScripts dependencies") - let lastline = line("$") -" call Decho("lastline#".lastline) - let firstdir = substitute(&rtp,',.*$','','') - let plugins = split(globpath(firstdir,"plugin/**/*.vim"),'\n') - let plugins = plugins + split(globpath(firstdir,"AsNeeded/**/*.vim"),'\n') - let foundscript = 0 - - " this loop updates the GetLatestVimScripts.dat file - " with dependencies explicitly mentioned in the plugins - " via GetLatestVimScripts: ... lines - " It reads the plugin script at the end of the GetLatestVimScripts.dat - " file, examines it, and then removes it. - for plugin in plugins -" call Decho(" ") -" call Decho("plugin<".plugin.">") - - " read plugin in - " evidently a :r creates a new buffer (the "#" buffer) that is subsequently unused -- bwiping it - $ -" call Decho(".dependency checking<".plugin."> line$=".line("$")) -" call Decho("..exe silent r ".fnameescape(plugin)) - exe "silent r ".fnameescape(plugin) - exe "silent bwipe ".bufnr("#") - - while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0 - let depscript = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e') - let depscriptid = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\(\d\+\)\s\+.*$','\1','') - let llp1 = lastline+1 -" call Decho("..depscript<".depscript.">") - - " found a "GetLatestVimScripts: # #" line in the script; - " check if it's already in the datafile by searching backwards from llp1, - " the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file, - " for the script-id with no wrapping allowed. - let curline = line(".") - let noai_script = substitute(depscript,'\s*:AutoInstall:\s*','','e') - exe llp1 - let srchline = search('^\s*'.depscriptid.'\s\+\d\+\s\+.*$','bW') - if srchline == 0 - " this second search is taken when, for example, a 0 0 scriptname is to be skipped over - let srchline= search('\<'.noai_script.'\>','bW') - endif -" call Decho("..noai_script<".noai_script."> depscriptid#".depscriptid." srchline#".srchline." curline#".line(".")." lastline#".lastline) - - if srchline == 0 - " found a new script to permanently include in the datafile - let keep_rega = @a - let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','') - echomsg "Appending <".@a."> to ".datafile." for ".depscript -" call Decho("..Appending <".@a."> to ".datafile." for ".depscript) - exe lastline."put a" - let @a = keep_rega - let lastline = llp1 - let curline = curline + 1 - let foundscript = foundscript + 1 -" else " Decho -" call Decho("..found <".noai_script."> (already in datafile at line#".srchline.")") - endif - - let curline = curline + 1 - exe curline - endwhile - - " llp1: last line plus one - let llp1= lastline + 1 -" call Decho(".deleting lines: ".llp1.",$d") - exe "silent! ".llp1.",$d" - endfor -" call Decho("--- end dependency checking loop --- foundscript=".foundscript) -" call Decho(" ") -" call Dredir("BUFFER TEST (GetLatestVimScripts 1)","ls!") - - if foundscript == 0 - setlocal nomod - endif - - " -------------------------------------------------------------------- - " Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat - " -------------------------------------------------------------------- -" call Decho("begin: checking out-of-date scripts using datafile<".datafile.">") - setlocal lz - 1 -" /^-----/,$g/^\s*\d/call Decho(getline(".")) - 1 - /^-----/,$g/^\s*\d/call s:GetOneScript() -" call Decho("--- end out-of-date checking --- ") - - " Final report (an echomsg) - try - silent! ?^-------? - catch /^Vim\%((\a\+)\)\=:E114/ -" call Dret("GetLatestVimScripts : nothing done!") - return - endtry - exe "norm! kz\" - redraw! - let s:msg = "" - if s:downloads == 1 - let s:msg = "Downloaded one updated script to <".datadir.">" - elseif s:downloads == 2 - let s:msg= "Downloaded two updated scripts to <".datadir.">" - elseif s:downloads > 1 - let s:msg= "Downloaded ".s:downloads." updated scripts to <".datadir.">" - else - let s:msg= "Everything was already current" - endif - if s:downerrors > 0 - let s:msg= s:msg." (".s:downerrors." downloading errors)" - endif - echomsg s:msg - " save the file - if &mod - silent! w! - endif - q! - - " restore events and current directory - exe "cd ".fnameescape(substitute(origdir,'\','/','ge')) - let &ei = eikeep - let &hls = hlskeep - let &acd = acdkeep - setlocal nolz -" call Dredir("BUFFER TEST (GetLatestVimScripts 2)","ls!") -" call Dret("GetLatestVimScripts : did ".s:downloads." downloads") -endfun - -" --------------------------------------------------------------------- -" GetOneScript: (Get Latest Vim Script) this function operates {{{1 -" on the current line, interpreting two numbers and text as -" ScriptID, SourceID, and Filename. -" It downloads any scripts that have newer versions from vim.sourceforge.net. -fun! s:GetOneScript(...) -" call Dfunc("GetOneScript()") - - " set options to allow progress to be shown on screen - let rega= @a - let t_ti= &t_ti - let t_te= &t_te - let rs = &rs - set t_ti= t_te= nors - - " put current line on top-of-screen and interpret it into - " a script identifer : used to obtain webpage - " source identifier : used to identify current version - " and an associated comment: used to report on what's being considered - if a:0 >= 3 - let scriptid = a:1 - let srcid = a:2 - let fname = a:3 - let cmmnt = "" -" call Decho("scriptid<".scriptid.">") -" call Decho("srcid <".srcid.">") -" call Decho("fname <".fname.">") - else - let curline = getline(".") - if curline =~ '^\s*#' - let @a= rega -" call Dret("GetOneScript : skipping a pure comment line") - return - endif - let parsepat = '^\s*\(\d\+\)\s\+\(\d\+\)\s\+\(.\{-}\)\(\s*#.*\)\=$' - try - let scriptid = substitute(curline,parsepat,'\1','e') - catch /^Vim\%((\a\+)\)\=:E486/ - let scriptid= 0 - endtry - try - let srcid = substitute(curline,parsepat,'\2','e') - catch /^Vim\%((\a\+)\)\=:E486/ - let srcid= 0 - endtry - try - let fname= substitute(curline,parsepat,'\3','e') - catch /^Vim\%((\a\+)\)\=:E486/ - let fname= "" - endtry - try - let cmmnt= substitute(curline,parsepat,'\4','e') - catch /^Vim\%((\a\+)\)\=:E486/ - let cmmnt= "" - endtry -" call Decho("curline <".curline.">") -" call Decho("parsepat<".parsepat.">") -" call Decho("scriptid<".scriptid.">") -" call Decho("srcid <".srcid.">") -" call Decho("fname <".fname.">") - endif - - " plugin author protection from downloading his/her own scripts atop their latest work - if scriptid == 0 || srcid == 0 - " When looking for :AutoInstall: lines, skip scripts that have 0 0 scriptname - let @a= rega -" call Dret("GetOneScript : skipping a scriptid==srcid==0 line") - return - endif - - let doautoinstall= 0 - if fname =~ ":AutoInstall:" -" call Decho("case AutoInstall: fname<".fname.">") - let aicmmnt= substitute(fname,'\s\+:AutoInstall:\s\+',' ','') -" call Decho("aicmmnt<".aicmmnt."> s:autoinstall=".s:autoinstall) - if s:autoinstall != "" - let doautoinstall = g:GetLatestVimScripts_allowautoinstall - endif - else - let aicmmnt= fname - endif -" call Decho("aicmmnt<".aicmmnt.">: doautoinstall=".doautoinstall) - - exe "norm z\" - redraw! -" call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid) - echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid - - " grab a copy of the plugin's vim.sourceforge.net webpage - let scriptaddr = g:GetLatestVimScripts_scriptaddr.scriptid - let tmpfile = tempname() - let v:errmsg = "" - - " make up to three tries at downloading the description - let itry= 1 - while itry <= 3 -" call Decho(".try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr) - if has("win32") || has("win16") || has("win95") -" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)."|bw!") - new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)|bw! - else -" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr)) - exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr) - endif - if itry == 1 - exe "silent vsplit ".fnameescape(tmpfile) - else - silent! e % - endif - setlocal bh=wipe - - " find the latest source-id in the plugin's webpage - silent! 1 - let findpkg= search('Click on the package to download','W') - if findpkg > 0 - break - endif - let itry= itry + 1 - endwhile -" call Decho(" --- end downloading tries while loop --- itry=".itry) - - " testing: did finding "Click on the package..." fail? - if findpkg == 0 || itry >= 4 - silent q! - call delete(tmpfile) - " restore options - let &t_ti = t_ti - let &t_te = t_te - let &rs = rs - let s:downerrors = s:downerrors + 1 -" call Decho("***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">") - echomsg "***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">" -" call Dret("GetOneScript : srch for /Click on the package/ failed") - let @a= rega - return - endif -" call Decho('found "Click on the package to download"') - - let findsrcid= search('src_id=','W') - if findsrcid == 0 - silent q! - call delete(tmpfile) - " restore options - let &t_ti = t_ti - let &t_te = t_te - let &rs = rs - let s:downerrors = s:downerrors + 1 -" call Decho("***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">") - echomsg "***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">" - let @a= rega -" call Dret("GetOneScript : srch for /src_id/ failed") - return - endif -" call Decho('found "src_id=" in description page') - - let srcidpat = '^\s*\([^<]\+\)<.*$' - let latestsrcid= substitute(getline("."),srcidpat,'\1','') - let sname = substitute(getline("."),srcidpat,'\2','') " script name actually downloaded -" call Decho("srcidpat<".srcidpat."> latestsrcid<".latestsrcid."> sname<".sname.">") - silent q! - call delete(tmpfile) - - " convert the strings-of-numbers into numbers - let srcid = srcid + 0 - let latestsrcid = latestsrcid + 0 -" call Decho("srcid=".srcid." latestsrcid=".latestsrcid." sname<".sname.">") - - " has the plugin's most-recent srcid increased, which indicates that it has been updated - if latestsrcid > srcid -" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."]: need to update <".sname.">") - - let s:downloads= s:downloads + 1 - if sname == bufname("%") - " GetLatestVimScript has to be careful about downloading itself - let sname= "NEW_".sname - endif - - " ----------------------------------------------------------------------------- - " the plugin has been updated since we last obtained it, so download a new copy - " ----------------------------------------------------------------------------- -" call Decho(".downloading new <".sname.">") - echomsg ".downloading new <".sname.">" - if has("win32") || has("win16") || has("win95") -" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)."|q") - new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)|q - else -" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id=')) - exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id=').latestsrcid - endif - - " -------------------------------------------------------------------------- - " AutoInstall: only if doautoinstall has been requested by the plugin itself - " -------------------------------------------------------------------------- -" call Decho("checking if plugin requested autoinstall: doautoinstall=".doautoinstall) - if doautoinstall -" call Decho(" ") -" call Decho("Autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname)) - if filereadable(sname) -" call Decho("<".sname."> is readable") -" call Decho("exe silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall)) - exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall) - let curdir = fnameescape(substitute(getcwd(),'\','/','ge')) - let installdir= curdir."/Installed" - if !isdirectory(installdir) - call mkdir(installdir) - endif -" call Decho("curdir<".curdir."> installdir<".installdir.">") -" call Decho("exe cd ".fnameescape(s:autoinstall)) - exe "cd ".fnameescape(s:autoinstall) - - " determine target directory for moves - let firstdir= substitute(&rtp,',.*$','','') - let pname = substitute(sname,'\..*','.vim','') -" call Decho("determine tgtdir: is <".firstdir.'/AsNeeded/'.pname." readable?") - if filereadable(firstdir.'/AsNeeded/'.pname) - let tgtdir= "AsNeeded" - else - let tgtdir= "plugin" - endif -" call Decho("tgtdir<".tgtdir."> pname<".pname.">") - - " decompress - if sname =~ '\.bz2$' -" call Decho("decompress: attempt to bunzip2 ".sname) - exe "sil !bunzip2 ".shellescape(sname) - let sname= substitute(sname,'\.bz2$','','') -" call Decho("decompress: new sname<".sname."> after bunzip2") - elseif sname =~ '\.gz$' -" call Decho("decompress: attempt to gunzip ".sname) - exe "sil !gunzip ".shellescape(sname) - let sname= substitute(sname,'\.gz$','','') -" call Decho("decompress: new sname<".sname."> after gunzip") - elseif sname =~ '\.xz$' -" call Decho("decompress: attempt to unxz ".sname) - exe "sil !unxz ".shellescape(sname) - let sname= substitute(sname,'\.xz$','','') -" call Decho("decompress: new sname<".sname."> after unxz") - else -" call Decho("no decompression needed") - endif - - " distribute archive(.zip, .tar, .vba, ...) contents - if sname =~ '\.zip$' -" call Decho("dearchive: attempt to unzip ".sname) - exe "silent !unzip -o ".shellescape(sname) - elseif sname =~ '\.tar$' -" call Decho("dearchive: attempt to untar ".sname) - exe "silent !tar -xvf ".shellescape(sname) - elseif sname =~ '\.tgz$' -" call Decho("dearchive: attempt to untar+gunzip ".sname) - exe "silent !tar -zxvf ".shellescape(sname) - elseif sname =~ '\.taz$' -" call Decho("dearchive: attempt to untar+uncompress ".sname) - exe "silent !tar -Zxvf ".shellescape(sname) - elseif sname =~ '\.tbz$' -" call Decho("dearchive: attempt to untar+bunzip2 ".sname) - exe "silent !tar -jxvf ".shellescape(sname) - elseif sname =~ '\.txz$' -" call Decho("dearchive: attempt to untar+xz ".sname) - exe "silent !tar -Jxvf ".shellescape(sname) - elseif sname =~ '\.vba$' -" call Decho("dearchive: attempt to handle a vimball: ".sname) - silent 1split - if exists("g:vimball_home") - let oldvimballhome= g:vimball_home - endif - let g:vimball_home= s:autoinstall - exe "silent e ".fnameescape(sname) - silent so % - silent q - if exists("oldvimballhome") - let g:vimball_home= oldvimballhome - else - unlet g:vimball_home - endif - else -" call Decho("no dearchiving needed") - endif - - " --------------------------------------------- - " move plugin to plugin/ or AsNeeded/ directory - " --------------------------------------------- - if sname =~ '.vim$' -" call Decho("dearchive: attempt to simply move ".sname." to ".tgtdir) - exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".tgtdir - else -" call Decho("dearchive: move <".sname."> to installdir<".installdir.">") - exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".installdir - endif - if tgtdir != "plugin" -" call Decho("exe silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir) - exe "silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir - endif - - " helptags step - let docdir= substitute(&rtp,',.*','','e')."/doc" -" call Decho("helptags: docdir<".docdir.">") - exe "helptags ".fnameescape(docdir) - exe "cd ".fnameescape(curdir) - endif - if fname !~ ':AutoInstall:' - let modline=scriptid." ".latestsrcid." :AutoInstall: ".fname.cmmnt - else - let modline=scriptid." ".latestsrcid." ".fname.cmmnt - endif - else - let modline=scriptid." ".latestsrcid." ".fname.cmmnt - endif - - " update the data in the file - call setline(line("."),modline) -" call Decho("update data in ".expand("%")."#".line(".").": modline<".modline.">") -" else " Decho -" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."], no need to update") - endif - - " restore options - let &t_ti = t_ti - let &t_te = t_te - let &rs = rs - let @a = rega -" call Dredir("BUFFER TEST (GetOneScript)","ls!") - -" call Dret("GetOneScript") -endfun - -" --------------------------------------------------------------------- -" Restore Options: {{{1 -let &cpo= s:keepcpo -unlet s:keepcpo - -" --------------------------------------------------------------------- -" Modelines: {{{1 -" vim: ts=8 sts=2 fdm=marker nowrap - -endif diff --git a/autoload/gnat.vim b/autoload/gnat.vim deleted file mode 100644 index 4c7b6724..00000000 --- a/autoload/gnat.vim +++ /dev/null @@ -1,151 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -"------------------------------------------------------------------------------ -" Description: Vim Ada/GNAT compiler file -" Language: Ada (GNAT) -" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $ -" Copyright: Copyright (C) 2006 Martin Krischik -" Maintainer: Martin Krischi k -" Ned Okie -" $Author: krischik $ -" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $ -" Version: 4.6 -" $Revision: 887 $ -" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $ -" History: 24.05.2006 MK Unified Headers -" 16.07.2006 MK Ada-Mode as vim-ball -" 05.08.2006 MK Add session support -" 15.10.2006 MK Bram's suggestion for runtime integration -" 05.11.2006 MK Bram suggested not to use include protection for -" autoload -" 05.11.2006 MK Bram suggested to save on spaces -" 19.09.2007 NO use project file only when there is a project -" Help Page: compiler-gnat -"------------------------------------------------------------------------------ - -if version < 700 - finish -endif - -function gnat#Make () dict " {{{1 - let &l:makeprg = self.Get_Command('Make') - let &l:errorformat = self.Error_Format - wall - make - copen - set wrap - wincmd W -endfunction gnat#Make " }}}1 - -function gnat#Pretty () dict " {{{1 - execute "!" . self.Get_Command('Pretty') -endfunction gnat#Make " }}}1 - -function gnat#Find () dict " {{{1 - execute "!" . self.Get_Command('Find') -endfunction gnat#Find " }}}1 - -function gnat#Tags () dict " {{{1 - execute "!" . self.Get_Command('Tags') - edit tags - call gnat#Insert_Tags_Header () - update - quit -endfunction gnat#Tags " }}}1 - -function gnat#Set_Project_File (...) dict " {{{1 - if a:0 > 0 - let self.Project_File = a:1 - - if ! filereadable (self.Project_File) - let self.Project_File = findfile ( - \ fnamemodify (self.Project_File, ':r'), - \ $ADA_PROJECT_PATH, - \ 1) - endif - elseif strlen (self.Project_File) > 0 - let self.Project_File = browse (0, 'GNAT Project File?', '', self.Project_File) - elseif expand ("%:e") == 'gpr' - let self.Project_File = browse (0, 'GNAT Project File?', '', expand ("%:e")) - else - let self.Project_File = browse (0, 'GNAT Project File?', '', 'default.gpr') - endif - - if strlen (v:this_session) > 0 - execute 'mksession! ' . v:this_session - endif - - "if strlen (self.Project_File) > 0 - "if has("vms") - "call ada#Switch_Session ( - "\ expand('~')[0:-2] . ".vimfiles.session]gnat_" . - "\ fnamemodify (self.Project_File, ":t:r") . ".vim") - "else - "call ada#Switch_Session ( - "\ expand('~') . "/vimfiles/session/gnat_" . - "\ fnamemodify (self.Project_File, ":t:r") . ".vim") - "endif - "else - "call ada#Switch_Session ('') - "endif - - return -endfunction gnat#Set_Project_File " }}}1 - -function gnat#Get_Command (Command) dict " {{{1 - let l:Command = eval ('self.' . a:Command . '_Command') - return eval (l:Command) -endfunction gnat#Get_Command " }}}1 - -function gnat#Set_Session (...) dict " {{{1 - if argc() == 1 && fnamemodify (argv(0), ':e') == 'gpr' - call self.Set_Project_File (argv(0)) - elseif strlen (v:servername) > 0 - call self.Set_Project_File (v:servername . '.gpr') - endif -endfunction gnat#Set_Session " }}}1 - -function gnat#New () " {{{1 - let l:Retval = { - \ 'Make' : function ('gnat#Make'), - \ 'Pretty' : function ('gnat#Pretty'), - \ 'Find' : function ('gnat#Find'), - \ 'Tags' : function ('gnat#Tags'), - \ 'Set_Project_File' : function ('gnat#Set_Project_File'), - \ 'Set_Session' : function ('gnat#Set_Session'), - \ 'Get_Command' : function ('gnat#Get_Command'), - \ 'Project_File' : '', - \ 'Make_Command' : '"gnat make -P " . self.Project_File . " -F -gnatef "', - \ 'Pretty_Command' : '"gnat pretty -P " . self.Project_File . " "', - \ 'Find_Program' : '"gnat find -P " . self.Project_File . " -F "', - \ 'Tags_Command' : '"gnat xref -P " . self.Project_File . " -v *.AD*"', - \ 'Error_Format' : '%f:%l:%c: %trror: %m,' . - \ '%f:%l:%c: %tarning: %m,' . - \ '%f:%l:%c: (%ttyle) %m'} - - return l:Retval -endfunction gnat#New " }}}1 - -function gnat#Insert_Tags_Header () " {{{1 - 1insert -!_TAG_FILE_FORMAT 1 /extended format; --format=1 will not append ;" to lines/ -!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ -!_TAG_PROGRAM_AUTHOR AdaCore /info@adacore.com/ -!_TAG_PROGRAM_NAME gnatxref // -!_TAG_PROGRAM_URL http://www.adacore.com /official site/ -!_TAG_PROGRAM_VERSION 5.05w // -. - return -endfunction gnat#Insert_Tags_Header " }}}1 - -finish " 1}}} - -"------------------------------------------------------------------------------ -" Copyright (C) 2006 Martin Krischik -" -" Vim is Charityware - see ":help license" or uganda.txt for licence details. -"------------------------------------------------------------------------------ -" vim: textwidth=0 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab -" vim: foldmethod=marker - -endif diff --git a/autoload/gzip.vim b/autoload/gzip.vim deleted file mode 100644 index 39ae4107..00000000 --- a/autoload/gzip.vim +++ /dev/null @@ -1,224 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Vim autoload file for editing compressed files. -" Maintainer: Bram Moolenaar -" Last Change: 2016 Sep 28 - -" These functions are used by the gzip plugin. - -" Function to check that executing "cmd [-f]" works. -" The result is cached in s:have_"cmd" for speed. -fun s:check(cmd) - let name = substitute(a:cmd, '\(\S*\).*', '\1', '') - if !exists("s:have_" . name) - let e = executable(name) - if e < 0 - let r = system(name . " --version") - let e = (r !~ "not found" && r != "") - endif - exe "let s:have_" . name . "=" . e - endif - exe "return s:have_" . name -endfun - -" Set b:gzip_comp_arg to the gzip argument to be used for compression, based on -" the flags in the compressed file. -" The only compression methods that can be detected are max speed (-1) and max -" compression (-9). -fun s:set_compression(line) - " get the Compression Method - let l:cm = char2nr(a:line[2]) - " if it's 8 (DEFLATE), we can check for the compression level - if l:cm == 8 - " get the eXtra FLags - let l:xfl = char2nr(a:line[8]) - " max compression - if l:xfl == 2 - let b:gzip_comp_arg = "-9" - " min compression - elseif l:xfl == 4 - let b:gzip_comp_arg = "-1" - endif - endif -endfun - - -" After reading compressed file: Uncompress text in buffer with "cmd" -fun gzip#read(cmd) - " don't do anything if the cmd is not supported - if !s:check(a:cmd) - return - endif - - " for gzip check current compression level and set b:gzip_comp_arg. - silent! unlet b:gzip_comp_arg - if a:cmd[0] == 'g' - call s:set_compression(getline(1)) - endif - - " make 'patchmode' empty, we don't want a copy of the written file - let pm_save = &pm - set pm= - " remove 'a' and 'A' from 'cpo' to avoid the alternate file changes - let cpo_save = &cpo - set cpo-=a cpo-=A - " set 'modifiable' - let ma_save = &ma - setlocal ma - " set 'write' - let write_save = &write - set write - " Reset 'foldenable', otherwise line numbers get adjusted. - if has("folding") - let fen_save = &fen - setlocal nofen - endif - - " when filtering the whole buffer, it will become empty - let empty = line("'[") == 1 && line("']") == line("$") - let tmp = tempname() - let tmpe = tmp . "." . expand(":e") - if exists('*fnameescape') - let tmp_esc = fnameescape(tmp) - let tmpe_esc = fnameescape(tmpe) - else - let tmp_esc = escape(tmp, ' ') - let tmpe_esc = escape(tmpe, ' ') - endif - " write the just read lines to a temp file "'[,']w tmp.gz" - execute "silent '[,']w " . tmpe_esc - " uncompress the temp file: call system("gzip -dn tmp.gz") - call system(a:cmd . " " . s:escape(tmpe)) - if !filereadable(tmp) - " uncompress didn't work! Keep the compressed file then. - echoerr "Error: Could not read uncompressed file" - let ok = 0 - else - let ok = 1 - " delete the compressed lines; remember the line number - let l = line("'[") - 1 - if exists(":lockmarks") - lockmarks '[,']d _ - else - '[,']d _ - endif - " read in the uncompressed lines "'[-1r tmp" - " Use ++edit if the buffer was empty, keep the 'ff' and 'fenc' options. - setlocal nobin - if exists(":lockmarks") - if empty - execute "silent lockmarks " . l . "r ++edit " . tmp_esc - else - execute "silent lockmarks " . l . "r " . tmp_esc - endif - else - execute "silent " . l . "r " . tmp_esc - endif - - " if buffer became empty, delete trailing blank line - if empty - silent $delete _ - 1 - endif - " delete the temp file and the used buffers - call delete(tmp) - silent! exe "bwipe " . tmp_esc - silent! exe "bwipe " . tmpe_esc - endif - " Store the OK flag, so that we can use it when writing. - let b:uncompressOk = ok - - " Restore saved option values. - let &pm = pm_save - let &cpo = cpo_save - let &l:ma = ma_save - let &write = write_save - if has("folding") - let &l:fen = fen_save - endif - - " When uncompressed the whole buffer, do autocommands - if ok && empty - if exists('*fnameescape') - let fname = fnameescape(expand("%:r")) - else - let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<") - endif - if &verbose >= 8 - execute "doau BufReadPost " . fname - else - execute "silent! doau BufReadPost " . fname - endif - endif -endfun - -" After writing compressed file: Compress written file with "cmd" -fun gzip#write(cmd) - if exists('b:uncompressOk') && !b:uncompressOk - echomsg "Not compressing file because uncompress failed; reset b:uncompressOk to compress anyway" - " don't do anything if the cmd is not supported - elseif s:check(a:cmd) - " Rename the file before compressing it. - let nm = resolve(expand("")) - let nmt = s:tempname(nm) - if rename(nm, nmt) == 0 - if exists("b:gzip_comp_arg") - call system(a:cmd . " " . b:gzip_comp_arg . " -- " . s:escape(nmt)) - else - call system(a:cmd . " -- " . s:escape(nmt)) - endif - call rename(nmt . "." . expand(":e"), nm) - endif - endif -endfun - -" Before appending to compressed file: Uncompress file with "cmd" -fun gzip#appre(cmd) - " don't do anything if the cmd is not supported - if s:check(a:cmd) - let nm = expand("") - - " for gzip check current compression level and set b:gzip_comp_arg. - silent! unlet b:gzip_comp_arg - if a:cmd[0] == 'g' - call s:set_compression(readfile(nm, "b", 1)[0]) - endif - - " Rename to a weird name to avoid the risk of overwriting another file - let nmt = expand(":p:h") . "/X~=@l9q5" - let nmte = nmt . "." . expand(":e") - if rename(nm, nmte) == 0 - if &patchmode != "" && getfsize(nm . &patchmode) == -1 - " Create patchmode file by creating the decompressed file new - call system(a:cmd . " -c -- " . s:escape(nmte) . " > " . s:escape(nmt)) - call rename(nmte, nm . &patchmode) - else - call system(a:cmd . " -- " . s:escape(nmte)) - endif - call rename(nmt, nm) - endif - endif -endfun - -" find a file name for the file to be compressed. Use "name" without an -" extension if possible. Otherwise use a weird name to avoid overwriting an -" existing file. -fun s:tempname(name) - let fn = fnamemodify(a:name, ":r") - if !filereadable(fn) && !isdirectory(fn) - return fn - endif - return fnamemodify(a:name, ":p:h") . "/X~=@l9q5" -endfun - -fun s:escape(name) - " shellescape() was added by patch 7.0.111 - if exists("*shellescape") - return shellescape(a:name) - endif - return "'" . a:name . "'" -endfun - -" vim: set sw=2 : - -endif diff --git a/autoload/htmlcomplete.vim b/autoload/htmlcomplete.vim index 1ef80e35..fc9a4b5a 100644 --- a/autoload/htmlcomplete.vim +++ b/autoload/htmlcomplete.vim @@ -1,815 +1,3 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Vim completion script -" Language: HTML and XHTML -" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) -" Last Change: 2014 Jun 20 - -" Distinguish between HTML versions. -" To use with other HTML versions add another "elseif" condition to match -" proper DOCTYPE. -function! htmlcomplete#DetectOmniFlavor() - if &filetype == 'xhtml' - let b:html_omni_flavor = 'xhtml10s' - else - let b:html_omni_flavor = 'html401t' - endif - let i = 1 - let line = "" - while i < 10 && i < line("$") - let line = getline(i) - if line =~ '' - let b:html_omni_flavor = 'html40' - endif - if line =~ '\' - let b:html_omni_flavor .= 't' - elseif line =~ '\' - let b:html_omni_flavor .= 'f' - else - let b:html_omni_flavor .= 's' - endif - endif - endif -endfunction - -function! htmlcomplete#CompleteTags(findstart, base) - if a:findstart - " locate the start of the word - let line = getline('.') - let start = col('.') - 1 - let curline = line('.') - let compl_begin = col('.') - 2 - while start >= 0 && line[start - 1] =~ '\(\k\|[!:.-]\)' - let start -= 1 - endwhile - " Handling of entities {{{ - if start >= 0 && line[start - 1] =~ '&' - let b:entitiescompl = 1 - let b:compl_context = '' - return start - endif - " }}} - " Handling of ') - if style_start > 0 && style_end > 0 - let buf_styles = getline(style_start + 1, style_end - 1) - for a_style in buf_styles - if index(style, a_style) == -1 - if diff_style_start == 0 - if a_style =~ '\\_s\+.*id='oneCharWidth'.*\_s\+.*id='oneInputWidth'.*\_s\+.*id='oneEmWidth'\)\?\zs/d_ - $ - ??,$d_ - let temp = getline(1,'$') - " clean out id on the main content container because we already set it on - " the table - let temp[0] = substitute(temp[0], " id='vimCodeElement[^']*'", "", "") - " undo deletion of start and end part - " so we can later save the file as valid html - " TODO: restore using grabbed lines if undolevel is 1? - normal! 2u - if s:settings.use_css - call add(html, '
') - elseif s:settings.use_xhtml - call add(html, '
') - else - call add(html, '
') - endif - let html += temp - call add(html, '
') - - " Close this buffer - " TODO: the comment above says we're going to allow saving the file - " later...but here we discard it? - quit! - endfor - - let html[body_line_num] = body_line - - call add(html, '') - call add(html, '') - call add(html, s:body_end_line) - call add(html, '') - - " The generated HTML is admittedly ugly and takes a LONG time to fold. - " Make sure the user doesn't do syntax folding when loading a generated file, - " using a modeline. - call add(html, '') - - let i = 1 - let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html") - " Find an unused file name if current file name is already in use - while filereadable(name) - let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e") - let i += 1 - endwhile - exe "topleft new " . name - setlocal modifiable - - " just in case some user autocmd creates content in the new buffer, make sure - " it is empty before proceeding - %d - - " set the fileencoding to match the charset we'll be using - let &l:fileencoding=s:settings.vim_encoding - - " According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte - " order mark is highly recommend on the web when using multibyte encodings. But, - " it is not a good idea to include it on UTF-8 files. Otherwise, let Vim - " determine when it is actually inserted. - if s:settings.vim_encoding == 'utf-8' - setlocal nobomb - else - setlocal bomb - endif - - call append(0, html) - - if len(style) > 0 - 1 - let style_start = search('^')-1 - - " add required javascript in reverse order so we can just call append again - " and again without adjusting {{{ - - " insert script closing tag - call append(style_start, [ - \ '', - \ s:settings.use_xhtml ? '//]]>' : '-->', - \ "" - \ ]) - - " insert script which corrects the size of small input elements in - " prevent_copy mode. See 2html.vim for details on why this is needed and how - " it works. - if !empty(s:settings.prevent_copy) - call append(style_start, [ - \ '', - \ '/* simulate a "ch" unit by asking the browser how big a zero character is */', - \ 'function FixCharWidth() {', - \ ' /* get the hidden element which gives the width of a single character */', - \ ' var goodWidth = document.getElementById("oneCharWidth").clientWidth;', - \ ' /* get all input elements, we''ll filter on class later */', - \ ' var inputTags = document.getElementsByTagName("input");', - \ ' var ratio = 5;', - \ ' var inputWidth = document.getElementById("oneInputWidth").clientWidth;', - \ ' var emWidth = document.getElementById("oneEmWidth").clientWidth;', - \ ' if (inputWidth > goodWidth) {', - \ ' while (ratio < 100*goodWidth/emWidth && ratio < 100) {', - \ ' ratio += 5;', - \ ' }', - \ ' document.getElementById("vimCodeElement'.s:settings.id_suffix.'").className = "em"+ratio;', - \ ' }', - \ '}' - \ ]) - endif - " - " insert javascript to get IDs from line numbers, and to open a fold before - " jumping to any lines contained therein - call append(style_start, [ - \ " /* Always jump to new location even if the line was hidden inside a fold, or", - \ " * we corrected the raw number to a line ID.", - \ " */", - \ " if (lineElem) {", - \ " lineElem.scrollIntoView(true);", - \ " }", - \ " return true;", - \ "}", - \ "if ('onhashchange' in window) {", - \ " window.onhashchange = JumpToLine;", - \ "}" - \ ]) - if s:settings.dynamic_folds - call append(style_start, [ - \ "", - \ " /* navigate upwards in the DOM tree to open all folds containing the line */", - \ " var node = lineElem;", - \ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')", - \ " {", - \ " if (node.className == 'closed-fold')", - \ " {", - \ " /* toggle open the fold ID (remove window ID) */", - \ " toggleFold(node.id.substr(4));", - \ " }", - \ " node = node.parentNode;", - \ " }", - \ ]) - endif - call append(style_start, [ - \ "", - \ "/* function to open any folds containing a jumped-to line before jumping to it */", - \ "function JumpToLine()", - \ "{", - \ " var lineNum;", - \ " lineNum = window.location.hash;", - \ " lineNum = lineNum.substr(1); /* strip off '#' */", - \ "", - \ " if (lineNum.indexOf('L') == -1) {", - \ " lineNum = 'L'+lineNum;", - \ " }", - \ " if (lineNum.indexOf('W') == -1) {", - \ " lineNum = 'W1'+lineNum;", - \ " }", - \ " lineElem = document.getElementById(lineNum);" - \ ]) - - " Insert javascript to toggle matching folds open and closed in all windows, - " if dynamic folding is active. - if s:settings.dynamic_folds - call append(style_start, [ - \ " function toggleFold(objID)", - \ " {", - \ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)", - \ " {", - \ " var fold;", - \ ' fold = document.getElementById("win"+win_num+objID);', - \ " if(fold.className == 'closed-fold')", - \ " {", - \ " fold.className = 'open-fold';", - \ " }", - \ " else if (fold.className == 'open-fold')", - \ " {", - \ " fold.className = 'closed-fold';", - \ " }", - \ " }", - \ " }", - \ ]) - endif - - " insert script tag; javascript is always needed for the line number - " normalization for URL hashes - call append(style_start, [ - \ "