about summary refs log tree commit diff stats
path: root/vimrc.vim
Commit message (Expand)AuthorAgeFilesLines
* 6565 - support tmux in control modeKartik Agaram2020-06-211-2/+2
* 6427Kartik Agaram2020-05-291-7/+13
* mu.subx: 6 failing tests remainingKartik Agaram2020-05-221-2/+2
* mu.subx: first code-gen test passing!Kartik Agaram2020-05-181-1/+2
* 6215 - show call stack in traceKartik Agaram2020-05-031-0/+4
* 6027Kartik Agaram2020-02-201-1/+0
* 5966 - document all supported Mu instructionsKartik Agaram2020-01-311-2/+2
* 5856Kartik Agaram2020-01-011-9/+1
* 5758Kartik Agaram2019-11-251-5/+2
* 5749Kartik Agaram2019-11-171-1/+1
* 5662Kartik Agaram2019-09-151-2/+2
* 5643Kartik Agaram2019-09-081-9/+5
* 5642Kartik Agaram2019-09-071-1/+1
* 5641Kartik Agaram2019-09-071-8/+0
* 5640Kartik Agaram2019-09-071-3/+6
* 5639 - tmux support for running a single testKartik Agaram2019-09-071-18/+35
* 5618Kartik Agaram2019-09-041-0/+2
* 5617Kartik Agarampre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# Copyright (C) 2009, 2010, 2011  Roman Zimbelmann <romanz@lavabit.com>
# This software is distributed under the terms of the GNU GPL version 3.

"""Helper functions"""

from errno import EEXIST
import os.path
import sys
from ranger import *

def parse_arguments():
	"""Parse the program arguments"""
	from optparse import OptionParser
	from ranger import __version__
	from ranger.ext.openstruct import OpenStruct
	from os.path import expanduser

	if 'XDG_CONFIG_HOME' in os.environ and os.environ['XDG_CONFIG_HOME']:
		default_confdir = 
* 4568Kartik Agaram2018-09-211-1/+5
* 4474Kartik Agaram2018-08-041-8/+1
* 4323Kartik Agaram2018-07-071-0/+13
* 4299Kartik Agaram2018-06-301-2/+1
* 4262 - literal 'null'Kartik Agaram2018-06-171-1/+2
* 4261 - start using literals for 'true' and 'false'Kartik Agaram2018-06-171-0/+1
* 3976Kartik K. Agaram2017-08-201-1/+0
* 3707Kartik K. Agaram2016-12-121-1/+3
* 3566Kartik K. Agaram2016-10-231-3/+4
* 3561Kartik K. Agaram2016-10-221-2/+2
* 3431Kartik K. Agaram2016-09-301-0/+12
arser.add_option('-m', '--mode', type='int', default=0, metavar='n', help="if a filename is supplied, run it with this mode") parser.add_option('-f', '--flags', type='string', default='', metavar='string', help="if a filename is supplied, run it with these flags.") parser.add_option('--choosefile', type='string', metavar='TARGET', help="Makes ranger act like a file chooser. When opening " "a file, it will quit and write the name of the selected " "file to TARGET.") parser.add_option('--choosefiles', type='string', metavar='TARGET', help="Makes ranger act like a file chooser for multiple files " "at once. When opening a file, it will quit and write the name " "of all selected files to TARGET.") parser.add_option('--choosedir', type='string', metavar='TARGET', help="Makes ranger act like a directory chooser. When ranger quits" ", it will write the name of the last visited directory to TARGET") parser.add_option('--list-unused-keys', action='store_true', help="List common keys which are not bound to any action.") parser.add_option('--selectfile', type='string', metavar='filepath', help="Open ranger with supplied file selected.") parser.add_option('--list-tagged-files', type='string', default=None, metavar='tag', help="List all files which are tagged with the given tag, default: *") parser.add_option('--profile', action='store_true', help="Print statistics of CPU usage on exit.") parser.add_option('--cmd', action='append', type='string', metavar='COMMAND', help="Execute COMMAND after the configuration has been read. " "Use this option multiple times to run multiple commands.") options, positional = parser.parse_args() arg = OpenStruct(options.__dict__, targets=positional) arg.confdir = expanduser(arg.confdir) return arg def load_settings(fm, clean): from ranger.core.actions import Actions import ranger.core.shared import ranger.api.commands from ranger.defaults import commands # Load default commands fm.commands = ranger.api.commands.CommandContainer() exclude = ['settings'] include = [name for name in dir(Actions) if name not in exclude] fm.commands.load_commands_from_object(fm, include) fm.commands.load_commands_from_module(commands) if not clean: allow_access_to_confdir(ranger.arg.confdir, True) # Load custom commands try: import commands fm.commands.load_commands_from_module(commands) except ImportError: pass # Load rc.conf custom_conf = fm.confpath('rc.conf') default_conf = fm.relpath('defaults', 'rc.conf') load_default_rc = fm.settings.load_default_rc if load_default_rc: fm.source(default_conf) if os.access(custom_conf, os.R_OK): fm.source(custom_conf) # XXX Load plugins (experimental) try: plugindir = fm.confpath('plugins') plugins = [p[:-3] for p in os.listdir(plugindir) \ if p.endswith('.py') and not p.startswith('_')] except: pass else: if not os.path.exists(fm.confpath('plugins', '__init__.py')): f = open(fm.confpath('plugins', '__init__.py'), 'w') f.close() ranger.fm = fm for plugin in sorted(plugins): try: module = __import__('plugins', fromlist=[plugin]) fm.log.append("Loaded plugin '%s'." % module) except Exception as e: fm.log.append("Error in plugin '%s'" % plugin) import traceback for line in traceback.format_exception_only(type(e), e): fm.log.append(line) ranger.fm = None allow_access_to_confdir(ranger.arg.confdir, False) else: fm.source(fm.relpath('defaults', 'rc.conf')) def allow_access_to_confdir(confdir, allow): if allow: try: os.makedirs(confdir) except OSError as err: if err.errno != EEXIST: # EEXIST means it already exists print("This configuration directory could not be created:") print(confdir) print("To run ranger without the need for configuration") print("files, use the --clean option.") raise SystemExit() if not confdir in sys.path: sys.path[0:0] = [confdir] else: if sys.path[0] == confdir: del sys.path[0] # Debugging functions. These will be activated when run with --debug. # Example usage in the code: # import ranger; ranger.log("hello world") def log(*objects, **keywords): """ Writes objects to a logfile (for the purpose of debugging only.) Has the same arguments as print() in python3. """ from ranger import arg if LOGFILE is None or not arg.debug or arg.clean: return start = 'start' in keywords and keywords['start'] or 'ranger:' sep = 'sep' in keywords and keywords['sep'] or ' ' _file = 'file' in keywords and keywords['file'] or open(LOGFILE, 'a') end = 'end' in keywords and keywords['end'] or '\n' _file.write(sep.join(map(str, (start, ) + objects)) + end) def log_traceback(): from ranger import arg if LOGFILE is None or not arg.debug or arg.clean: return import traceback traceback.print_stack(file=open(LOGFILE, 'a'))