mirror of
https://github.com/powerline/powerline.git
synced 2025-07-29 16:55:07 +02:00
Merge pull request #1056 from ZyX-I/vim-troubleshooting
Improve vim troubleshooting
This commit is contained in:
commit
31ccd2907a
@ -103,7 +103,7 @@ class PowerlineLogger(object):
|
||||
_fallback_logger = None
|
||||
|
||||
|
||||
def get_fallback_logger():
|
||||
def get_fallback_logger(stream=None):
|
||||
global _fallback_logger
|
||||
if _fallback_logger:
|
||||
return _fallback_logger
|
||||
@ -112,7 +112,7 @@ def get_fallback_logger():
|
||||
formatter = logging.Formatter(log_format)
|
||||
|
||||
level = logging.WARNING
|
||||
handler = logging.StreamHandler()
|
||||
handler = logging.StreamHandler(stream)
|
||||
handler.setLevel(level)
|
||||
handler.setFormatter(formatter)
|
||||
|
||||
@ -195,7 +195,7 @@ def load_config(cfg_path, find_config_files, config_loader, loader_callback=None
|
||||
return ret
|
||||
|
||||
|
||||
def _get_log_handler(common_config):
|
||||
def _get_log_handler(common_config, stream=None):
|
||||
'''Get log handler.
|
||||
|
||||
:param dict common_config:
|
||||
@ -211,17 +211,17 @@ def _get_log_handler(common_config):
|
||||
os.mkdir(log_dir)
|
||||
return logging.FileHandler(log_file)
|
||||
else:
|
||||
return logging.StreamHandler()
|
||||
return logging.StreamHandler(stream)
|
||||
|
||||
|
||||
def create_logger(common_config):
|
||||
def create_logger(common_config, stream=None):
|
||||
'''Create logger according to provided configuration
|
||||
'''
|
||||
log_format = common_config['log_format']
|
||||
formatter = logging.Formatter(log_format)
|
||||
|
||||
level = getattr(logging, common_config['log_level'])
|
||||
handler = _get_log_handler(common_config)
|
||||
handler = _get_log_handler(common_config, stream)
|
||||
handler.setLevel(level)
|
||||
handler.setFormatter(formatter)
|
||||
|
||||
@ -456,7 +456,7 @@ class Powerline(object):
|
||||
self.import_paths = self.common_config['paths']
|
||||
|
||||
if not self.logger:
|
||||
self.logger = create_logger(self.common_config)
|
||||
self.logger = create_logger(self.common_config, self.default_log_stream)
|
||||
|
||||
if not self.pl:
|
||||
self.pl = PowerlineLogger(self.use_daemon_threads, self.logger, self.ext)
|
||||
@ -562,6 +562,14 @@ class Powerline(object):
|
||||
else:
|
||||
self.renderer = renderer
|
||||
|
||||
default_log_stream = sys.stdout
|
||||
'''Default stream for default log handler
|
||||
|
||||
Usually it is ``sys.stderr``, but there is sometimes a reason to prefer
|
||||
``sys.stdout`` or a custom file-like object. It is not supposed to be used
|
||||
to write to some file.
|
||||
'''
|
||||
|
||||
def setup_components(self, components):
|
||||
'''Run component-specific setup
|
||||
|
||||
@ -847,7 +855,7 @@ class Powerline(object):
|
||||
if 'prefix' not in kwargs:
|
||||
kwargs['prefix'] = 'powerline'
|
||||
exception = kwargs.pop('exception', None)
|
||||
pl = getattr(self, 'pl', None) or get_fallback_logger()
|
||||
pl = getattr(self, 'pl', None) or get_fallback_logger(self.default_log_stream)
|
||||
if exception:
|
||||
try:
|
||||
reraise(exception)
|
||||
|
@ -99,6 +99,7 @@ finally
|
||||
echohl None
|
||||
call s:rcmd("def powerline_troubleshoot():")
|
||||
call s:rcmd(" import sys")
|
||||
call s:rcmd(" import vim")
|
||||
call s:rcmd(" if sys.version_info < (2, 6):")
|
||||
call s:rcmd(" print('Too old python version: ' + sys.version + ' (first supported is 2.6)')")
|
||||
call s:rcmd(" elif sys.version_info[0] == 3 and sys.version_info[1] < 2:")
|
||||
@ -123,10 +124,12 @@ finally
|
||||
call s:rcmd(" print('neither it is installed system-wide')")
|
||||
call s:rcmd(" real_powerline_dir = os.path.realpath(powerline_dir)")
|
||||
call s:rcmd(" real_this_dir = os.path.realpath(this_dir)")
|
||||
call s:rcmd(" if powerline_appended_path is not None and real_this_dir != powerline_appended_path:")
|
||||
call s:rcmd(" this_dir_par = os.path.dirname(real_this_dir)")
|
||||
call s:rcmd(" powerline_appended_path = globals().get('powerline_appended_path')")
|
||||
call s:rcmd(" if powerline_appended_path is not None and this_dir_par != powerline_appended_path:")
|
||||
call s:rcmd(" print('Check your installation: this script is symlinked somewhere')")
|
||||
call s:rcmd(" print('where powerline is not present: {0!r} != {1!r}.'.format(")
|
||||
call s:rcmd(" real_this_dir, sys.path[-1]))")
|
||||
call s:rcmd(" real_this_dir, powerline_appended_path))")
|
||||
call s:rcmd(" elif real_powerline_dir != real_this_dir:")
|
||||
call s:rcmd(" print('It appears that you have two powerline versions installed:')")
|
||||
call s:rcmd(" print('one in ' + real_powerline_dir + ', other in ' + real_this_dir + '.')")
|
||||
|
@ -31,6 +31,8 @@ class VimPowerline(Powerline):
|
||||
self.pyeval = pyeval
|
||||
self.window_statusline = '%!' + pyeval + '(\'powerline.statusline({0})\')'
|
||||
|
||||
default_log_stream = sys.stdout
|
||||
|
||||
def add_local_theme(self, key, config):
|
||||
'''Add local themes at runtime (during vim session).
|
||||
|
||||
|
@ -3,6 +3,9 @@ set encoding=utf-8
|
||||
let g:powerline_config_path = expand('<sfile>:p:h:h') . '/powerline/config_files'
|
||||
let g:powerline_config_overrides = {'common': {'default_top_theme': 'ascii'}}
|
||||
let g:powerline_theme_overrides__default = {'segment_data': {'line_current_symbol': {'contents': 'LN '}, 'branch': {'before': 'B '}}}
|
||||
|
||||
redir => g:messages
|
||||
|
||||
try
|
||||
python import powerline.vim
|
||||
let pycmd = 'python'
|
||||
@ -36,4 +39,10 @@ if result isnot# '%#Pl_22_24320_148_11523840_bold# NORMAL %#Pl_148_11523840_236_
|
||||
cquit
|
||||
endif
|
||||
|
||||
redir END
|
||||
if g:messages =~ '\S'
|
||||
call writefile(['Non-empty messages:', g:messages], 'message.fail')
|
||||
cquit
|
||||
endif
|
||||
|
||||
qall!
|
||||
|
@ -6,6 +6,8 @@ edit abc
|
||||
tabedit def
|
||||
tabedit ghi
|
||||
|
||||
redir => g:messages
|
||||
|
||||
try
|
||||
let &columns = 80
|
||||
let result = eval(&tabline[2:])
|
||||
@ -45,4 +47,10 @@ if result isnot# '%#Pl_240_5789784_235_2500134_NONE# 1 %#Pl_240_5789784_235_25
|
||||
cquit
|
||||
endif
|
||||
|
||||
redir END
|
||||
if g:messages =~ '\S'
|
||||
call writefile(['Non-empty messages:', g:messages], 'message.fail')
|
||||
cquit
|
||||
endif
|
||||
|
||||
qall!
|
||||
|
Loading…
x
Reference in New Issue
Block a user