Vim window logic, slimv

This commit is contained in:
Ian Keane 2020-02-24 20:27:04 -05:00
parent babcc9e44b
commit 515847d07e
791 changed files with 51552 additions and 86 deletions

View file

@ -0,0 +1,19 @@
Copyright (c) 2012 Zachary Beane
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View file

@ -0,0 +1,265 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel='stylesheet' type='text/css' href='style.css'>
<title>Quickproject - create a Common Lisp project skeleton</title>
</head>
<body>
<div id='content'>
<h2>Quickproject - create a Common Lisp project skeleton</h2>
<p>Quickproject is a library for creating a Common Lisp project
skeleton. It is available under a BSD-style license;
see <a href='LICENSE.txt'>LICENSE.txt</a> for details.
The latest version is 1.4.1, released on December 26th, 2019.
<p>Download
shortcut: <a href='http://www.xach.com/lisp/quickproject.tgz'>http://www.xach.com/lisp/quickproject.tgz</a>
<h2>Contents</h2>
<ul>
<li> <a href='#overview'>Overview</a>
<li> <a href='#examples'>Examples</a>
<li> <a href='#dictionary'>Dictionary</a>
<ul>
<li> <a href='#make-project'>make-project</a>
<li> <a href='#*author*'>*author*</a>
<li> <a href='#*include-copyright*'>*include-copyright*</a>
<li> <a href='#*license*'>*license*</a>
<li> <a href='#*template-directory*'>*template-directory*</a>
<li> <a href='#default-template-parameters'>default-template-parameters</a>
<li> <a href='#*template-parameter-functions*'>*template-parameter-functions*</a>
<li> <a href='#*after-make-project-hooks*'>*after-make-project-hooks*</a>
</ul>
<li> <a href='#feedback'>Feedback</a>
</ul>
<a name='overview'><h2>Overview</h2></a>
<p>Quickproject provides a quick way to make a Common Lisp
project. After creating a project, it extends the ASDF registry so
the project may be immediately loaded.
<a name='example'><h2>Examples</h2></a>
<pre class=code>
* <b>(quickproject:make-project #p"~/src/myproject/" :depends-on '(drakma cxml))</b>
"myproject"
* <b>(asdf:load-system "myproject")</b>
<i>load output</i>
</pre>
<pre class='code'>
* <b>(quickproject:make-project #p"~/src/websnarf/" :name "cl-websnarf")</b>
"cl-websnarf"
* <b>(directory #p"~/src/websnarf/*.*")</b>
(#p"~/src/websnarf/README.txt"
#p"~/src/websnarf/package.lisp"
#p"~/src/websnarf/cl-websnarf.asd"
#p"~/src/websnarf/cl-websnarf.lisp")
</pre>
<a name='dictionary'><h2>Dictionary</h2></a>
<p>The following symbols are exported from the <tt>quickproject</tt>
package.
<div class='item'>
<div class='type'><a name='make-project'>[Function]</a></div>
<div class='signature'>
<code class='name'>make-project</code>
<span class='args'>
<var>pathname</var> <code class='llkw'>&amp;key</code>
<var>depends-on</var>
<var>author</var>
<var>include-copyright</var>
<var>license</var>
<var>name</var>
<var>template-directory</var>
<var>template-parameters</var>
</span>
<span class='result'>=> <var>project-name</var></span>
</div>
<blockquote class='description'>
<p>Create the skeleton of a Common Lisp project
in <var>directory</var>. If given, <var>name</var> is used as the
name of the project. Otherwise, the name is taken from the last
component in
the <a href="http://l1sp.org/cl/pathname-directory">pathname-directory</a>
of the pathname. For example, the last directory component
of <tt>#p"src/lisp/myproject/"</tt> is "myproject".
<p>The project skeleton consists of the following files:
<ul>
<li> README.txt
<li> package.lisp &mdash; defines a package named after the project
<li> <var>name</var>.asd &mdash; defines an ASDF system named after
the project, with a <tt>:depends-on</tt> list as given in the
function call
<li> <var>name</var>.lisp
</ul>
<p>If provided, <var>author</var> and <var>license</var> are used
to initialize certain parts of the default files with extra
information. The default values are taken
from <a href='#*author*'><tt>*AUTHOR*</tt></a>
and <a href='#*license*'><tt>*LICENSE*</tt></a>, respectively.
<p>If provided, the boolean argument to <var>include-copyright</var>
will determine whether copyright notices will be printed in the
header of each file.
<p>If provided, each file in <var>template-directory</var> is
rewritten
with <a href="http://weitz.de/html-template/">HTML-TEMPLATE</a>
into the new directory. The options are as follows:
<ul>
<li> The template markers are <tt>(#|</tt> and <tt>|#)</tt>
<li> No escaping is done in template values
<li> Template parameters are created by
appending <var>template-parameters</var> with the lists returned by
calling each entry
in <a href='#*template-parameter-functions*'><tt>*TEMPLATE-PARAMETER-FUNCTIONS*</tt></a>
</ul>
<p>After rewriting templates, each element
in <a href='#*after-make-project-hooks*'><tt>*AFTER-MAKE-PROJECT-HOOKS*</tt></a>
is called.
<p>After the project has been created, its pathname is added
to <tt>ASDF:*CENTRAL-REGISTRY*</tt>, so the project is immediately
loadable via <tt>ASDF:LOAD-SYSTEM</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*author*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*author*</code>
</div>
<blockquote class='description'>
<p>This string is used to initialize the <tt>:author</tt> argument
in the project system definition. The default initial value
is <tt>"Your&nbsp;Name&nbsp;&lt;your.name@example.com>"</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*include-copyright*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*include-copyright*</code>
</div>
<blockquote class='description'>
<p>This variable is used to control whether a copyright notice (with
the author's name and the current year) should appear in the header
of each file.</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*license*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*license*</code>
</div>
<blockquote class='description'>
<p>This string is used to initialize the <tt>:description</tt>
argument in the project system definition. The default initial
value is <tt>"Specify&nbsp;license&nbsp;here"</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*template-directory*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*template-directory*</code>
</div>
<blockquote class='description'>
<p>If non-NIL, this variable should be bound to a pathname used as
the default value of <var>template-directory</var>
in <a href='#make-project'><tt>MAKE-PROJECT</tt></a>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='default-template-parameters'>[Function]</a></div>
<div class='signature'>
<code class='name'>default-template-parameters</code>
<span class='args'>
</span>
<span class='result'>=> <var>parameters</var></span>
</div>
<blockquote class='description'>
<p>Return a plist with values for <tt>:name</tt>, <tt>:license</tt>,
and <tt>:author</tt> for the current project being created
via <a href='#make-project'><tt>MAKE-PROJECT</tt></a>. This
function is in the default value
of <a href='#*template-parameter-functions*'><tt>*TEMPLATE-PARAMETER-FUNCTIONS*</tt></a>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*template-parameter-functions*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*template-parameter-functions*</code>
</div>
<blockquote class='description'>
<p>A list of functions that are called to produce template
parameters when rewriting templates
in <a href='#make-project'><tt>MAKE-PROJECT</tt></a>. Each
function is called with no arguments and should produce a list
of keyword/value pairs. The resulting lists are appended
together for use as template parameters
in <a href='http://weitz.de/html-template/#fill-and-print-template'><tt>HTML-TEMPLATE:FILL-AND-PRINT-TEMPLATE</tt></a>.
<p>The default value is <tt>(default-template-parameters)</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*after-make-project-hooks*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*after-make-project-hooks*</code>
</div>
<blockquote class='description'>
<p>A list of designators for functions to be called after a
project has been created. Each function should accept one required
argument, the pathname given
to <a href='#make-project'><tt>MAKE-PROJECT</tt></a>, and two
keyword arguments, <tt>:name</tt> and <tt>:depends-on</tt>, which
correspond to the name of the project (whether explicitly supplied
to <tt>MAKE-PROJECT</tt> or derived from the pathname) and the
<tt>:depends-on</tt> argument,
respectively. <tt>*default-pathname-defaults*</tt> is bound to the
newly created project pathname when hooks are called.
</blockquote>
</div>
<a name='feedback'><h2>Feedback</h2></a>
<p>For questions or comments about Quickproject, please email me, Zach
Beane &lt;<a href='mailto:xach@xach.com'>xach@xach.com</a>&gt;.
</div>
<br><br><br>
</body>

View file

@ -0,0 +1,83 @@
body {
margin-left: 4em;
font: medium/1.45em "Lucida Grande", "Trebuchet MS", "Bitstream Vera Sans", Verdana, Helvetica, sans-serif;
}
p.copyright {
font-size: 75%;
font-weight: bold;
}
#content {
margin-left: 4em;
margin-right: 4em;
max-width: 50em;
}
h2, h3 {
margin-bottom: 0em;
margin-top: 2em;
}
p.html {
margin-left: 1em;
font-family: monospace;
}
.type {
color: #999;
}
.signature {
color: #A01;
margin-left: 1em;
}
.signature span.result {
color: black;
}
.signature code.llkw {
font-family: monospace;
}
.signature span.result var {
color: #A01;
}
div.signature {
margin-left: 1.5em;
text-indent: -1.5em;
}
.signature code.name {
font-weight: bold;
}
.signature code {
font-family: sans-serif;
}
blockquote.description {
margin-left: 1em;
}
a[href] {
text-decoration: none;
border-bottom: dotted 1px #CCC;
color: #600;
}
a:hover[href] {
text-decoration: none;
border-bottom: solid 1px #F00;
color: #F00;
}
pre.code {
border: solid 1px #DDD;
padding: 0.5em;
background: #EEE;
}