Created
January 16, 2016 19:20
-
-
Save Stewmath/d5eb9765d8b0013cd189 to your computer and use it in GitHub Desktop.
YCM + Omnisharp test case
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set nocompatible | |
execute pathogen#infect() | |
syntax on |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" $HOME/.vim/plugin/omnisharp.vim | |
"This is the default value, setting it isn't actually necessary | |
let g:OmniSharp_host = "http://localhost:2000" | |
"let g:OmniSharp_server_type = 'roslyn' | |
"Set the type lookup function to use the preview window instead of the status line | |
"let g:OmniSharp_typeLookupInPreview = 1 | |
"Timeout in seconds to wait for a response from the server | |
let g:OmniSharp_timeout = 1 | |
"Showmatch significantly slows down omnicomplete | |
"when the first match contains parentheses. | |
set noshowmatch | |
"Super tab settings - uncomment the next 4 lines | |
"let g:SuperTabDefaultCompletionType = 'context' | |
"let g:SuperTabContextDefaultCompletionType = "<c-x><c-o>" | |
"let g:SuperTabDefaultCompletionTypeDiscovery = ["&omnifunc:<c-x><c-o>","&completefunc:<c-x><c-n>"] | |
"let g:SuperTabClosePreviewOnPopupClose = 1 | |
"don't autoselect first item in omnicomplete, show if only one item (for preview) | |
"remove preview if you don't want to see any documentation whatsoever. | |
set completeopt=longest,menuone,preview | |
" Fetch full documentation during omnicomplete requests. | |
" There is a performance penalty with this (especially on Mono) | |
" By default, only Type/Method signatures are fetched. Full documentation can still be fetched when | |
" you need it with the :OmniSharpDocumentation command. | |
" let g:omnicomplete_fetch_documentation=1 | |
" Get Code Issues and syntax errors | |
let g:syntastic_cs_checkers = ['syntax', 'semantic', 'issues'] | |
" If you are using the omnisharp-roslyn backend, use the following | |
" let g:syntastic_cs_checkers = ['code_checker'] | |
augroup omnisharp_commands | |
autocmd! | |
"Set autocomplete function to OmniSharp (if not using YouCompleteMe completion plugin) | |
autocmd FileType cs setlocal omnifunc=OmniSharp#Complete | |
" Synchronous build (blocks Vim) | |
"autocmd FileType cs nnoremap <F5> :wa!<cr>:OmniSharpBuild<cr> | |
" Builds can also run asynchronously with vim-dispatch installed | |
autocmd FileType cs nnoremap <leader>b :wa!<cr>:OmniSharpBuildAsync<cr> | |
" automatic syntax check on events (TextChanged requires Vim 7.4) | |
" if v:version >= 704 | |
" autocmd BufEnter,TextChanged,InsertLeave *.cs SyntasticCheck | |
" endif | |
" Automatically add new cs files to the nearest project on save | |
autocmd BufWritePost *.cs call OmniSharp#AddToProject() | |
"show type information automatically when the cursor stops moving | |
autocmd CursorHold *.cs call OmniSharp#TypeLookupWithoutDocumentation() | |
"The following commands are contextual, based on the current cursor position. | |
autocmd FileType cs nnoremap gd :OmniSharpGotoDefinition<cr> | |
autocmd FileType cs nnoremap <leader>fi :OmniSharpFindImplementations<cr> | |
autocmd FileType cs nnoremap <leader>ft :OmniSharpFindType<cr> | |
autocmd FileType cs nnoremap <leader>fs :OmniSharpFindSymbol<cr> | |
autocmd FileType cs nnoremap <leader>fu :OmniSharpFindUsages<cr> | |
"finds members in the current buffer | |
autocmd FileType cs nnoremap <leader>fm :OmniSharpFindMembers<cr> | |
" cursor can be anywhere on the line containing an issue | |
autocmd FileType cs nnoremap <leader>x :OmniSharpFixIssue<cr> | |
autocmd FileType cs nnoremap <leader>fx :OmniSharpFixUsings<cr> | |
autocmd FileType cs nnoremap <leader>tt :OmniSharpTypeLookup<cr> | |
autocmd FileType cs nnoremap <leader>dc :OmniSharpDocumentation<cr> | |
"navigate up by method/property/field | |
autocmd FileType cs nnoremap <C-K> :OmniSharpNavigateUp<cr> | |
"navigate down by method/property/field | |
autocmd FileType cs nnoremap <C-J> :OmniSharpNavigateDown<cr> | |
augroup END | |
" Contextual code actions (requires CtrlP or unite.vim) | |
nnoremap <leader><space> :OmniSharpGetCodeActions<cr> | |
" Run code actions with text selected in visual mode to extract method | |
vnoremap <leader><space> :call OmniSharp#GetCodeActions('visual')<cr> | |
" rename with dialog | |
nnoremap <leader>nm :OmniSharpRename<cr> | |
"nnoremap <F2> :OmniSharpRename<cr> | |
" rename without dialog - with cursor on the symbol to rename... ':Rename newname' | |
command! -nargs=1 Rename :call OmniSharp#RenameTo("<args>") | |
" Force OmniSharp to reload the solution. Useful when switching branches etc. | |
nnoremap <leader>ls :OmniSharpReloadSolution<cr> | |
nnoremap <leader>cf :OmniSharpCodeFormat<cr> | |
" Load the current .cs file to the nearest project | |
nnoremap <leader>tp :OmniSharpAddToProject<cr> | |
" (Experimental - uses vim-dispatch or vimproc plugin) - Start the omnisharp server for the current solution | |
nnoremap <leader>ss :OmniSharpStartServer<cr> | |
nnoremap <leader>sp :OmniSharpStopServer<cr> | |
" Add syntax highlighting for types and interfaces | |
nnoremap <leader>th :OmniSharpHighlightTypes<cr> | |
"Don't ask to save when changing buffers (i.e. when jumping to a type definition) | |
set hidden |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
ycm compile --omnisharp-completer, how work with dotnet core?
You have experience in this?