feat(vim): start moving back
This commit is contained in:
parent
a533f76a3c
commit
c281311657
70 changed files with 462 additions and 2610 deletions
|
|
@ -10,8 +10,7 @@
|
||||||
# Edit commands with file previews using `fd` to search files to exclude files
|
# Edit commands with file previews using `fd` to search files to exclude files
|
||||||
# to improve performance
|
# to improve performance
|
||||||
#
|
#
|
||||||
alias fe="e \"\$(FZF_DEFAULT_COMMAND=\"fd -t f\" fzf --layout=reverse --preview 'bat --style=numbers ---color=always {}')\""
|
alias fe="vim \"\$(FZF_DEFAULT_COMMAND=\"fd -t f\" fzf --layout=reverse --preview 'bat --style=numbers ---color=always {}')\""
|
||||||
alias fte="te \"\$(FZF_DEFAULT_COMMAND=\"fd -t f\" fzf --layout=reverse --preview 'bat --style=numbers ---color=always {}')\""
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# cd in to a porject directory
|
# cd in to a porject directory
|
||||||
|
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
snippet date "YYYY-MM-DD" w
|
|
||||||
`!v strftime("%Y-%m-%d")`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ddate "Month DD, YYYY" w
|
|
||||||
`!v strftime("%b %d, %Y")`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet diso "ISO format datetime" w
|
|
||||||
`!v strftime("%Y-%m-%d %H:%M:%S%z")`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet time "hh:mm" w
|
|
||||||
`!v strftime("%H:%M")`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet datetime "YYYY-MM-DD hh:mm" w
|
|
||||||
`!v strftime("%Y-%m-%d %H:%M")`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet uuid "Random UUID" w
|
|
||||||
`!p if not snip.c: import uuid; snip.rv = uuid.uuid4()`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
snippet fix "Bug fix commit message" b
|
|
||||||
fix(${1:category}): ${2:title}
|
|
||||||
|
|
||||||
${3:description}
|
|
||||||
|
|
||||||
fixes issue ${4:issue number}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet feat "Feature commit message" b
|
|
||||||
feat(${1:category}): ${2:title}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet chore "Chore commit message" b
|
|
||||||
chore(${1:category}): ${2:title}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ci "Continuous intergration commit message" b
|
|
||||||
ci(${1:category}): ${2:title}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet docs "Documentation commit message" b
|
|
||||||
docs(${1:category}): ${2:title}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet test "Test commit message" b
|
|
||||||
test(${1:category}): ${2:title}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet style "Code styling commit message" b
|
|
||||||
style(${1:category}): ${2:title}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet perf "Performance commit message" b
|
|
||||||
perf(${1:category}): ${2:title}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet refactor "Refactor commit message" b
|
|
||||||
refactor(${1:category}): ${2:title}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet bc "Breaking change" b
|
|
||||||
BREAKING CHANGE: ${0:Description}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
|
|
||||||
snippet /^import/ "Import declaration" r
|
|
||||||
import (
|
|
||||||
"${1:package}"
|
|
||||||
)
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet struct "Struct declaration" b
|
|
||||||
type ${1:Struct} struct {
|
|
||||||
${0:${VISUAL}}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet interface "Interface declaration" b
|
|
||||||
type ${1:Interface} interface {
|
|
||||||
${0:${VISUAL}}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet if "If statement" b
|
|
||||||
if ${1:condition}${1/(.+)/ /}{
|
|
||||||
${0:${VISUAL}}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet switch "Switch statement" b
|
|
||||||
switch ${1:expression}${1/(.+)/ /}{
|
|
||||||
case$0
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet /^main/ "Main function" r
|
|
||||||
func main() {
|
|
||||||
${0:${VISUAL}}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet /^meth/ "Method" r
|
|
||||||
func (${1:receiver} ${2:type}) ${3:name}(${4:params})${5/(.+)/ /}${5:type} {
|
|
||||||
${0:${VISUAL}}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet func "Function" b
|
|
||||||
func ${1:name}(${2:params})${3/(.+)/ /}${3:type} {
|
|
||||||
${0:${VISUAL}}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet map "Map type" b
|
|
||||||
map[${1:keytype}]${2:valtype}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet : "Variable declaration :=" b
|
|
||||||
${1:name} := ${0:value}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet var "Variable declaration" b
|
|
||||||
var ${1:name}${2/(.+)/ /}${2:type}${3: = ${0:value}}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet vars "Variables declaration" b
|
|
||||||
var (
|
|
||||||
${1:name}${2/(.+)/ /}${2:type}${3: = ${0:value} }
|
|
||||||
)
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet json "JSON field"
|
|
||||||
\`json:"${1:displayName}"\`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet err "Basic error handling" b
|
|
||||||
if err != nil {
|
|
||||||
log.${1:Fatal}(err)
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
@ -1,172 +0,0 @@
|
||||||
snippet input "Input with Label" w
|
|
||||||
<label for="${2:${1/[[:alpha:]]+|( )/(?1:_:\L$0)/g}}">$1</label><input type="${3:text/submit/hidden/button}" name="${4:$2}" value="$5"${6: id="${7:$2}"}`!p x(snip)`>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet input "XHTML <input>" w
|
|
||||||
<input type="${1:text/submit/hidden/button}" name="${2:some_name}" value="$3"${4: id="${5:$2}"}`!p x(snip)`>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
||||||
snippet opt "Option" w
|
|
||||||
<option${1: value="${2:option}"}>${3:$2}</option>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet select "Select Box" w
|
|
||||||
<select name="${1:some_name}" id="${2:$1}"${3:${4: multiple}${5: onchange="${6:}"}${7: size="${8:1}"}}>
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</select>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
||||||
snippet textarea "XHTML <textarea>" w
|
|
||||||
<textarea name="${1:Name}" rows="${2:8}" cols="${3:40}">$0</textarea>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet mailto "XHTML <a mailto: >" w
|
|
||||||
<a href="mailto:${1:joe@example.com}?subject=${2:feedback}">${3:email me}</a>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet base "XHTML <base>" w
|
|
||||||
<base href="$1"${2: target="$3"}`!p x(snip)`>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet body "<body>"
|
|
||||||
<body>
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</body>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet div "<div>" w
|
|
||||||
<div>
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</div>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet div. "<div> with class" w
|
|
||||||
<div`!p snip.rv=' class="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""`>
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</div>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet div# "<div> with ID & class" w
|
|
||||||
<div`!p snip.rv=' id="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""``!p snip.rv=' class="' if t[2] else ""`${2:name}`!p snip.rv = '"' if t[2] else ""`>
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</div>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet form "XHTML <form>" w
|
|
||||||
<form action="${1:`!p
|
|
||||||
snip.rv = (snip.basename or 'unnamed') + '_submit'
|
|
||||||
`}" method="${2:get}" accept-charset="utf-8">
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</form>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet h1 "XHTML <h1>" w
|
|
||||||
<h1>${0:${VISUAL}}</h1>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet h2 "XHTML <h2>" w
|
|
||||||
<h2>${0:${VISUAL}}</h2>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet h3 "XHTML <h3>" w
|
|
||||||
<h3>${0:${VISUAL}}</h3>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet h4 "XHTML <h4>" w
|
|
||||||
<h4>${0:${VISUAL}}</h4>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet h5 "XHTML <h5>" w
|
|
||||||
<h5>${0:${VISUAL}}</h5>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet h6 "XHTML <h6>" w
|
|
||||||
<h6>${0:${VISUAL}}</h6>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet link "XHTML <link>" w
|
|
||||||
<link rel="${1:stylesheet}" href="${2:/css/master.css}" type="text/css" media="${3:screen}" title="${4:no title}" charset="${5:utf-8}"`!p x(snip)`>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet meta "XHTML <meta>" w
|
|
||||||
<meta name="${1:name}" content="${2:content}"`!p x(snip)`>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet scriptsrc "XHTML <script src...>" w
|
|
||||||
<script src="$1" type="text/javascript" charset="${3:utf-8}"></script>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet script "XHTML <script>" w
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</script>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet span "<span>" w
|
|
||||||
<span> ${0:${VISUAL}} </span>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet span. "<span> with class" w
|
|
||||||
<span`!p snip.rv=' class="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""`> ${0:${VISUAL}} </span>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet span# "<span> with ID & class" w
|
|
||||||
<span`!p snip.rv=' id="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""``!p snip.rv=' class="' if t[2] else ""`${2:name}`!p snip.rv = '"' if t[2] else ""`> ${0:${VISUAL}} </span>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet style "XHTML <style>" w
|
|
||||||
<style type="text/css" media="screen">
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</style>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet table "XHTML <table>" w
|
|
||||||
<table>
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</table>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet a "Link" w
|
|
||||||
<a href="${1:http://www.${2:url.com}}"${3: target="_blank"}>${4:Anchor Text}</a>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet p "paragraph" w
|
|
||||||
<p>${0:${VISUAL}}</p>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet li "list item" w
|
|
||||||
<li>${0:${VISUAL}}</li>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ul "unordered list" w
|
|
||||||
<ul>
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</ul>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet td "table cell" w
|
|
||||||
<td>${0:${VISUAL}}</td>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet th "table header" w
|
|
||||||
<th>${0:${VISUAL}}</th>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet tr "table row" w
|
|
||||||
<tr>${0:${VISUAL}}</tr>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet title "XHTML <title>" w
|
|
||||||
<title>${1:`!p snip.rv = snip.basename or "Page Title"`}</title>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet fieldset "Fieldset" w
|
|
||||||
<fieldset id="${1/[\w\d]+|( )/(?1:_:\L$0\E)/g}" ${2:class="${3:}"}>
|
|
||||||
<legend>$1</legend>
|
|
||||||
${0:${VISUAL}}
|
|
||||||
</fieldset>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
snippet php "php tag" i
|
|
||||||
<?php $0 ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpe "php echo tag" i
|
|
||||||
<?= $0 ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpif "php if statment" b
|
|
||||||
<?php if($1): ?>
|
|
||||||
$0
|
|
||||||
<?php endif; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpife "php if else statment" b
|
|
||||||
<? if ($1): ?>
|
|
||||||
$2
|
|
||||||
<? else: ?>
|
|
||||||
$0
|
|
||||||
<? endif; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpifeif "php if else if statment" b
|
|
||||||
<? if ($1): ?>
|
|
||||||
$2
|
|
||||||
<? elseif ($3): ?>
|
|
||||||
$4
|
|
||||||
<? else: ?>
|
|
||||||
$0
|
|
||||||
<? endif; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpfe "php foreach" b
|
|
||||||
<?php foreach(${1:$array} as ${2:$key}=>${3:$value}): ?>
|
|
||||||
$0
|
|
||||||
<?php endforeach; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpf "php for loop" b
|
|
||||||
<?php for ($i = ${1:1}; $i <= ${2:count}; $i++): ?>
|
|
||||||
$0
|
|
||||||
<?php endfor; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet prdd "vardump in php tags" b
|
|
||||||
<?php \revo\Revo::dieVar( ${0:var} ); ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
snippet #! "shebang"
|
|
||||||
#!/usr/bin/env node
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet vreq "assign a CommonJS-style module to a var"
|
|
||||||
const ${0:${1/(.+\/)*(\w+)(-|\b|$)(\..+$)?/\u$2/g}} = require('$1');
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet import "ES6 import" b
|
|
||||||
import {$0} from '$1';
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ex "module.exports"
|
|
||||||
module.exports = $0;
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet default "export default" b
|
|
||||||
export default $0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet cl "Console LOG" b
|
|
||||||
console.log($0);
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet cw "Console Warn" b
|
|
||||||
console.warn($0);
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ce "Console Error" b
|
|
||||||
console.error($0);
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet rfc "React functional component" b
|
|
||||||
export const ${1:Name} = (${2:props})=> {
|
|
||||||
return (
|
|
||||||
${0:<div>Component</div>}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
$1.propTypes = {};
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet rc "React component" b
|
|
||||||
export class ${1:Name} extends React.Component {
|
|
||||||
static propTypes = {};
|
|
||||||
|
|
||||||
state = {};
|
|
||||||
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
${0:<div>Component</div>}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet raect "Adds react import statements" b
|
|
||||||
import React from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet useState "React.useState" w
|
|
||||||
const [$1, set${1/\w+\s*/\u$0/g}] = React.useState(${3:''});${0}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet useEffect "useEffect" w
|
|
||||||
React.useEffect(() => {
|
|
||||||
$0
|
|
||||||
});
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet useContext "useContext" w
|
|
||||||
const $1 = React.useContext($2);${0}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet useCallback "useCallback" w
|
|
||||||
React.useCallback(
|
|
||||||
() => {
|
|
||||||
$0
|
|
||||||
},
|
|
||||||
[$1],
|
|
||||||
);
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet useMemo "useMemo" w
|
|
||||||
const $1 = React.useMemo(() => {
|
|
||||||
${0}
|
|
||||||
}, [$2]);
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet useRef "useRef" w
|
|
||||||
const $1 = React.useRef($2);${0}
|
|
||||||
endsnippet
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
snippet link "Link to something"
|
|
||||||
[${1:${VISUAL:Text}}](${3:http://${2:www.url.com}})$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet img "Image"
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet icode "Inline Code" i
|
|
||||||
\`$1\`$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet code "Codeblock" b
|
|
||||||
\`\`\`${1:lang}
|
|
||||||
$2
|
|
||||||
\`\`\`
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet table "A base table layout" b
|
|
||||||
|${0} | | | | |
|
|
||||||
|---|---|---|---|---|
|
|
||||||
| | | | | |
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet frontmatter "A basic frontmatter block" b
|
|
||||||
---
|
|
||||||
title: ${1:Title}
|
|
||||||
comments: false
|
|
||||||
date: ${2:date}
|
|
||||||
tags:
|
|
||||||
- ${3:tags}
|
|
||||||
categories:
|
|
||||||
- ${4:categories}
|
|
||||||
---
|
|
||||||
|
|
||||||
${0}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet more "A more comment tag for blogs" b
|
|
||||||
<!-- more -->
|
|
||||||
endsnippet
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
/**
|
|
||||||
* ${1:{{name}}}
|
|
||||||
*
|
|
||||||
* @var ${2:{{type}}{{^type}}mixed{{/type}}}
|
|
||||||
*/
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
/**
|
|
||||||
* ${1:{{name}}}
|
|
||||||
*
|
|
||||||
* @category Project
|
|
||||||
* @package \{\{package\}\}
|
|
||||||
* @author Ade Attwood <ade@practically.io>
|
|
||||||
* @copyright `!v strftime('%Y')` Practically.io{{#interfaces}}
|
|
||||||
* @see {{name}}{{/interfaces}}{{#parent}}
|
|
||||||
* @see {{name}}{{/parent}}{{#abstract}}
|
|
||||||
* @abstract {{/abstract}}
|
|
||||||
*/
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
/**
|
|
||||||
* ${1:{{name}}}
|
|
||||||
*/
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
/**
|
|
||||||
* ${1:{{name}}}{{?func: vmustache#InitCounter("params", 1)}}
|
|
||||||
*{{#parameters}}
|
|
||||||
* @param ${{{?func: vmustache#IncrementCounter("params")}}:{{type}}{{^type}}mixed{{/type}}} ${{name}}${{{?func: vmustache#IncrementCounter("params")}}}{{/parameters}}
|
|
||||||
*/
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
/**
|
|
||||||
* Interface: ${1:{{name}}}
|
|
||||||
*{{#parents}}
|
|
||||||
* @see {{name}}{{/parents}}
|
|
||||||
*/
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
/**
|
|
||||||
* Trait: ${1:{{name}}}
|
|
||||||
*/
|
|
||||||
|
|
@ -1,200 +0,0 @@
|
||||||
snippet - "" i
|
|
||||||
->$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet = "" i
|
|
||||||
=>$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet this "Description" i
|
|
||||||
$this->$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet dd "Dumb debug helper in HTML"
|
|
||||||
echo '<pre>' . var_dump($1, 1) . '</pre>';$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet dump "Symfony Dump" i
|
|
||||||
dump(${1:var});
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet dumpd "Symfony Dump Die" i
|
|
||||||
dump(${1:var});
|
|
||||||
die;
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet rdd "Revo die var" i
|
|
||||||
\revo\Revo::dieVar(${1:var});
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ai "Array item" i
|
|
||||||
'${1:key}' => ${0:value}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet try "Try and catch block" b
|
|
||||||
try {
|
|
||||||
$0
|
|
||||||
} catch (\Exception $e) {}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pub "Public function" b
|
|
||||||
/**
|
|
||||||
* ${3:undocumented function}
|
|
||||||
*
|
|
||||||
* @return $4
|
|
||||||
*/
|
|
||||||
public function ${1:name}(${2:$param})${3:: ${4:void}}
|
|
||||||
{
|
|
||||||
${VISUAL}$0
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pro "Protected function" b
|
|
||||||
/**
|
|
||||||
* ${3:undocumented function}
|
|
||||||
*
|
|
||||||
* @return $4
|
|
||||||
*/
|
|
||||||
protected function ${1:name}(${2:$param})${3:: ${4:void}}
|
|
||||||
{
|
|
||||||
${VISUAL}$0
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pri "Private function" b
|
|
||||||
/**
|
|
||||||
* ${3:undocumented function}
|
|
||||||
*
|
|
||||||
* @return $4
|
|
||||||
*/
|
|
||||||
private function ${1:name}(${2:$param})${3:: ${4:void}}
|
|
||||||
{
|
|
||||||
${VISUAL}$0
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pubs "Public static function" b
|
|
||||||
/**
|
|
||||||
* ${3:undocumented function}
|
|
||||||
*
|
|
||||||
* @return $4
|
|
||||||
*/
|
|
||||||
public static function ${1:name}(${2:$param})${3:: ${4:void}}
|
|
||||||
{
|
|
||||||
${VISUAL}$0
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pros "Protected static function" b
|
|
||||||
/**
|
|
||||||
* ${3:undocumented function}
|
|
||||||
*
|
|
||||||
* @return $4
|
|
||||||
*/
|
|
||||||
protected static function ${1:name}(${2:$param})${3:: ${4:void}}
|
|
||||||
{
|
|
||||||
${VISUAL}$0
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet pris "Private static function" b
|
|
||||||
/**
|
|
||||||
* ${3:undocumented function}
|
|
||||||
*
|
|
||||||
* @return $4
|
|
||||||
*/
|
|
||||||
private static function ${1:name}(${2:$param})${3:: ${4:void}}
|
|
||||||
{
|
|
||||||
${VISUAL}$0
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet new "New class instance" b
|
|
||||||
$${1:variableName} = new ${2:${1/\w+\s*/\u$0/}}($3);
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ns "namespace declaration" b
|
|
||||||
namespace ${1:`!p
|
|
||||||
relpath = os.path.relpath(path)
|
|
||||||
m = re.search(r'[A-Z].+(?=/)', relpath)
|
|
||||||
if m:
|
|
||||||
snip.rv = m.group().replace('/', '\\')
|
|
||||||
`};
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet class "Class declaration template" b
|
|
||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types = 1);
|
|
||||||
|
|
||||||
namespace ${1:`!p
|
|
||||||
relpath = os.path.relpath(path)
|
|
||||||
m = re.search(r'[A-Z].+(?=/)', relpath)
|
|
||||||
if m:
|
|
||||||
snip.rv = m.group().replace('/', '\\')
|
|
||||||
`};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ${2:`!v g:snips_author`}
|
|
||||||
*/
|
|
||||||
class ${3:`!p snip.rv=snip.basename`}${4: extends ${5}}
|
|
||||||
{
|
|
||||||
${0}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet interface "Interface declaration template" b
|
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace ${1:`!p
|
|
||||||
relpath = os.path.relpath(path)
|
|
||||||
m = re.search(r'[A-Z].+(?=/)', relpath)
|
|
||||||
if m:
|
|
||||||
snip.rv = m.group().replace('/', '\\')
|
|
||||||
`};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface ${1:`!p snip.rv=snip.basename`}
|
|
||||||
* @author ${2:`!v g:snips_author`}
|
|
||||||
*/
|
|
||||||
interface $1
|
|
||||||
{
|
|
||||||
public function ${3:someFunction}();$4
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet construct "__construct()" b
|
|
||||||
/**
|
|
||||||
* @param $2mixed ${1/, /\n * \@param mixed /g}
|
|
||||||
*/
|
|
||||||
public function __construct(${1:$dependencies})
|
|
||||||
{${1/\$(\w+)(, )*/\n $this->$1 = $$1;/g}
|
|
||||||
}
|
|
||||||
$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
# PHPUnit snippets
|
|
||||||
snippet testcase "class XYZTest extends \PHPUnit_Framework_TestCase { ... }"
|
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace `!p
|
|
||||||
relpath = os.path.relpath(path)
|
|
||||||
m = re.search(r'[A-Z].+(?=/)', relpath)
|
|
||||||
if m:
|
|
||||||
snip.rv = m.group().replace('/', '\\')
|
|
||||||
`;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author `!v g:snips_author`
|
|
||||||
*/
|
|
||||||
class `!p
|
|
||||||
snip.rv = re.match(r'.*(?=\.)', fn).group()
|
|
||||||
` extends \PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
public function test${1}()
|
|
||||||
{
|
|
||||||
${0:${VISUAL}}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
snippet ftest "Functional test" b
|
|
||||||
public function ${1:name}(FunctionalTester $I): void
|
|
||||||
{
|
|
||||||
$I->wantToTest('${2:dis}');
|
|
||||||
${3://test}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet utest "Unit test" b
|
|
||||||
public function ${1:name}(UnitTester $I): void
|
|
||||||
{
|
|
||||||
$I->wantToTest('${2:dis}');
|
|
||||||
${3://test}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
||||||
snippet atest "Acceptance test" b
|
|
||||||
public function ${1:name}(AcceptanceTester $I): void
|
|
||||||
{
|
|
||||||
$I->wantToTest('${2:dis}');
|
|
||||||
${3://test}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet _b+a "Before and After class" b
|
|
||||||
public function _before(${1:inject})
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function _after($1)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
snippet php "php tag" i
|
|
||||||
<?php $0 ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpe "php echo tag" i
|
|
||||||
<?= $0 ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpif "php if statment" b
|
|
||||||
<?php if($1): ?>
|
|
||||||
$0
|
|
||||||
<?php endif; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpife "php if else statment" b
|
|
||||||
<? if ($1): ?>
|
|
||||||
$2
|
|
||||||
<? else: ?>
|
|
||||||
$0
|
|
||||||
<? endif; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpifeif "php if else if statment" b
|
|
||||||
<? if ($1): ?>
|
|
||||||
$2
|
|
||||||
<? elseif ($3): ?>
|
|
||||||
$4
|
|
||||||
<? else: ?>
|
|
||||||
$0
|
|
||||||
<? endif; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpfe "php foreach" b
|
|
||||||
<?php foreach(${1:$array} as ${2:$key}=>${3:$value}): ?>
|
|
||||||
$0
|
|
||||||
<?php endforeach; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet phpf "php for loop" b
|
|
||||||
<?php for ($i = ${1:1}; $i <= ${2:count}; $i++): ?>
|
|
||||||
$0
|
|
||||||
<?php endfor; ?>
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet var-doc "Code for createing a vardoc" b
|
|
||||||
echo '<pre>';
|
|
||||||
echo '/**'.PHP_EOL;
|
|
||||||
echo ' *'.PHP_EOL;
|
|
||||||
$_type = gettype($this) == 'object' ? get_class($this) : gettype($this);
|
|
||||||
echo " * @var $_type \\$this\n";
|
|
||||||
foreach(get_defined_vars() as $name => $var) {
|
|
||||||
if (substr($name, 0, strlen('_')) !== '_' && $name !== 'this') {
|
|
||||||
if (is_array($var) && isset($var[0]) && gettype($var[0]) == 'object') {
|
|
||||||
$type = get_class($var[0]);
|
|
||||||
echo " * @var {$type}[] \$$name\n";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$type = gettype($var) == 'object' ? get_class($var) : gettype($var);
|
|
||||||
echo " * @var $type \$$name\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
echo ' */'.PHP_EOL;
|
|
||||||
echo "</pre>";
|
|
||||||
die;
|
|
||||||
endsnippet
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
snippet yiifk "migration foreign key" b
|
|
||||||
/*
|
|
||||||
* FOREIGN KEY : ${1:Table}.${2:Field}
|
|
||||||
* REFERENCES : ${3:Reference Table}.${4:Reference Field}
|
|
||||||
*/
|
|
||||||
$this->addForeignKey(
|
|
||||||
'fk-$1-$2',
|
|
||||||
'$1',
|
|
||||||
'$2',
|
|
||||||
'$3',
|
|
||||||
'$4',
|
|
||||||
'CASCADE'
|
|
||||||
);
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet yapp "Yii App" i
|
|
||||||
Yii::$app->${1:Command}
|
|
||||||
endsnippet
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
#
|
|
||||||
# Python helper code for generating namespaces
|
|
||||||
#
|
|
||||||
# See: https://github.com/honza/vim-snippets/blob/master/UltiSnips/puppet.snippets
|
|
||||||
#
|
|
||||||
|
|
||||||
global !p
|
|
||||||
import vim
|
|
||||||
import os.path
|
|
||||||
def get_module_namespace_and_basename():
|
|
||||||
"""This function will try to guess the current class or define name you are
|
|
||||||
trying to create. Note that for this to work you should be using the module
|
|
||||||
structure as per the style guide. Examples inputs and it's output
|
|
||||||
* /home/nikolavp/puppet/modules/collectd/manifests/init.pp -> collectd
|
|
||||||
* /home/nikolavp/puppet/modules/collectd/manfistes/mysql.pp -> collectd::mysql
|
|
||||||
"""
|
|
||||||
first_time = True
|
|
||||||
current_file_path_without_ext = vim.eval('expand("%:p:r")') or ""
|
|
||||||
if not current_file_path_without_ext:
|
|
||||||
return "name"
|
|
||||||
parts = os.path.split(current_file_path_without_ext)
|
|
||||||
namespace = ''
|
|
||||||
while parts[0] and parts[0] != '/':
|
|
||||||
if parts[1] == 'init' and first_time and not namespace:
|
|
||||||
first_time = False
|
|
||||||
parts = os.path.split(parts[0])
|
|
||||||
continue
|
|
||||||
if parts[1] == 'manifests':
|
|
||||||
return os.path.split(parts[0])[1] + ('::' + namespace).rstrip(':')
|
|
||||||
else:
|
|
||||||
namespace = parts[1] + '::' + namespace
|
|
||||||
parts = os.path.split(parts[0])
|
|
||||||
return "name"
|
|
||||||
endglobal
|
|
||||||
|
|
||||||
#
|
|
||||||
# Snippets
|
|
||||||
#
|
|
||||||
|
|
||||||
snippet class "Class declaration" b
|
|
||||||
class ${1:`!p snip.rv = get_module_namespace_and_basename()`} {
|
|
||||||
${0:# Puppet code}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet define "Definition" b
|
|
||||||
define ${1:`!p snip.rv = get_module_namespace_and_basename()`} {
|
|
||||||
${0:# Puppet Code}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet = "" i
|
|
||||||
=>$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet ai "Array item" i
|
|
||||||
'${1:key}' => ${0:value}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet alert "Alert Function" b
|
|
||||||
alert("${1:message}")$0
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet info "Info Function" b
|
|
||||||
info("${1:message}")$0
|
|
||||||
endsnippet
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
global !p
|
|
||||||
import vim
|
|
||||||
|
|
||||||
# Tests for the existence of a variable declared by Vim's filetype detection
|
|
||||||
# suggesting the type of shell script of the current file
|
|
||||||
def testShell(scope, shell):
|
|
||||||
return vim.eval("exists('" + scope + ":is_" + shell + "')")
|
|
||||||
|
|
||||||
# Loops over the possible variables, checking for global variables
|
|
||||||
# first since they indicate an override by the user.
|
|
||||||
def getShell():
|
|
||||||
for scope in ["g", "b"]:
|
|
||||||
for shell in ["bash", "posix", "sh", "kornshell"]:
|
|
||||||
if testShell(scope, shell) == "1":
|
|
||||||
if shell == "kornshell":
|
|
||||||
return "ksh"
|
|
||||||
if shell == "posix":
|
|
||||||
return "sh"
|
|
||||||
return shell
|
|
||||||
return "sh"
|
|
||||||
endglobal
|
|
||||||
|
|
||||||
snippet #!
|
|
||||||
`!p snip.rv = '#!/bin/' + getShell() + "\n\n" `
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet !env "#!/usr/bin/env (!env)"
|
|
||||||
`!p snip.rv = '#!/usr/bin/env ' + getShell() + "\n\n" `
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet if "If Condition" b
|
|
||||||
if [ $1 ]; then
|
|
||||||
$0
|
|
||||||
fi
|
|
||||||
endsnippet
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
# We use a little hack so that the snippet is expanded
|
|
||||||
# and parsed correctly
|
|
||||||
snippet snip "Snippet definition" b
|
|
||||||
`!p snip.rv = "snippet"` ${1:Tab_trigger} "${2:Description}" ${3:b}
|
|
||||||
$0
|
|
||||||
`!p snip.rv = "endsnippet"`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet global "Global snippet" b
|
|
||||||
`!p snip.rv = "global"` !p
|
|
||||||
$0
|
|
||||||
`!p snip.rv = "endglobal"`
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet vis "${VISUAL}" i
|
|
||||||
\$\{VISUAL${1:${2:default}${3:/transform/}}\}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
extends javascript
|
|
||||||
priority 1
|
|
||||||
|
|
||||||
snippet rfc "React functional component" b
|
|
||||||
export interface $1Props {};
|
|
||||||
|
|
||||||
export const ${1:Name}:React.FC<$1Props> = (${2:props}) => {
|
|
||||||
return (
|
|
||||||
${0:<div>Component</div>}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet rc "React component" b
|
|
||||||
export interface $1State {};
|
|
||||||
export interface $1Props {};
|
|
||||||
|
|
||||||
export class ${1:Name} extends React.Component<$1Props, $1State> {
|
|
||||||
public state: $1State = {}
|
|
||||||
|
|
||||||
public render(): JSX.Element {
|
|
||||||
return (
|
|
||||||
${0:<div>Component</div>}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
endsnippet
|
|
||||||
|
|
||||||
snippet react "Adds react import statements" b
|
|
||||||
import * as React from 'react';
|
|
||||||
endsnippet
|
|
||||||
1
site-modules/core/files/vim/after/ftplugin/json.vim
Normal file
1
site-modules/core/files/vim/after/ftplugin/json.vim
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
set conceallevel=0
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
"
|
|
||||||
" Sort vim-jsx settting js files to javascript.jsx
|
|
||||||
"
|
|
||||||
let g:jsx_ext_required=1
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
"
|
|
||||||
" Orignaly from google maktaba
|
|
||||||
" https://github.com/google/vim-maktaba/blob/master/autoload/maktaba/buffer.vim#L15
|
|
||||||
"
|
|
||||||
" Gets the text of the current or last visual selection.
|
|
||||||
" Useful for visual mode mappings.
|
|
||||||
function! aa#buffer#GetVisualSelection() abort
|
|
||||||
let [l:lnum1, l:col1] = getpos("'<")[1:2]
|
|
||||||
let [l:lnum2, l:col2] = getpos("'>")[1:2]
|
|
||||||
" 'selection' is a rarely-used option for overriding whether the last
|
|
||||||
" character is included in the selection. Bizarrely, it always affects the
|
|
||||||
" last character even when selecting from the end backwards.
|
|
||||||
if &selection !=# 'inclusive'
|
|
||||||
let l:col2 -= 1
|
|
||||||
endif
|
|
||||||
let l:lines = getline(l:lnum1, l:lnum2)
|
|
||||||
if !empty(l:lines)
|
|
||||||
" If there is only 1 line, the part after the selection must be removed
|
|
||||||
" first because `col2` is relative to the start of the line.
|
|
||||||
let l:lines[-1] = l:lines[-1][: l:col2 - 1]
|
|
||||||
let l:lines[0] = l:lines[0][l:col1 - 1 : ]
|
|
||||||
endif
|
|
||||||
return join(l:lines, "\n")
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" Mainly taken form maktab. This just uses the pure vim implemetaion to
|
|
||||||
" replace lines
|
|
||||||
"
|
|
||||||
function! aa#buffer#Overwrite(startline, endline, lines) abort
|
|
||||||
" If lines already match, don't modify buffer.
|
|
||||||
if getline(a:startline, a:endline) == a:lines
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Lines being replaced minus lines being inserted.
|
|
||||||
let l:line_delta = len(a:lines) - (a:endline + 1 - a:startline)
|
|
||||||
" If there's a surplus (more to replace than insert), delete the last n lines.
|
|
||||||
if l:line_delta < 0
|
|
||||||
let l:winview = winsaveview()
|
|
||||||
let l:keep_end = a:endline - (-l:line_delta)
|
|
||||||
execute string(l:keep_end + 1) . ',' . string(a:endline) . 'delete'
|
|
||||||
" Special case: Move the cursor up to track buffer changes if necessary.
|
|
||||||
" If we delete lines above the cursor, the cursor should NOT remain on the
|
|
||||||
" same line number.
|
|
||||||
if l:winview.lnum > a:endline
|
|
||||||
let l:winview.lnum += l:line_delta
|
|
||||||
endif
|
|
||||||
call winrestview(l:winview)
|
|
||||||
endif
|
|
||||||
" If there's a deficit (more to insert than replace), append the last n lines.
|
|
||||||
let l:lines = a:lines
|
|
||||||
if l:line_delta > 0
|
|
||||||
call append(a:endline, a:lines[-l:line_delta : ])
|
|
||||||
let l:lines = l:lines[ : -l:line_delta - 1]
|
|
||||||
endif
|
|
||||||
call setline(a:startline, l:lines)
|
|
||||||
endfunction
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
function aa#emmet#init()
|
|
||||||
"
|
|
||||||
" Don't install emmet globally we want to only use it on selected languages
|
|
||||||
"
|
|
||||||
let g:user_emmet_install_global = 0
|
|
||||||
|
|
||||||
"
|
|
||||||
" Set Ctrl-E emmet trigger
|
|
||||||
"
|
|
||||||
"let g:user_emmet_leader_key='<C-E>'
|
|
||||||
|
|
||||||
"
|
|
||||||
" Add the emmet package
|
|
||||||
"
|
|
||||||
packadd emmet-vim
|
|
||||||
|
|
||||||
"
|
|
||||||
" Install the package
|
|
||||||
"
|
|
||||||
EmmetInstall
|
|
||||||
endfunction
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
"
|
|
||||||
" Sets all the settings for different fold types
|
|
||||||
"
|
|
||||||
" a:type
|
|
||||||
" The type of fold you want to set.
|
|
||||||
" Valid options are 'marker', 'indent', 'diff', hunk and 'off'
|
|
||||||
"
|
|
||||||
function! aa#fold#set_fold(type)
|
|
||||||
if a:type == "marker"
|
|
||||||
setlocal foldenable
|
|
||||||
setlocal foldmethod=marker
|
|
||||||
setlocal foldlevel=0
|
|
||||||
setlocal foldnestmax=99
|
|
||||||
elseif a:type == "indent"
|
|
||||||
setlocal foldenable
|
|
||||||
setlocal foldmethod=indent
|
|
||||||
setlocal foldlevel=1
|
|
||||||
setlocal foldnestmax=2
|
|
||||||
elseif a:type == "diff"
|
|
||||||
setlocal foldenable
|
|
||||||
setlocal nomodeline formatoptions-=croq formatoptions+=tl
|
|
||||||
setlocal foldmethod=expr
|
|
||||||
setlocal foldexpr=aa#fold#diff_fold()
|
|
||||||
setlocal foldcolumn=3
|
|
||||||
elseif a:type == "hunk"
|
|
||||||
setlocal foldenable
|
|
||||||
setlocal nomodeline formatoptions-=croq formatoptions+=tl
|
|
||||||
setlocal foldmethod=expr
|
|
||||||
setlocal foldexpr=aa#fold#diff_hunk_fold()
|
|
||||||
setlocal foldcolumn=3
|
|
||||||
elseif a:type == 'off'
|
|
||||||
set nofoldenable
|
|
||||||
else
|
|
||||||
echoerr a:type . " is not a valid fold use 'off', 'marker' or 'indent'"
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" Get the competition list for `set_fold()`
|
|
||||||
"
|
|
||||||
function! aa#fold#command_complete(a, cm, cu)
|
|
||||||
return ['off', 'marker', 'indent', 'diff', 'hunk']
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" Get the fold text for displaying neat folds
|
|
||||||
" See: https://dhruvasagar.com/2013/03/28/vim-better-foldtext
|
|
||||||
"
|
|
||||||
function! aa#fold#fold_text()
|
|
||||||
let line = ' ' . substitute(getline(v:foldstart), '^\s*"\?\s*\|\s*"\?\s*{{' . '{\d*\s*', '', 'g') . ' '
|
|
||||||
let lines_count = v:foldend - v:foldstart + 1
|
|
||||||
let lines_count_text = '| ' . printf("%10s", lines_count . ' linesss') . ' |'
|
|
||||||
let foldchar = '-'
|
|
||||||
let foldtextstart = strpart('+' . repeat(foldchar, v:foldlevel*2) . line, 0, (winwidth(0)*2)/3)
|
|
||||||
let foldtextend = lines_count_text . repeat(foldchar, 8)
|
|
||||||
let foldtextlength = strlen(substitute(foldtextstart . foldtextend, '.', 'x', 'g')) + &foldcolumn
|
|
||||||
return foldtextstart . repeat(foldchar, winwidth(0)-foldtextlength) . foldtextend
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" function for the `foldexpr` to fold git diffs
|
|
||||||
"
|
|
||||||
" Inspired from https://github.com/sgeb/vim-diff-fold
|
|
||||||
"
|
|
||||||
function! aa#fold#diff_fold()
|
|
||||||
let l:line=getline(v:lnum)
|
|
||||||
|
|
||||||
if l:line =~# '^\(diff\|Index\)'
|
|
||||||
return '>1'
|
|
||||||
else
|
|
||||||
return '='
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" function for the `foldexpr` to fold git diffs and hunks
|
|
||||||
"
|
|
||||||
" Inspired from https://github.com/sgeb/vim-diff-fold
|
|
||||||
"
|
|
||||||
function! aa#fold#diff_hunk_fold()
|
|
||||||
let l:line=getline(v:lnum)
|
|
||||||
|
|
||||||
if l:line =~# '^\(diff\|Index\)'
|
|
||||||
return '>1'
|
|
||||||
elseif l:line =~# '^\(@@\|\d\)'
|
|
||||||
return '>2'
|
|
||||||
elseif l:line =~# '^\*\*\* \d\+,\d\+ \*\*\*\*$'
|
|
||||||
return '>2'
|
|
||||||
elseif l:line =~# '^--- \d\+,\d\+ ----$'
|
|
||||||
return '>2'
|
|
||||||
else
|
|
||||||
return '='
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
"
|
|
||||||
" Turn line numbers on
|
|
||||||
"
|
|
||||||
" This set all settings for relative number and enables git gutter
|
|
||||||
"
|
|
||||||
function! aa#functions#number_on(local)
|
|
||||||
if a:local == 1
|
|
||||||
setlocal relativenumber
|
|
||||||
setlocal number
|
|
||||||
setlocal signcolumn=yes
|
|
||||||
else
|
|
||||||
set relativenumber
|
|
||||||
set number
|
|
||||||
set signcolumn=yes
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists(':GitGutterEnable')
|
|
||||||
GitGutterEnable
|
|
||||||
endif
|
|
||||||
|
|
||||||
let g:linenumber=1
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" Turn line numbers off
|
|
||||||
"
|
|
||||||
" Disables line numbers and git gutter
|
|
||||||
"
|
|
||||||
function! aa#functions#number_off(local)
|
|
||||||
if a:local == 1
|
|
||||||
setlocal norelativenumber
|
|
||||||
setlocal nonumber
|
|
||||||
setlocal signcolumn=no
|
|
||||||
else
|
|
||||||
set norelativenumber
|
|
||||||
set nonumber
|
|
||||||
set signcolumn=no
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
if exists(':GitGutterDisable')
|
|
||||||
GitGutterDisable
|
|
||||||
endif
|
|
||||||
|
|
||||||
let g:linenumber=0
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" Toggles line numbers and all of the relevant settings
|
|
||||||
"
|
|
||||||
function! aa#functions#toggle_numbers()
|
|
||||||
if g:linenumber
|
|
||||||
call aa#functions#number_off(0)
|
|
||||||
else
|
|
||||||
call aa#functions#number_on(0)
|
|
||||||
end
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" Display ruler if text is over a specified char length
|
|
||||||
"
|
|
||||||
" a:lengthLimit
|
|
||||||
" The char length when to show the column ruler
|
|
||||||
"
|
|
||||||
function! aa#functions#show_column_if_line_too_long(lengthLimit)
|
|
||||||
" See https://stackoverflow.com/questions/2075276/longest-line-in-vim#2982789
|
|
||||||
let maxLineLength = max(map(getline(1,'$'), 'len(v:val)'))
|
|
||||||
|
|
||||||
if maxLineLength > a:lengthLimit
|
|
||||||
highlight ColorColumn ctermbg=18 guibg=18
|
|
||||||
execute "set colorcolumn=" . join(range((a:lengthLimit + 1),999), ",")
|
|
||||||
else
|
|
||||||
set colorcolumn=""
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
function! aa#languagetool#init()
|
|
||||||
let g:languagetool_jar = "~/.local/share/LanguageTool-4.6/languagetool-commandline.jar"
|
|
||||||
let g:languagetool_lang = 'en-GB'
|
|
||||||
|
|
||||||
packadd vim-LanguageTool
|
|
||||||
endfunction
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
function aa#supertab#expand()
|
|
||||||
if exists('g:UltiSnipsEnableSnipMate')
|
|
||||||
"
|
|
||||||
" Try to expand snippet or go to the next tab stop
|
|
||||||
"
|
|
||||||
call UltiSnips#ExpandSnippetOrJump()
|
|
||||||
if g:ulti_expand_or_jump_res != 0
|
|
||||||
let g:ulti_expand_or_jump_res = 0
|
|
||||||
return ""
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" If popup is open cycle through the items this will most likely be
|
|
||||||
" deoplete completion
|
|
||||||
"
|
|
||||||
if pumvisible()
|
|
||||||
return "\<c-n>"
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists('g:loaded_emmet_vim')
|
|
||||||
|
|
||||||
"
|
|
||||||
" If there is an emmet expression expand it
|
|
||||||
"
|
|
||||||
if emmet#isExpandable()
|
|
||||||
call emmet#expandAbbr(0,"")
|
|
||||||
return "\<Right>"
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" If all else fails just tab along
|
|
||||||
"
|
|
||||||
return "\<tab>"
|
|
||||||
endfunction
|
|
||||||
|
|
@ -1,353 +0,0 @@
|
||||||
" pathogen.vim - path option manipulation
|
|
||||||
" Maintainer: Tim Pope <http://tpo.pe/>
|
|
||||||
" Version: 2.4
|
|
||||||
|
|
||||||
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
|
|
||||||
"
|
|
||||||
" For management of individually installed plugins in ~/.vim/bundle (or
|
|
||||||
" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your
|
|
||||||
" .vimrc is the only other setup necessary.
|
|
||||||
"
|
|
||||||
" The API is documented inline below.
|
|
||||||
|
|
||||||
if exists("g:loaded_pathogen") || &cp
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
let g:loaded_pathogen = 1
|
|
||||||
|
|
||||||
" Point of entry for basic default usage. Give a relative path to invoke
|
|
||||||
" pathogen#interpose() (defaults to "bundle/{}"), or an absolute path to invoke
|
|
||||||
" pathogen#surround(). Curly braces are expanded with pathogen#expand():
|
|
||||||
" "bundle/{}" finds all subdirectories inside "bundle" inside all directories
|
|
||||||
" in the runtime path.
|
|
||||||
function! pathogen#infect(...) abort
|
|
||||||
for path in a:0 ? filter(reverse(copy(a:000)), 'type(v:val) == type("")') : ['bundle/{}']
|
|
||||||
if path =~# '^\%({\=[$~\\/]\|{\=\w:[\\/]\).*[{}*]'
|
|
||||||
call pathogen#surround(path)
|
|
||||||
elseif path =~# '^\%([$~\\/]\|\w:[\\/]\)'
|
|
||||||
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
|
||||||
call pathogen#surround(path . '/{}')
|
|
||||||
elseif path =~# '[{}*]'
|
|
||||||
call pathogen#interpose(path)
|
|
||||||
else
|
|
||||||
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
|
||||||
call pathogen#interpose(path . '/{}')
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
call pathogen#cycle_filetype()
|
|
||||||
if pathogen#is_disabled($MYVIMRC)
|
|
||||||
return 'finish'
|
|
||||||
endif
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Split a path into a list.
|
|
||||||
function! pathogen#split(path) abort
|
|
||||||
if type(a:path) == type([]) | return a:path | endif
|
|
||||||
if empty(a:path) | return [] | endif
|
|
||||||
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
|
|
||||||
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Convert a list to a path.
|
|
||||||
function! pathogen#join(...) abort
|
|
||||||
if type(a:1) == type(1) && a:1
|
|
||||||
let i = 1
|
|
||||||
let space = ' '
|
|
||||||
else
|
|
||||||
let i = 0
|
|
||||||
let space = ''
|
|
||||||
endif
|
|
||||||
let path = ""
|
|
||||||
while i < a:0
|
|
||||||
if type(a:000[i]) == type([])
|
|
||||||
let list = a:000[i]
|
|
||||||
let j = 0
|
|
||||||
while j < len(list)
|
|
||||||
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
|
|
||||||
let path .= ',' . escaped
|
|
||||||
let j += 1
|
|
||||||
endwhile
|
|
||||||
else
|
|
||||||
let path .= "," . a:000[i]
|
|
||||||
endif
|
|
||||||
let i += 1
|
|
||||||
endwhile
|
|
||||||
return substitute(path,'^,','','')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
|
|
||||||
function! pathogen#legacyjoin(...) abort
|
|
||||||
return call('pathogen#join',[1] + a:000)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Turn filetype detection off and back on again if it was already enabled.
|
|
||||||
function! pathogen#cycle_filetype() abort
|
|
||||||
if exists('g:did_load_filetypes')
|
|
||||||
filetype off
|
|
||||||
filetype on
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Check if a bundle is disabled. A bundle is considered disabled if its
|
|
||||||
" basename or full name is included in the list g:pathogen_blacklist or the
|
|
||||||
" comma delimited environment variable $VIMBLACKLIST.
|
|
||||||
function! pathogen#is_disabled(path) abort
|
|
||||||
if a:path =~# '\~$'
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
let sep = pathogen#slash()
|
|
||||||
let blacklist =
|
|
||||||
\ get(g:, 'pathogen_blacklist', get(g:, 'pathogen_disabled', [])) +
|
|
||||||
\ pathogen#split($VIMBLACKLIST)
|
|
||||||
if !empty(blacklist)
|
|
||||||
call map(blacklist, 'substitute(v:val, "[\\/]$", "", "")')
|
|
||||||
endif
|
|
||||||
return index(blacklist, fnamemodify(a:path, ':t')) != -1 || index(blacklist, a:path) != -1
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Prepend the given directory to the runtime path and append its corresponding
|
|
||||||
" after directory. Curly braces are expanded with pathogen#expand().
|
|
||||||
function! pathogen#surround(path) abort
|
|
||||||
let sep = pathogen#slash()
|
|
||||||
let rtp = pathogen#split(&rtp)
|
|
||||||
let path = fnamemodify(a:path, ':s?[\\/]\=$??')
|
|
||||||
let before = filter(pathogen#expand(path), '!pathogen#is_disabled(v:val)')
|
|
||||||
let after = filter(reverse(pathogen#expand(path, sep.'after')), '!pathogen#is_disabled(v:val[0:-7])')
|
|
||||||
call filter(rtp, 'index(before + after, v:val) == -1')
|
|
||||||
let &rtp = pathogen#join(before, rtp, after)
|
|
||||||
return &rtp
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" For each directory in the runtime path, add a second entry with the given
|
|
||||||
" argument appended. Curly braces are expanded with pathogen#expand().
|
|
||||||
function! pathogen#interpose(name) abort
|
|
||||||
let sep = pathogen#slash()
|
|
||||||
let name = a:name
|
|
||||||
if has_key(s:done_bundles, name)
|
|
||||||
return ""
|
|
||||||
endif
|
|
||||||
let s:done_bundles[name] = 1
|
|
||||||
let list = []
|
|
||||||
for dir in pathogen#split(&rtp)
|
|
||||||
if dir =~# '\<after$'
|
|
||||||
let list += reverse(filter(pathogen#expand(dir[0:-6].name, sep.'after'), '!pathogen#is_disabled(v:val[0:-7])')) + [dir]
|
|
||||||
else
|
|
||||||
let list += [dir] + filter(pathogen#expand(dir.sep.name), '!pathogen#is_disabled(v:val)')
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
let &rtp = pathogen#join(pathogen#uniq(list))
|
|
||||||
return 1
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
let s:done_bundles = {}
|
|
||||||
|
|
||||||
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
|
|
||||||
function! pathogen#helptags() abort
|
|
||||||
let sep = pathogen#slash()
|
|
||||||
for glob in pathogen#split(&rtp)
|
|
||||||
for dir in map(split(glob(glob), "\n"), 'v:val.sep."/doc/".sep')
|
|
||||||
if (dir)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir) == 2 && !empty(split(glob(dir.'*.txt'))) && (!filereadable(dir.'tags') || filewritable(dir.'tags'))
|
|
||||||
silent! execute 'helptags' pathogen#fnameescape(dir)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
endfor
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
command! -bar Helptags :call pathogen#helptags()
|
|
||||||
|
|
||||||
" Execute the given command. This is basically a backdoor for --remote-expr.
|
|
||||||
function! pathogen#execute(...) abort
|
|
||||||
for command in a:000
|
|
||||||
execute command
|
|
||||||
endfor
|
|
||||||
return ''
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Section: Unofficial
|
|
||||||
|
|
||||||
function! pathogen#is_absolute(path) abort
|
|
||||||
return a:path =~# (has('win32') ? '^\%([\\/]\|\w:\)[\\/]\|^[~$]' : '^[/~$]')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Given a string, returns all possible permutations of comma delimited braced
|
|
||||||
" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
|
|
||||||
" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
|
|
||||||
" and globbed. Actual globs are preserved.
|
|
||||||
function! pathogen#expand(pattern, ...) abort
|
|
||||||
let after = a:0 ? a:1 : ''
|
|
||||||
if a:pattern =~# '{[^{}]\+}'
|
|
||||||
let [pre, pat, post] = split(substitute(a:pattern, '\(.\{-\}\){\([^{}]\+\)}\(.*\)', "\\1\001\\2\001\\3", ''), "\001", 1)
|
|
||||||
let found = map(split(pat, ',', 1), 'pre.v:val.post')
|
|
||||||
let results = []
|
|
||||||
for pattern in found
|
|
||||||
call extend(results, pathogen#expand(pattern))
|
|
||||||
endfor
|
|
||||||
elseif a:pattern =~# '{}'
|
|
||||||
let pat = matchstr(a:pattern, '^.*{}[^*]*\%($\|[\\/]\)')
|
|
||||||
let post = a:pattern[strlen(pat) : -1]
|
|
||||||
let results = map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
|
|
||||||
else
|
|
||||||
let results = [a:pattern]
|
|
||||||
endif
|
|
||||||
let vf = pathogen#slash() . 'vimfiles'
|
|
||||||
call map(results, 'v:val =~# "\\*" ? v:val.after : isdirectory(v:val.vf.after) ? v:val.vf.after : isdirectory(v:val.after) ? v:val.after : ""')
|
|
||||||
return filter(results, '!empty(v:val)')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" \ on Windows unless shellslash is set, / everywhere else.
|
|
||||||
function! pathogen#slash() abort
|
|
||||||
return !exists("+shellslash") || &shellslash ? '/' : '\'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! pathogen#separator() abort
|
|
||||||
return pathogen#slash()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Convenience wrapper around glob() which returns a list.
|
|
||||||
function! pathogen#glob(pattern) abort
|
|
||||||
let files = split(glob(a:pattern),"\n")
|
|
||||||
return map(files,'substitute(v:val,"[".pathogen#slash()."/]$","","")')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Like pathogen#glob(), only limit the results to directories.
|
|
||||||
function! pathogen#glob_directories(pattern) abort
|
|
||||||
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Remove duplicates from a list.
|
|
||||||
function! pathogen#uniq(list) abort
|
|
||||||
let i = 0
|
|
||||||
let seen = {}
|
|
||||||
while i < len(a:list)
|
|
||||||
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
|
|
||||||
call remove(a:list,i)
|
|
||||||
elseif a:list[i] ==# ''
|
|
||||||
let i += 1
|
|
||||||
let empty = 1
|
|
||||||
else
|
|
||||||
let seen[a:list[i]] = 1
|
|
||||||
let i += 1
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
return a:list
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Backport of fnameescape().
|
|
||||||
function! pathogen#fnameescape(string) abort
|
|
||||||
if exists('*fnameescape')
|
|
||||||
return fnameescape(a:string)
|
|
||||||
elseif a:string ==# '-'
|
|
||||||
return '\-'
|
|
||||||
else
|
|
||||||
return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Like findfile(), but hardcoded to use the runtimepath.
|
|
||||||
function! pathogen#runtime_findfile(file,count) abort
|
|
||||||
let rtp = pathogen#join(1,pathogen#split(&rtp))
|
|
||||||
let file = findfile(a:file,rtp,a:count)
|
|
||||||
if file ==# ''
|
|
||||||
return ''
|
|
||||||
else
|
|
||||||
return fnamemodify(file,':p')
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Section: Deprecated
|
|
||||||
|
|
||||||
function! s:warn(msg) abort
|
|
||||||
echohl WarningMsg
|
|
||||||
echomsg a:msg
|
|
||||||
echohl NONE
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Prepend all subdirectories of path to the rtp, and append all 'after'
|
|
||||||
" directories in those subdirectories. Deprecated.
|
|
||||||
function! pathogen#runtime_prepend_subdirectories(path) abort
|
|
||||||
call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#infect('.string(a:path.'/{}').')')
|
|
||||||
return pathogen#surround(a:path . pathogen#slash() . '{}')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! pathogen#incubate(...) abort
|
|
||||||
let name = a:0 ? a:1 : 'bundle/{}'
|
|
||||||
call s:warn('Change pathogen#incubate('.(a:0 ? string(a:1) : '').') to pathogen#infect('.string(name).')')
|
|
||||||
return pathogen#interpose(name)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Deprecated alias for pathogen#interpose().
|
|
||||||
function! pathogen#runtime_append_all_bundles(...) abort
|
|
||||||
if a:0
|
|
||||||
call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#infect('.string(a:1.'/{}').')')
|
|
||||||
else
|
|
||||||
call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#infect()')
|
|
||||||
endif
|
|
||||||
return pathogen#interpose(a:0 ? a:1 . '/{}' : 'bundle/{}')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
if exists(':Vedit')
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:vopen_warning = 0
|
|
||||||
|
|
||||||
function! s:find(count,cmd,file,lcd)
|
|
||||||
let rtp = pathogen#join(1,pathogen#split(&runtimepath))
|
|
||||||
let file = pathogen#runtime_findfile(a:file,a:count)
|
|
||||||
if file ==# ''
|
|
||||||
return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'"
|
|
||||||
endif
|
|
||||||
if !s:vopen_warning
|
|
||||||
let s:vopen_warning = 1
|
|
||||||
let warning = '|echohl WarningMsg|echo "Install scriptease.vim to continue using :V'.a:cmd.'"|echohl NONE'
|
|
||||||
else
|
|
||||||
let warning = ''
|
|
||||||
endif
|
|
||||||
if a:lcd
|
|
||||||
let path = file[0:-strlen(a:file)-2]
|
|
||||||
execute 'lcd `=path`'
|
|
||||||
return a:cmd.' '.pathogen#fnameescape(a:file) . warning
|
|
||||||
else
|
|
||||||
return a:cmd.' '.pathogen#fnameescape(file) . warning
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:Findcomplete(A,L,P)
|
|
||||||
let sep = pathogen#slash()
|
|
||||||
let cheats = {
|
|
||||||
\'a': 'autoload',
|
|
||||||
\'d': 'doc',
|
|
||||||
\'f': 'ftplugin',
|
|
||||||
\'i': 'indent',
|
|
||||||
\'p': 'plugin',
|
|
||||||
\'s': 'syntax'}
|
|
||||||
if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0])
|
|
||||||
let request = cheats[a:A[0]].a:A[1:-1]
|
|
||||||
else
|
|
||||||
let request = a:A
|
|
||||||
endif
|
|
||||||
let pattern = substitute(request,'/\|\'.sep,'*'.sep,'g').'*'
|
|
||||||
let found = {}
|
|
||||||
for path in pathogen#split(&runtimepath)
|
|
||||||
let path = expand(path, ':p')
|
|
||||||
let matches = split(glob(path.sep.pattern),"\n")
|
|
||||||
call map(matches,'isdirectory(v:val) ? v:val.sep : v:val')
|
|
||||||
call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]')
|
|
||||||
for match in matches
|
|
||||||
let found[match] = 1
|
|
||||||
endfor
|
|
||||||
endfor
|
|
||||||
return sort(keys(found))
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(<count>,'edit<bang>',<q-args>,0)
|
|
||||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(<count>,'edit<bang>',<q-args>,0)
|
|
||||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(<count>,'edit<bang>',<q-args>,1)
|
|
||||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(<count>,'split',<q-args>,<bang>1)
|
|
||||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(<count>,'vsplit',<q-args>,<bang>1)
|
|
||||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1)
|
|
||||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(<count>,'pedit',<q-args>,<bang>1)
|
|
||||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(<count>,'read',<q-args>,<bang>1)
|
|
||||||
|
|
||||||
" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=':
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
{
|
|
||||||
"diagnostic.virtualText": true,
|
|
||||||
"diagnostic.enableHighlightLineNumber": false,
|
|
||||||
"diagnostic.errorSign": "❌",
|
|
||||||
"diagnostic.warningSign": "⚠",
|
|
||||||
"diagnostic.infoSign": "ℹ",
|
|
||||||
"diagnostic.hintSign": "ℹ",
|
|
||||||
"coc.preferences.hoverTarget": "preview",
|
|
||||||
"suggest.floatEnable": false,
|
|
||||||
"diagnostic.messageTarget": "echo",
|
|
||||||
"json.schemas": [
|
|
||||||
{
|
|
||||||
"url": "https://git.baln.co.uk/general/conventional-tools/blob/master/src/config.schema.json"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"yaml.schemas": {
|
|
||||||
"https://git.baln.co.uk/general/conventional-tools/raw/master/src/config.schema.json": "/.ctrc.yml"
|
|
||||||
},
|
|
||||||
"cSpell.language": "en-GB",
|
|
||||||
"cSpell.dictionaryDefinitions": [
|
|
||||||
{"name": "ade", "path": "/home/ade/.vim/spell/en.utf-8.add"}
|
|
||||||
],
|
|
||||||
"cSpell.dictionaries": ["ade"],
|
|
||||||
"cSpell.enabledLanguageIds": [
|
|
||||||
"asciidoc",
|
|
||||||
"c",
|
|
||||||
"cpp",
|
|
||||||
"csharp",
|
|
||||||
"css",
|
|
||||||
"git-commit",
|
|
||||||
"gitcommit",
|
|
||||||
"go",
|
|
||||||
"handlebars",
|
|
||||||
"haskell",
|
|
||||||
"html",
|
|
||||||
"jade",
|
|
||||||
"java",
|
|
||||||
"javascript",
|
|
||||||
"javascript.jsx",
|
|
||||||
"javascriptreact",
|
|
||||||
"json",
|
|
||||||
"jsonc",
|
|
||||||
"latex",
|
|
||||||
"less",
|
|
||||||
"markdown",
|
|
||||||
"php",
|
|
||||||
"plaintext",
|
|
||||||
"pug",
|
|
||||||
"python",
|
|
||||||
"restructuredtext",
|
|
||||||
"rust",
|
|
||||||
"scala",
|
|
||||||
"scss",
|
|
||||||
"text",
|
|
||||||
"typescript",
|
|
||||||
"typescript.jsx",
|
|
||||||
"typescriptreact",
|
|
||||||
"vim",
|
|
||||||
"yaml",
|
|
||||||
"yml"
|
|
||||||
],
|
|
||||||
"cSpell.userWords": ["enviopemt", "loded"]
|
|
||||||
}
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
" Maintainer: Ade Attwood <code@adeattwood.co.uk>
|
|
||||||
" Last Change: 2018-07-15
|
|
||||||
|
|
||||||
" This is a copy of the default colour theme with some edits to
|
|
||||||
" to the diff view and spelling
|
|
||||||
|
|
||||||
" Set 'background' back to the default.
|
|
||||||
hi clear Normal
|
|
||||||
set bg&
|
|
||||||
|
|
||||||
" Remove all existing highlighting and set the defaults.
|
|
||||||
hi clear
|
|
||||||
|
|
||||||
" Load the syntax highlighting defaults, if it's enabled.
|
|
||||||
if exists("syntax_on")
|
|
||||||
syntax reset
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Add in colours for vim diff
|
|
||||||
highlight DiffAdd cterm=bold ctermfg=7 ctermbg=28 gui=none guifg=bg guibg=Red
|
|
||||||
highlight DiffDelete cterm=bold ctermfg=7 ctermbg=9 gui=none guifg=bg guibg=Red
|
|
||||||
highlight DiffChange cterm=bold ctermfg=7 ctermbg=17 gui=none guifg=bg guibg=Red
|
|
||||||
highlight DiffText cterm=bold ctermfg=7 ctermbg=20 gui=none guifg=bg guibg=Red
|
|
||||||
|
|
||||||
" Change background colour of highlighted spell words
|
|
||||||
highlight SpellBad cterm=bold ctermfg=15 ctermbg=9 gui=none guifg=bg guibg=Red
|
|
||||||
|
|
||||||
let colors_name = "my_default"
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
"
|
|
||||||
" Change filetype to javascript.jsx if a js file imports `React`
|
|
||||||
"
|
|
||||||
function! s:ScanFile()
|
|
||||||
let n = 1
|
|
||||||
let nmax = line('$')
|
|
||||||
if line('$') > 500
|
|
||||||
let nmax = 500
|
|
||||||
endif
|
|
||||||
while n < nmax
|
|
||||||
if getline(n) =~# "\\v<React>"
|
|
||||||
return 1
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let n = n + 1
|
|
||||||
endwhile
|
|
||||||
return 0
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:DetectJSX()
|
|
||||||
if match(&filetype, '\v<jsx>') != -1
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
if s:ScanFile()
|
|
||||||
set filetype=javascript.jsx
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
autocmd BufNewFile,BufRead *.js call s:DetectJSX()
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
function! s:ScanFile()
|
|
||||||
let n = 1
|
|
||||||
let nmax = line('$')
|
|
||||||
if line('$') > 500
|
|
||||||
let nmax = 500
|
|
||||||
endif
|
|
||||||
while n < nmax
|
|
||||||
if getline(n) =~ "^class [A-Z]"
|
|
||||||
return 1
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let n = n + 1
|
|
||||||
endwhile
|
|
||||||
return 0
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:DetectPhpClass()
|
|
||||||
if match(&filetype, '\v<php.class>') != -1
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
if s:ScanFile()
|
|
||||||
set ft=php.class
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"autocmd BufNewFile,BufRead *.php call s:DetectPhpClass()
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
"
|
|
||||||
" Set tsx files to have the typescript.jsx filetype so I can use vim-jsx for
|
|
||||||
" syntax highlighting
|
|
||||||
"
|
|
||||||
autocmd BufNewFile,BufRead *.tsx set filetype=typescript.jsx
|
|
||||||
autocmd BufNewFile,BufRead *.ts set filetype=typescript
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
"
|
|
||||||
" Set default fold for diff files
|
|
||||||
"
|
|
||||||
call aa#fold#set_fold('diff')
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
"
|
|
||||||
" Git commit message specific settings
|
|
||||||
"
|
|
||||||
"
|
|
||||||
|
|
||||||
"
|
|
||||||
" Enable spell by default
|
|
||||||
"
|
|
||||||
setlocal spell
|
|
||||||
|
|
||||||
"
|
|
||||||
" Make diff folds the default fold for commits. When running `git commit -v`
|
|
||||||
" all the file diffs will be folded
|
|
||||||
"
|
|
||||||
call aa#fold#set_fold('diff')
|
|
||||||
1
site-modules/core/files/vim/ftplugin/json.vim
Normal file
1
site-modules/core/files/vim/ftplugin/json.vim
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
set conceallevel=0
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
"
|
|
||||||
" Mail commit message specific settings
|
|
||||||
"
|
|
||||||
"
|
|
||||||
setlocal spell
|
|
||||||
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
"
|
|
||||||
" Markdown file type specific settings
|
|
||||||
"
|
|
||||||
"
|
|
||||||
setlocal spell
|
|
||||||
|
|
||||||
call aa#languagetool#init()
|
|
||||||
4
site-modules/core/files/vim/ftplugin/org.vim
Normal file
4
site-modules/core/files/vim/ftplugin/org.vim
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
" Required for formatting links with org
|
||||||
|
#setlocal conceallevel=2
|
||||||
|
#setlocal concealcursor=nc
|
||||||
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
"
|
|
||||||
" Set flods to be indent on php class files
|
|
||||||
"
|
|
||||||
if &ft == "php.class"
|
|
||||||
call aa#fold#set_fold('indent')
|
|
||||||
else
|
|
||||||
call aa#emmet#init()
|
|
||||||
endif
|
|
||||||
|
|
@ -1,152 +1,55 @@
|
||||||
" Ade Attwood <adeattwood.co.uk>
|
|
||||||
|
|
||||||
" Vimrc is ordered in the options style
|
|
||||||
" to view all the options run :options
|
|
||||||
" and get the docs on all the settings
|
|
||||||
|
|
||||||
"
|
|
||||||
" Important
|
|
||||||
"
|
|
||||||
"call pathogen#infect()
|
|
||||||
set nocompatible
|
|
||||||
filetype plugin on
|
|
||||||
set clipboard=unnamedplus
|
|
||||||
"set t_Co=256
|
|
||||||
|
|
||||||
"
|
|
||||||
" Set leader as space bar
|
" Set leader as space bar
|
||||||
"
|
|
||||||
let mapleader="\<Space>"
|
let mapleader="\<Space>"
|
||||||
|
|
||||||
|
" Use the system clipboard with yank and paste
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
|
||||||
"
|
" Setup better searching
|
||||||
" Not sorted and new
|
set ignorecase
|
||||||
"
|
|
||||||
set listchars=tab:▸\ ,extends:❯,precedes:❮
|
|
||||||
set pastetoggle=<F8>
|
|
||||||
set wildignore+=*/vendor/*,*/node_modules/*,*/runtime/*,*/public_html/*
|
|
||||||
set scrolloff=20
|
|
||||||
set signcolumn=yes
|
|
||||||
|
|
||||||
"
|
|
||||||
" Moving around, searching and pattern
|
|
||||||
"
|
|
||||||
set incsearch
|
set incsearch
|
||||||
|
set smartcase
|
||||||
|
|
||||||
"
|
" Stay 20 chars from the top and bottom of the buffer so I am always editing
|
||||||
" Tags
|
" in context
|
||||||
"
|
set scrolloff=20
|
||||||
|
|
||||||
"
|
|
||||||
" Displaying text
|
|
||||||
"
|
|
||||||
set linebreak
|
|
||||||
set nowrap
|
|
||||||
|
|
||||||
call aa#functions#number_on(0)
|
|
||||||
cabb tognum call aa#functions#toggle_numbers()
|
|
||||||
|
|
||||||
"
|
|
||||||
" Highlighting and spelling
|
|
||||||
"
|
|
||||||
syntax on
|
|
||||||
set spelllang=en_gb
|
|
||||||
set cursorline
|
|
||||||
set nohlsearch
|
|
||||||
|
|
||||||
|
|
||||||
"
|
|
||||||
" Multiple windows
|
|
||||||
"
|
|
||||||
set laststatus=2
|
|
||||||
|
|
||||||
|
|
||||||
"
|
|
||||||
" Multiple tab pages
|
|
||||||
"
|
|
||||||
|
|
||||||
"
|
|
||||||
" Terminal
|
|
||||||
"
|
|
||||||
|
|
||||||
"
|
|
||||||
" Using the mouse
|
" Using the mouse
|
||||||
"
|
|
||||||
set mouse=a
|
set mouse=a
|
||||||
|
|
||||||
|
|
||||||
"
|
|
||||||
" Printing
|
|
||||||
"
|
|
||||||
|
|
||||||
"
|
|
||||||
" Messages and info
|
|
||||||
"
|
|
||||||
set ruler
|
|
||||||
set showcmd
|
|
||||||
|
|
||||||
"
|
|
||||||
" Selecting text
|
|
||||||
"
|
|
||||||
|
|
||||||
"
|
|
||||||
" Editing text
|
|
||||||
"
|
|
||||||
set matchpairs+=<:>
|
|
||||||
set showmatch
|
|
||||||
|
|
||||||
"
|
|
||||||
" Tabs and indenting
|
" Tabs and indenting
|
||||||
"
|
|
||||||
set tabstop=4
|
set tabstop=4
|
||||||
set shiftwidth=4
|
set shiftwidth=4
|
||||||
set expandtab
|
set expandtab
|
||||||
set autoindent
|
set autoindent
|
||||||
filetype plugin indent on
|
filetype plugin indent on
|
||||||
|
|
||||||
"
|
" Highlight the current line where the cursor is on
|
||||||
" Folding
|
set cursorline
|
||||||
"
|
let g:vim_json_conceal=0
|
||||||
hi Folded ctermbg=0
|
|
||||||
set foldtext=aa#fold#fold_text()
|
|
||||||
|
|
||||||
command! -nargs=1 -complete=customlist,aa#fold#command_complete SetFold call aa#fold#set_fold(<f-args>)
|
" Relative line numbers, this set line numbers a swell so the current line is
|
||||||
call aa#fold#set_fold('marker')
|
" displayed correctly. If this is not set then the current line is always 0
|
||||||
|
set relativenumber
|
||||||
|
set number
|
||||||
|
|
||||||
"
|
set conceallevel=0
|
||||||
" Diff mode
|
|
||||||
"
|
" Ensure the signcolumn is on to stop jumping for LSP diagnostics
|
||||||
|
set signcolumn=yes
|
||||||
|
|
||||||
|
" Disable swap files
|
||||||
|
set noswapfile
|
||||||
|
|
||||||
|
" Disable line wrapping
|
||||||
|
set nowrap
|
||||||
|
|
||||||
|
packadd! command-t
|
||||||
|
|
||||||
"
|
|
||||||
" Mapping
|
|
||||||
"
|
|
||||||
cabb Q q
|
|
||||||
cabb W w
|
|
||||||
cabb WQ wq
|
|
||||||
cabb Wq wq
|
|
||||||
cabb __html set ft=html
|
|
||||||
cabb __php set ft=php
|
|
||||||
cabb aa <esc>vi[:EasyAlign =<CR>
|
|
||||||
cabb ap <esc>vip:EasyAlign =<CR>
|
|
||||||
cabb evim e ~/.vimrc
|
|
||||||
cabb sortp <esc>vip:sort<CR>
|
|
||||||
imap <c-h> <esc>I
|
|
||||||
imap <c-l> <esc>A
|
|
||||||
inoremap <C-Del> X<Esc>lbce
|
|
||||||
inoremap ,, <esc>A,
|
|
||||||
inoremap ;; <esc>A;
|
|
||||||
inoremap jj <esc>:w<cr>
|
|
||||||
nmap <silent> <Leader>s ]sz=
|
|
||||||
nnoremap <leader><leader> <c-^>
|
|
||||||
nnoremap <leader>d :call pdv#DocumentWithSnip()<cr>
|
|
||||||
nnoremap <silent> <Down> :resize -5<cr>
|
|
||||||
nnoremap <silent> <Right> :vertical resize +5<cr>
|
|
||||||
nnoremap <silent> <Up> :resize +5<cr>
|
|
||||||
nnoremap <silent> <leader>f za<cr>
|
|
||||||
nnoremap <silent> <leader>q :q<cr>
|
|
||||||
noremap <leader>g :tab Gstatus<cr>
|
|
||||||
noremap <leader>p :CommandT<cr>
|
noremap <leader>p :CommandT<cr>
|
||||||
noremap <silent> <Left> :vertical resize -5<cr>
|
noremap <silent> <leader>q :bdelete<cr>
|
||||||
|
noremap <silent> <leader>fs :w<cr>
|
||||||
|
|
||||||
|
noremap <silent> <leader>o :Open
|
||||||
|
|
||||||
noremap <silent> [b :bp<cr>
|
noremap <silent> [b :bp<cr>
|
||||||
noremap <silent> ]b :bn<cr>
|
noremap <silent> ]b :bn<cr>
|
||||||
|
|
@ -154,79 +57,26 @@ noremap <silent> ]b :bn<cr>
|
||||||
noremap <silent> [q :cprevious<cr>
|
noremap <silent> [q :cprevious<cr>
|
||||||
noremap <silent> ]q :cnext<cr>
|
noremap <silent> ]q :cnext<cr>
|
||||||
|
|
||||||
noremap <silent> ]h :GitGutterNextHunk<cr>
|
inoremap <M-;> <esc>A;
|
||||||
noremap <silent> [h :GitGutterPrevHunk<cr>
|
|
||||||
|
|
||||||
noremap <F2> :Run make build<cr>
|
noremap <leader>; gcc
|
||||||
noremap <F3> :Run make test<cr>
|
"vnoremap <leader>; gc
|
||||||
noremap <F4> :Run make test FILE="%"<cr>
|
|
||||||
|
|
||||||
nnoremap <silent> <Leader>h :set nohlsearch<cr>:nohlsearch<cr>
|
" Lint code with nvim-lint on save. This will lint all filetypes with cspell
|
||||||
nnoremap / :set hlsearch<cr>:nohlsearch<cr>/\v\c
|
" and then any other filetypes will be linted per the config.
|
||||||
nnoremap ? :set hlsearch<cr>:nohlsearch<cr>?
|
au BufWritePost <buffer> lua require('lint').try_lint('cspell')
|
||||||
nnoremap * :set hlsearch<cr>:nohlsearch<cr>*
|
au BufWritePost <buffer> lua require('lint').try_lint()
|
||||||
|
|
||||||
"
|
|
||||||
" Populate the command pallet with the `Ack` command followed by the visually
|
|
||||||
" selected text
|
|
||||||
"
|
|
||||||
vnoremap <leader>a <Esc>:Ack <c-r>=aa#buffer#GetVisualSelection()<cr>
|
|
||||||
|
|
||||||
"
|
|
||||||
" Reading and writing files
|
|
||||||
"
|
|
||||||
set autoread
|
|
||||||
|
|
||||||
"
|
|
||||||
" The swap file
|
|
||||||
"
|
|
||||||
set noswapfile
|
|
||||||
|
|
||||||
|
|
||||||
"
|
inoremap jj <esc>:w<cr>
|
||||||
" Command line editing
|
nnoremap <leader><tab> <c-^>
|
||||||
" Executing external commands
|
set wildignore+=*/vendor/*,*/node_modules/*,*/runtime/*,*/public_html/*,*/pack/*
|
||||||
" Running make and jumping to errors
|
|
||||||
" Language specific
|
|
||||||
"
|
|
||||||
|
|
||||||
"
|
" Required for complietion with nvim-cmp
|
||||||
" Multi-byte characters
|
set completeopt=menu,menuone,noselect
|
||||||
"
|
|
||||||
set fileencoding=utf-8
|
|
||||||
set encoding=utf-8
|
|
||||||
|
|
||||||
"
|
" Format code on save
|
||||||
" Various
|
augroup fmt
|
||||||
"
|
autocmd!
|
||||||
autocmd BufNewFile,BufRead *.phtml set ft=html
|
autocmd BufWritePre * undojoin | Neoformat
|
||||||
|
augroup END
|
||||||
|
|
||||||
"
|
|
||||||
" Plugins
|
|
||||||
"
|
|
||||||
|
|
||||||
" vim-airline
|
|
||||||
let g:airline#extensions#branch#enabled=1
|
|
||||||
let g:airline_theme='murmur'
|
|
||||||
let g:airline_powerline_fonts = 1
|
|
||||||
let g:airline#extensions#tabline#show_buffers = 1
|
|
||||||
let g:airline#extensions#tabline#show_splits = 0
|
|
||||||
let g:airline#extensions#tabline#show_tabs = 1
|
|
||||||
|
|
||||||
" pdv
|
|
||||||
let g:pdv_template_dir = $HOME . "/.config/nvim/UltiSnips/pdv_templates"
|
|
||||||
|
|
||||||
" indent-guides
|
|
||||||
let g:indent_guides_auto_colors = 1
|
|
||||||
|
|
||||||
"
|
|
||||||
" Text length markers
|
|
||||||
"
|
|
||||||
autocmd BufRead,TextChanged,TextChangedI *.pp,*.sh,*.bash,*.go,*.js,*.jsx,.ts,.tsx call aa#functions#show_column_if_line_too_long(80)
|
|
||||||
autocmd BufRead,TextChanged,TextChangedI *.php call aa#functions#show_column_if_line_too_long(120)
|
|
||||||
|
|
||||||
"
|
|
||||||
" Custom gitlab
|
|
||||||
"
|
|
||||||
let g:fugitive_gitlab_domains = ['https://git.zportal.co.uk']
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
*
|
|
||||||
!.gitignore
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
*
|
|
||||||
!.gitignore
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
"
|
|
||||||
" Highlights the active window in neo Vim. `ActiveWindow` is only available
|
|
||||||
" in neovim so
|
|
||||||
"
|
|
||||||
if has('nvim')
|
|
||||||
hi ActiveWindow ctermbg=00 | hi InactiveWindow ctermbg=22
|
|
||||||
set winhighlight=Normal:ActiveWindow,NormalNC:InactiveWindow
|
|
||||||
|
|
||||||
au VimEnter,WinEnter,BufEnter,BufWinEnter,FocusGained,CompleteDone * hi ActiveWindow ctermbg=00 | hi InactiveWindow ctermbg=22
|
|
||||||
au VimLeave,WinLeave,BufLeave,BufWinLeave,FocusLost * hi ActiveWindow ctermbg=22 | hi InactiveWindow ctermbg=22
|
|
||||||
else
|
|
||||||
hi Normal ctermbg=None
|
|
||||||
endif
|
|
||||||
|
|
@ -1,32 +1,33 @@
|
||||||
"
|
|
||||||
" Set color theme
|
" Set color theme
|
||||||
"
|
|
||||||
let base16colorspace=256
|
let base16colorspace=256
|
||||||
colorscheme base16-eighties
|
colorscheme base16-eighties
|
||||||
|
|
||||||
"
|
|
||||||
" Set tailing white space to errors
|
" Set tailing white space to errors
|
||||||
"
|
|
||||||
match ErrorMsg '\s\+$'
|
match ErrorMsg '\s\+$'
|
||||||
|
|
||||||
"
|
|
||||||
" Fix jsx end tag highlighting
|
" Fix jsx end tag highlighting
|
||||||
"
|
" NOTE: This is only with vim regex highlighting, this dose not apply if you
|
||||||
|
" are using treesitter to highlighting
|
||||||
hi Tag ctermfg=04
|
hi Tag ctermfg=04
|
||||||
hi xmlTag ctermfg=04
|
hi xmlTag ctermfg=04
|
||||||
hi xmlTagName ctermfg=04
|
hi xmlTagName ctermfg=04
|
||||||
hi xmlEndTag ctermfg=04
|
hi xmlEndTag ctermfg=04
|
||||||
|
|
||||||
"
|
|
||||||
" Highlight comments to be italic this also targets the language client
|
" Highlight comments to be italic this also targets the language client
|
||||||
" diagnostics.
|
" diagnostics.
|
||||||
"
|
|
||||||
highlight Comment cterm=italic gui=italic
|
highlight Comment cterm=italic gui=italic
|
||||||
|
|
||||||
"
|
" Remove underline from coursor line number
|
||||||
" Make coc diagnostics italic
|
highlight CursorLineNr cterm=none
|
||||||
"
|
|
||||||
highlight CocErrorSign cterm=italic gui=italic ctermfg=9 guifg=#ff0000
|
" Set the LSP diagnostics feedback to be italic
|
||||||
highlight CocWarningSign cterm=italic gui=italic ctermfg=130 guifg=#ff922b
|
highlight DiagnosticError cterm=italic guibg=#51202A guifg=#FF0000 gui=italic
|
||||||
highlight CocInfoSign cterm=italic gui=italic ctermfg=11 guifg=#fab005
|
highlight DiagnosticWarn cterm=italic guibg=#51412A guifg=#FFA500 gui=italic
|
||||||
highlight CocHintSign cterm=italic gui=italic ctermfg=12 guifg=#15aabf
|
highlight DiagnosticInfo cterm=italic guibg=#1E535D guifg=#00FFFF gui=italic
|
||||||
|
highlight DiagnosticHint cterm=italic guibg=#1E205D guifg=#0000FF gui=italic
|
||||||
|
|
||||||
|
" hi ActiveWindow ctermbg=00 | hi InactiveWindow ctermbg=22
|
||||||
|
" set winhighlight=Normal:ActiveWindow,NormalNC:InactiveWindow
|
||||||
|
"
|
||||||
|
" au VimEnter,WinEnter,BufEnter,BufWinEnter,FocusGained,CompleteDone * hi ActiveWindow ctermbg=00 | hi InactiveWindow ctermbg=22
|
||||||
|
" au VimLeave,WinLeave,BufLeave,BufWinLeave,FocusLost * hi ActiveWindow ctermbg=22 | hi InactiveWindow ctermbg=22
|
||||||
|
|
|
||||||
2
site-modules/core/files/vim/plugin/comments.lua
Normal file
2
site-modules/core/files/vim/plugin/comments.lua
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
require('Comment').setup()
|
||||||
55
site-modules/core/files/vim/plugin/completion.lua
Normal file
55
site-modules/core/files/vim/plugin/completion.lua
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
local cmp = require'cmp'
|
||||||
|
local luasnip = require'luasnip'
|
||||||
|
|
||||||
|
local has_words_before = function()
|
||||||
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
|
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||||
|
end
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<C-j>'] = cmp.get_config().mapping['<Down>'],
|
||||||
|
['<C-k>'] = cmp.get_config().mapping['<Up>'],
|
||||||
|
['<CR>'] = cmp.mapping(function(_fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.confirm({ select = true })
|
||||||
|
else
|
||||||
|
vim.api.nvim_feedkeys('\n', 'nt', false)
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
elseif has_words_before() then
|
||||||
|
cmp.complete()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
|
||||||
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
}),
|
||||||
|
sources = {
|
||||||
|
{ name = "luasnip" },
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'buffer' },
|
||||||
|
{ name = 'path' },
|
||||||
|
{ name = 'orgmode' }
|
||||||
|
},
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
luasnip.lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
"
|
|
||||||
" Defer command for starting work after vim has loaded
|
|
||||||
"
|
|
||||||
" This is biased from Greg Hurrell's Profiling and optimization screen cast in
|
|
||||||
" his implementation he is using the `CursorHold,CursorHoldI` auto command
|
|
||||||
" that didn't really work for me. This uses `timer_start` to set a timer when
|
|
||||||
" to start the work. This is then started on `VimEnter` when everything has
|
|
||||||
" loaded. There are two levels of defer one at `250ms` and `500ms` This is for
|
|
||||||
" calling functions that depend on something that has already been deferred.
|
|
||||||
"
|
|
||||||
" You can use this by adding a function to the user auto command `WincentSoftDefer`
|
|
||||||
"
|
|
||||||
" autocmd User WincentSoftDefer call s:do_work()
|
|
||||||
"
|
|
||||||
|
|
||||||
function HardDefer(timer)
|
|
||||||
augroup WincentIdleboot
|
|
||||||
autocmd!
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
doautocmd User WincentHardDefer
|
|
||||||
autocmd! User WincentHardDefer
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function SoftDefer(timer)
|
|
||||||
augroup WincentIdleboot
|
|
||||||
autocmd!
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
doautocmd User WincentSoftDefer
|
|
||||||
autocmd! User WincentSoftDefer
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
augroup WincentIdleboot
|
|
||||||
autocmd!
|
|
||||||
if has('vim_starting')
|
|
||||||
autocmd VimEnter * call timer_start(250, 'SoftDefer')
|
|
||||||
autocmd VimEnter * call timer_start(500, 'HardDefer')
|
|
||||||
endif
|
|
||||||
augroup END
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
"
|
|
||||||
" Add deoplete plugin
|
|
||||||
"
|
|
||||||
function s:deoplete_init()
|
|
||||||
if has('nvim')
|
|
||||||
packadd deoplete
|
|
||||||
call deoplete#enable()
|
|
||||||
|
|
||||||
call deoplete#custom#source('ultisnips', 'rank', 9999)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"au User WincentHardDefer call s:deoplete_init()
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
"
|
|
||||||
" Init emmet on specified files
|
|
||||||
"
|
|
||||||
autocmd FileType html,css,scss,less,javascript.jsx,typescript.jsx call aa#emmet#init()
|
|
||||||
|
|
||||||
"let g:user_emmet_leader_key='<C-Z>'
|
|
||||||
|
|
||||||
"
|
|
||||||
" Make <c-e> expand emment expreson like sparkup did
|
|
||||||
"
|
|
||||||
|
|
||||||
"inoremap <silent> <c-e> <esc>:call emmet#expandAbbr(3,"")<cr>
|
|
||||||
46
site-modules/core/files/vim/plugin/file-ops.vim
Normal file
46
site-modules/core/files/vim/plugin/file-ops.vim
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
" Open a file the same way you use :edit. This function will give you a prompt
|
||||||
|
" for a file with the default value of the directory the current file is in.
|
||||||
|
function s:open()
|
||||||
|
let file_name = expand(input("Open file: ", expand("%:h") . "/", "file"))
|
||||||
|
execute 'edit ' . file_name
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! Open call s:open()
|
||||||
|
|
||||||
|
" Rename the current file on disk and remove all instances of it in vim and
|
||||||
|
" then switch to the new buffer.
|
||||||
|
function s:aa_rename()
|
||||||
|
let file_name = expand(input("New file name: ", expand("%:h") . "/", "file"))
|
||||||
|
if isdirectory(file_name) || filereadable(file_name)
|
||||||
|
echoerr "File '" . file_name . "' already exists unable to rename the file"
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Rename the current file to the new name
|
||||||
|
let current_file = expand("%")
|
||||||
|
call rename(current_file, file_name)
|
||||||
|
" Remove the old buffer and remove it from the alternate file list and the
|
||||||
|
" jump list so you cant get back to this buffer with <C-o> or <C-^>
|
||||||
|
execute "bwipeout " . current_file
|
||||||
|
" Open the new file as a buffer
|
||||||
|
execute "edit " . file_name
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! Rename call s:aa_rename()
|
||||||
|
|
||||||
|
" Copy the current buffer. This is the same as `saveas` with some checks
|
||||||
|
" around the new name of the file to prevent overriteing files that already
|
||||||
|
" exist.
|
||||||
|
function s:aa_copy()
|
||||||
|
let file_name = expand(input("New file name: ", expand("%:h") . "/", "file"))
|
||||||
|
if isdirectory(file_name) || filereadable(file_name)
|
||||||
|
echoerr "File '" . file_name . "' already exists unable to rename the file"
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Rename the current file to the new name. This is run with `silent` to
|
||||||
|
" stop the write message from getting put in the status line.
|
||||||
|
silent execute "saveas " . file_name
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! Copy call s:aa_copy()
|
||||||
|
|
@ -1,183 +0,0 @@
|
||||||
if exists('g:vim_formatter_loaded')
|
|
||||||
finish
|
|
||||||
end
|
|
||||||
|
|
||||||
let g:vim_formatter_loaded = 1
|
|
||||||
|
|
||||||
"
|
|
||||||
" Set the global formatters definitions variable
|
|
||||||
"
|
|
||||||
if !exists('g:formatters')
|
|
||||||
let g:formatters = {}
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Get the prettier config for the current project
|
|
||||||
"
|
|
||||||
if filereadable('./.prettierrc.js')
|
|
||||||
let s:prettier_config = '.prettierrc.js'
|
|
||||||
elseif filereadable('./.prettierrc')
|
|
||||||
let s:prettier_config = '.prettierrc'
|
|
||||||
else
|
|
||||||
let s:prettier_config = '~/.dotfiles/.prettierrc.js'
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Set the base prettier command for formatting. This can be used on most of
|
|
||||||
" the file formats
|
|
||||||
"
|
|
||||||
let s:base_prettier_command = 'prettier --config ' . s:prettier_config . ' --stdin --stdin-filepath /tmp/formatted.'
|
|
||||||
|
|
||||||
"
|
|
||||||
" Typescript formatter definition
|
|
||||||
"
|
|
||||||
let g:formatters['typescript'] = s:base_prettier_command . 'ts'
|
|
||||||
let g:formatters['typescript.jsx'] = s:base_prettier_command . 'tsx'
|
|
||||||
|
|
||||||
"
|
|
||||||
" Javascript formatter definition
|
|
||||||
"
|
|
||||||
let g:formatters['javascript'] = s:base_prettier_command . 'js'
|
|
||||||
let g:formatters['javascript.jsx'] = s:base_prettier_command . 'jsx'
|
|
||||||
|
|
||||||
"
|
|
||||||
" HTML formatter definition
|
|
||||||
"
|
|
||||||
let g:formatters['html'] = s:base_prettier_command . 'html'
|
|
||||||
|
|
||||||
"
|
|
||||||
" Styling formatter definition
|
|
||||||
"
|
|
||||||
let g:formatters['css'] = s:base_prettier_command . 'css'
|
|
||||||
let g:formatters['scss'] = s:base_prettier_command . 'scss'
|
|
||||||
let g:formatters['less'] = s:base_prettier_command . 'less'
|
|
||||||
|
|
||||||
"
|
|
||||||
" JSON formatter definition
|
|
||||||
"
|
|
||||||
let g:formatters['json'] = s:base_prettier_command . 'json'
|
|
||||||
|
|
||||||
"
|
|
||||||
" YAML formatter definition
|
|
||||||
"
|
|
||||||
let g:formatters['yaml'] = s:base_prettier_command . 'yml'
|
|
||||||
|
|
||||||
"
|
|
||||||
" Markdown formatter definition
|
|
||||||
"
|
|
||||||
let g:formatters['markdown'] = s:base_prettier_command . 'md'
|
|
||||||
|
|
||||||
"
|
|
||||||
" Puppet formatter definition
|
|
||||||
"
|
|
||||||
let g:formatters['puppet'] = 'cat - > /tmp/format.pp && puppet-lint --no-autoloader_layout-check --fix /tmp/format.pp >/dev/null 2>&1 && cat /tmp/format.pp'
|
|
||||||
|
|
||||||
"
|
|
||||||
" PHP formatter definition
|
|
||||||
"
|
|
||||||
" This will use the `ruleset.xml` in the root of the project if one can be
|
|
||||||
" found. If not then it will fall back to use psr2 coding standards
|
|
||||||
"
|
|
||||||
if filereadable('./ruleset.xml')
|
|
||||||
let g:formatters['php'] = 'phpcbf --standard=./ruleset.xml -'
|
|
||||||
let g:formatters['php.class'] = 'phpcbf --standard=./ruleset.xml -'
|
|
||||||
else
|
|
||||||
let g:formatters['php'] = 'phpcbf --standard=psr2 -'
|
|
||||||
let g:formatters['php.class'] = 'phpcbf --standard=psr2 -'
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Define if you want the plugin to format on save
|
|
||||||
"
|
|
||||||
if !exists('g:formatter_on_save')
|
|
||||||
let g:formatter_on_save = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Set the plugin to debug mode
|
|
||||||
"
|
|
||||||
if !exists('g:formatter_debug')
|
|
||||||
let g:formatter_debug = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Variable for enabling and disabling the formatters
|
|
||||||
"
|
|
||||||
if !exists('g:formatter_enabled')
|
|
||||||
let g:formatter_enabled = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Format the current buffers text biased on the file type and the formatters
|
|
||||||
" defined
|
|
||||||
"
|
|
||||||
function s:format()
|
|
||||||
"
|
|
||||||
" Exit is formatting has been disabled
|
|
||||||
"
|
|
||||||
if !g:formatter_enabled
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Trim white space before formatting
|
|
||||||
"
|
|
||||||
%s/\s\+$//e
|
|
||||||
|
|
||||||
"
|
|
||||||
" Format the buffers content
|
|
||||||
"
|
|
||||||
let l:lines = s:format_text(join(getline(1, '$'), "\n"), &filetype)
|
|
||||||
|
|
||||||
"
|
|
||||||
" Replace the lines of the formatted text with the text in the buffer
|
|
||||||
"
|
|
||||||
call aa#buffer#Overwrite(1, line('$'), lines)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" Formats defined lines biased on the type defined
|
|
||||||
"
|
|
||||||
" a:lines
|
|
||||||
" The text you want to format
|
|
||||||
"
|
|
||||||
" a:type
|
|
||||||
" The type formatter to use this will defined in the `g:formatters` variable
|
|
||||||
"
|
|
||||||
function s:format_text(lines, type)
|
|
||||||
let l:lines = a:lines
|
|
||||||
|
|
||||||
"
|
|
||||||
" Just return the lines if there is no formatters defined
|
|
||||||
"
|
|
||||||
if !exists("g:formatters['" . a:type . "']")
|
|
||||||
if g:formatter_debug == 1
|
|
||||||
echo '[formatter] No formatter defined for ' . a:type
|
|
||||||
endif
|
|
||||||
|
|
||||||
return split(lines, "\n")
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Run the formatter command and return the output of the text
|
|
||||||
"
|
|
||||||
let l:command = g:formatters[a:type]
|
|
||||||
let l:formatted_lines = split(system(command, lines), "\n")
|
|
||||||
|
|
||||||
"
|
|
||||||
" Return original lines if formatter command returns an error
|
|
||||||
"
|
|
||||||
if v:shell_error > 1
|
|
||||||
echoerr '[formatter] ' . join(formatted_lines, "\n")
|
|
||||||
return split(lines, "\n")
|
|
||||||
endif
|
|
||||||
|
|
||||||
return formatted_lines
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" Defined the autocmd if the plugin is set to format on save
|
|
||||||
"
|
|
||||||
if g:formatter_on_save == 1
|
|
||||||
autocmd BufWritePre * call s:format()
|
|
||||||
endif
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
"
|
|
||||||
" Trims all traling white space from every line in a file
|
|
||||||
"
|
|
||||||
function! s:aa_trim_white_space()
|
|
||||||
%s/\s\+$//e
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
command! -nargs=* -complete=file TrimWhiteSpace call s:aa_trim_white_space(<f-args>)
|
|
||||||
|
|
||||||
"
|
|
||||||
" Creates a new file or directory updateing the UI with and clearing the
|
|
||||||
" command t cache. This function uses the nerd tree functions to create files
|
|
||||||
" or directory. For more info on this you can open nerdtree and press `m` then
|
|
||||||
" `a` to add a node. If it is a file the file will be opened in a new buffer
|
|
||||||
"
|
|
||||||
" a:path
|
|
||||||
" Path to file or directory. Dirs end in /
|
|
||||||
"
|
|
||||||
function! s:aa_new(path)
|
|
||||||
call g:NERDTreePath.Create(a:path)
|
|
||||||
|
|
||||||
call commandt#Flush()
|
|
||||||
NERDTreeRefreshRoot
|
|
||||||
|
|
||||||
if filereadable(expand(a:path))
|
|
||||||
execute "e " . expand(a:path)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
command! -nargs=1 -complete=file New call s:aa_new(<f-args>)
|
|
||||||
|
|
||||||
"
|
|
||||||
" Runs a shell command in the neovim terminal. This will open up a buffered
|
|
||||||
" terminal in a split at the bottom
|
|
||||||
"
|
|
||||||
" a:command
|
|
||||||
" The command you want the run in the terminal
|
|
||||||
"
|
|
||||||
function! s:aa_run(command)
|
|
||||||
if strlen($TMUX) > 0
|
|
||||||
if (&columns > 180)
|
|
||||||
let l:split = '-h'
|
|
||||||
else
|
|
||||||
let l:split = '-v'
|
|
||||||
endif
|
|
||||||
|
|
||||||
execute 'silent !tmux split-window -p 50 ' . l:split . ' && tmux send-keys "' . a:command . ' && exit" C-m'
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
if has('nvim')
|
|
||||||
if (&columns > 180)
|
|
||||||
execute 'VTerm ' . a:command . ' && exit'
|
|
||||||
else
|
|
||||||
execute 'HTerm ' . a:command . ' && exit'
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
command! -nargs=* -complete=shellcmd Run call s:aa_run(<q-args>)
|
|
||||||
|
|
||||||
|
|
||||||
"
|
|
||||||
" Git gutter alias commad commands to give them the same api as fugitive
|
|
||||||
"
|
|
||||||
command! GaddHunk :GitGutterStageHunk
|
|
||||||
command! GresetHunk :GitGutterUndoHunk
|
|
||||||
|
|
||||||
"
|
|
||||||
" Browse command to open urls in a browser. This is to help fugitive `Gbrowse`
|
|
||||||
" open urls in a browser rather that other programmes
|
|
||||||
"
|
|
||||||
function! s:browse(uri)
|
|
||||||
silent exec "!brave-browser '".a:uri."'"
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
command! -nargs=1 Browse call s:browse(<f-args>)
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
"
|
|
||||||
" Enable js doc syntax
|
|
||||||
"
|
|
||||||
let g:javascript_plugin_jsdoc = 1
|
|
||||||
47
site-modules/core/files/vim/plugin/lint.lua
Normal file
47
site-modules/core/files/vim/plugin/lint.lua
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
local lint = require('lint')
|
||||||
|
|
||||||
|
local severities = {
|
||||||
|
error = vim.diagnostic.severity.ERROR,
|
||||||
|
info = vim.diagnostic.severity.WARN,
|
||||||
|
}
|
||||||
|
|
||||||
|
lint.linters.psalm = {
|
||||||
|
cmd = 'psalm',
|
||||||
|
stdin = false,
|
||||||
|
args = {
|
||||||
|
'--output-format=json',
|
||||||
|
'--show-info=true'
|
||||||
|
},
|
||||||
|
-- ignore_exitcode = true,
|
||||||
|
parser = function(output, _)
|
||||||
|
if vim.trim(output) == '' then
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
|
||||||
|
local errors = vim.json.decode(output)
|
||||||
|
local diagnostics = {}
|
||||||
|
|
||||||
|
for _, err in ipairs(errors or {}) do
|
||||||
|
table.insert(diagnostics, {
|
||||||
|
lnum = err.line_from - 1,
|
||||||
|
end_lnum = err.line_to - 1,
|
||||||
|
col = err.column_from - 1,
|
||||||
|
end_col = err.column_to - 1,
|
||||||
|
message = err.message,
|
||||||
|
source = 'psalm',
|
||||||
|
severity = assert(severities[err.severity], 'missing mapping for severity ' .. err.severity),
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
return diagnostics
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
lint.linters_by_ft = {
|
||||||
|
php = {'phpcs'},
|
||||||
|
typescript = {'eslint'},
|
||||||
|
javascript = {'eslint'},
|
||||||
|
typescriptreact = {'eslint'},
|
||||||
|
javascriptreact = {'eslint'},
|
||||||
|
}
|
||||||
|
|
||||||
51
site-modules/core/files/vim/plugin/lsp.lua
Normal file
51
site-modules/core/files/vim/plugin/lsp.lua
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
local lspconfig = require('lspconfig')
|
||||||
|
|
||||||
|
|
||||||
|
local on_attach = function(client, bufnr)
|
||||||
|
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||||
|
|
||||||
|
local opts = { noremap=true, silent=true }
|
||||||
|
|
||||||
|
-- Mappings.
|
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||||
|
|
||||||
|
-- TODO(ade): Sort out space. This will conflict with the leader key
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
|
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
|
||||||
|
local servers = { 'tsserver', 'intelephense', 'psalm', 'gopls', 'html', 'cssls' }
|
||||||
|
for _, lsp in ipairs(servers) do
|
||||||
|
lspconfig[lsp].setup({
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
init_options = {
|
||||||
|
usePlaceholders = true,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
lspconfig.emmet_ls.setup({
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
filetypes = { 'html', 'typescriptreact', 'javascriptreact', 'css', 'scss' },
|
||||||
|
init_options = {
|
||||||
|
usePlaceholders = true,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Change the diagnostic signs
|
||||||
|
vim.fn.sign_define('DiagnosticSignError', { text = '✖', texthl = 'DiagnosticSignError', numhl = 'DiagnosticSignError' })
|
||||||
|
vim.fn.sign_define('DiagnosticSignHint', { text = '➤', texthl = 'DiagnosticSignHint', numhl = 'DiagnosticSignHint' })
|
||||||
|
vim.fn.sign_define('DiagnosticSignInfo', { text = 'ℹ', texthl = 'DiagnosticSignInfo', numhl = 'DiagnosticSignInfo' })
|
||||||
|
vim.fn.sign_define('DiagnosticSignWarn', { text = '⚠', texthl = 'DiagnosticSignWarn', numhl = 'DiagnosticSignWarn' })
|
||||||
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
function! s:check_back_space() abort
|
|
||||||
let col = col('.') - 1
|
|
||||||
return !col || getline('.')[col - 1] =~# '\s'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm() :
|
|
||||||
\"\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
|
|
||||||
nmap <silent> gd <Plug>(coc-definition)
|
|
||||||
nnoremap <silent> K :call <SID>show_documentation()<CR>
|
|
||||||
|
|
||||||
function! s:show_documentation()
|
|
||||||
if (index(['vim','help'], &filetype) >= 0)
|
|
||||||
execute 'h '.expand('<cword>')
|
|
||||||
else
|
|
||||||
call CocAction('doHover')
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:open_as_preview(callstr)
|
|
||||||
" e.g. the string should look like: +call cursor(<line>,<col>) <filename>
|
|
||||||
let m = matchlist(a:callstr, '^+call cursor(\(\d\+\),\s*\(\d\+\))\s\+\(.*\)')
|
|
||||||
if len(m) < 4 " TODO: more robust error handling
|
|
||||||
echohl WarningMsg | echom "ERROR: Invalid callstr format" | echohl None
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
let linenr = m[1]
|
|
||||||
let filename = expand(m[3])
|
|
||||||
call quickui#preview#open(filename, {
|
|
||||||
\ 'cursor': linenr,
|
|
||||||
\ 'number' : 1,
|
|
||||||
\ 'persist': 0,
|
|
||||||
\ })
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
command! -nargs=0 PreviewDefinition :call CocActionAsync('jumpDefinition', ':OpenAsPreview')
|
|
||||||
command! -nargs=* OpenAsPreview :call s:open_as_preview("<args>")
|
|
||||||
|
|
||||||
autocmd CursorHold * silent call CocActionAsync('highlight')
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
" Check if NERDTree is open or active
|
|
||||||
function! s:isNERDTreeOpen()
|
|
||||||
return exists("t:NERDTreeBufName") && (bufwinnr(t:NERDTreeBufName) != -1)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Call NERDTreeFind iff NERDTree is active, current window contains a modifiable
|
|
||||||
" file, and we're not in vimdiff
|
|
||||||
function! s:syncTree()
|
|
||||||
if &modifiable && s:isNERDTreeOpen() && strlen(expand('%')) > 0 && !&diff
|
|
||||||
NERDTreeFind
|
|
||||||
wincmd p
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! ToggleNerdTree()
|
|
||||||
if s:isNERDTreeOpen()
|
|
||||||
NERDTreeClose
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
set eventignore=BufEnter
|
|
||||||
NERDTreeFind
|
|
||||||
set eventignore=
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
function s:nerdtree_init()
|
|
||||||
nmap <silent> <Leader>o :call ToggleNerdTree()<CR>
|
|
||||||
autocmd BufEnter * call s:syncTree()
|
|
||||||
packadd nerdtree
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
au User WincentSoftDefer call s:nerdtree_init()
|
|
||||||
11
site-modules/core/files/vim/plugin/org.lua
Normal file
11
site-modules/core/files/vim/plugin/org.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
-- TODO(ade): Set up org capture into the website node dir
|
||||||
|
-- See https://github.com/AdeAttwood/Dotfiles/blob/86bf86d2010d7ec7b579e7b1c06632d5955f0a3c/site-modules/core/files/emacs/src/org.el#L107
|
||||||
|
|
||||||
|
require('orgmode').setup({
|
||||||
|
org_agenda_files = {'~/Code/src/github.com/AdeAttwood/Website/data/*'},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Dont folt heading on load.
|
||||||
|
vim.cmd[[autocmd FileType org setlocal nofoldenable]]
|
||||||
|
|
||||||
|
require('orgmode').setup_ts_grammar()
|
||||||
100
site-modules/core/files/vim/plugin/snippets.lua
Normal file
100
site-modules/core/files/vim/plugin/snippets.lua
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
local ls = require('luasnip')
|
||||||
|
local s = ls.snippet
|
||||||
|
local sn = ls.snippet_node
|
||||||
|
local i = ls.insert_node
|
||||||
|
local f = ls.function_node
|
||||||
|
local t = ls.text_node
|
||||||
|
local d = ls.dynamic_node
|
||||||
|
local fmt = require('luasnip.extras.fmt').fmt
|
||||||
|
|
||||||
|
function p (trig, desc, snip)
|
||||||
|
return ls.parser.parse_snippet(
|
||||||
|
{ trig = trig, dscr = desc },
|
||||||
|
table.concat(snip, '\n')
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
ls.config.setup({
|
||||||
|
store_selection_keys="<Tab>",
|
||||||
|
update_events="InsertLeave,TextChangedI",
|
||||||
|
})
|
||||||
|
|
||||||
|
ls.add_snippets("all", {
|
||||||
|
p('todo', 'Todo comment', { 'TODO(${1:ade}): $0' })
|
||||||
|
})
|
||||||
|
|
||||||
|
ls.add_snippets("org", {
|
||||||
|
p('org-header', 'Org mode header block', {
|
||||||
|
'#+TITLE: $0',
|
||||||
|
'#+AUTHOR: Ade Attwood',
|
||||||
|
'#+EMAIL: hello@adeattwood.co.uk',
|
||||||
|
'#+DATE: $CURRENT_YEAR-$CURRENT_MONTH-${CURRENT_DATE}'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
ls.add_snippets("php", {
|
||||||
|
p('#!', 'Shebang', { '#!/usr/bin/env php' }),
|
||||||
|
p( '/**', 'Block comment', {
|
||||||
|
'/**',
|
||||||
|
' * ${0}',
|
||||||
|
' */'
|
||||||
|
}),
|
||||||
|
s(
|
||||||
|
{trig = 'this', dscr = 'This shorthand'},
|
||||||
|
fmt("$this->{}", {
|
||||||
|
i(0),
|
||||||
|
})
|
||||||
|
),
|
||||||
|
s(
|
||||||
|
{trig = 'ai', dscr = 'Array item'},
|
||||||
|
fmt("'{}' => {}", {
|
||||||
|
i(1),
|
||||||
|
i(0),
|
||||||
|
})
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
local js_ts = {
|
||||||
|
p('#!', 'Shebang', { '#!/usr/bin/env node' }),
|
||||||
|
s(
|
||||||
|
{trig = 'import', dscr = 'Import statement'},
|
||||||
|
fmt("import {} from '{}'", {
|
||||||
|
i(0),
|
||||||
|
i(1)
|
||||||
|
})
|
||||||
|
),
|
||||||
|
|
||||||
|
s({trig = 'fn', dscr = 'Function'}, {
|
||||||
|
t('function '),
|
||||||
|
i(1),
|
||||||
|
t('('),
|
||||||
|
i(2),
|
||||||
|
t(')'),
|
||||||
|
t({' {', '\t'}),
|
||||||
|
i(0),
|
||||||
|
t({'', '}'})
|
||||||
|
}),
|
||||||
|
|
||||||
|
s({trig = 'useState', dscr = 'React useState hook'}, {
|
||||||
|
t('const ['),
|
||||||
|
i(1, 'state'),
|
||||||
|
t(', '),
|
||||||
|
f(function (args)
|
||||||
|
if args[1] == nil then
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
|
||||||
|
return 'set' .. args[1][1]:gsub("^%l", string.upper)
|
||||||
|
end, {1}),
|
||||||
|
t('] = React.useState('),
|
||||||
|
i(0),
|
||||||
|
t(');')
|
||||||
|
}),
|
||||||
|
p('log', 'Console log statement', { 'console.log(${0});' })
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ls.add_snippets("typescriptreact", js_ts)
|
||||||
|
ls.add_snippets("typescript", js_ts)
|
||||||
10
site-modules/core/files/vim/plugin/status-line.vim
Normal file
10
site-modules/core/files/vim/plugin/status-line.vim
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
" The most basic status line ever
|
||||||
|
function GitStatus()
|
||||||
|
return trim(system("git diff --shortstat 2> /dev/null | awk '{print \"+\"$4\" -\"$6}'"))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function GitBranch()
|
||||||
|
return trim(system("git rev-parse --abbrev-ref HEAD 2> /dev/null || echo 'no-git'"))
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
set statusline=\ %y%r\ %m%f:%l:%c%=[%{GitBranch()}]\ %{GitStatus()}\
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
"
|
|
||||||
" All of the good bits from `split_term`
|
|
||||||
" https://github.com/vimlab/split-term.vim/blob/master/plugin/split-term.vim
|
|
||||||
"
|
|
||||||
|
|
||||||
let s:force_vertical = exists('g:split_term_vertical') ? 1 : 0
|
|
||||||
let s:default_shell = exists('g:split_term_default_shell') ? g:split_term_default_shell : 0
|
|
||||||
|
|
||||||
au BufEnter * if &buftype == 'terminal' | :startinsert | endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Set split directions
|
|
||||||
"
|
|
||||||
set splitbelow
|
|
||||||
set splitright
|
|
||||||
|
|
||||||
" Opens up a new buffer, either vertical or horizontal. Count can be used to
|
|
||||||
" specify the number of visible columns or rows.
|
|
||||||
fun! s:openBuffer(count, vertical)
|
|
||||||
let cmd = a:vertical ? 'vnew' : 'new'
|
|
||||||
let cmd = a:count ? a:count . cmd : cmd
|
|
||||||
exe cmd
|
|
||||||
endf
|
|
||||||
|
|
||||||
" Opens a new terminal buffer, but instead of doing so using 'enew' (same
|
|
||||||
" window), it uses :vnew and :new instead. Usually, I want to open a new
|
|
||||||
" terminal and not replace my current buffer.
|
|
||||||
fun! s:openSplitTerm(args, count, vertical)
|
|
||||||
let direction = s:force_vertical ? 1 : a:vertical
|
|
||||||
|
|
||||||
call s:openBuffer(a:count, direction)
|
|
||||||
call s:openTerm(a:args)
|
|
||||||
endf
|
|
||||||
|
|
||||||
" Opens a new terminal buffer, but instead of doing so using split buffer, it
|
|
||||||
" uses :tabnew instead.
|
|
||||||
fun! s:openTabTerm(args)
|
|
||||||
exe 'tabnew'
|
|
||||||
call s:openTerm(a:args)
|
|
||||||
endf
|
|
||||||
|
|
||||||
" Open a new terminal in the active buffer, while defining default mappings
|
|
||||||
" for this plugin.
|
|
||||||
fun! s:openTerm(args)
|
|
||||||
let prevShell = &shell
|
|
||||||
if exists('g:split_term_default_shell')
|
|
||||||
exe 'set shell =' . s:default_shell
|
|
||||||
endif
|
|
||||||
|
|
||||||
exe 'terminal' a:args
|
|
||||||
|
|
||||||
|
|
||||||
"
|
|
||||||
" Turn off line numbers in terminal mode
|
|
||||||
"
|
|
||||||
call aa#functions#number_off(1)
|
|
||||||
|
|
||||||
exe 'startinsert'
|
|
||||||
|
|
||||||
"
|
|
||||||
" Add teminal mappings
|
|
||||||
"
|
|
||||||
tnoremap <buffer> <Esc> <C-\><C-n>
|
|
||||||
tnoremap <buffer> <expr> <C-v> '<C-\><C-N>pi'
|
|
||||||
tnoremap <buffer> <c-h> <C-\><C-n><C-w>h
|
|
||||||
tnoremap <buffer> <c-j> <C-\><C-n><C-w>j
|
|
||||||
tnoremap <buffer> <c-k> <C-\><C-n><C-w>k
|
|
||||||
tnoremap <buffer> <c-l> <C-\><C-n><C-w>l
|
|
||||||
|
|
||||||
if exists('g:split_term_default_shell')
|
|
||||||
exe 'set shell =' . prevShell
|
|
||||||
endif
|
|
||||||
endf
|
|
||||||
|
|
||||||
command! -count -nargs=* Term call s:openTerm(<q-args>)
|
|
||||||
command! -count -nargs=* VTerm call s:openSplitTerm(<q-args>, <count>, 1)
|
|
||||||
command! -count -nargs=* HTerm call s:openSplitTerm(<q-args>, <count>, 0)
|
|
||||||
command! -nargs=* TTerm call s:openTabTerm(<q-args>)
|
|
||||||
12
site-modules/core/files/vim/plugin/treesitter.lua
Normal file
12
site-modules/core/files/vim/plugin/treesitter.lua
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
require'nvim-treesitter.configs'.setup {
|
||||||
|
indent = { enable = true },
|
||||||
|
rainbow = { enable = true },
|
||||||
|
highlight = {
|
||||||
|
-- `false` will disable the whole extension
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting = true,
|
||||||
|
},
|
||||||
|
ensure_installed = {
|
||||||
|
"typescript", "javascript", "tsx", "php", "html", "go", "org"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
"
|
|
||||||
" Config for UltiSnips config
|
|
||||||
"
|
|
||||||
|
|
||||||
let g:UltiSnipsSnippetsDir = "~/.vim/UltiSnips"
|
|
||||||
let g:UltiSnipsExpandTrigger="<tab>"
|
|
||||||
let g:UltiSnipsJumpForwardTrigger="<c-j>"
|
|
||||||
let g:UltiSnipsJumpBackwardTrigger="<c-k>"
|
|
||||||
let g:snips_author = "Ade Attwood"
|
|
||||||
let g:snips_email = "code@adeattwood.co.uk"
|
|
||||||
|
|
||||||
"
|
|
||||||
" Run super tab script on UltiSnipsExpandTrigger to enable ultisnips and emmet
|
|
||||||
" on tab press
|
|
||||||
"
|
|
||||||
au InsertEnter * exec "inoremap <silent> " . g:UltiSnipsExpandTrigger . " <C-R>=aa#supertab#expand()<cr>"
|
|
||||||
|
|
@ -84,7 +84,7 @@ fi
|
||||||
#
|
#
|
||||||
source $ZSH/oh-my-zsh.sh
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
export EDITOR="emacsclient -nw"
|
export EDITOR="vim"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Import local alases if the file exists
|
# Import local alases if the file exists
|
||||||
|
|
|
||||||
|
|
@ -1,64 +1,79 @@
|
||||||
class core::vim {
|
class core::vim {
|
||||||
file { "${user_home}/.vim":
|
file { "${user_home}/.config/nvim":
|
||||||
|
ensure => 'directory',
|
||||||
|
force => true,
|
||||||
|
owner => $user,
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "${user_home}/.config/nvim/after":
|
||||||
ensure => 'link',
|
ensure => 'link',
|
||||||
force => true,
|
force => true,
|
||||||
owner => $user,
|
owner => $user,
|
||||||
target => find_file('core/vim'),
|
target => find_file('core/vim/after'),
|
||||||
}
|
}
|
||||||
|
|
||||||
file { "${user_home}/.vimrc":
|
file { "${user_home}/.config/nvim/ftplugin":
|
||||||
|
ensure => 'link',
|
||||||
|
force => true,
|
||||||
|
owner => $user,
|
||||||
|
target => find_file('core/vim/ftplugin'),
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "${user_home}/.config/nvim/plugin":
|
||||||
|
ensure => 'link',
|
||||||
|
force => true,
|
||||||
|
owner => $user,
|
||||||
|
target => find_file('core/vim/plugin'),
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "${user_home}/.config/nvim/spell":
|
||||||
|
ensure => 'link',
|
||||||
|
force => true,
|
||||||
|
owner => $user,
|
||||||
|
target => find_file('core/vim/spell'),
|
||||||
|
}
|
||||||
|
|
||||||
|
file { "${user_home}/.config/nvim/init.vim":
|
||||||
ensure => 'link',
|
ensure => 'link',
|
||||||
force => true,
|
force => true,
|
||||||
owner => $user,
|
owner => $user,
|
||||||
target => find_file('core/vim/init.vim'),
|
target => find_file('core/vim/init.vim'),
|
||||||
}
|
}
|
||||||
|
|
||||||
file { "${user_home}/.config/nvim":
|
|
||||||
ensure => 'link',
|
|
||||||
force => true,
|
|
||||||
owner => $user,
|
|
||||||
target => find_file('core/vim'),
|
|
||||||
}
|
|
||||||
|
|
||||||
$plugins_start= {
|
$plugins_start= {
|
||||||
|
'auto-pairs' => { url => 'https://github.com/jiangmiao/auto-pairs.git' },
|
||||||
'base16-vim' => { url => 'https://github.com/chriskempson/base16-vim.git' },
|
'base16-vim' => { url => 'https://github.com/chriskempson/base16-vim.git' },
|
||||||
'vim-easy-align' => { url => 'https://github.com/junegunn/vim-easy-align.git' },
|
'cmp_luasnip' => { url => 'https://github.com/saadparwaiz1/cmp_luasnip.git' },
|
||||||
'auto-pairs' => { url => 'git://github.com/jiangmiao/auto-pairs.git' },
|
'cmp-buffer' => { url => 'https://github.com/hrsh7th/cmp-buffer.git', revision => 'main' },
|
||||||
'indent-line' => { url => 'https://github.com/Yggdroot/indentLine.git' },
|
'cmp-nvim-lsp' => { url => 'https://github.com/hrsh7th/cmp-nvim-lsp.git', revision => 'main' },
|
||||||
'nerdcommenter' => { url => 'https://github.com/scrooloose/nerdcommenter.git' },
|
'cmp-path' => { url => 'https://github.com/hrsh7th/cmp-path.git', revision => 'main' },
|
||||||
'pdv' => { url => 'https://github.com/tobyS/pdv.git' },
|
'Comment.nvim' => { url => 'https://github.com/numToStr/Comment.nvim.git' },
|
||||||
'vim-airline' => { url => 'https://github.com/vim-airline/vim-airline' },
|
|
||||||
'vim-fugitive' => { url => 'git://github.com/tpope/vim-fugitive.git' },
|
|
||||||
'vim-tmux-navigator' => { url => 'https://github.com/christoomey/vim-tmux-navigator.git' },
|
|
||||||
'ultisnips' => { url => 'https://github.com/SirVer/ultisnips.git' },
|
|
||||||
'vim-airline-themes' => { url => 'https://github.com/vim-airline/vim-airline-themes.git' },
|
|
||||||
'vim-javascript' => { url => 'https://github.com/pangloss/vim-javascript.git' },
|
|
||||||
'vim-jsx' => { url => 'https://github.com/mxw/vim-jsx.git' },
|
|
||||||
'command-t' => { url => 'https://github.com/wincent/command-t.git' },
|
|
||||||
'ferret' => { url => 'https://github.com/wincent/ferret.git' },
|
'ferret' => { url => 'https://github.com/wincent/ferret.git' },
|
||||||
#
|
'indent-line' => { url => 'https://github.com/Yggdroot/indentLine.git' },
|
||||||
# Nerdtree has now been loaded after vim start up
|
'LuaSnip' => { url => 'https://github.com/L3MON4D3/LuaSnip.git' },
|
||||||
#
|
'nvim-cmp' => { url => 'https://github.com/hrsh7th/nvim-cmp.git', revision => 'main' },
|
||||||
'nerdtree' => {
|
'nvim-lint' => { url => 'https://github.com/mfussenegger/nvim-lint.git' },
|
||||||
ensure => 'absent',
|
'nvim-lspconfig' => { url => 'https://github.com/neovim/nvim-lspconfig.git' },
|
||||||
url => 'https://github.com/scrooloose/nerdtree.git',
|
'nvim-treesitter' => { url => 'https://github.com/nvim-treesitter/nvim-treesitter.git' },
|
||||||
},
|
'orgmode' => { url => 'https://github.com/nvim-orgmode/orgmode.git' },
|
||||||
}
|
'vim-puppet' => { url => 'https://github.com/rodjek/vim-puppet.git' },
|
||||||
|
'vim-surround' => { url => 'https://github.com/tpope/vim-surround.git' },
|
||||||
exec { 'Compile command t':
|
'vim-tmux-navigator' => { url => 'https://github.com/christoomey/vim-tmux-navigator.git' },
|
||||||
path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ],
|
|
||||||
command => 'ruby extconf.rb && make',
|
|
||||||
cwd => "${find_file('core/vim')}/pack/bundle/start/command-t/ruby/command-t/ext/command-t",
|
|
||||||
provider => 'shell',
|
|
||||||
#require => [Vim::Plugin_start[command-t]],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
create_resources(core::vim::plugin_start, $plugins_start)
|
create_resources(core::vim::plugin_start, $plugins_start)
|
||||||
|
|
||||||
$plugins_opt= {
|
$plugins_opt= {
|
||||||
'emmet-vim' => { url => 'https://github.com/mattn/emmet-vim.git' },
|
'command-t' => { url => 'https://github.com/wincent/command-t.git' },
|
||||||
'nerdtree' => { url => 'https://github.com/scrooloose/nerdtree.git' },
|
|
||||||
}
|
}
|
||||||
|
|
||||||
create_resources(core::vim::plugin_opt, $plugins_opt)
|
create_resources(core::vim::plugin_opt, $plugins_opt)
|
||||||
|
|
||||||
|
exec { 'Compile command t':
|
||||||
|
path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ],
|
||||||
|
command => 'ruby extconf.rb && make',
|
||||||
|
cwd => "${user_home}/.config/nvim/pack/bundle/opt/command-t/ruby/command-t/ext/command-t",
|
||||||
|
provider => 'shell',
|
||||||
|
#require => [Vim::Plugin_start[command-t]],
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
name = <%= scope.call_function('lookup', ["user_name"]) %>
|
name = <%= scope.call_function('lookup', ["user_name"]) %>
|
||||||
|
|
||||||
[core]
|
[core]
|
||||||
editor = $ZSH/plugins/emacs/emacsclient.sh -nw
|
editor = vim
|
||||||
autocrlf = input
|
autocrlf = input
|
||||||
|
|
||||||
[merge]
|
[merge]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue