Adding the YcmDebugInfo command
This commit is contained in:
parent
90c495a9c7
commit
e8b60fd537
@ -405,6 +405,17 @@ function! youcompleteme#CurrentFileDiagnostics()
|
||||
endfunction
|
||||
|
||||
|
||||
function! s:DebugInfo()
|
||||
echom "Printing YouCompleteMe debug information..."
|
||||
let debug_info = pyeval( 'ycm_state.DebugInfo()' )
|
||||
for line in split( debug_info, "\n" )
|
||||
echom '-- ' . line
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
command! YcmDebugInfo call s:DebugInfo()
|
||||
|
||||
|
||||
" This is basic vim plugin boilerplate
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
@ -196,4 +196,8 @@ Diagnostic DiagnosticWrapToDiagnostic( DiagnosticWrap diagnostic_wrap ) {
|
||||
return diagnostic;
|
||||
}
|
||||
|
||||
std::string ClangVersion() {
|
||||
return CXStringToString( clang_getClangVersion() );
|
||||
}
|
||||
|
||||
} // namespace YouCompleteMe
|
||||
|
@ -42,6 +42,8 @@ std::vector< CXUnsavedFile > ToCXUnsavedFiles(
|
||||
|
||||
Diagnostic DiagnosticWrapToDiagnostic( DiagnosticWrap diagnostic_wrap );
|
||||
|
||||
std::string ClangVersion();
|
||||
|
||||
} // namespace YouCompleteMe
|
||||
|
||||
#endif /* end of include guard: CLANGUTILS_H_9MVHQLJS */
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#ifdef USE_CLANG_COMPLETER
|
||||
# include "ClangCompleter.h"
|
||||
# include "ClangUtils.h"
|
||||
# include "CompletionData.h"
|
||||
# include "Diagnostic.h"
|
||||
# include "UnsavedFile.h"
|
||||
@ -70,6 +71,8 @@ BOOST_PYTHON_MODULE(ycm_core)
|
||||
.def( "GetResults", &Future< void >::GetResults );
|
||||
|
||||
#ifdef USE_CLANG_COMPLETER
|
||||
def( "ClangVersion", ClangVersion );
|
||||
|
||||
class_< Future< AsyncCompletions > >( "FutureCompletions" )
|
||||
.def( "ResultsReady", &Future< AsyncCompletions >::ResultsReady )
|
||||
.def( "GetResults", &Future< AsyncCompletions >::GetResults );
|
||||
|
@ -90,3 +90,7 @@ class Completer( object ):
|
||||
@abc.abstractmethod
|
||||
def ShouldUseNow( self, start_column ):
|
||||
pass
|
||||
|
||||
|
||||
def DebugInfo( self ):
|
||||
return ''
|
||||
|
@ -23,6 +23,7 @@ import vim
|
||||
import utils
|
||||
import os
|
||||
import sys
|
||||
import ycm_core
|
||||
from completers.all.identifier_completer import IdentifierCompleter
|
||||
|
||||
FILETYPE_SPECIFIC_COMPLETION_TO_DISABLE = vim.eval(
|
||||
@ -124,6 +125,28 @@ class YouCompleteMe( object ):
|
||||
self.GetFiletypeCompleterForCurrentFile().OnCurrentIdentifierFinished()
|
||||
|
||||
|
||||
def DebugInfo( self ):
|
||||
completers = set( self.filetype_completers.values() )
|
||||
completers.add( self.identcomp )
|
||||
output = []
|
||||
for completer in completers:
|
||||
if not completer:
|
||||
continue
|
||||
debug = completer.DebugInfo()
|
||||
if debug:
|
||||
output.append( debug )
|
||||
|
||||
has_clang_support = ycm_core.HasClangSupport()
|
||||
output.append( 'Has Clang support compiled in: {0}'.format(
|
||||
has_clang_support ) )
|
||||
|
||||
if has_clang_support:
|
||||
output.append( ycm_core.ClangVersion() )
|
||||
|
||||
return '\n'.join( output )
|
||||
|
||||
|
||||
|
||||
def _PathToCompletersFolder():
|
||||
dir_of_current_script = os.path.dirname( os.path.abspath( __file__ ) )
|
||||
return os.path.join( dir_of_current_script, 'completers' )
|
||||
|
Loading…
Reference in New Issue
Block a user