mirror of
				https://github.com/tiyn/dotfiles.git
				synced 2025-10-29 11:31:16 +01:00 
			
		
		
		
	coc is strange, lets bloat ourselfes with ycm
This commit is contained in:
		| @@ -1,88 +0,0 @@ | ||||
| # A valid snippet should starts with: | ||||
| # | ||||
| #		snippet trigger_word [ "description" [ options ] ] | ||||
| # | ||||
| # and end with: | ||||
| # | ||||
| #		endsnippet | ||||
| # | ||||
| # Snippet options: | ||||
| # | ||||
| #		b - Beginning of line. | ||||
| #		i - In-word expansion. | ||||
| #		w - Word boundary. | ||||
| #		r - Regular expression | ||||
| #		e - Custom context snippet | ||||
| #		A - Snippet will be triggered automatically, when condition matches. | ||||
| # | ||||
| # Basic example: | ||||
| # | ||||
| #		snippet emitter "emitter properties" b | ||||
| #		private readonly ${1} = new Emitter<$2>() | ||||
| #		public readonly ${1/^_(.*)/$2/}: Event<$2> = this.$2.event | ||||
| #		endsnippet | ||||
| # | ||||
| # Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt | ||||
|  | ||||
| snippet ,b "Bold" A | ||||
| <b>$1</b> $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,it "Italics" A | ||||
| <em>$1</em> $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,1 "Header 1" A | ||||
| <h1>$1</h1> | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,2 "Header 2" A | ||||
| <h2>$1</h2> | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,3 "Header 3" A | ||||
| <h3>$1</h3> | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,p "Paragraph" A | ||||
| <p>$1</p> | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,a "Hyperlink" A | ||||
| <a href="$1">$2</a> $3 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,e "External Hyperlink" A | ||||
| <a target="_blank" href="$1">$2</a> $3 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,ul "Itemization" A | ||||
| <ul> | ||||
| 	<li>$1</li> | ||||
| 	$2 | ||||
| </ul> | ||||
| endsnippet | ||||
|  | ||||
| snippet ,li "List Element" A | ||||
| <li>$1</li> | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,ol "Enumeration" A | ||||
| <ol> | ||||
| 	<li>$1</li> | ||||
| 	$2 | ||||
| </ol> | ||||
| endsnippet | ||||
|  | ||||
| snippet ,im "Image" A | ||||
| <img src="$1" alt="$2"> $3 | ||||
| endsnippet | ||||
|  | ||||
| snippet & "Et Sign" A | ||||
| & $1 | ||||
| endsnippet | ||||
| @@ -1,117 +0,0 @@ | ||||
| # A valid snippet should starts with: | ||||
| # | ||||
| #		snippet trigger_word [ "description" [ options ] ] | ||||
| # | ||||
| # and end with: | ||||
| # | ||||
| #		endsnippet | ||||
| # | ||||
| # Snippet options: | ||||
| # | ||||
| #		b - Beginning of line. | ||||
| #		i - In-word expansion. | ||||
| #		w - Word boundary. | ||||
| #		r - Regular expression | ||||
| #		e - Custom context snippet | ||||
| #		A - Snippet will be triggered automatically, when condition matches. | ||||
| # | ||||
| # Basic example: | ||||
| # | ||||
| #		snippet emitter "emitter properties" b | ||||
| #		private readonly ${1} = new Emitter<$2>() | ||||
| #		public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event | ||||
| #		endsnippet | ||||
| # | ||||
| # Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt | ||||
|  | ||||
| snippet ,fr "Frame" A | ||||
| \begin{frame} | ||||
| 	\frametitle{$1} | ||||
| 	$2 | ||||
| \end{frame} | ||||
| endsnippet | ||||
|  | ||||
| snippet ,em "Emphasis" A | ||||
| \emph{$1} | ||||
| endsnippet | ||||
|  | ||||
| snippet ,bf "Bold" A | ||||
| \textbf{$1} $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,it "Italic" A | ||||
| \textit{$1} $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,ct "Text cite" A | ||||
| \textcite{$1} $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,cp "Parenthesis cite" A | ||||
| \parencite{$1} $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,ol "Enumeration" A | ||||
| \begin{enumerate} | ||||
| 	\item $1 | ||||
| 	$2 | ||||
| \end{enumerate} | ||||
| endsnippet | ||||
|  | ||||
| snippet ,ul "Itemization" A | ||||
| \begin{itemize} | ||||
| 	\item $1 | ||||
| 	$2 | ||||
| \end{itemize} | ||||
| endsnippet | ||||
|  | ||||
| snippet ,li "List element" A | ||||
| \item $1 | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,ref "Reference" A | ||||
| \ref{$1} $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,tab "Tabular" A | ||||
| \begin{tabular} | ||||
| $1 | ||||
| \end{tabular} | ||||
| endsnippet | ||||
|  | ||||
| snippet ,a "Hyperlink" A | ||||
| \href{$1}{$2} | ||||
| endsnippet | ||||
|  | ||||
| snippet ,sc "Small caps" A | ||||
| \textsc{$1} $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,chap "Chapter" A | ||||
| \chapter{$1} | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,sec "Section" A | ||||
| \section{$1} | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,ssec "Subsection" A | ||||
| \subsection{$1} | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,sssec "Subsubsection" A | ||||
| \subsubsection{$1} | ||||
| $2 | ||||
| endsnippet | ||||
|  | ||||
| snippet ,up "Use Packagage" A | ||||
| \usepackage{$1} | ||||
| endsnippet | ||||
|  | ||||
| snippet ,tt "Typewriter" A | ||||
| \texttt{$1} $2 | ||||
| endsnippet | ||||
| @@ -1,25 +0,0 @@ | ||||
| # A valid snippet should starts with: | ||||
| # | ||||
| #		snippet trigger_word [ "description" [ options ] ] | ||||
| # | ||||
| # and end with: | ||||
| # | ||||
| #		endsnippet | ||||
| # | ||||
| # Snippet options: | ||||
| # | ||||
| #		b - Beginning of line. | ||||
| #		i - In-word expansion. | ||||
| #		w - Word boundary. | ||||
| #		r - Regular expression | ||||
| #		e - Custom context snippet | ||||
| #		A - Snippet will be triggered automatically, when condition matches. | ||||
| # | ||||
| # Basic example: | ||||
| # | ||||
| #		snippet emitter "emitter properties" b | ||||
| #		private readonly ${1} = new Emitter<$2>() | ||||
| #		public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event | ||||
| #		endsnippet | ||||
| # | ||||
| # Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt | ||||
| @@ -62,7 +62,6 @@ autocmd BufWritePre * %s/\s\+$//e | ||||
|  | ||||
| " Plugin section | ||||
| call plug#begin('~/.config/nvim/plugged') | ||||
| Plug 'neoclide/coc.nvim', {'branch': 'release'} " Autocomplete | ||||
| Plug 'lervag/vimtex' , { 'for' : 'tex'} " tex library for coc autocompletion | ||||
| Plug 'donRaphaco/neotex', { 'for': 'tex'} " Asynchronous pdf rendering | ||||
| Plug 'preservim/nerdtree' " Filetree | ||||
| @@ -72,23 +71,10 @@ Plug 'FredKSchott/CoVim' "Use vim together | ||||
| Plug 'qpkorr/vim-renamer' " Bulk renamer | ||||
| call plug#end() | ||||
|  | ||||
| " Coc extensions | ||||
| let g:coc_global_extensions = ['coc-snippets', 'coc-vimtex'] | ||||
| " tab through suggestions | ||||
| let g:coc_snippet_next = '<tab>' | ||||
| inoremap <silent><expr> <TAB> | ||||
| 	\ pumvisible() ? "\<C-n>" : | ||||
| 	\ <SID>check_back_space() ? "\<TAB>" : | ||||
| 	\ coc#refresh() | ||||
| " jump to next placeholder | ||||
| inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" | ||||
| " ending suggestions | ||||
| function! s:check_back_space() abort | ||||
| 	let col = col('.') - 1 | ||||
| 	return !col || getline('.')[col - 1] =~# '\s' | ||||
| endfunction | ||||
| " expand snippets on enter | ||||
| inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<CR>" | ||||
| let g:ycm_global_ycm_extra_conf = '/home/tiynger/.config/nvim/ycm_extra_conf.py' | ||||
| let g:ycm_semantic_triggers = { | ||||
| 	\ 'tex' : ['{'] | ||||
| 	\} | ||||
|  | ||||
| "tagbar | ||||
| map <F3> :TagbarToggle<CR> | ||||
|   | ||||
							
								
								
									
										220
									
								
								.config/nvim/ycm_extra_conf.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										220
									
								
								.config/nvim/ycm_extra_conf.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,220 @@ | ||||
| # This file is NOT licensed under the GPLv3, which is the license for the rest | ||||
| # of YouCompleteMe. | ||||
| # | ||||
| # Here's the license text for this file: | ||||
| # | ||||
| # This is free and unencumbered software released into the public domain. | ||||
| # | ||||
| # Anyone is free to copy, modify, publish, use, compile, sell, or | ||||
| # distribute this software, either in source code form or as a compiled | ||||
| # binary, for any purpose, commercial or non-commercial, and by any | ||||
| # means. | ||||
| # | ||||
| # In jurisdictions that recognize copyright laws, the author or authors | ||||
| # of this software dedicate any and all copyright interest in the | ||||
| # software to the public domain. We make this dedication for the benefit | ||||
| # of the public at large and to the detriment of our heirs and | ||||
| # successors. We intend this dedication to be an overt act of | ||||
| # relinquishment in perpetuity of all present and future rights to this | ||||
| # software under copyright law. | ||||
| # | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||
| # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
| # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||||
| # IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||||
| # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||||
| # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||||
| # OTHER DEALINGS IN THE SOFTWARE. | ||||
| # | ||||
| # For more information, please refer to <http://unlicense.org/> | ||||
|  | ||||
| from distutils.sysconfig import get_python_inc | ||||
| import os | ||||
| import platform | ||||
| import os.path as p | ||||
| import subprocess | ||||
|  | ||||
| DIR_OF_THIS_SCRIPT = p.abspath( p.dirname( __file__ ) ) | ||||
| DIR_OF_THIRD_PARTY = p.join( DIR_OF_THIS_SCRIPT, 'third_party' ) | ||||
| SOURCE_EXTENSIONS = [ '.cpp', '.cxx', '.cc', '.c', '.m', '.mm' ] | ||||
|  | ||||
| database = None | ||||
|  | ||||
| # These are the compilation flags that will be used in case there's no | ||||
| # compilation database set (by default, one is not set). | ||||
| # CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR. | ||||
| flags = [ | ||||
| '-Wall', | ||||
| '-Wextra', | ||||
| '-Werror', | ||||
| '-Wno-long-long', | ||||
| '-Wno-variadic-macros', | ||||
| '-fexceptions', | ||||
| '-DNDEBUG', | ||||
| # You 100% do NOT need -DUSE_CLANG_COMPLETER and/or -DYCM_EXPORT in your flags; | ||||
| # only the YCM source code needs it. | ||||
| '-DUSE_CLANG_COMPLETER', | ||||
| '-DYCM_EXPORT=', | ||||
| # THIS IS IMPORTANT! Without the '-x' flag, Clang won't know which language to | ||||
| # use when compiling headers. So it will guess. Badly. So C++ headers will be | ||||
| # compiled as C headers. You don't want that so ALWAYS specify the '-x' flag. | ||||
| # For a C project, you would set this to 'c' instead of 'c++'. | ||||
| '-x', | ||||
| 'c++', | ||||
| '-isystem', | ||||
| 'cpp/pybind11', | ||||
| '-isystem', | ||||
| 'cpp/whereami', | ||||
| '-isystem', | ||||
| 'cpp/BoostParts', | ||||
| '-isystem', | ||||
| get_python_inc(), | ||||
| '-isystem', | ||||
| 'cpp/llvm/include', | ||||
| '-isystem', | ||||
| 'cpp/llvm/tools/clang/include', | ||||
| '-I', | ||||
| 'cpp/ycm', | ||||
| '-I', | ||||
| 'cpp/ycm/ClangCompleter', | ||||
| '-isystem', | ||||
| 'cpp/ycm/tests/gmock/gtest', | ||||
| '-isystem', | ||||
| 'cpp/ycm/tests/gmock/gtest/include', | ||||
| '-isystem', | ||||
| 'cpp/ycm/tests/gmock', | ||||
| '-isystem', | ||||
| 'cpp/ycm/tests/gmock/include', | ||||
| '-isystem', | ||||
| 'cpp/ycm/benchmarks/benchmark/include', | ||||
| ] | ||||
|  | ||||
| # Clang automatically sets the '-std=' flag to 'c++14' for MSVC 2015 or later, | ||||
| # which is required for compiling the standard library, and to 'c++11' for older | ||||
| # versions. | ||||
| if platform.system() != 'Windows': | ||||
|   flags.append( '-std=c++11' ) | ||||
|  | ||||
|  | ||||
| # Set this to the absolute path to the folder (NOT the file!) containing the | ||||
| # compile_commands.json file to use that instead of 'flags'. See here for | ||||
| # more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html | ||||
| # | ||||
| # You can get CMake to generate this file for you by adding: | ||||
| #   set( CMAKE_EXPORT_COMPILE_COMMANDS 1 ) | ||||
| # to your CMakeLists.txt file. | ||||
| # | ||||
| # Most projects will NOT need to set this to anything; you can just change the | ||||
| # 'flags' list of compilation flags. Notice that YCM itself uses that approach. | ||||
| compilation_database_folder = '' | ||||
|  | ||||
|  | ||||
| def IsHeaderFile( filename ): | ||||
|   extension = p.splitext( filename )[ 1 ] | ||||
|   return extension in [ '.h', '.hxx', '.hpp', '.hh' ] | ||||
|  | ||||
|  | ||||
| def FindCorrespondingSourceFile( filename ): | ||||
|   if IsHeaderFile( filename ): | ||||
|     basename = p.splitext( filename )[ 0 ] | ||||
|     for extension in SOURCE_EXTENSIONS: | ||||
|       replacement_file = basename + extension | ||||
|       if p.exists( replacement_file ): | ||||
|         return replacement_file | ||||
|   return filename | ||||
|  | ||||
|  | ||||
| def PathToPythonUsedDuringBuild(): | ||||
|   try: | ||||
|     filepath = p.join( DIR_OF_THIS_SCRIPT, 'PYTHON_USED_DURING_BUILDING' ) | ||||
|     with open( filepath ) as f: | ||||
|       return f.read().strip() | ||||
|   except OSError: | ||||
|     return None | ||||
|  | ||||
|  | ||||
| def Settings( **kwargs ): | ||||
|   # Do NOT import ycm_core at module scope. | ||||
|   import ycm_core | ||||
|  | ||||
|   global database | ||||
|   if database is None and p.exists( compilation_database_folder ): | ||||
|     database = ycm_core.CompilationDatabase( compilation_database_folder ) | ||||
|  | ||||
|   language = kwargs[ 'language' ] | ||||
|  | ||||
|   if language == 'cfamily': | ||||
|     # If the file is a header, try to find the corresponding source file and | ||||
|     # retrieve its flags from the compilation database if using one. This is | ||||
|     # necessary since compilation databases don't have entries for header files. | ||||
|     # In addition, use this source file as the translation unit. This makes it | ||||
|     # possible to jump from a declaration in the header file to its definition | ||||
|     # in the corresponding source file. | ||||
|     filename = FindCorrespondingSourceFile( kwargs[ 'filename' ] ) | ||||
|  | ||||
|     if not database: | ||||
|       return { | ||||
|         'flags': flags, | ||||
|         'include_paths_relative_to_dir': DIR_OF_THIS_SCRIPT, | ||||
|         'override_filename': filename | ||||
|       } | ||||
|  | ||||
|     compilation_info = database.GetCompilationInfoForFile( filename ) | ||||
|     if not compilation_info.compiler_flags_: | ||||
|       return {} | ||||
|  | ||||
|     # Bear in mind that compilation_info.compiler_flags_ does NOT return a | ||||
|     # python list, but a "list-like" StringVec object. | ||||
|     final_flags = list( compilation_info.compiler_flags_ ) | ||||
|  | ||||
|     # NOTE: This is just for YouCompleteMe; it's highly likely that your project | ||||
|     # does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR | ||||
|     # ycm_extra_conf IF YOU'RE NOT 100% SURE YOU NEED IT. | ||||
|     try: | ||||
|       final_flags.remove( '-stdlib=libc++' ) | ||||
|     except ValueError: | ||||
|       pass | ||||
|  | ||||
|     return { | ||||
|       'flags': final_flags, | ||||
|       'include_paths_relative_to_dir': compilation_info.compiler_working_dir_, | ||||
|       'override_filename': filename | ||||
|     } | ||||
|  | ||||
|   if language == 'python': | ||||
|     return { | ||||
|       'interpreter_path': PathToPythonUsedDuringBuild() | ||||
|     } | ||||
|  | ||||
|   return {} | ||||
|  | ||||
|  | ||||
| def PythonSysPath( **kwargs ): | ||||
|   sys_path = kwargs[ 'sys_path' ] | ||||
|  | ||||
|   interpreter_path = kwargs[ 'interpreter_path' ] | ||||
|   major_version = subprocess.check_output( [ | ||||
|     interpreter_path, '-c', 'import sys; print( sys.version_info[ 0 ] )' ] | ||||
|   ).rstrip().decode( 'utf8' ) | ||||
|  | ||||
|   sys_path[ 0:0 ] = [ p.join( DIR_OF_THIS_SCRIPT ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'bottle' ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'cregex', | ||||
|                               'regex_{}'.format( major_version ) ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'frozendict' ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'jedi_deps', 'jedi' ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'jedi_deps', 'parso' ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'requests_deps', 'requests' ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'requests_deps', | ||||
|                                                   'urllib3', | ||||
|                                                   'src' ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'requests_deps', | ||||
|                                                   'chardet' ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'requests_deps', | ||||
|                                                   'certifi' ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'requests_deps', | ||||
|                                                   'idna' ), | ||||
|                       p.join( DIR_OF_THIRD_PARTY, 'waitress' ) ] | ||||
|  | ||||
|   sys_path.append( p.join( DIR_OF_THIRD_PARTY, 'jedi_deps', 'numpydoc' ) ) | ||||
|   return sys_path | ||||
		Reference in New Issue
	
	Block a user