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
|
_fallback_logger = None
|
||||||
|
|
||||||
|
|
||||||
def get_fallback_logger():
|
def get_fallback_logger(stream=None):
|
||||||
global _fallback_logger
|
global _fallback_logger
|
||||||
if _fallback_logger:
|
if _fallback_logger:
|
||||||
return _fallback_logger
|
return _fallback_logger
|
||||||
@ -112,7 +112,7 @@ def get_fallback_logger():
|
|||||||
formatter = logging.Formatter(log_format)
|
formatter = logging.Formatter(log_format)
|
||||||
|
|
||||||
level = logging.WARNING
|
level = logging.WARNING
|
||||||
handler = logging.StreamHandler()
|
handler = logging.StreamHandler(stream)
|
||||||
handler.setLevel(level)
|
handler.setLevel(level)
|
||||||
handler.setFormatter(formatter)
|
handler.setFormatter(formatter)
|
||||||
|
|
||||||
@ -195,7 +195,7 @@ def load_config(cfg_path, find_config_files, config_loader, loader_callback=None
|
|||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
def _get_log_handler(common_config):
|
def _get_log_handler(common_config, stream=None):
|
||||||
'''Get log handler.
|
'''Get log handler.
|
||||||
|
|
||||||
:param dict common_config:
|
:param dict common_config:
|
||||||
@ -211,17 +211,17 @@ def _get_log_handler(common_config):
|
|||||||
os.mkdir(log_dir)
|
os.mkdir(log_dir)
|
||||||
return logging.FileHandler(log_file)
|
return logging.FileHandler(log_file)
|
||||||
else:
|
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
|
'''Create logger according to provided configuration
|
||||||
'''
|
'''
|
||||||
log_format = common_config['log_format']
|
log_format = common_config['log_format']
|
||||||
formatter = logging.Formatter(log_format)
|
formatter = logging.Formatter(log_format)
|
||||||
|
|
||||||
level = getattr(logging, common_config['log_level'])
|
level = getattr(logging, common_config['log_level'])
|
||||||
handler = _get_log_handler(common_config)
|
handler = _get_log_handler(common_config, stream)
|
||||||
handler.setLevel(level)
|
handler.setLevel(level)
|
||||||
handler.setFormatter(formatter)
|
handler.setFormatter(formatter)
|
||||||
|
|
||||||
@ -456,7 +456,7 @@ class Powerline(object):
|
|||||||
self.import_paths = self.common_config['paths']
|
self.import_paths = self.common_config['paths']
|
||||||
|
|
||||||
if not self.logger:
|
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:
|
if not self.pl:
|
||||||
self.pl = PowerlineLogger(self.use_daemon_threads, self.logger, self.ext)
|
self.pl = PowerlineLogger(self.use_daemon_threads, self.logger, self.ext)
|
||||||
@ -562,6 +562,14 @@ class Powerline(object):
|
|||||||
else:
|
else:
|
||||||
self.renderer = renderer
|
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):
|
def setup_components(self, components):
|
||||||
'''Run component-specific setup
|
'''Run component-specific setup
|
||||||
|
|
||||||
@ -847,7 +855,7 @@ class Powerline(object):
|
|||||||
if 'prefix' not in kwargs:
|
if 'prefix' not in kwargs:
|
||||||
kwargs['prefix'] = 'powerline'
|
kwargs['prefix'] = 'powerline'
|
||||||
exception = kwargs.pop('exception', None)
|
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:
|
if exception:
|
||||||
try:
|
try:
|
||||||
reraise(exception)
|
reraise(exception)
|
||||||
|
@ -99,6 +99,7 @@ finally
|
|||||||
echohl None
|
echohl None
|
||||||
call s:rcmd("def powerline_troubleshoot():")
|
call s:rcmd("def powerline_troubleshoot():")
|
||||||
call s:rcmd(" import sys")
|
call s:rcmd(" import sys")
|
||||||
|
call s:rcmd(" import vim")
|
||||||
call s:rcmd(" if sys.version_info < (2, 6):")
|
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(" 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:")
|
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(" print('neither it is installed system-wide')")
|
||||||
call s:rcmd(" real_powerline_dir = os.path.realpath(powerline_dir)")
|
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(" 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('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(" 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(" elif real_powerline_dir != real_this_dir:")
|
||||||
call s:rcmd(" print('It appears that you have two powerline versions installed:')")
|
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 + '.')")
|
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.pyeval = pyeval
|
||||||
self.window_statusline = '%!' + pyeval + '(\'powerline.statusline({0})\')'
|
self.window_statusline = '%!' + pyeval + '(\'powerline.statusline({0})\')'
|
||||||
|
|
||||||
|
default_log_stream = sys.stdout
|
||||||
|
|
||||||
def add_local_theme(self, key, config):
|
def add_local_theme(self, key, config):
|
||||||
'''Add local themes at runtime (during vim session).
|
'''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_path = expand('<sfile>:p:h:h') . '/powerline/config_files'
|
||||||
let g:powerline_config_overrides = {'common': {'default_top_theme': 'ascii'}}
|
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 '}}}
|
let g:powerline_theme_overrides__default = {'segment_data': {'line_current_symbol': {'contents': 'LN '}, 'branch': {'before': 'B '}}}
|
||||||
|
|
||||||
|
redir => g:messages
|
||||||
|
|
||||||
try
|
try
|
||||||
python import powerline.vim
|
python import powerline.vim
|
||||||
let pycmd = 'python'
|
let pycmd = 'python'
|
||||||
@ -36,4 +39,10 @@ if result isnot# '%#Pl_22_24320_148_11523840_bold# NORMAL %#Pl_148_11523840_236_
|
|||||||
cquit
|
cquit
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
redir END
|
||||||
|
if g:messages =~ '\S'
|
||||||
|
call writefile(['Non-empty messages:', g:messages], 'message.fail')
|
||||||
|
cquit
|
||||||
|
endif
|
||||||
|
|
||||||
qall!
|
qall!
|
||||||
|
@ -6,6 +6,8 @@ edit abc
|
|||||||
tabedit def
|
tabedit def
|
||||||
tabedit ghi
|
tabedit ghi
|
||||||
|
|
||||||
|
redir => g:messages
|
||||||
|
|
||||||
try
|
try
|
||||||
let &columns = 80
|
let &columns = 80
|
||||||
let result = eval(&tabline[2:])
|
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
|
cquit
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
redir END
|
||||||
|
if g:messages =~ '\S'
|
||||||
|
call writefile(['Non-empty messages:', g:messages], 'message.fail')
|
||||||
|
cquit
|
||||||
|
endif
|
||||||
|
|
||||||
qall!
|
qall!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user