Switched over from dotemacs to doteverything
This commit is contained in:
commit
722c13a8fc
39 changed files with 29743 additions and 0 deletions
35
.emacs
Normal file
35
.emacs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
(load-file "~/.emacs.d/include.el")
|
||||||
|
|
||||||
|
(if (eq system-type 'gnu/linux) ; if we're running linux
|
||||||
|
(load-file "~/.emacs.d/linux/.emacs"))
|
||||||
|
|
||||||
|
(setq inhibit-startup-message t) ; don't show welcome
|
||||||
|
(setq-default indent-tabs-mode nil) ; spaces, no tabs
|
||||||
|
(tool-bar-mode nil) ; no toolbar
|
||||||
|
(menu-bar-mode nil) ; no menu
|
||||||
|
(line-number-mode nil) ; don't show line numbers in splitter
|
||||||
|
(global-linum-mode t) ; show line numbers in gutter
|
||||||
|
(column-number-mode t) ; show column numbers in splitter
|
||||||
|
(color-theme-weirdness) ; my theme
|
||||||
|
(global-font-lock-mode t) ; always show syntax higlighting, this may
|
||||||
|
; be old
|
||||||
|
(fset 'yes-or-no-p 'y-or-n-p) ; don't want to have to type yes or no
|
||||||
|
|
||||||
|
;; Vala Mode
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.vala$" . vala-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.vapi$" . vala-mode))
|
||||||
|
(add-to-list 'file-coding-system-alist '("\\.vala$" . utf-8))
|
||||||
|
(add-to-list 'file-coding-system-alist '("\\.vapi$" . utf-8))
|
||||||
|
|
||||||
|
;; C# Mode
|
||||||
|
(setq auto-mode-alist (cons `("\\.cs\\'" . csharp-mode) auto-mode-alist))
|
||||||
|
|
||||||
|
;; Autosave location
|
||||||
|
(setq backup-directory-alist
|
||||||
|
`((".*" . ,temporary-file-directory)))
|
||||||
|
(setq auto-save-file-name-transforms
|
||||||
|
`((".*" ,temporary-file-directory t)))
|
||||||
|
|
||||||
|
;; Autocomplete
|
||||||
|
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
|
||||||
|
(ac-config-default)
|
74
.emacs.d/ac-dict/c++-mode
Normal file
74
.emacs.d/ac-dict/c++-mode
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
and
|
||||||
|
and_eq
|
||||||
|
asm
|
||||||
|
auto
|
||||||
|
bitand
|
||||||
|
bitor
|
||||||
|
bool
|
||||||
|
break
|
||||||
|
case
|
||||||
|
catch
|
||||||
|
char
|
||||||
|
class
|
||||||
|
compl
|
||||||
|
const
|
||||||
|
const_cast
|
||||||
|
continue
|
||||||
|
default
|
||||||
|
delete
|
||||||
|
do
|
||||||
|
double
|
||||||
|
dynamic_cast
|
||||||
|
else
|
||||||
|
enum
|
||||||
|
explicit
|
||||||
|
export
|
||||||
|
extern
|
||||||
|
false
|
||||||
|
float
|
||||||
|
for
|
||||||
|
friend
|
||||||
|
goto
|
||||||
|
if
|
||||||
|
inline
|
||||||
|
int
|
||||||
|
long
|
||||||
|
mutable
|
||||||
|
namespace
|
||||||
|
new
|
||||||
|
not
|
||||||
|
not_eq
|
||||||
|
operator
|
||||||
|
or
|
||||||
|
or_eq
|
||||||
|
private
|
||||||
|
protected
|
||||||
|
public
|
||||||
|
register
|
||||||
|
reinterpret_cast
|
||||||
|
return
|
||||||
|
short
|
||||||
|
signed
|
||||||
|
sizeof
|
||||||
|
static
|
||||||
|
static_cast
|
||||||
|
struct
|
||||||
|
switch
|
||||||
|
template
|
||||||
|
this
|
||||||
|
throw
|
||||||
|
true
|
||||||
|
try
|
||||||
|
typedef
|
||||||
|
typeid
|
||||||
|
typename
|
||||||
|
union
|
||||||
|
unsigned
|
||||||
|
using
|
||||||
|
virtual
|
||||||
|
void
|
||||||
|
volatile
|
||||||
|
wchar_t
|
||||||
|
while
|
||||||
|
xor
|
||||||
|
xor_eq
|
37
.emacs.d/ac-dict/c-mode
Normal file
37
.emacs.d/ac-dict/c-mode
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
auto
|
||||||
|
_Bool
|
||||||
|
break
|
||||||
|
case
|
||||||
|
char
|
||||||
|
_Complex
|
||||||
|
const
|
||||||
|
continue
|
||||||
|
default
|
||||||
|
do
|
||||||
|
double
|
||||||
|
else
|
||||||
|
enum
|
||||||
|
extern
|
||||||
|
float
|
||||||
|
for
|
||||||
|
goto
|
||||||
|
if
|
||||||
|
_Imaginary
|
||||||
|
inline
|
||||||
|
int
|
||||||
|
long
|
||||||
|
register
|
||||||
|
restrict
|
||||||
|
return
|
||||||
|
short
|
||||||
|
signed
|
||||||
|
sizeof
|
||||||
|
static
|
||||||
|
struct
|
||||||
|
switch
|
||||||
|
typedef
|
||||||
|
union
|
||||||
|
unsigned
|
||||||
|
void
|
||||||
|
volatile
|
||||||
|
while
|
475
.emacs.d/ac-dict/clojure-mode
Normal file
475
.emacs.d/ac-dict/clojure-mode
Normal file
|
@ -0,0 +1,475 @@
|
||||||
|
*agent*
|
||||||
|
*clojure-version*
|
||||||
|
*command-line-args*
|
||||||
|
*compile-files*
|
||||||
|
*compile-path*
|
||||||
|
*err*
|
||||||
|
*file*
|
||||||
|
*flush-on-newline*
|
||||||
|
*in*
|
||||||
|
*ns*
|
||||||
|
*out*
|
||||||
|
*print-dup*
|
||||||
|
*print-length*
|
||||||
|
*print-level*
|
||||||
|
*print-meta*
|
||||||
|
*print-readably*
|
||||||
|
*read-eval*
|
||||||
|
*warn-on-reflection*
|
||||||
|
accessor
|
||||||
|
aclone
|
||||||
|
add-classpath
|
||||||
|
add-watch
|
||||||
|
agent
|
||||||
|
agent-error
|
||||||
|
agent-errors
|
||||||
|
aget
|
||||||
|
alength
|
||||||
|
alias
|
||||||
|
all-ns
|
||||||
|
alter
|
||||||
|
alter-meta!
|
||||||
|
alter-var-root
|
||||||
|
amap
|
||||||
|
ancestors
|
||||||
|
and
|
||||||
|
apply
|
||||||
|
areduce
|
||||||
|
array-map
|
||||||
|
aset
|
||||||
|
aset-boolean
|
||||||
|
aset-byte
|
||||||
|
aset-char
|
||||||
|
aset-double
|
||||||
|
aset-float
|
||||||
|
aset-int
|
||||||
|
aset-long
|
||||||
|
aset-short
|
||||||
|
assert
|
||||||
|
assoc
|
||||||
|
assoc!
|
||||||
|
assoc-in
|
||||||
|
associative?
|
||||||
|
atom
|
||||||
|
await
|
||||||
|
await-for
|
||||||
|
bases
|
||||||
|
bean
|
||||||
|
bigdec
|
||||||
|
bigint
|
||||||
|
binding
|
||||||
|
bit-and
|
||||||
|
bit-and-not
|
||||||
|
bit-clear
|
||||||
|
bit-flip
|
||||||
|
bit-not
|
||||||
|
bit-or
|
||||||
|
bit-set
|
||||||
|
bit-shift-left
|
||||||
|
bit-shift-right
|
||||||
|
bit-test
|
||||||
|
bit-xor
|
||||||
|
boolean
|
||||||
|
boolean-array
|
||||||
|
booleans
|
||||||
|
bound-fn
|
||||||
|
bound-fn*
|
||||||
|
butlast
|
||||||
|
byte
|
||||||
|
byte-array
|
||||||
|
bytes
|
||||||
|
case
|
||||||
|
cast
|
||||||
|
char
|
||||||
|
char-array
|
||||||
|
char-escape-string
|
||||||
|
char-name-string
|
||||||
|
char?
|
||||||
|
chars
|
||||||
|
class
|
||||||
|
class?
|
||||||
|
clear-agent-errors
|
||||||
|
clojure-version
|
||||||
|
coll?
|
||||||
|
comment
|
||||||
|
commute
|
||||||
|
comp
|
||||||
|
comparator
|
||||||
|
compare
|
||||||
|
compare-and-set!
|
||||||
|
compile
|
||||||
|
complement
|
||||||
|
concat
|
||||||
|
cond
|
||||||
|
condp
|
||||||
|
conj
|
||||||
|
conj!
|
||||||
|
cons
|
||||||
|
constantly
|
||||||
|
construct-proxy
|
||||||
|
contains?
|
||||||
|
count
|
||||||
|
counted?
|
||||||
|
create-ns
|
||||||
|
create-struct
|
||||||
|
cycle
|
||||||
|
dec
|
||||||
|
decimal?
|
||||||
|
declare
|
||||||
|
definline
|
||||||
|
defmacro
|
||||||
|
defmethod
|
||||||
|
defmulti
|
||||||
|
defn
|
||||||
|
defn-
|
||||||
|
defonce
|
||||||
|
defprotocol
|
||||||
|
defstruct
|
||||||
|
deftype
|
||||||
|
delay
|
||||||
|
delay?
|
||||||
|
deliver
|
||||||
|
deref
|
||||||
|
derive
|
||||||
|
descendants
|
||||||
|
disj
|
||||||
|
disj!
|
||||||
|
dissoc
|
||||||
|
dissoc!
|
||||||
|
distinct
|
||||||
|
distinct?
|
||||||
|
doall
|
||||||
|
doc
|
||||||
|
dorun
|
||||||
|
doseq
|
||||||
|
dosync
|
||||||
|
dotimes
|
||||||
|
doto
|
||||||
|
double
|
||||||
|
double-array
|
||||||
|
doubles
|
||||||
|
drop
|
||||||
|
drop-last
|
||||||
|
drop-while
|
||||||
|
dtype
|
||||||
|
empty
|
||||||
|
empty?
|
||||||
|
ensure
|
||||||
|
enumeration-seq
|
||||||
|
error-handler
|
||||||
|
error-mode
|
||||||
|
eval
|
||||||
|
even?
|
||||||
|
every?
|
||||||
|
extend
|
||||||
|
extend-class
|
||||||
|
extend-protocol
|
||||||
|
extend-type
|
||||||
|
extenders
|
||||||
|
extends?
|
||||||
|
false?
|
||||||
|
ffirst
|
||||||
|
file-seq
|
||||||
|
filter
|
||||||
|
find
|
||||||
|
find-doc
|
||||||
|
find-ns
|
||||||
|
find-var
|
||||||
|
first
|
||||||
|
float
|
||||||
|
float-array
|
||||||
|
float?
|
||||||
|
floats
|
||||||
|
flush
|
||||||
|
fn
|
||||||
|
fn?
|
||||||
|
fnext
|
||||||
|
for
|
||||||
|
force
|
||||||
|
format
|
||||||
|
future
|
||||||
|
future-call
|
||||||
|
future-cancel
|
||||||
|
future-cancelled?
|
||||||
|
future-done?
|
||||||
|
future?
|
||||||
|
gen-class
|
||||||
|
gen-interface
|
||||||
|
gensym
|
||||||
|
get
|
||||||
|
get-in
|
||||||
|
get-method
|
||||||
|
get-proxy-class
|
||||||
|
get-thread-bindings
|
||||||
|
get-validator
|
||||||
|
hash
|
||||||
|
hash-map
|
||||||
|
hash-set
|
||||||
|
identical?
|
||||||
|
identity
|
||||||
|
if-let
|
||||||
|
if-not
|
||||||
|
ifn?
|
||||||
|
import
|
||||||
|
in-ns
|
||||||
|
inc
|
||||||
|
init-proxy
|
||||||
|
instance?
|
||||||
|
int
|
||||||
|
int-array
|
||||||
|
integer?
|
||||||
|
interleave
|
||||||
|
intern
|
||||||
|
interpose
|
||||||
|
into
|
||||||
|
into-array
|
||||||
|
ints
|
||||||
|
io!
|
||||||
|
isa?
|
||||||
|
iterate
|
||||||
|
iterator-seq
|
||||||
|
juxt
|
||||||
|
key
|
||||||
|
keys
|
||||||
|
keyword
|
||||||
|
keyword?
|
||||||
|
last
|
||||||
|
lazy-cat
|
||||||
|
lazy-seq
|
||||||
|
let
|
||||||
|
letfn
|
||||||
|
line-seq
|
||||||
|
list
|
||||||
|
list*
|
||||||
|
list?
|
||||||
|
load
|
||||||
|
load-file
|
||||||
|
load-reader
|
||||||
|
load-string
|
||||||
|
loaded-libs
|
||||||
|
locking
|
||||||
|
long
|
||||||
|
long-array
|
||||||
|
longs
|
||||||
|
loop
|
||||||
|
macroexpand
|
||||||
|
macroexpand-1
|
||||||
|
make-array
|
||||||
|
make-hierarchy
|
||||||
|
map
|
||||||
|
map?
|
||||||
|
mapcat
|
||||||
|
max
|
||||||
|
max-key
|
||||||
|
memfn
|
||||||
|
memoize
|
||||||
|
merge
|
||||||
|
merge-with
|
||||||
|
meta
|
||||||
|
methods
|
||||||
|
min
|
||||||
|
min-key
|
||||||
|
mod
|
||||||
|
name
|
||||||
|
namespace
|
||||||
|
neg?
|
||||||
|
newline
|
||||||
|
next
|
||||||
|
nfirst
|
||||||
|
nil?
|
||||||
|
nnext
|
||||||
|
not
|
||||||
|
not-any?
|
||||||
|
not-empty
|
||||||
|
not-every?
|
||||||
|
not=
|
||||||
|
ns
|
||||||
|
ns-aliases
|
||||||
|
ns-imports
|
||||||
|
ns-interns
|
||||||
|
ns-map
|
||||||
|
ns-name
|
||||||
|
ns-publics
|
||||||
|
ns-refers
|
||||||
|
ns-resolve
|
||||||
|
ns-unalias
|
||||||
|
ns-unmap
|
||||||
|
nth
|
||||||
|
nthnext
|
||||||
|
num
|
||||||
|
number?
|
||||||
|
object-array
|
||||||
|
odd?
|
||||||
|
or
|
||||||
|
parents
|
||||||
|
partial
|
||||||
|
partition
|
||||||
|
pcalls
|
||||||
|
peek
|
||||||
|
persistent!
|
||||||
|
pmap
|
||||||
|
pop
|
||||||
|
pop!
|
||||||
|
pop-thread-bindings
|
||||||
|
pos?
|
||||||
|
pr
|
||||||
|
pr-str
|
||||||
|
prefer-method
|
||||||
|
prefers
|
||||||
|
print
|
||||||
|
print-namespace-doc
|
||||||
|
print-str
|
||||||
|
printf
|
||||||
|
println
|
||||||
|
println-str
|
||||||
|
prn
|
||||||
|
prn-str
|
||||||
|
promise
|
||||||
|
proxy
|
||||||
|
proxy-mappings
|
||||||
|
proxy-super
|
||||||
|
push-thread-bindings
|
||||||
|
pvalues
|
||||||
|
quot
|
||||||
|
rand
|
||||||
|
rand-int
|
||||||
|
range
|
||||||
|
ratio?
|
||||||
|
rationalize
|
||||||
|
re-find
|
||||||
|
re-groups
|
||||||
|
re-matcher
|
||||||
|
re-matches
|
||||||
|
re-pattern
|
||||||
|
re-seq
|
||||||
|
read
|
||||||
|
read-line
|
||||||
|
read-string
|
||||||
|
reduce
|
||||||
|
ref
|
||||||
|
ref-history-count
|
||||||
|
ref-max-history
|
||||||
|
ref-min-history
|
||||||
|
ref-set
|
||||||
|
refer
|
||||||
|
refer-clojure
|
||||||
|
reify
|
||||||
|
release-pending-sends
|
||||||
|
rem
|
||||||
|
remove
|
||||||
|
remove-method
|
||||||
|
remove-ns
|
||||||
|
remove-watch
|
||||||
|
repeat
|
||||||
|
repeatedly
|
||||||
|
replace
|
||||||
|
replicate
|
||||||
|
require
|
||||||
|
reset!
|
||||||
|
reset-meta!
|
||||||
|
resolve
|
||||||
|
rest
|
||||||
|
restart-agent
|
||||||
|
resultset-seq
|
||||||
|
reverse
|
||||||
|
reversible?
|
||||||
|
rseq
|
||||||
|
rsubseq
|
||||||
|
satisfies?
|
||||||
|
second
|
||||||
|
select-keys
|
||||||
|
send
|
||||||
|
send-off
|
||||||
|
seq
|
||||||
|
seq?
|
||||||
|
seque
|
||||||
|
sequence
|
||||||
|
sequential?
|
||||||
|
set
|
||||||
|
set-error-handler!
|
||||||
|
set-error-mode!
|
||||||
|
set-validator!
|
||||||
|
set?
|
||||||
|
short
|
||||||
|
short-array
|
||||||
|
shorts
|
||||||
|
shutdown-agents
|
||||||
|
slurp
|
||||||
|
some
|
||||||
|
sort
|
||||||
|
sort-by
|
||||||
|
sorted-map
|
||||||
|
sorted-map-by
|
||||||
|
sorted-set
|
||||||
|
sorted-set-by
|
||||||
|
sorted?
|
||||||
|
special-form-anchor
|
||||||
|
special-symbol?
|
||||||
|
split-at
|
||||||
|
split-with
|
||||||
|
str
|
||||||
|
stream?
|
||||||
|
string?
|
||||||
|
struct
|
||||||
|
struct-map
|
||||||
|
subs
|
||||||
|
subseq
|
||||||
|
subvec
|
||||||
|
supers
|
||||||
|
swap!
|
||||||
|
symbol
|
||||||
|
symbol?
|
||||||
|
sync
|
||||||
|
syntax-symbol-anchor
|
||||||
|
take
|
||||||
|
take-last
|
||||||
|
take-nth
|
||||||
|
take-while
|
||||||
|
test
|
||||||
|
the-ns
|
||||||
|
time
|
||||||
|
to-array
|
||||||
|
to-array-2d
|
||||||
|
trampoline
|
||||||
|
transient
|
||||||
|
tree-seq
|
||||||
|
true?
|
||||||
|
type
|
||||||
|
unchecked-add
|
||||||
|
unchecked-dec
|
||||||
|
unchecked-divide
|
||||||
|
unchecked-inc
|
||||||
|
unchecked-multiply
|
||||||
|
unchecked-negate
|
||||||
|
unchecked-remainder
|
||||||
|
unchecked-subtract
|
||||||
|
underive
|
||||||
|
update-in
|
||||||
|
update-proxy
|
||||||
|
use
|
||||||
|
val
|
||||||
|
vals
|
||||||
|
var-get
|
||||||
|
var-set
|
||||||
|
var?
|
||||||
|
vary-meta
|
||||||
|
vec
|
||||||
|
vector
|
||||||
|
vector-of
|
||||||
|
vector?
|
||||||
|
when
|
||||||
|
when-first
|
||||||
|
when-let
|
||||||
|
when-not
|
||||||
|
while
|
||||||
|
with-bindings
|
||||||
|
with-bindings*
|
||||||
|
with-in-str
|
||||||
|
with-local-vars
|
||||||
|
with-meta
|
||||||
|
with-open
|
||||||
|
with-out-str
|
||||||
|
with-precision
|
||||||
|
xml-seq
|
||||||
|
zero?
|
||||||
|
zipmap
|
747
.emacs.d/ac-dict/css-mode
Normal file
747
.emacs.d/ac-dict/css-mode
Normal file
|
@ -0,0 +1,747 @@
|
||||||
|
!important
|
||||||
|
ActiveBorder
|
||||||
|
ActiveCaption
|
||||||
|
Alpha
|
||||||
|
AppWorkspace
|
||||||
|
Background
|
||||||
|
Barn
|
||||||
|
BasicImage
|
||||||
|
Blinds
|
||||||
|
Blur
|
||||||
|
ButtonFace
|
||||||
|
ButtonHighlight
|
||||||
|
ButtonShadow
|
||||||
|
ButtonText
|
||||||
|
CaptionText
|
||||||
|
CheckerBoard
|
||||||
|
Chroma
|
||||||
|
Compositor
|
||||||
|
CradientWipe
|
||||||
|
DXImageTransform
|
||||||
|
DropShadow
|
||||||
|
Emboss
|
||||||
|
Engrave
|
||||||
|
Fade
|
||||||
|
FlipH
|
||||||
|
FlipV
|
||||||
|
Glow
|
||||||
|
Gray
|
||||||
|
GrayText
|
||||||
|
Highlight
|
||||||
|
HighlightText
|
||||||
|
Hz
|
||||||
|
ICMFilter
|
||||||
|
InactiveBorder
|
||||||
|
InactiveCaption
|
||||||
|
InactiveCaptionText
|
||||||
|
InfoBackground
|
||||||
|
InfoText
|
||||||
|
Inset
|
||||||
|
Invert
|
||||||
|
Iris
|
||||||
|
Light
|
||||||
|
MaskFilter
|
||||||
|
Matrix
|
||||||
|
Menu
|
||||||
|
MenuText
|
||||||
|
Microsoft
|
||||||
|
MotionBlur
|
||||||
|
Pixelate
|
||||||
|
RadialWipe
|
||||||
|
RandomBars
|
||||||
|
RandomDissolve
|
||||||
|
RevealTrans
|
||||||
|
Scrollbar
|
||||||
|
Shadow
|
||||||
|
Slide
|
||||||
|
Spiral
|
||||||
|
Stretch
|
||||||
|
Strips
|
||||||
|
ThreeDDarkShadow
|
||||||
|
ThreeDFace
|
||||||
|
ThreeDHighlight
|
||||||
|
ThreeDLightShadow
|
||||||
|
ThreeDShadow
|
||||||
|
Wave
|
||||||
|
Wheel
|
||||||
|
Window
|
||||||
|
WindowFrame
|
||||||
|
WindowText
|
||||||
|
Xray
|
||||||
|
Zigzag
|
||||||
|
_azimuth
|
||||||
|
_background
|
||||||
|
_background-position-x
|
||||||
|
_background-position-y
|
||||||
|
_border
|
||||||
|
_bottom
|
||||||
|
_caption
|
||||||
|
_clear
|
||||||
|
_clip
|
||||||
|
_color
|
||||||
|
_content
|
||||||
|
_counter
|
||||||
|
_cue
|
||||||
|
_cursor
|
||||||
|
_direction
|
||||||
|
_display
|
||||||
|
_elevation
|
||||||
|
_empty
|
||||||
|
_filter
|
||||||
|
_filter:progid:DXImageTransform.Microsoft
|
||||||
|
_float
|
||||||
|
_font
|
||||||
|
_height
|
||||||
|
_ime
|
||||||
|
_ime-mode
|
||||||
|
_layout
|
||||||
|
_layout-flow
|
||||||
|
_layout-grid
|
||||||
|
_layout-grid-char
|
||||||
|
_layout-grid-line
|
||||||
|
_layout-grid-mode
|
||||||
|
_layout-grid-type
|
||||||
|
_left
|
||||||
|
_letter
|
||||||
|
_line
|
||||||
|
_line-break
|
||||||
|
_list
|
||||||
|
_margin
|
||||||
|
_orphans
|
||||||
|
_outline
|
||||||
|
_overflow
|
||||||
|
_overflow-x
|
||||||
|
_overflow-y
|
||||||
|
_padding
|
||||||
|
_page
|
||||||
|
_pause
|
||||||
|
_pitch
|
||||||
|
_play
|
||||||
|
_position
|
||||||
|
_quotes
|
||||||
|
_richness
|
||||||
|
_right
|
||||||
|
_ruby
|
||||||
|
_ruby-align
|
||||||
|
_ruby-overhang
|
||||||
|
_ruby-position
|
||||||
|
_scrollbar
|
||||||
|
_scrollbar-3dlight-color
|
||||||
|
_scrollbar-arrow-color
|
||||||
|
_scrollbar-base-color
|
||||||
|
_scrollbar-darkshadow-color
|
||||||
|
_scrollbar-face-color
|
||||||
|
_scrollbar-highlight-color
|
||||||
|
_scrollbar-track-color
|
||||||
|
_speak
|
||||||
|
_speech
|
||||||
|
_stress
|
||||||
|
_table
|
||||||
|
_text
|
||||||
|
_text-align-last
|
||||||
|
_text-autospace
|
||||||
|
_text-justify
|
||||||
|
_text-kashida-space
|
||||||
|
_text-overflow
|
||||||
|
_text-underline-position
|
||||||
|
_top
|
||||||
|
_unicode
|
||||||
|
_vertical
|
||||||
|
_visibility
|
||||||
|
_voice
|
||||||
|
_volume
|
||||||
|
_white
|
||||||
|
_widows
|
||||||
|
_width
|
||||||
|
_word
|
||||||
|
_word-break
|
||||||
|
_word-wrap
|
||||||
|
_writing
|
||||||
|
_writing-mode
|
||||||
|
_z
|
||||||
|
_zoom
|
||||||
|
above
|
||||||
|
active
|
||||||
|
adjust
|
||||||
|
after
|
||||||
|
aliceblue
|
||||||
|
align
|
||||||
|
always
|
||||||
|
antiquewhite
|
||||||
|
aqua
|
||||||
|
aquamarine
|
||||||
|
armenian
|
||||||
|
arrow
|
||||||
|
attachment
|
||||||
|
auto
|
||||||
|
autospace
|
||||||
|
avoid
|
||||||
|
azimuth
|
||||||
|
azure
|
||||||
|
background
|
||||||
|
background-attachment
|
||||||
|
background-color
|
||||||
|
background-image
|
||||||
|
background-position
|
||||||
|
background-repeat
|
||||||
|
bar
|
||||||
|
base
|
||||||
|
baseline
|
||||||
|
before
|
||||||
|
behind
|
||||||
|
beige
|
||||||
|
below
|
||||||
|
bidi
|
||||||
|
bidi-override
|
||||||
|
bisque
|
||||||
|
black
|
||||||
|
blanchedalmond
|
||||||
|
blink
|
||||||
|
block
|
||||||
|
blue
|
||||||
|
blueviolet
|
||||||
|
bold
|
||||||
|
bolder
|
||||||
|
border
|
||||||
|
border-bottom
|
||||||
|
border-bottom-color
|
||||||
|
border-bottom-style
|
||||||
|
border-bottom-width
|
||||||
|
border-collapse
|
||||||
|
border-color
|
||||||
|
border-left
|
||||||
|
border-left-color
|
||||||
|
border-left-style
|
||||||
|
border-left-width
|
||||||
|
border-right
|
||||||
|
border-right-color
|
||||||
|
border-right-style
|
||||||
|
border-right-width
|
||||||
|
border-spacing
|
||||||
|
border-style
|
||||||
|
border-top
|
||||||
|
border-top-color
|
||||||
|
border-top-style
|
||||||
|
border-top-width
|
||||||
|
border-width
|
||||||
|
both
|
||||||
|
bottom
|
||||||
|
box
|
||||||
|
break
|
||||||
|
brown
|
||||||
|
burlwood
|
||||||
|
cadetblue
|
||||||
|
capitalize
|
||||||
|
caps
|
||||||
|
caption
|
||||||
|
caption-side
|
||||||
|
cell
|
||||||
|
cells
|
||||||
|
center
|
||||||
|
center-left
|
||||||
|
center-right
|
||||||
|
char
|
||||||
|
chartreuse
|
||||||
|
chocolate
|
||||||
|
circle
|
||||||
|
cjk
|
||||||
|
cjk-ideographic
|
||||||
|
clear
|
||||||
|
clip
|
||||||
|
close
|
||||||
|
close-quote
|
||||||
|
cm
|
||||||
|
code
|
||||||
|
collapse
|
||||||
|
color
|
||||||
|
column
|
||||||
|
compact
|
||||||
|
condensed
|
||||||
|
content
|
||||||
|
continuous
|
||||||
|
coral
|
||||||
|
cornflowerblue
|
||||||
|
cornsilk
|
||||||
|
counter
|
||||||
|
counter-increment
|
||||||
|
counter-reset
|
||||||
|
crimson
|
||||||
|
crop
|
||||||
|
cross
|
||||||
|
crosshair
|
||||||
|
cue
|
||||||
|
cue-after
|
||||||
|
cue-before
|
||||||
|
cursive
|
||||||
|
cursor
|
||||||
|
cyan
|
||||||
|
darkblue
|
||||||
|
darkcyan
|
||||||
|
darkgoldenrod
|
||||||
|
darkgray
|
||||||
|
darkgreen
|
||||||
|
darkkhaki
|
||||||
|
darkmagenta
|
||||||
|
darkolivegreen
|
||||||
|
darkorange
|
||||||
|
darkorchid
|
||||||
|
darkred
|
||||||
|
darksalmon
|
||||||
|
darkseagreen
|
||||||
|
darkshadow
|
||||||
|
darkslateblue
|
||||||
|
darkslategray
|
||||||
|
darkturquoise
|
||||||
|
darkviolet
|
||||||
|
dashed
|
||||||
|
decimal
|
||||||
|
decimal-leading-zero
|
||||||
|
decoration
|
||||||
|
deeppink
|
||||||
|
deepskyblue
|
||||||
|
default
|
||||||
|
deg
|
||||||
|
digits
|
||||||
|
dimgray
|
||||||
|
direction
|
||||||
|
disc
|
||||||
|
display
|
||||||
|
dodgerblue
|
||||||
|
dotted
|
||||||
|
double
|
||||||
|
during
|
||||||
|
e
|
||||||
|
e-resize
|
||||||
|
elevation
|
||||||
|
em
|
||||||
|
embed
|
||||||
|
empty
|
||||||
|
empty-cells
|
||||||
|
ex
|
||||||
|
expanded
|
||||||
|
extra
|
||||||
|
extra-condensed
|
||||||
|
extra-expanded
|
||||||
|
face
|
||||||
|
family
|
||||||
|
fantasy
|
||||||
|
far
|
||||||
|
far-left
|
||||||
|
far-right
|
||||||
|
fast
|
||||||
|
faster
|
||||||
|
firebrick
|
||||||
|
first
|
||||||
|
first-child
|
||||||
|
first-letter
|
||||||
|
first-line
|
||||||
|
fixed
|
||||||
|
float
|
||||||
|
floralwhite
|
||||||
|
flow
|
||||||
|
focus
|
||||||
|
font
|
||||||
|
font-family
|
||||||
|
font-size
|
||||||
|
font-size-adjust
|
||||||
|
font-stretch
|
||||||
|
font-style
|
||||||
|
font-variant
|
||||||
|
font-weight
|
||||||
|
footer
|
||||||
|
forestgreen
|
||||||
|
fuchsia
|
||||||
|
gainsboro
|
||||||
|
georgian
|
||||||
|
ghostwhite
|
||||||
|
gold
|
||||||
|
goldenrod
|
||||||
|
gray
|
||||||
|
greek
|
||||||
|
green
|
||||||
|
greenyellow
|
||||||
|
grid
|
||||||
|
groove
|
||||||
|
group
|
||||||
|
header
|
||||||
|
hebrew
|
||||||
|
height
|
||||||
|
help
|
||||||
|
hidden
|
||||||
|
hide
|
||||||
|
high
|
||||||
|
higher
|
||||||
|
hiragana
|
||||||
|
hiragana-iroha
|
||||||
|
honeydew
|
||||||
|
hotpink
|
||||||
|
hover
|
||||||
|
icon
|
||||||
|
ideographic
|
||||||
|
image
|
||||||
|
in
|
||||||
|
increment
|
||||||
|
indent
|
||||||
|
index
|
||||||
|
indianred
|
||||||
|
indigo
|
||||||
|
inherit
|
||||||
|
inline
|
||||||
|
inline-block
|
||||||
|
inline-table
|
||||||
|
inset
|
||||||
|
inside
|
||||||
|
iroha
|
||||||
|
italic
|
||||||
|
item
|
||||||
|
ivory
|
||||||
|
justify
|
||||||
|
kHz
|
||||||
|
kashida
|
||||||
|
katakana
|
||||||
|
katakana-iroha
|
||||||
|
khaki
|
||||||
|
landscape
|
||||||
|
lang()
|
||||||
|
large
|
||||||
|
larger
|
||||||
|
last
|
||||||
|
latin
|
||||||
|
lavender
|
||||||
|
lavenderblush
|
||||||
|
lawngreen
|
||||||
|
layout
|
||||||
|
leading
|
||||||
|
left
|
||||||
|
left-side
|
||||||
|
leftwards
|
||||||
|
lenonchiffon
|
||||||
|
letter
|
||||||
|
letter-spacing
|
||||||
|
level
|
||||||
|
lightblue
|
||||||
|
lightcoral
|
||||||
|
lightcyan
|
||||||
|
lighter
|
||||||
|
lightgoldenrodyellow
|
||||||
|
lightgray
|
||||||
|
lightgreen
|
||||||
|
lightgrey
|
||||||
|
lightpink
|
||||||
|
lightsalmon
|
||||||
|
lightseagreen
|
||||||
|
lightskyblue
|
||||||
|
lightslategray
|
||||||
|
lightsteelblue
|
||||||
|
lightyellow
|
||||||
|
lime
|
||||||
|
limegreen
|
||||||
|
line
|
||||||
|
line-height
|
||||||
|
line-through
|
||||||
|
linen
|
||||||
|
link
|
||||||
|
list
|
||||||
|
list-item
|
||||||
|
list-style
|
||||||
|
list-style-image
|
||||||
|
list-style-position
|
||||||
|
list-style-type
|
||||||
|
loud
|
||||||
|
low
|
||||||
|
lower
|
||||||
|
lower-alpha
|
||||||
|
lower-greek
|
||||||
|
lower-latin
|
||||||
|
lower-roman
|
||||||
|
lowercase
|
||||||
|
ltr
|
||||||
|
magenta
|
||||||
|
margin
|
||||||
|
margin-bottom
|
||||||
|
margin-left
|
||||||
|
margin-right
|
||||||
|
margin-top
|
||||||
|
marker
|
||||||
|
marker-offset
|
||||||
|
marks
|
||||||
|
maroon
|
||||||
|
max
|
||||||
|
max-height
|
||||||
|
max-width
|
||||||
|
medium
|
||||||
|
mediumaquamarine
|
||||||
|
mediumblue
|
||||||
|
mediumorchid
|
||||||
|
mediumpurple
|
||||||
|
mediumseagreen
|
||||||
|
mediumslateblue
|
||||||
|
mediumspringgreen
|
||||||
|
mediumturquoise
|
||||||
|
mediumvioletred
|
||||||
|
menu
|
||||||
|
message
|
||||||
|
message-box
|
||||||
|
middle
|
||||||
|
midnightblue
|
||||||
|
min
|
||||||
|
min-height
|
||||||
|
min-width
|
||||||
|
mintcream
|
||||||
|
mistyrose
|
||||||
|
mix
|
||||||
|
mm
|
||||||
|
moccasin
|
||||||
|
mode
|
||||||
|
monospace
|
||||||
|
move
|
||||||
|
ms
|
||||||
|
n
|
||||||
|
n-resize
|
||||||
|
naby
|
||||||
|
narrower
|
||||||
|
navajowhite
|
||||||
|
ne
|
||||||
|
ne-resize
|
||||||
|
no
|
||||||
|
no-close-quote
|
||||||
|
no-open-quote
|
||||||
|
no-repeat
|
||||||
|
none
|
||||||
|
normal
|
||||||
|
nowrap
|
||||||
|
number
|
||||||
|
numeral
|
||||||
|
nw
|
||||||
|
nw-resize
|
||||||
|
oblique
|
||||||
|
offset
|
||||||
|
oldlace
|
||||||
|
olive
|
||||||
|
olivedrab
|
||||||
|
once
|
||||||
|
open
|
||||||
|
open-quote
|
||||||
|
orange
|
||||||
|
orangered
|
||||||
|
orchid
|
||||||
|
orphans
|
||||||
|
out
|
||||||
|
outline
|
||||||
|
outline-color
|
||||||
|
outline-style
|
||||||
|
outline-width
|
||||||
|
outset
|
||||||
|
outside
|
||||||
|
overflow
|
||||||
|
overhang
|
||||||
|
overline
|
||||||
|
override
|
||||||
|
padding
|
||||||
|
padding-bottom
|
||||||
|
padding-left
|
||||||
|
padding-right
|
||||||
|
padding-top
|
||||||
|
page
|
||||||
|
page-break-after
|
||||||
|
page-break-before
|
||||||
|
page-break-inside
|
||||||
|
palegoldenrod
|
||||||
|
palegreen
|
||||||
|
paleturquoise
|
||||||
|
palevioletred
|
||||||
|
papayawhip
|
||||||
|
pause
|
||||||
|
pause-after
|
||||||
|
pause-before
|
||||||
|
pc
|
||||||
|
peachpuff
|
||||||
|
peru
|
||||||
|
pink
|
||||||
|
pitch
|
||||||
|
pitch-range
|
||||||
|
play
|
||||||
|
play-during
|
||||||
|
plum
|
||||||
|
pointer
|
||||||
|
portarait
|
||||||
|
position
|
||||||
|
powderblue
|
||||||
|
pre
|
||||||
|
pre-line
|
||||||
|
pre-wrap
|
||||||
|
progid
|
||||||
|
progress
|
||||||
|
pt
|
||||||
|
punctuation
|
||||||
|
purple
|
||||||
|
px
|
||||||
|
quote
|
||||||
|
quotes
|
||||||
|
rad
|
||||||
|
range
|
||||||
|
rate
|
||||||
|
red
|
||||||
|
relative
|
||||||
|
repeat
|
||||||
|
repeat-x
|
||||||
|
repeat-y
|
||||||
|
reset
|
||||||
|
resize
|
||||||
|
richness
|
||||||
|
ridge
|
||||||
|
right
|
||||||
|
right-side
|
||||||
|
rightwards
|
||||||
|
roman
|
||||||
|
rosybrown
|
||||||
|
row
|
||||||
|
royalblue
|
||||||
|
rtl
|
||||||
|
run
|
||||||
|
run-in
|
||||||
|
s
|
||||||
|
s-resize
|
||||||
|
saddlebrown
|
||||||
|
salmon
|
||||||
|
sandybrown
|
||||||
|
sans-serif
|
||||||
|
scroll
|
||||||
|
se
|
||||||
|
se-resize
|
||||||
|
seagreen
|
||||||
|
seashell
|
||||||
|
semi
|
||||||
|
semi-condensed
|
||||||
|
semi-expanded
|
||||||
|
separate
|
||||||
|
serif
|
||||||
|
shadow
|
||||||
|
show
|
||||||
|
side
|
||||||
|
sienna
|
||||||
|
silent
|
||||||
|
silever
|
||||||
|
silver
|
||||||
|
size
|
||||||
|
skyblue
|
||||||
|
slateblue
|
||||||
|
slategray
|
||||||
|
slow
|
||||||
|
slower
|
||||||
|
small
|
||||||
|
small-caps
|
||||||
|
small-caption
|
||||||
|
smaller
|
||||||
|
snow
|
||||||
|
soft
|
||||||
|
solid
|
||||||
|
space
|
||||||
|
spacing
|
||||||
|
speak
|
||||||
|
speak-header
|
||||||
|
speak-numeral
|
||||||
|
speak-punctuation
|
||||||
|
specific
|
||||||
|
specific-voice
|
||||||
|
speech
|
||||||
|
speech-rate
|
||||||
|
spell
|
||||||
|
spell-out
|
||||||
|
springgreen
|
||||||
|
square
|
||||||
|
static
|
||||||
|
status
|
||||||
|
status-bar
|
||||||
|
steelblue
|
||||||
|
stress
|
||||||
|
stretch
|
||||||
|
style
|
||||||
|
sub
|
||||||
|
super
|
||||||
|
sw
|
||||||
|
sw-resize
|
||||||
|
table
|
||||||
|
table-caption
|
||||||
|
table-cell
|
||||||
|
table-column
|
||||||
|
table-column-group
|
||||||
|
table-footer-group
|
||||||
|
table-header-group
|
||||||
|
table-layout
|
||||||
|
table-row
|
||||||
|
table-row-group
|
||||||
|
tan
|
||||||
|
teal
|
||||||
|
text
|
||||||
|
text-align
|
||||||
|
text-bottom
|
||||||
|
text-decoration
|
||||||
|
text-indent
|
||||||
|
text-shadow
|
||||||
|
text-top
|
||||||
|
text-transform
|
||||||
|
thick
|
||||||
|
thin
|
||||||
|
thistle
|
||||||
|
through
|
||||||
|
tomato
|
||||||
|
top
|
||||||
|
track
|
||||||
|
transform
|
||||||
|
transparent
|
||||||
|
turquoise
|
||||||
|
type
|
||||||
|
ultra
|
||||||
|
ultra-condensed
|
||||||
|
ultra-expanded
|
||||||
|
underline
|
||||||
|
unicode
|
||||||
|
unicode-bidi
|
||||||
|
upper
|
||||||
|
upper-alpha
|
||||||
|
upper-latin
|
||||||
|
upper-roman
|
||||||
|
uppercase
|
||||||
|
variant
|
||||||
|
vertical
|
||||||
|
vertical-align
|
||||||
|
violet
|
||||||
|
visibility
|
||||||
|
visible
|
||||||
|
visited
|
||||||
|
voice
|
||||||
|
voice-family
|
||||||
|
volume
|
||||||
|
w
|
||||||
|
w-resize
|
||||||
|
wait
|
||||||
|
weight
|
||||||
|
wheat
|
||||||
|
white
|
||||||
|
white-space
|
||||||
|
whitesmoke
|
||||||
|
wider
|
||||||
|
widows
|
||||||
|
width
|
||||||
|
word
|
||||||
|
word-spacing
|
||||||
|
wrap
|
||||||
|
x
|
||||||
|
x-fast
|
||||||
|
x-high
|
||||||
|
x-large
|
||||||
|
x-loud
|
||||||
|
x-low
|
||||||
|
x-slow
|
||||||
|
x-small
|
||||||
|
x-soft
|
||||||
|
xx
|
||||||
|
xx-large
|
||||||
|
xx-small
|
||||||
|
y
|
||||||
|
yellow
|
||||||
|
yellowgreen
|
||||||
|
z
|
||||||
|
z-index
|
||||||
|
zero
|
50
.emacs.d/ac-dict/java-mode
Normal file
50
.emacs.d/ac-dict/java-mode
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
abstract
|
||||||
|
assert
|
||||||
|
boolean
|
||||||
|
break
|
||||||
|
byte
|
||||||
|
case
|
||||||
|
catch
|
||||||
|
char
|
||||||
|
class
|
||||||
|
const
|
||||||
|
continue
|
||||||
|
default
|
||||||
|
do
|
||||||
|
double
|
||||||
|
else
|
||||||
|
enum
|
||||||
|
extends
|
||||||
|
final
|
||||||
|
finally
|
||||||
|
float
|
||||||
|
for
|
||||||
|
goto
|
||||||
|
if
|
||||||
|
implements
|
||||||
|
import
|
||||||
|
instanceof
|
||||||
|
int
|
||||||
|
interface
|
||||||
|
long
|
||||||
|
native
|
||||||
|
new
|
||||||
|
package
|
||||||
|
private
|
||||||
|
protected
|
||||||
|
public
|
||||||
|
return
|
||||||
|
short
|
||||||
|
static
|
||||||
|
strictfp
|
||||||
|
super
|
||||||
|
switch
|
||||||
|
synchronized
|
||||||
|
this
|
||||||
|
throw
|
||||||
|
throws
|
||||||
|
transient
|
||||||
|
try
|
||||||
|
void
|
||||||
|
volatile
|
||||||
|
while
|
148
.emacs.d/ac-dict/javascript-mode
Normal file
148
.emacs.d/ac-dict/javascript-mode
Normal file
|
@ -0,0 +1,148 @@
|
||||||
|
Anchor
|
||||||
|
Area
|
||||||
|
Array
|
||||||
|
Boolean
|
||||||
|
Button
|
||||||
|
Checkbox
|
||||||
|
Date
|
||||||
|
Document
|
||||||
|
Element
|
||||||
|
FileUpload
|
||||||
|
Form
|
||||||
|
Frame
|
||||||
|
Function
|
||||||
|
Hidden
|
||||||
|
History
|
||||||
|
Image
|
||||||
|
Infinity
|
||||||
|
JavaArray
|
||||||
|
JavaClass
|
||||||
|
JavaObject
|
||||||
|
JavaPackage
|
||||||
|
Link
|
||||||
|
Location
|
||||||
|
Math
|
||||||
|
MimeType
|
||||||
|
NaN
|
||||||
|
Navigator
|
||||||
|
Number
|
||||||
|
Object
|
||||||
|
Option
|
||||||
|
Packages
|
||||||
|
Password
|
||||||
|
Plugin
|
||||||
|
Radio
|
||||||
|
RegExp
|
||||||
|
Reset
|
||||||
|
Select
|
||||||
|
String
|
||||||
|
Submit
|
||||||
|
Text
|
||||||
|
Textarea
|
||||||
|
Window
|
||||||
|
alert
|
||||||
|
arguments
|
||||||
|
assign
|
||||||
|
blur
|
||||||
|
break
|
||||||
|
callee
|
||||||
|
caller
|
||||||
|
captureEvents
|
||||||
|
case
|
||||||
|
clearInterval
|
||||||
|
clearTimeout
|
||||||
|
close
|
||||||
|
closed
|
||||||
|
comment
|
||||||
|
confirm
|
||||||
|
constructor
|
||||||
|
continue
|
||||||
|
default
|
||||||
|
defaultStatus
|
||||||
|
delete
|
||||||
|
do
|
||||||
|
document
|
||||||
|
else
|
||||||
|
escape
|
||||||
|
eval
|
||||||
|
export
|
||||||
|
find
|
||||||
|
focus
|
||||||
|
for
|
||||||
|
frames
|
||||||
|
function
|
||||||
|
getClass
|
||||||
|
history
|
||||||
|
home
|
||||||
|
if
|
||||||
|
import
|
||||||
|
in
|
||||||
|
innerHeight
|
||||||
|
innerWidth
|
||||||
|
isFinite
|
||||||
|
isNan
|
||||||
|
java
|
||||||
|
label
|
||||||
|
length
|
||||||
|
location
|
||||||
|
locationbar
|
||||||
|
menubar
|
||||||
|
moveBy
|
||||||
|
moveTo
|
||||||
|
name
|
||||||
|
navigate
|
||||||
|
navigator
|
||||||
|
netscape
|
||||||
|
new
|
||||||
|
onBlur
|
||||||
|
onError
|
||||||
|
onFocus
|
||||||
|
onLoad
|
||||||
|
onUnload
|
||||||
|
open
|
||||||
|
opener
|
||||||
|
outerHeight
|
||||||
|
outerWidth
|
||||||
|
pageXoffset
|
||||||
|
pageYoffset
|
||||||
|
parent
|
||||||
|
parseFloat
|
||||||
|
parseInt
|
||||||
|
personalbar
|
||||||
|
print
|
||||||
|
prompt
|
||||||
|
prototype
|
||||||
|
ref
|
||||||
|
releaseEvents
|
||||||
|
resizeBy
|
||||||
|
resizeTo
|
||||||
|
return
|
||||||
|
routeEvent
|
||||||
|
scroll
|
||||||
|
scrollBy
|
||||||
|
scrollTo
|
||||||
|
scrollbars
|
||||||
|
self
|
||||||
|
setInterval
|
||||||
|
setTimeout
|
||||||
|
status
|
||||||
|
statusbar
|
||||||
|
stop
|
||||||
|
sun
|
||||||
|
switch
|
||||||
|
taint
|
||||||
|
this
|
||||||
|
toString
|
||||||
|
toolbar
|
||||||
|
top
|
||||||
|
typeof
|
||||||
|
unescape
|
||||||
|
untaint
|
||||||
|
unwatch
|
||||||
|
valueOf
|
||||||
|
var
|
||||||
|
void
|
||||||
|
watch
|
||||||
|
while
|
||||||
|
window
|
||||||
|
with
|
62
.emacs.d/ac-dict/php-mode
Normal file
62
.emacs.d/ac-dict/php-mode
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
and
|
||||||
|
array
|
||||||
|
as
|
||||||
|
break
|
||||||
|
case
|
||||||
|
catch
|
||||||
|
cfunction
|
||||||
|
class
|
||||||
|
clone
|
||||||
|
const
|
||||||
|
continue
|
||||||
|
declare
|
||||||
|
default
|
||||||
|
die
|
||||||
|
do
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
elseif
|
||||||
|
empty
|
||||||
|
enddeclare
|
||||||
|
endfor
|
||||||
|
endforeach
|
||||||
|
endif
|
||||||
|
endswitch
|
||||||
|
endwhile
|
||||||
|
eval
|
||||||
|
exit
|
||||||
|
extends
|
||||||
|
final
|
||||||
|
for
|
||||||
|
foreach
|
||||||
|
function
|
||||||
|
global
|
||||||
|
goto
|
||||||
|
if
|
||||||
|
implements
|
||||||
|
include
|
||||||
|
include_once
|
||||||
|
instanceof
|
||||||
|
interface
|
||||||
|
isset
|
||||||
|
list
|
||||||
|
namespace
|
||||||
|
new
|
||||||
|
old_function
|
||||||
|
or
|
||||||
|
print
|
||||||
|
private
|
||||||
|
protected
|
||||||
|
public
|
||||||
|
require
|
||||||
|
require_once
|
||||||
|
return
|
||||||
|
static
|
||||||
|
switch
|
||||||
|
throw
|
||||||
|
try
|
||||||
|
unset
|
||||||
|
use
|
||||||
|
var
|
||||||
|
while
|
||||||
|
xor
|
104
.emacs.d/ac-dict/python-mode
Normal file
104
.emacs.d/ac-dict/python-mode
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
__import__
|
||||||
|
abs
|
||||||
|
and
|
||||||
|
any
|
||||||
|
apply
|
||||||
|
as
|
||||||
|
assert
|
||||||
|
basestring
|
||||||
|
bin
|
||||||
|
bool
|
||||||
|
break
|
||||||
|
buffer
|
||||||
|
class
|
||||||
|
cmp
|
||||||
|
coerce
|
||||||
|
complex
|
||||||
|
continue
|
||||||
|
def
|
||||||
|
del
|
||||||
|
delattr
|
||||||
|
dict
|
||||||
|
dir
|
||||||
|
divmod
|
||||||
|
elif
|
||||||
|
else
|
||||||
|
enumerate
|
||||||
|
eval
|
||||||
|
except
|
||||||
|
exec
|
||||||
|
execfile
|
||||||
|
file
|
||||||
|
filter
|
||||||
|
finally
|
||||||
|
float
|
||||||
|
for
|
||||||
|
format
|
||||||
|
from
|
||||||
|
frozenset
|
||||||
|
getattr
|
||||||
|
global
|
||||||
|
globals
|
||||||
|
hasattr
|
||||||
|
hash
|
||||||
|
help
|
||||||
|
hex
|
||||||
|
id
|
||||||
|
if
|
||||||
|
import
|
||||||
|
in
|
||||||
|
input
|
||||||
|
int
|
||||||
|
intern
|
||||||
|
is
|
||||||
|
isinstance
|
||||||
|
issubclass
|
||||||
|
iter
|
||||||
|
lambda
|
||||||
|
len
|
||||||
|
list
|
||||||
|
locals
|
||||||
|
long
|
||||||
|
map
|
||||||
|
max
|
||||||
|
min
|
||||||
|
next
|
||||||
|
not
|
||||||
|
object
|
||||||
|
oct
|
||||||
|
open
|
||||||
|
or
|
||||||
|
ord
|
||||||
|
pass
|
||||||
|
pow
|
||||||
|
print
|
||||||
|
print
|
||||||
|
property
|
||||||
|
raise
|
||||||
|
range
|
||||||
|
raw_input
|
||||||
|
reduce
|
||||||
|
reload
|
||||||
|
repr
|
||||||
|
return
|
||||||
|
reversed
|
||||||
|
round
|
||||||
|
set
|
||||||
|
setattr
|
||||||
|
slice
|
||||||
|
sorted
|
||||||
|
staticmethod
|
||||||
|
str
|
||||||
|
sum
|
||||||
|
super
|
||||||
|
try
|
||||||
|
tuple
|
||||||
|
type
|
||||||
|
unichr
|
||||||
|
unicode
|
||||||
|
vars
|
||||||
|
while
|
||||||
|
with
|
||||||
|
xrange
|
||||||
|
yield
|
||||||
|
zip
|
181
.emacs.d/ac-dict/ruby-mode
Normal file
181
.emacs.d/ac-dict/ruby-mode
Normal file
|
@ -0,0 +1,181 @@
|
||||||
|
$!
|
||||||
|
$"
|
||||||
|
$$
|
||||||
|
$&
|
||||||
|
$'
|
||||||
|
$*
|
||||||
|
$+
|
||||||
|
$,
|
||||||
|
$-0
|
||||||
|
$-F
|
||||||
|
$-I
|
||||||
|
$-K
|
||||||
|
$-a
|
||||||
|
$-d
|
||||||
|
$-i
|
||||||
|
$-l
|
||||||
|
$-p
|
||||||
|
$-v
|
||||||
|
$-w
|
||||||
|
$.
|
||||||
|
$/
|
||||||
|
$0
|
||||||
|
$1
|
||||||
|
$10
|
||||||
|
$11
|
||||||
|
$2
|
||||||
|
$3
|
||||||
|
$4
|
||||||
|
$5
|
||||||
|
$6
|
||||||
|
$7
|
||||||
|
$8
|
||||||
|
$9
|
||||||
|
$:
|
||||||
|
$;
|
||||||
|
$<
|
||||||
|
$=
|
||||||
|
$>
|
||||||
|
$?
|
||||||
|
$@
|
||||||
|
$DEBUG
|
||||||
|
$FILENAME
|
||||||
|
$KCODE
|
||||||
|
$LOADED_FEATURES
|
||||||
|
$LOAD_PATH
|
||||||
|
$PROGRAM_NAME
|
||||||
|
$SAFE
|
||||||
|
$VERBOSE
|
||||||
|
$\
|
||||||
|
$_
|
||||||
|
$`
|
||||||
|
$deferr
|
||||||
|
$defout
|
||||||
|
$stderr
|
||||||
|
$stdin
|
||||||
|
$stdout
|
||||||
|
$~
|
||||||
|
ARGF
|
||||||
|
ARGV
|
||||||
|
Array
|
||||||
|
BEGIN
|
||||||
|
DATA
|
||||||
|
END
|
||||||
|
ENV
|
||||||
|
FALSE
|
||||||
|
Float
|
||||||
|
Integer
|
||||||
|
NIL
|
||||||
|
PLATFORM
|
||||||
|
RELEASE_DATE
|
||||||
|
RUBY_COPYRIGHT
|
||||||
|
RUBY_DESCRIPTION
|
||||||
|
RUBY_PATCHLEVEL
|
||||||
|
RUBY_PLATFORM
|
||||||
|
RUBY_RELEASE_DATE
|
||||||
|
RUBY_VERSION
|
||||||
|
SCRIPT_LINES__
|
||||||
|
STDERR
|
||||||
|
STDIN
|
||||||
|
STDOUT
|
||||||
|
String
|
||||||
|
TOPLEVEL_BINDING
|
||||||
|
TRUE
|
||||||
|
VERSION
|
||||||
|
__method__
|
||||||
|
`
|
||||||
|
abort
|
||||||
|
alias
|
||||||
|
and
|
||||||
|
at_exit
|
||||||
|
autoload
|
||||||
|
autoload?
|
||||||
|
begin
|
||||||
|
binding
|
||||||
|
block_given
|
||||||
|
break
|
||||||
|
callcc
|
||||||
|
caller
|
||||||
|
case
|
||||||
|
catch
|
||||||
|
chomp
|
||||||
|
chomp!
|
||||||
|
chop
|
||||||
|
chop
|
||||||
|
class
|
||||||
|
def
|
||||||
|
defined?
|
||||||
|
do
|
||||||
|
else
|
||||||
|
elsif
|
||||||
|
end
|
||||||
|
ensure
|
||||||
|
eval
|
||||||
|
exec
|
||||||
|
exit
|
||||||
|
exit!
|
||||||
|
fail
|
||||||
|
false
|
||||||
|
for
|
||||||
|
fork
|
||||||
|
format
|
||||||
|
getc
|
||||||
|
gets
|
||||||
|
global_variables
|
||||||
|
gsub
|
||||||
|
gsub!
|
||||||
|
if
|
||||||
|
in
|
||||||
|
iterator?
|
||||||
|
lambda
|
||||||
|
load
|
||||||
|
local_varaibles
|
||||||
|
loop
|
||||||
|
module
|
||||||
|
next
|
||||||
|
nil
|
||||||
|
not
|
||||||
|
open
|
||||||
|
or
|
||||||
|
p
|
||||||
|
printf
|
||||||
|
proc
|
||||||
|
putc
|
||||||
|
puts
|
||||||
|
raise
|
||||||
|
rand
|
||||||
|
readline
|
||||||
|
readlines
|
||||||
|
redo
|
||||||
|
require
|
||||||
|
require_relative
|
||||||
|
rescue
|
||||||
|
retry
|
||||||
|
return
|
||||||
|
scan
|
||||||
|
select
|
||||||
|
self
|
||||||
|
set_trace_func
|
||||||
|
sleep
|
||||||
|
split
|
||||||
|
sprintf
|
||||||
|
srand
|
||||||
|
sub
|
||||||
|
sub!
|
||||||
|
super
|
||||||
|
syscall
|
||||||
|
system
|
||||||
|
test
|
||||||
|
then
|
||||||
|
throw
|
||||||
|
trace_var
|
||||||
|
trap
|
||||||
|
true
|
||||||
|
undef
|
||||||
|
unless
|
||||||
|
until
|
||||||
|
untrace_var
|
||||||
|
warn
|
||||||
|
when
|
||||||
|
while
|
||||||
|
yield
|
216
.emacs.d/ac-dict/scheme-mode
Normal file
216
.emacs.d/ac-dict/scheme-mode
Normal file
|
@ -0,0 +1,216 @@
|
||||||
|
case-lambda
|
||||||
|
call/cc
|
||||||
|
class
|
||||||
|
define-class
|
||||||
|
exit-handler
|
||||||
|
field
|
||||||
|
import
|
||||||
|
inherit
|
||||||
|
init-field
|
||||||
|
interface
|
||||||
|
let*-values
|
||||||
|
let-values
|
||||||
|
let/ec
|
||||||
|
mixin
|
||||||
|
opt-lambda
|
||||||
|
override
|
||||||
|
protect
|
||||||
|
provide
|
||||||
|
public
|
||||||
|
rename
|
||||||
|
require
|
||||||
|
require-for-syntax
|
||||||
|
syntax
|
||||||
|
syntax-case
|
||||||
|
syntax-error
|
||||||
|
unit/sig
|
||||||
|
unless
|
||||||
|
when
|
||||||
|
with-syntax
|
||||||
|
and
|
||||||
|
begin
|
||||||
|
call-with-current-continuation
|
||||||
|
call-with-input-file
|
||||||
|
call-with-output-file
|
||||||
|
case
|
||||||
|
cond
|
||||||
|
define
|
||||||
|
define-syntax
|
||||||
|
delay
|
||||||
|
do
|
||||||
|
dynamic-wind
|
||||||
|
else
|
||||||
|
for-each
|
||||||
|
if
|
||||||
|
lambda
|
||||||
|
let
|
||||||
|
let*
|
||||||
|
let-syntax
|
||||||
|
letrec
|
||||||
|
letrec-syntax
|
||||||
|
map
|
||||||
|
or
|
||||||
|
syntax-rules
|
||||||
|
abs
|
||||||
|
acos
|
||||||
|
angle
|
||||||
|
append
|
||||||
|
apply
|
||||||
|
asin
|
||||||
|
assoc
|
||||||
|
assq
|
||||||
|
assv
|
||||||
|
atan
|
||||||
|
boolean?
|
||||||
|
caar
|
||||||
|
cadr
|
||||||
|
call-with-input-file
|
||||||
|
call-with-output-file
|
||||||
|
call-with-values
|
||||||
|
car
|
||||||
|
cdddar
|
||||||
|
cddddr
|
||||||
|
cdr
|
||||||
|
ceiling
|
||||||
|
char->integer
|
||||||
|
char-alphabetic?
|
||||||
|
char-ci<=?
|
||||||
|
char-ci<?
|
||||||
|
char-ci=?
|
||||||
|
char-ci>=?
|
||||||
|
char-ci>?
|
||||||
|
char-downcase
|
||||||
|
char-lower-case?
|
||||||
|
char-numeric?
|
||||||
|
char-ready?
|
||||||
|
char-upcase
|
||||||
|
char-upper-case?
|
||||||
|
char-whitespace?
|
||||||
|
char<=?
|
||||||
|
char<?
|
||||||
|
char=?
|
||||||
|
char>=?
|
||||||
|
char>?
|
||||||
|
char?
|
||||||
|
close-input-port
|
||||||
|
close-output-port
|
||||||
|
complex?
|
||||||
|
cons
|
||||||
|
cos
|
||||||
|
current-input-port
|
||||||
|
current-output-port
|
||||||
|
denominator
|
||||||
|
display
|
||||||
|
eof-object?
|
||||||
|
eq?
|
||||||
|
equal?
|
||||||
|
eqv?
|
||||||
|
eval
|
||||||
|
even?
|
||||||
|
exact->inexact
|
||||||
|
exact?
|
||||||
|
exp
|
||||||
|
expt
|
||||||
|
#f
|
||||||
|
floor
|
||||||
|
force
|
||||||
|
gcd
|
||||||
|
imag-part
|
||||||
|
inexact->exact
|
||||||
|
inexact?
|
||||||
|
input-port?
|
||||||
|
integer->char
|
||||||
|
integer?
|
||||||
|
interaction-environment
|
||||||
|
lcm
|
||||||
|
length
|
||||||
|
list
|
||||||
|
list->string
|
||||||
|
list->vector
|
||||||
|
list-ref
|
||||||
|
list-tail
|
||||||
|
list?
|
||||||
|
load
|
||||||
|
log
|
||||||
|
magnitude
|
||||||
|
make-polar
|
||||||
|
make-rectangular
|
||||||
|
make-string
|
||||||
|
make-vector
|
||||||
|
max
|
||||||
|
member
|
||||||
|
memq
|
||||||
|
memv
|
||||||
|
min
|
||||||
|
modulo
|
||||||
|
negative?
|
||||||
|
newline
|
||||||
|
not
|
||||||
|
null-environment
|
||||||
|
null?
|
||||||
|
number->string
|
||||||
|
number?
|
||||||
|
numerator
|
||||||
|
odd?
|
||||||
|
open-input-file
|
||||||
|
open-output-file
|
||||||
|
output-port?
|
||||||
|
pair?
|
||||||
|
peek-char
|
||||||
|
port?
|
||||||
|
positive?
|
||||||
|
procedure?
|
||||||
|
quasiquote
|
||||||
|
quote
|
||||||
|
quotient
|
||||||
|
rational?
|
||||||
|
rationalize
|
||||||
|
read
|
||||||
|
read-char
|
||||||
|
real-part
|
||||||
|
real?
|
||||||
|
remainder
|
||||||
|
reverse
|
||||||
|
round
|
||||||
|
scheme-report-environment
|
||||||
|
set!
|
||||||
|
set-car!
|
||||||
|
set-cdr!
|
||||||
|
sin
|
||||||
|
sqrt
|
||||||
|
string
|
||||||
|
string->list
|
||||||
|
string->number
|
||||||
|
string->symbol
|
||||||
|
string-append
|
||||||
|
string-ci<=?
|
||||||
|
string-ci<?
|
||||||
|
string-ci=?
|
||||||
|
string-ci>=?
|
||||||
|
string-ci>?
|
||||||
|
string-copy
|
||||||
|
string-fill!
|
||||||
|
string-length
|
||||||
|
string-ref
|
||||||
|
string-set!
|
||||||
|
string<=?
|
||||||
|
string<?
|
||||||
|
string=?
|
||||||
|
string>=?
|
||||||
|
string>?
|
||||||
|
string?
|
||||||
|
substring
|
||||||
|
symbol->string
|
||||||
|
symbol?
|
||||||
|
#t
|
||||||
|
tan
|
||||||
|
transcript-off
|
||||||
|
transcript-on
|
||||||
|
truncate
|
||||||
|
values
|
||||||
|
vector
|
||||||
|
vector->list
|
||||||
|
vector-fill!
|
||||||
|
vector-length
|
||||||
|
vector-ref
|
||||||
|
vector-set!
|
172
.emacs.d/ac-dict/tcl-mode
Normal file
172
.emacs.d/ac-dict/tcl-mode
Normal file
|
@ -0,0 +1,172 @@
|
||||||
|
after
|
||||||
|
append
|
||||||
|
apply
|
||||||
|
array
|
||||||
|
auto_execok
|
||||||
|
auto_import
|
||||||
|
auto_load
|
||||||
|
auto_load_index
|
||||||
|
auto_mkindex
|
||||||
|
auto_mkindex_old
|
||||||
|
auto_qualify
|
||||||
|
auto_reset
|
||||||
|
bell
|
||||||
|
binary
|
||||||
|
bind
|
||||||
|
bindtags
|
||||||
|
break
|
||||||
|
button
|
||||||
|
canvas
|
||||||
|
case
|
||||||
|
catch
|
||||||
|
cd
|
||||||
|
chan
|
||||||
|
checkbutton
|
||||||
|
clipboard
|
||||||
|
clock
|
||||||
|
close
|
||||||
|
concat
|
||||||
|
continue
|
||||||
|
destroy
|
||||||
|
dict
|
||||||
|
encoding
|
||||||
|
entry
|
||||||
|
eof
|
||||||
|
error
|
||||||
|
eval
|
||||||
|
event
|
||||||
|
exec
|
||||||
|
exit
|
||||||
|
expr
|
||||||
|
fblocked
|
||||||
|
fconfigure
|
||||||
|
fcopy
|
||||||
|
file
|
||||||
|
fileevent
|
||||||
|
flush
|
||||||
|
focus
|
||||||
|
font
|
||||||
|
for
|
||||||
|
foreach
|
||||||
|
format
|
||||||
|
frame
|
||||||
|
gets
|
||||||
|
glob
|
||||||
|
global
|
||||||
|
grab
|
||||||
|
grid
|
||||||
|
if
|
||||||
|
image
|
||||||
|
incr
|
||||||
|
info
|
||||||
|
interp
|
||||||
|
join
|
||||||
|
label
|
||||||
|
labelframe
|
||||||
|
lappend
|
||||||
|
lassign
|
||||||
|
lindex
|
||||||
|
linsert
|
||||||
|
list
|
||||||
|
listbox
|
||||||
|
llength
|
||||||
|
load
|
||||||
|
lower
|
||||||
|
lrange
|
||||||
|
lrepeat
|
||||||
|
lreplace
|
||||||
|
lreverse
|
||||||
|
lsearch
|
||||||
|
lset
|
||||||
|
lsort
|
||||||
|
menu
|
||||||
|
menubutton
|
||||||
|
message
|
||||||
|
namespace
|
||||||
|
open
|
||||||
|
option
|
||||||
|
pack
|
||||||
|
package
|
||||||
|
panedwindow
|
||||||
|
pid
|
||||||
|
pkg_mkIndex
|
||||||
|
place
|
||||||
|
proc
|
||||||
|
puts
|
||||||
|
pwd
|
||||||
|
radiobutton
|
||||||
|
raise
|
||||||
|
read
|
||||||
|
regexp
|
||||||
|
registry
|
||||||
|
regsub
|
||||||
|
rename
|
||||||
|
return
|
||||||
|
scale
|
||||||
|
scan
|
||||||
|
scrollbar
|
||||||
|
seek
|
||||||
|
selection
|
||||||
|
set
|
||||||
|
socket
|
||||||
|
source
|
||||||
|
spinbox
|
||||||
|
split
|
||||||
|
string
|
||||||
|
subst
|
||||||
|
switch
|
||||||
|
tclLog
|
||||||
|
tclPkgSetup
|
||||||
|
tclPkgUnknown
|
||||||
|
tcl_findLibrary
|
||||||
|
tell
|
||||||
|
text
|
||||||
|
time
|
||||||
|
tk
|
||||||
|
tk_chooseColor
|
||||||
|
tk_chooseDirectory
|
||||||
|
tk_getOpenFile
|
||||||
|
tk_getSaveFile
|
||||||
|
tk_menuSetFocus
|
||||||
|
tk_messageBox
|
||||||
|
tk_popup
|
||||||
|
tk_textCopy
|
||||||
|
tk_textCut
|
||||||
|
tk_textPaste
|
||||||
|
tkwait
|
||||||
|
toplevel
|
||||||
|
ttk::button
|
||||||
|
ttk::checkbutton
|
||||||
|
ttk::combobox
|
||||||
|
ttk::entry
|
||||||
|
ttk::focusFirst
|
||||||
|
ttk::frame
|
||||||
|
ttk::label
|
||||||
|
ttk::labelframe
|
||||||
|
ttk::menubutton
|
||||||
|
ttk::notebook
|
||||||
|
ttk::paned
|
||||||
|
ttk::panedwindow
|
||||||
|
ttk::progressbar
|
||||||
|
ttk::radiobutton
|
||||||
|
ttk::scale
|
||||||
|
ttk::scrollbar
|
||||||
|
ttk::separator
|
||||||
|
ttk::setTheme
|
||||||
|
ttk::sizegrip
|
||||||
|
ttk::style
|
||||||
|
ttk::takefocus
|
||||||
|
ttk::themes
|
||||||
|
ttk::treeview
|
||||||
|
trace
|
||||||
|
unknown
|
||||||
|
unload
|
||||||
|
unset
|
||||||
|
update
|
||||||
|
uplevel
|
||||||
|
upvar
|
||||||
|
variable
|
||||||
|
vwait
|
||||||
|
while
|
||||||
|
winfo
|
||||||
|
wm
|
480
.emacs.d/auto-complete-config.el
Normal file
480
.emacs.d/auto-complete-config.el
Normal file
|
@ -0,0 +1,480 @@
|
||||||
|
;;; auto-complete-config.el --- auto-complete additional configuations
|
||||||
|
|
||||||
|
;; Copyright (C) 2009, 2010 Tomohiro Matsuyama
|
||||||
|
|
||||||
|
;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com>
|
||||||
|
;; Keywords: convenience
|
||||||
|
;; Version: 1.3
|
||||||
|
|
||||||
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(eval-when-compile
|
||||||
|
(require 'cl))
|
||||||
|
|
||||||
|
(require 'auto-complete)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;;; Additional sources
|
||||||
|
|
||||||
|
;; imenu
|
||||||
|
|
||||||
|
(defvar ac-imenu-index nil)
|
||||||
|
|
||||||
|
(ac-clear-variable-every-10-minutes 'ac-imenu-index)
|
||||||
|
|
||||||
|
(defun ac-imenu-candidates ()
|
||||||
|
(loop with i = 0
|
||||||
|
with stack = (progn
|
||||||
|
(unless (local-variable-p 'ac-imenu-index)
|
||||||
|
(make-local-variable 'ac-imenu-index))
|
||||||
|
(or ac-imenu-index
|
||||||
|
(setq ac-imenu-index
|
||||||
|
(ignore-errors
|
||||||
|
(with-no-warnings
|
||||||
|
(imenu--make-index-alist))))))
|
||||||
|
with result
|
||||||
|
while (and stack (or (not (integerp ac-limit))
|
||||||
|
(< i ac-limit)))
|
||||||
|
for node = (pop stack)
|
||||||
|
if (consp node)
|
||||||
|
do
|
||||||
|
(let ((car (car node))
|
||||||
|
(cdr (cdr node)))
|
||||||
|
(if (consp cdr)
|
||||||
|
(mapc (lambda (child)
|
||||||
|
(push child stack))
|
||||||
|
cdr)
|
||||||
|
(when (and (stringp car)
|
||||||
|
(string-match (concat "^" (regexp-quote ac-prefix)) car))
|
||||||
|
;; Remove extra characters
|
||||||
|
(if (string-match "^.*\\(()\\|=\\|<>\\)$" car)
|
||||||
|
(setq car (substring car 0 (match-beginning 1))))
|
||||||
|
(push car result)
|
||||||
|
(incf i))))
|
||||||
|
finally return (nreverse result)))
|
||||||
|
|
||||||
|
(ac-define-source imenu
|
||||||
|
'((depends imenu)
|
||||||
|
(candidates . ac-imenu-candidates)
|
||||||
|
(symbol . "s")))
|
||||||
|
|
||||||
|
;; gtags
|
||||||
|
|
||||||
|
(defface ac-gtags-candidate-face
|
||||||
|
'((t (:background "lightgray" :foreground "navy")))
|
||||||
|
"Face for gtags candidate"
|
||||||
|
:group 'auto-complete)
|
||||||
|
|
||||||
|
(defface ac-gtags-selection-face
|
||||||
|
'((t (:background "navy" :foreground "white")))
|
||||||
|
"Face for the gtags selected candidate."
|
||||||
|
:group 'auto-complete)
|
||||||
|
|
||||||
|
(defun ac-gtags-candidate ()
|
||||||
|
(ignore-errors
|
||||||
|
(split-string (shell-command-to-string (format "global -ci %s" ac-prefix)) "\n")))
|
||||||
|
|
||||||
|
(ac-define-source gtags
|
||||||
|
'((candidates . ac-gtags-candidate)
|
||||||
|
(candidate-face . ac-gtags-candidate-face)
|
||||||
|
(selection-face . ac-gtags-selection-face)
|
||||||
|
(requires . 3)
|
||||||
|
(symbol . "s")))
|
||||||
|
|
||||||
|
;; yasnippet
|
||||||
|
|
||||||
|
(defface ac-yasnippet-candidate-face
|
||||||
|
'((t (:background "sandybrown" :foreground "black")))
|
||||||
|
"Face for yasnippet candidate."
|
||||||
|
:group 'auto-complete)
|
||||||
|
|
||||||
|
(defface ac-yasnippet-selection-face
|
||||||
|
'((t (:background "coral3" :foreground "white")))
|
||||||
|
"Face for the yasnippet selected candidate."
|
||||||
|
:group 'auto-complete)
|
||||||
|
|
||||||
|
(defun ac-yasnippet-table-hash (table)
|
||||||
|
(cond
|
||||||
|
((fboundp 'yas/snippet-table-hash)
|
||||||
|
(yas/snippet-table-hash table))
|
||||||
|
((fboundp 'yas/table-hash)
|
||||||
|
(yas/table-hash table))))
|
||||||
|
|
||||||
|
(defun ac-yasnippet-table-parent (table)
|
||||||
|
(cond
|
||||||
|
((fboundp 'yas/snippet-table-parent)
|
||||||
|
(yas/snippet-table-parent table))
|
||||||
|
((fboundp 'yas/table-parent)
|
||||||
|
(yas/table-parent table))))
|
||||||
|
|
||||||
|
(defun ac-yasnippet-candidate-1 (table)
|
||||||
|
(with-no-warnings
|
||||||
|
(let ((hashtab (ac-yasnippet-table-hash table))
|
||||||
|
(parent (ac-yasnippet-table-parent table))
|
||||||
|
candidates)
|
||||||
|
(maphash (lambda (key value)
|
||||||
|
(push key candidates))
|
||||||
|
hashtab)
|
||||||
|
(setq candidates (all-completions ac-prefix (nreverse candidates)))
|
||||||
|
(if parent
|
||||||
|
(setq candidates
|
||||||
|
(append candidates (ac-yasnippet-candidate-1 parent))))
|
||||||
|
candidates)))
|
||||||
|
|
||||||
|
(defun ac-yasnippet-candidates ()
|
||||||
|
(with-no-warnings
|
||||||
|
(if (fboundp 'yas/get-snippet-tables)
|
||||||
|
;; >0.6.0
|
||||||
|
(apply 'append (mapcar 'ac-yasnippet-candidate-1 (yas/get-snippet-tables major-mode)))
|
||||||
|
(let ((table
|
||||||
|
(if (fboundp 'yas/snippet-table)
|
||||||
|
;; <0.6.0
|
||||||
|
(yas/snippet-table major-mode)
|
||||||
|
;; 0.6.0
|
||||||
|
(yas/current-snippet-table))))
|
||||||
|
(if table
|
||||||
|
(ac-yasnippet-candidate-1 table))))))
|
||||||
|
|
||||||
|
(ac-define-source yasnippet
|
||||||
|
'((depends yasnippet)
|
||||||
|
(candidates . ac-yasnippet-candidates)
|
||||||
|
(action . yas/expand)
|
||||||
|
(candidate-face . ac-yasnippet-candidate-face)
|
||||||
|
(selection-face . ac-yasnippet-selection-face)
|
||||||
|
(symbol . "a")))
|
||||||
|
|
||||||
|
;; semantic
|
||||||
|
|
||||||
|
(defun ac-semantic-candidates (prefix)
|
||||||
|
(with-no-warnings
|
||||||
|
(delete "" ; semantic sometimes returns an empty string
|
||||||
|
(mapcar 'semantic-tag-name
|
||||||
|
(ignore-errors
|
||||||
|
(or (semantic-analyze-possible-completions
|
||||||
|
(semantic-analyze-current-context))
|
||||||
|
(senator-find-tag-for-completion prefix)))))))
|
||||||
|
|
||||||
|
(ac-define-source semantic
|
||||||
|
'((available . (or (require 'semantic-ia nil t)
|
||||||
|
(require 'semantic/ia nil t)))
|
||||||
|
(candidates . (ac-semantic-candidates ac-prefix))
|
||||||
|
(prefix . c-dot-ref)
|
||||||
|
(requires . 0)
|
||||||
|
(symbol . "m")))
|
||||||
|
|
||||||
|
(ac-define-source semantic-raw
|
||||||
|
'((available . (or (require 'semantic-ia nil t)
|
||||||
|
(require 'semantic/ia nil t)))
|
||||||
|
(candidates . (ac-semantic-candidates ac-prefix))
|
||||||
|
(symbol . "s")))
|
||||||
|
|
||||||
|
;; eclim
|
||||||
|
|
||||||
|
(defun ac-eclim-candidates ()
|
||||||
|
(with-no-warnings
|
||||||
|
(loop for c in (eclim/java-complete)
|
||||||
|
collect (nth 1 c))))
|
||||||
|
|
||||||
|
(ac-define-source eclim
|
||||||
|
'((candidates . ac-eclim-candidates)
|
||||||
|
(prefix . c-dot)
|
||||||
|
(requires . 0)
|
||||||
|
(symbol . "f")))
|
||||||
|
|
||||||
|
;; css
|
||||||
|
|
||||||
|
;; Copied from company-css.el
|
||||||
|
(defconst ac-css-property-alist
|
||||||
|
;; see http://www.w3.org/TR/CSS21/propidx.html
|
||||||
|
'(("azimuth" angle "left-side" "far-left" "left" "center-left" "center"
|
||||||
|
"center-right" "right" "far-right" "right-side" "behind" "leftwards"
|
||||||
|
"rightwards")
|
||||||
|
("background" background-color background-image background-repeat
|
||||||
|
background-attachment background-position)
|
||||||
|
("background-attachment" "scroll" "fixed")
|
||||||
|
("background-color" color "transparent")
|
||||||
|
("background-image" uri "none")
|
||||||
|
("background-position" percentage length "left" "center" "right" percentage
|
||||||
|
length "top" "center" "bottom" "left" "center" "right" "top" "center"
|
||||||
|
"bottom")
|
||||||
|
("background-repeat" "repeat" "repeat-x" "repeat-y" "no-repeat")
|
||||||
|
("border" border-width border-style border-color)
|
||||||
|
("border-bottom" border)
|
||||||
|
("border-bottom-color" border-color)
|
||||||
|
("border-bottom-style" border-style)
|
||||||
|
("border-bottom-width" border-width)
|
||||||
|
("border-collapse" "collapse" "separate")
|
||||||
|
("border-color" color "transparent")
|
||||||
|
("border-left" border)
|
||||||
|
("border-left-color" border-color)
|
||||||
|
("border-left-style" border-style)
|
||||||
|
("border-left-width" border-width)
|
||||||
|
("border-right" border)
|
||||||
|
("border-right-color" border-color)
|
||||||
|
("border-right-style" border-style)
|
||||||
|
("border-right-width" border-width)
|
||||||
|
("border-spacing" length length)
|
||||||
|
("border-style" border-style)
|
||||||
|
("border-top" border)
|
||||||
|
("border-top-color" border-color)
|
||||||
|
("border-top-style" border-style)
|
||||||
|
("border-top-width" border-width)
|
||||||
|
("border-width" border-width)
|
||||||
|
("bottom" length percentage "auto")
|
||||||
|
("caption-side" "top" "bottom")
|
||||||
|
("clear" "none" "left" "right" "both")
|
||||||
|
("clip" shape "auto")
|
||||||
|
("color" color)
|
||||||
|
("content" "normal" "none" string uri counter "attr()" "open-quote"
|
||||||
|
"close-quote" "no-open-quote" "no-close-quote")
|
||||||
|
("counter-increment" identifier integer "none")
|
||||||
|
("counter-reset" identifier integer "none")
|
||||||
|
("cue" cue-before cue-after)
|
||||||
|
("cue-after" uri "none")
|
||||||
|
("cue-before" uri "none")
|
||||||
|
("cursor" uri "*" "auto" "crosshair" "default" "pointer" "move" "e-resize"
|
||||||
|
"ne-resize" "nw-resize" "n-resize" "se-resize" "sw-resize" "s-resize"
|
||||||
|
"w-resize" "text" "wait" "help" "progress")
|
||||||
|
("direction" "ltr" "rtl")
|
||||||
|
("display" "inline" "block" "list-item" "run-in" "inline-block" "table"
|
||||||
|
"inline-table" "table-row-group" "table-header-group" "table-footer-group"
|
||||||
|
"table-row" "table-column-group" "table-column" "table-cell"
|
||||||
|
"table-caption" "none")
|
||||||
|
("elevation" angle "below" "level" "above" "higher" "lower")
|
||||||
|
("empty-cells" "show" "hide")
|
||||||
|
("float" "left" "right" "none")
|
||||||
|
("font" font-style font-variant font-weight font-size "/" line-height
|
||||||
|
font-family "caption" "icon" "menu" "message-box" "small-caption"
|
||||||
|
"status-bar")
|
||||||
|
("font-family" family-name generic-family)
|
||||||
|
("font-size" absolute-size relative-size length percentage)
|
||||||
|
("font-style" "normal" "italic" "oblique")
|
||||||
|
("font-variant" "normal" "small-caps")
|
||||||
|
("font-weight" "normal" "bold" "bolder" "lighter" "100" "200" "300" "400"
|
||||||
|
"500" "600" "700" "800" "900")
|
||||||
|
("height" length percentage "auto")
|
||||||
|
("left" length percentage "auto")
|
||||||
|
("letter-spacing" "normal" length)
|
||||||
|
("line-height" "normal" number length percentage)
|
||||||
|
("list-style" list-style-type list-style-position list-style-image)
|
||||||
|
("list-style-image" uri "none")
|
||||||
|
("list-style-position" "inside" "outside")
|
||||||
|
("list-style-type" "disc" "circle" "square" "decimal" "decimal-leading-zero"
|
||||||
|
"lower-roman" "upper-roman" "lower-greek" "lower-latin" "upper-latin"
|
||||||
|
"armenian" "georgian" "lower-alpha" "upper-alpha" "none")
|
||||||
|
("margin" margin-width)
|
||||||
|
("margin-bottom" margin-width)
|
||||||
|
("margin-left" margin-width)
|
||||||
|
("margin-right" margin-width)
|
||||||
|
("margin-top" margin-width)
|
||||||
|
("max-height" length percentage "none")
|
||||||
|
("max-width" length percentage "none")
|
||||||
|
("min-height" length percentage)
|
||||||
|
("min-width" length percentage)
|
||||||
|
("orphans" integer)
|
||||||
|
("outline" outline-color outline-style outline-width)
|
||||||
|
("outline-color" color "invert")
|
||||||
|
("outline-style" border-style)
|
||||||
|
("outline-width" border-width)
|
||||||
|
("overflow" "visible" "hidden" "scroll" "auto")
|
||||||
|
("padding" padding-width)
|
||||||
|
("padding-bottom" padding-width)
|
||||||
|
("padding-left" padding-width)
|
||||||
|
("padding-right" padding-width)
|
||||||
|
("padding-top" padding-width)
|
||||||
|
("page-break-after" "auto" "always" "avoid" "left" "right")
|
||||||
|
("page-break-before" "auto" "always" "avoid" "left" "right")
|
||||||
|
("page-break-inside" "avoid" "auto")
|
||||||
|
("pause" time percentage)
|
||||||
|
("pause-after" time percentage)
|
||||||
|
("pause-before" time percentage)
|
||||||
|
("pitch" frequency "x-low" "low" "medium" "high" "x-high")
|
||||||
|
("pitch-range" number)
|
||||||
|
("play-during" uri "mix" "repeat" "auto" "none")
|
||||||
|
("position" "static" "relative" "absolute" "fixed")
|
||||||
|
("quotes" string string "none")
|
||||||
|
("richness" number)
|
||||||
|
("right" length percentage "auto")
|
||||||
|
("speak" "normal" "none" "spell-out")
|
||||||
|
("speak-header" "once" "always")
|
||||||
|
("speak-numeral" "digits" "continuous")
|
||||||
|
("speak-punctuation" "code" "none")
|
||||||
|
("speech-rate" number "x-slow" "slow" "medium" "fast" "x-fast" "faster"
|
||||||
|
"slower")
|
||||||
|
("stress" number)
|
||||||
|
("table-layout" "auto" "fixed")
|
||||||
|
("text-align" "left" "right" "center" "justify")
|
||||||
|
("text-decoration" "none" "underline" "overline" "line-through" "blink")
|
||||||
|
("text-indent" length percentage)
|
||||||
|
("text-transform" "capitalize" "uppercase" "lowercase" "none")
|
||||||
|
("top" length percentage "auto")
|
||||||
|
("unicode-bidi" "normal" "embed" "bidi-override")
|
||||||
|
("vertical-align" "baseline" "sub" "super" "top" "text-top" "middle"
|
||||||
|
"bottom" "text-bottom" percentage length)
|
||||||
|
("visibility" "visible" "hidden" "collapse")
|
||||||
|
("voice-family" specific-voice generic-voice "*" specific-voice
|
||||||
|
generic-voice)
|
||||||
|
("volume" number percentage "silent" "x-soft" "soft" "medium" "loud"
|
||||||
|
"x-loud")
|
||||||
|
("white-space" "normal" "pre" "nowrap" "pre-wrap" "pre-line")
|
||||||
|
("widows" integer)
|
||||||
|
("width" length percentage "auto")
|
||||||
|
("word-spacing" "normal" length)
|
||||||
|
("z-index" "auto" integer))
|
||||||
|
"A list of CSS properties and their possible values.")
|
||||||
|
|
||||||
|
(defconst ac-css-value-classes
|
||||||
|
'((absolute-size "xx-small" "x-small" "small" "medium" "large" "x-large"
|
||||||
|
"xx-large")
|
||||||
|
(border-style "none" "hidden" "dotted" "dashed" "solid" "double" "groove"
|
||||||
|
"ridge" "inset" "outset")
|
||||||
|
(color "aqua" "black" "blue" "fuchsia" "gray" "green" "lime" "maroon" "navy"
|
||||||
|
"olive" "orange" "purple" "red" "silver" "teal" "white" "yellow"
|
||||||
|
"rgb")
|
||||||
|
(counter "counter")
|
||||||
|
(family-name "Courier" "Helvetica" "Times")
|
||||||
|
(generic-family "serif" "sans-serif" "cursive" "fantasy" "monospace")
|
||||||
|
(generic-voice "male" "female" "child")
|
||||||
|
(margin-width "auto") ;; length percentage
|
||||||
|
(relative-size "larger" "smaller")
|
||||||
|
(shape "rect")
|
||||||
|
(uri "url"))
|
||||||
|
"A list of CSS property value classes and their contents.")
|
||||||
|
|
||||||
|
(defconst ac-css-pseudo-classes
|
||||||
|
'("active" "after" "before" "first" "first-child" "first-letter" "first-line"
|
||||||
|
"focus" "hover" "lang" "left" "link" "right" "visited")
|
||||||
|
"Identifiers for CSS pseudo-elements and pseudo-classes.")
|
||||||
|
|
||||||
|
(defvar ac-css-property nil
|
||||||
|
"Current editing property.")
|
||||||
|
|
||||||
|
(defun ac-css-prefix ()
|
||||||
|
(when (save-excursion (re-search-backward "\\_<\\(.+?\\)\\_>\\s *:.*\\=" nil t))
|
||||||
|
(setq ac-css-property (match-string 1))
|
||||||
|
(or (ac-prefix-symbol) (point))))
|
||||||
|
|
||||||
|
(defun ac-css-property-candidates ()
|
||||||
|
(or (loop with list = (assoc-default ac-css-property ac-css-property-alist)
|
||||||
|
with value
|
||||||
|
while (setq value (pop list))
|
||||||
|
if (symbolp value)
|
||||||
|
do (setq list
|
||||||
|
(append list
|
||||||
|
(or (assoc-default value ac-css-value-classes)
|
||||||
|
(assoc-default (symbol-name value) ac-css-property-alist))))
|
||||||
|
else collect value)
|
||||||
|
ac-css-pseudo-classes))
|
||||||
|
|
||||||
|
(defvar ac-source-css-property
|
||||||
|
'((candidates . ac-css-property-candidates)
|
||||||
|
(prefix . ac-css-prefix)
|
||||||
|
(requires . 0)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;;; Not maintained sources
|
||||||
|
|
||||||
|
;; ropemacs
|
||||||
|
|
||||||
|
(defvar ac-ropemacs-loaded nil)
|
||||||
|
(defun ac-ropemacs-require ()
|
||||||
|
(with-no-warnings
|
||||||
|
(unless ac-ropemacs-loaded
|
||||||
|
(pymacs-load "ropemacs" "rope-")
|
||||||
|
(if (boundp 'ropemacs-enable-autoimport)
|
||||||
|
(setq ropemacs-enable-autoimport t))
|
||||||
|
(setq ac-ropemacs-loaded t))))
|
||||||
|
|
||||||
|
(defun ac-ropemacs-setup ()
|
||||||
|
(ac-ropemacs-require)
|
||||||
|
;(setq ac-sources (append (list 'ac-source-ropemacs) ac-sources))
|
||||||
|
(setq ac-omni-completion-sources '(("\\." ac-source-ropemacs))))
|
||||||
|
|
||||||
|
(defun ac-ropemacs-initialize ()
|
||||||
|
(autoload 'pymacs-apply "pymacs")
|
||||||
|
(autoload 'pymacs-call "pymacs")
|
||||||
|
(autoload 'pymacs-eval "pymacs" nil t)
|
||||||
|
(autoload 'pymacs-exec "pymacs" nil t)
|
||||||
|
(autoload 'pymacs-load "pymacs" nil t)
|
||||||
|
(add-hook 'python-mode-hook 'ac-ropemacs-setup)
|
||||||
|
t)
|
||||||
|
|
||||||
|
(defvar ac-ropemacs-completions-cache nil)
|
||||||
|
(defvar ac-source-ropemacs
|
||||||
|
'((init
|
||||||
|
. (lambda ()
|
||||||
|
(setq ac-ropemacs-completions-cache
|
||||||
|
(mapcar
|
||||||
|
(lambda (completion)
|
||||||
|
(concat ac-prefix completion))
|
||||||
|
(ignore-errors
|
||||||
|
(rope-completions))))))
|
||||||
|
(candidates . ac-ropemacs-completions-cache)))
|
||||||
|
|
||||||
|
;; rcodetools
|
||||||
|
|
||||||
|
(defvar ac-source-rcodetools
|
||||||
|
'((init . (lambda ()
|
||||||
|
(require 'rcodetools)
|
||||||
|
(condition-case x
|
||||||
|
(save-excursion
|
||||||
|
(rct-exec-and-eval rct-complete-command-name "--completion-emacs-icicles"))
|
||||||
|
(error) (setq rct-method-completion-table nil))))
|
||||||
|
(candidates . (lambda ()
|
||||||
|
(all-completions
|
||||||
|
ac-prefix
|
||||||
|
(mapcar
|
||||||
|
(lambda (completion)
|
||||||
|
(replace-regexp-in-string "\t.*$" "" (car completion)))
|
||||||
|
rct-method-completion-table))))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;;; Default settings
|
||||||
|
|
||||||
|
(defun ac-common-setup ()
|
||||||
|
(add-to-list 'ac-sources 'ac-source-filename))
|
||||||
|
|
||||||
|
(defun ac-emacs-lisp-mode-setup ()
|
||||||
|
(setq ac-sources (append '(ac-source-features ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols) ac-sources)))
|
||||||
|
|
||||||
|
(defun ac-cc-mode-setup ()
|
||||||
|
(setq ac-sources (append '(ac-source-yasnippet ac-source-gtags) ac-sources)))
|
||||||
|
|
||||||
|
(defun ac-ruby-mode-setup ()
|
||||||
|
(make-local-variable 'ac-ignores)
|
||||||
|
(add-to-list 'ac-ignores "end"))
|
||||||
|
|
||||||
|
(defun ac-css-mode-setup ()
|
||||||
|
(setq ac-sources (append '(ac-source-css-property) ac-sources)))
|
||||||
|
|
||||||
|
(defun ac-config-default ()
|
||||||
|
(setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))
|
||||||
|
(add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup)
|
||||||
|
(add-hook 'c-mode-common-hook 'ac-cc-mode-setup)
|
||||||
|
(add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)
|
||||||
|
(add-hook 'css-mode-hook 'ac-css-mode-setup)
|
||||||
|
(add-hook 'auto-complete-mode-hook 'ac-common-setup)
|
||||||
|
(global-auto-complete-mode t))
|
||||||
|
|
||||||
|
(provide 'auto-complete-config)
|
||||||
|
;;; auto-complete-config.el ends here
|
BIN
.emacs.d/auto-complete-config.elc
Normal file
BIN
.emacs.d/auto-complete-config.elc
Normal file
Binary file not shown.
1897
.emacs.d/auto-complete.el
Normal file
1897
.emacs.d/auto-complete.el
Normal file
File diff suppressed because it is too large
Load diff
BIN
.emacs.d/auto-complete.elc
Normal file
BIN
.emacs.d/auto-complete.elc
Normal file
Binary file not shown.
156
.emacs.d/batch-mode.el
Normal file
156
.emacs.d/batch-mode.el
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
;;; batch-mode.el --- major mode for editing ESRI batch scrips
|
||||||
|
;;; Copyright (C) 2002, Agnar Renolen <agnar.renolen@emap.no>
|
||||||
|
;;; Modified (c) 2009, Matthew Fidler <matthew.fidler at gmail.com>
|
||||||
|
;;; Fixed indents (and labels)
|
||||||
|
|
||||||
|
;; batch-mode.el is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation; either version 2 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program; if not, write to the Free Software
|
||||||
|
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
;; This is version 1.0 of 21 August 2002.
|
||||||
|
|
||||||
|
;;; Comentary:
|
||||||
|
|
||||||
|
;; The batch-mode provides syntax hilighting and auto-indentation for
|
||||||
|
;; DOS batch files (.bat). and auto-idendation.
|
||||||
|
|
||||||
|
;; Agnar Renolen, <agnar.renolen@emap.no>
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(defgroup batch nil
|
||||||
|
"Major mode for editing batch code"
|
||||||
|
:prefix "batch-"
|
||||||
|
:group 'languages)
|
||||||
|
|
||||||
|
; (defvar batch-mode-hook nil
|
||||||
|
; "Hooks called when batch mode fires up."
|
||||||
|
; :type 'hook
|
||||||
|
; :group 'batch)
|
||||||
|
|
||||||
|
(defvar batch-mode-map nil
|
||||||
|
"Keymap used with batch code")
|
||||||
|
|
||||||
|
(defcustom batch-indent-level 4
|
||||||
|
"Amount by which batch subexpressions are indented."
|
||||||
|
:type 'integer
|
||||||
|
:group 'batch)
|
||||||
|
|
||||||
|
(defvar batch-font-lock-keywords
|
||||||
|
(eval-when-compile
|
||||||
|
(list
|
||||||
|
; since we can't specify batch comments through the syntax table,
|
||||||
|
; we have to specify it here, and override whatever is highlighted
|
||||||
|
'( "^[ \t]*rem\\>.*" (0 font-lock-comment-face t))
|
||||||
|
|
||||||
|
; since the argument to the echo command is a string, we format it
|
||||||
|
; as a string
|
||||||
|
'( "\\<echo\\>[ \t]*\\(.*\\)" (1 font-lock-string-face t))
|
||||||
|
|
||||||
|
; the argument of the goto statement is a label
|
||||||
|
'( "\\<goto\\>[ \t]*\\([a-zA-Z0-9_]+\\)" (1
|
||||||
|
font-lock-constant-face))
|
||||||
|
|
||||||
|
; the keywords of batch (which are not built-in commands)
|
||||||
|
(concat "\\<\\(cmdextversion\\|"
|
||||||
|
"d\\(efined\\|isableextensions\\|o\\)\\|"
|
||||||
|
"e\\(lse\\|n\\(ableextensions\\|dlocal\\)"
|
||||||
|
"\\|qu\\|rrorlevel\\|xist\\)\\|for\\|"
|
||||||
|
"goto\\|i[fn]\\|n\\(eq\\|ot\\)\\|setlocal\\)\\>")
|
||||||
|
|
||||||
|
; built-in DOS commands
|
||||||
|
(cons (concat "\\<\\(a\\(ssoc\\|t\\(\\|trib\\)\\)\\|break\\|"
|
||||||
|
"c\\(a\\(cls\\|ll\\)\\|d\\|h\\(cp\\|dir\\|k\\("
|
||||||
|
"dsk\\|ntfs\\)\\)\\|ls\\|md\\|o\\(lor\\|mp\\(\\|act\\)"
|
||||||
|
"\\|nvert\\|py\\)\\)\\|d\\(ate\\|el\\|i\\("
|
||||||
|
"r\\|skco\\(mp\\|py\\)\\)\\|oskey\\)\\|"
|
||||||
|
"e\\(cho\\|rase\\|xit\\)\\|"
|
||||||
|
"f\\(c\\|ind\\(\\|str\\)\\|for\\(\\|mot\\)\\|type\\)\\|"
|
||||||
|
"graftabl\\|help\\|label\\|"
|
||||||
|
"m\\(d\\|mkdir\\|o[dvr]e\\)\\|p\\(a\\(th\\|use\\)"
|
||||||
|
"\\|opd\\|r\\(int\\|opmt\\)\\|ushd\\)\\|"
|
||||||
|
"r\\(d\\|e\\(cover\\|n\\(\\|ame\\)\\|place\\)\\|mdir\\)\\|"
|
||||||
|
"s\\(et\\|hift\\|ort\\|tart\\|ubst\\)\\|"
|
||||||
|
"t\\(i\\(me\\|tle\\)\\|ree\\|ype\\)\\|"
|
||||||
|
"v\\(er\\(\\|ify\\)\\|ol\\)\\|xcopy\\)\\>")
|
||||||
|
'font-lock-builtin-face)
|
||||||
|
|
||||||
|
; variables are embeded in percent chars
|
||||||
|
'( "%[a-zA-Z0-9_]+%?" . font-lock-variable-name-face)
|
||||||
|
; labels are formatted as constants
|
||||||
|
'( ":[a-zA-Z0-9_]+" . font-lock-constant-face)
|
||||||
|
|
||||||
|
; command line switches are hilighted as type-face
|
||||||
|
'( "[-/][a-zA-Z0-9_]+" . font-lock-type-face)
|
||||||
|
|
||||||
|
; variables set should also be hilighted with variable-name-face
|
||||||
|
'( "\\<set\\>[ \t]*\\([a-zA-Z0-9_]+\\)" (1 font-lock-variable-name-face))
|
||||||
|
)))
|
||||||
|
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun batch-mode ()
|
||||||
|
"Major mode for editing batch scripts."
|
||||||
|
(interactive)
|
||||||
|
(kill-all-local-variables)
|
||||||
|
(setq major-mode 'batch-mode)
|
||||||
|
(setq mode-name "Avenue")
|
||||||
|
(set (make-local-variable 'indent-line-function) 'batch-indent-line)
|
||||||
|
(set (make-local-variable 'comment-start) "rem")
|
||||||
|
(set (make-local-variable 'comment-start-skip) "rem[ \t]*")
|
||||||
|
(set (make-local-variable 'font-lock-defaults)
|
||||||
|
'(batch-font-lock-keywords nil t nil))
|
||||||
|
(run-hooks 'batch-mode-hook))
|
||||||
|
|
||||||
|
(defun batch-indent-line ()
|
||||||
|
"Indent current line as batch script"
|
||||||
|
(let ((indent (batch-calculate-indent))
|
||||||
|
beg shift-amt
|
||||||
|
(old-pos (- (point-max) (point))))
|
||||||
|
(beginning-of-line)
|
||||||
|
(setq beg (point))
|
||||||
|
(skip-chars-forward " \t")
|
||||||
|
(if (looking-at ")")
|
||||||
|
(setq indent (max (- indent batch-indent-level))))
|
||||||
|
(message "prev indent: %d" indent)
|
||||||
|
(setq shift-amt (- indent (current-column)))
|
||||||
|
(if (not (zerop shift-amt))
|
||||||
|
(progn
|
||||||
|
(delete-region beg (point))
|
||||||
|
; ArcView replaces tabs with single spaces, so we only insert
|
||||||
|
; spaces to make indentation correct in ArcView.
|
||||||
|
(insert-char ? indent)
|
||||||
|
(if (> (- (point-max) old-pos) (point))
|
||||||
|
(goto-char (- (point-max) old-pos)))))
|
||||||
|
shift-amt))
|
||||||
|
|
||||||
|
(defun batch-calculate-indent ()
|
||||||
|
"Return appropriate indentation for the current line as batch code."
|
||||||
|
(save-excursion
|
||||||
|
(beginning-of-line)
|
||||||
|
(current-indentation)
|
||||||
|
(if (bobp)
|
||||||
|
0
|
||||||
|
(if (re-search-backward "^[ \t]*[^ \t\n\r]" nil t)
|
||||||
|
(if (looking-at "[ \t]*\\()[ \t]*else\\|for\\|if\\)\\>[^(\n]*([^)\n]*")
|
||||||
|
(+ (current-indentation) batch-indent-level)
|
||||||
|
(if (looking-at "[ \t]*[^(]*)[ \t]*")
|
||||||
|
(- (current-indentation) batch-indent-level)
|
||||||
|
(current-indentation)))
|
||||||
|
0))))
|
||||||
|
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.bat\\'" . batch-mode))
|
||||||
|
|
||||||
|
(provide 'batch-mode)
|
||||||
|
|
||||||
|
;;; batch-mode.el ends here
|
1668
.emacs.d/color-theme.el
Normal file
1668
.emacs.d/color-theme.el
Normal file
File diff suppressed because it is too large
Load diff
1977
.emacs.d/csharp-mode.el
Normal file
1977
.emacs.d/csharp-mode.el
Normal file
File diff suppressed because it is too large
Load diff
255
.emacs.d/fuzzy.el
Normal file
255
.emacs.d/fuzzy.el
Normal file
|
@ -0,0 +1,255 @@
|
||||||
|
;;; fuzzy.el --- Fuzzy matching utilities
|
||||||
|
|
||||||
|
;; Copyright (C) 2010 Tomohiro Matsuyama
|
||||||
|
|
||||||
|
;; Author: Tomohiro Matsuyama <m2ym.pub@gmail.com>
|
||||||
|
;; Keywords: convenience
|
||||||
|
|
||||||
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(eval-when-compile
|
||||||
|
(require 'cl))
|
||||||
|
(require 'regexp-opt)
|
||||||
|
|
||||||
|
(defgroup fuzzy nil
|
||||||
|
"Fuzzy matching utilities."
|
||||||
|
:group 'convenience
|
||||||
|
:prefix "fuzzy-")
|
||||||
|
|
||||||
|
(defcustom fuzzy-accept-error-rate 0.10
|
||||||
|
"Error threshold."
|
||||||
|
:group 'fuzzy)
|
||||||
|
|
||||||
|
(defvar fuzzy-accept-length-difference 2)
|
||||||
|
|
||||||
|
(defvar fuzzy-regexp-some-char (format "\\w\\{0,%s\\}" fuzzy-accept-length-difference))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;; Functions
|
||||||
|
|
||||||
|
(defun fuzzy-reverse-string (string)
|
||||||
|
(apply 'string (nreverse (append string nil))))
|
||||||
|
|
||||||
|
(defun fuzzy-regexp-compile (string)
|
||||||
|
(labels ((oddp (n) (eq (logand n 1) 1))
|
||||||
|
(evenp (n) (eq (logand n 1) 0))
|
||||||
|
(opt (n) (regexp-opt-charset (append (substring string
|
||||||
|
(max 0 (- n 1))
|
||||||
|
(min (length string) (+ n 2))) nil))))
|
||||||
|
(concat
|
||||||
|
"\\("
|
||||||
|
(loop for i below (length string)
|
||||||
|
for c = (if (evenp i) (opt i) fuzzy-regexp-some-char)
|
||||||
|
concat c)
|
||||||
|
"\\|"
|
||||||
|
(loop for i below (length string)
|
||||||
|
for c = (if (oddp i) (opt i) fuzzy-regexp-some-char)
|
||||||
|
concat c)
|
||||||
|
"\\)")))
|
||||||
|
|
||||||
|
(defalias 'fuzzy-edit-distance 'fuzzy-jaro-winkler-distance)
|
||||||
|
|
||||||
|
(defun fuzzy-jaro-winkler-distance (s1 s2)
|
||||||
|
"http://en.wikipedia.org/wiki/Jaro-Winkler_distance"
|
||||||
|
(let* ((l1 (length s1))
|
||||||
|
(l2 (length s2))
|
||||||
|
(r (max 1 (1- (/ (max l1 l2) 2))))
|
||||||
|
(m 0)
|
||||||
|
(tr 0)
|
||||||
|
(p 0)
|
||||||
|
cs1 cs2)
|
||||||
|
(loop with seen = (make-vector l2 nil)
|
||||||
|
for i below l1
|
||||||
|
for c1 = (aref s1 i) do
|
||||||
|
(loop for j from (max 0 (- i r)) below (min l2 (+ i r))
|
||||||
|
for c2 = (aref s2 j)
|
||||||
|
if (and (char-equal c1 c2)
|
||||||
|
(null (aref seen j))) do
|
||||||
|
(push c1 cs1)
|
||||||
|
(aset seen j c2)
|
||||||
|
(incf m)
|
||||||
|
and return nil)
|
||||||
|
finally
|
||||||
|
(setq cs1 (nreverse cs1)
|
||||||
|
cs2 (loop for i below l2
|
||||||
|
for c = (aref seen i)
|
||||||
|
if c collect c)))
|
||||||
|
(loop for c1 in cs1
|
||||||
|
for c2 in cs2
|
||||||
|
if (not (char-equal c1 c2)) do
|
||||||
|
(incf tr))
|
||||||
|
(loop for i below (min m 5)
|
||||||
|
for c1 across s1
|
||||||
|
for c2 across s2
|
||||||
|
while (char-equal c1 c2) do
|
||||||
|
(incf p))
|
||||||
|
(if (eq m 0)
|
||||||
|
0.0
|
||||||
|
(setq m (float m))
|
||||||
|
(let* ((dj (/ (+ (/ m l1) (/ m l2) (/ (- m (/ tr 2)) m)) 3))
|
||||||
|
(dw (+ dj (* p 0.1 (- 1 dj)))))
|
||||||
|
dw))))
|
||||||
|
|
||||||
|
;; this function should be compiled
|
||||||
|
(byte-compile 'fuzzy-jaro-winkler-distance)
|
||||||
|
|
||||||
|
(defun fuzzy-match (s1 s2 &optional function)
|
||||||
|
(or function (setq function 'fuzzy-edit-distance))
|
||||||
|
(and (<= (abs (- (length s1) (length s2)))
|
||||||
|
fuzzy-accept-length-difference)
|
||||||
|
(>= (funcall function s1 s2)
|
||||||
|
(- 1 fuzzy-accept-error-rate))))
|
||||||
|
|
||||||
|
(defun fuzzy-all-completions (string collection)
|
||||||
|
"all-completions family with fuzzy matching."
|
||||||
|
(loop with length = (length string)
|
||||||
|
for str in collection
|
||||||
|
for s = (substring str 0 (min (length str)
|
||||||
|
(+ length fuzzy-accept-length-difference)))
|
||||||
|
if (fuzzy-match string s)
|
||||||
|
collect str))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;; Search and Incremental Search
|
||||||
|
|
||||||
|
(defvar fuzzy-search-cache nil)
|
||||||
|
(defvar fuzzy-search-cache-string nil)
|
||||||
|
|
||||||
|
(defun fuzzy-search-cache-activate ()
|
||||||
|
(setq fuzzy-search-cache (make-hash-table))
|
||||||
|
(setq fuzzy-search-cache-string nil))
|
||||||
|
|
||||||
|
(defun fuzzy-search-cache-deactive ()
|
||||||
|
(setq fuzzy-search-cache nil)
|
||||||
|
(setq fuzzy-search-cache-string nil))
|
||||||
|
|
||||||
|
(defun fuzzy-search-edit-distance (s1 s2)
|
||||||
|
(or (and fuzzy-search-cache
|
||||||
|
(cond
|
||||||
|
((null fuzzy-search-cache-string)
|
||||||
|
(setq fuzzy-search-cache-string s1)
|
||||||
|
nil)
|
||||||
|
((not (equal fuzzy-search-cache-string s1))
|
||||||
|
(setq fuzzy-search-cache-string s1)
|
||||||
|
(clrhash fuzzy-search-cache)
|
||||||
|
nil)
|
||||||
|
(t))
|
||||||
|
(gethash s2 fuzzy-search-cache))
|
||||||
|
(let ((d (fuzzy-edit-distance s1 s2)))
|
||||||
|
(if fuzzy-search-cache
|
||||||
|
(puthash s2 d fuzzy-search-cache))
|
||||||
|
d)))
|
||||||
|
|
||||||
|
(defun fuzzy-search-match (s1 s2)
|
||||||
|
(fuzzy-match s1 s2 'fuzzy-search-edit-distance))
|
||||||
|
|
||||||
|
(defun fuzzy-search-forward (string &optional bound noerror count)
|
||||||
|
(let* ((regexp (fuzzy-regexp-compile string))
|
||||||
|
match-data)
|
||||||
|
(save-excursion
|
||||||
|
(while (and (null match-data)
|
||||||
|
(re-search-forward regexp bound t))
|
||||||
|
(if (fuzzy-search-match string (match-string 1))
|
||||||
|
(setq match-data (match-data))
|
||||||
|
(goto-char (1+ (match-beginning 1))))))
|
||||||
|
(when match-data
|
||||||
|
(store-match-data match-data)
|
||||||
|
(goto-char (match-end 1)))))
|
||||||
|
|
||||||
|
(defun fuzzy-search-backward (string &optional bound noerror count)
|
||||||
|
(let* ((regexp (fuzzy-regexp-compile string))
|
||||||
|
match-data begin end)
|
||||||
|
(save-excursion
|
||||||
|
(while (and (null match-data)
|
||||||
|
(re-search-backward regexp bound t))
|
||||||
|
(setq begin (match-beginning 1)
|
||||||
|
end (match-end 1))
|
||||||
|
(store-match-data nil)
|
||||||
|
(goto-char (max (point-min) (- begin (* (length string) 2))))
|
||||||
|
(while (re-search-forward regexp end t)
|
||||||
|
(if (fuzzy-search-match string (match-string 1))
|
||||||
|
(setq match-data (match-data))
|
||||||
|
(goto-char (1+ (match-beginning 1)))))
|
||||||
|
(unless match-data
|
||||||
|
(goto-char begin)))
|
||||||
|
(if match-data
|
||||||
|
(progn
|
||||||
|
(store-match-data match-data)
|
||||||
|
(goto-char (match-beginning 1)))
|
||||||
|
(store-match-data nil)))))
|
||||||
|
|
||||||
|
(defvar fuzzy-isearch nil)
|
||||||
|
(defvar fuzzy-isearch-failed-count 0)
|
||||||
|
(defvar fuzzy-isearch-enabled 'on-failed)
|
||||||
|
(defvar fuzzy-isearch-original-search-fun nil)
|
||||||
|
(defvar fuzzy-isearch-prefix "[FUZZY] ")
|
||||||
|
|
||||||
|
(defun fuzzy-isearch-activate ()
|
||||||
|
(setq fuzzy-isearch t)
|
||||||
|
(setq fuzzy-isearch-failed-count 0)
|
||||||
|
(fuzzy-search-cache-activate))
|
||||||
|
|
||||||
|
(defun fuzzy-isearch-deactivate ()
|
||||||
|
(setq fuzzy-isearch nil)
|
||||||
|
(setq fuzzy-isearch-failed-count 0)
|
||||||
|
(fuzzy-search-cache-deactive))
|
||||||
|
|
||||||
|
(defun fuzzy-isearch ()
|
||||||
|
(cond (isearch-word
|
||||||
|
(if isearch-forward 'word-search-forward 'word-search-backward))
|
||||||
|
(isearch-regexp
|
||||||
|
(if isearch-forward 're-search-forward 're-search-backward))
|
||||||
|
((or fuzzy-isearch
|
||||||
|
(eq fuzzy-isearch-enabled 'always)
|
||||||
|
(and (eq fuzzy-isearch-enabled 'on-failed)
|
||||||
|
(null isearch-success)
|
||||||
|
isearch-wrapped
|
||||||
|
(> (setq fuzzy-isearch-failed-count (1+ fuzzy-isearch-failed-count))
|
||||||
|
1)))
|
||||||
|
(unless fuzzy-isearch
|
||||||
|
;(goto-char isearch-opoint)
|
||||||
|
(fuzzy-isearch-activate))
|
||||||
|
(if isearch-forward 'fuzzy-search-forward 'fuzzy-search-backward))
|
||||||
|
(t
|
||||||
|
(if isearch-forward 'search-forward 'search-backward))))
|
||||||
|
|
||||||
|
(defun fuzzy-isearch-end-hook ()
|
||||||
|
(fuzzy-isearch-deactivate))
|
||||||
|
|
||||||
|
(defun turn-on-fuzzy-isearch ()
|
||||||
|
(interactive)
|
||||||
|
(setq fuzzy-isearch-original-search-fun isearch-search-fun-function)
|
||||||
|
(setq isearch-search-fun-function 'fuzzy-isearch)
|
||||||
|
(add-hook 'isearch-mode-end-hook 'fuzzy-isearch-end-hook))
|
||||||
|
|
||||||
|
(defun turn-off-fuzzy-isearch ()
|
||||||
|
(interactive)
|
||||||
|
(setq isearch-search-fun-function fuzzy-isearch-original-search-fun)
|
||||||
|
(remove-hook 'isearch-mode-end-hook 'fuzzy-isearch-end-hook))
|
||||||
|
|
||||||
|
(defadvice isearch-message-prefix (after fuzzy-isearch-message-prefix activate)
|
||||||
|
(if fuzzy-isearch
|
||||||
|
(setq ad-return-value (concat fuzzy-isearch-prefix ad-return-value))
|
||||||
|
ad-return-value))
|
||||||
|
|
||||||
|
(provide 'fuzzy)
|
||||||
|
;;; fuzzy.el ends here
|
BIN
.emacs.d/fuzzy.elc
Normal file
BIN
.emacs.d/fuzzy.elc
Normal file
Binary file not shown.
16
.emacs.d/include.el
Normal file
16
.emacs.d/include.el
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
(load-file "~/.emacs.d/slash_theme.el")
|
||||||
|
(load-file "~/.emacs.d/slash_python.el")
|
||||||
|
(load-file "~/.emacs.d/slash_functions.el")
|
||||||
|
(autoload 'vala-mode
|
||||||
|
"~/.emacs.d/vala-mode.el" "A Major mode for editing Vala files" t)
|
||||||
|
(autoload 'csharp-mode
|
||||||
|
"~/.emacs.d/csharp-mode.el" "A Major mode for editing C# files" t)
|
||||||
|
(autoload 'javascript-mode
|
||||||
|
"~/.emacs.d/javascript.el" "A Major mode for editing JavaScript" t)
|
||||||
|
(autoload 'sqlplus
|
||||||
|
"~/.emacs.d/sqlplus.el" "A Major mode for communicating with Oracle" t)
|
||||||
|
(autoload 'batch-mode
|
||||||
|
"~/.emacs.d/batch-mode.el" "A Major mode for editing Batch files" t)
|
||||||
|
|
||||||
|
(load-file "~/.emacs.d/auto-complete-config.el")
|
||||||
|
(require 'auto-complete-config)
|
707
.emacs.d/javascript.el
Normal file
707
.emacs.d/javascript.el
Normal file
|
@ -0,0 +1,707 @@
|
||||||
|
;;; javascript.el --- Major mode for editing JavaScript source text
|
||||||
|
|
||||||
|
;; Copyright (C) 2006 Karl Landström
|
||||||
|
|
||||||
|
;; Author: Karl Landström <kland@comhem.se>
|
||||||
|
;; Maintainer: Karl Landström <kland@comhem.se>
|
||||||
|
;; Version: 2.0 Beta 8
|
||||||
|
;; Date: 2006-12-26
|
||||||
|
;; Keywords: languages, oop
|
||||||
|
|
||||||
|
;; This file is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
;; any later version.
|
||||||
|
|
||||||
|
;; This file is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
;; Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;; The main features of this JavaScript mode are syntactic
|
||||||
|
;; highlighting (enabled with `font-lock-mode' or
|
||||||
|
;; `global-font-lock-mode'), automatic indentation and filling of
|
||||||
|
;; comments.
|
||||||
|
;;
|
||||||
|
;; This package has (only) been tested with GNU Emacs 21.4 (the latest
|
||||||
|
;; stable release).
|
||||||
|
;;
|
||||||
|
;; Installation:
|
||||||
|
;;
|
||||||
|
;; Put this file in a directory where Emacs can find it (`C-h v
|
||||||
|
;; load-path' for more info). Then add the following lines to your
|
||||||
|
;; Emacs initialization file:
|
||||||
|
;;
|
||||||
|
;; (add-to-list 'auto-mode-alist '("\\.js\\'" . javascript-mode))
|
||||||
|
;; (autoload 'javascript-mode "javascript" nil t)
|
||||||
|
;;
|
||||||
|
;; General Remarks:
|
||||||
|
;;
|
||||||
|
;; This mode assumes that block comments are not nested inside block
|
||||||
|
;; comments and that strings do not contain line breaks.
|
||||||
|
;;
|
||||||
|
;; Exported names start with "javascript-" whereas private names start
|
||||||
|
;; with "js-".
|
||||||
|
;;
|
||||||
|
;; Changes:
|
||||||
|
;;
|
||||||
|
;; See javascript.el.changelog.
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require 'cc-mode)
|
||||||
|
(require 'font-lock)
|
||||||
|
(require 'newcomment)
|
||||||
|
|
||||||
|
(defgroup javascript nil
|
||||||
|
"Customization variables for `javascript-mode'."
|
||||||
|
:tag "JavaScript"
|
||||||
|
:group 'languages)
|
||||||
|
|
||||||
|
(defcustom javascript-indent-level 4
|
||||||
|
"Number of spaces for each indentation step."
|
||||||
|
:type 'integer
|
||||||
|
:group 'javascript)
|
||||||
|
|
||||||
|
(defcustom javascript-auto-indent-flag t
|
||||||
|
"Automatic indentation with punctuation characters. If non-nil, the
|
||||||
|
current line is indented when certain punctuations are inserted."
|
||||||
|
:type 'boolean
|
||||||
|
:group 'javascript)
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Keymap ---
|
||||||
|
|
||||||
|
(defvar javascript-mode-map nil
|
||||||
|
"Keymap used in JavaScript mode.")
|
||||||
|
|
||||||
|
(unless javascript-mode-map
|
||||||
|
(setq javascript-mode-map (make-sparse-keymap)))
|
||||||
|
|
||||||
|
(when javascript-auto-indent-flag
|
||||||
|
(mapc (lambda (key)
|
||||||
|
(define-key javascript-mode-map key 'javascript-insert-and-indent))
|
||||||
|
'("{" "}" "(" ")" ":" ";" ",")))
|
||||||
|
|
||||||
|
(defun javascript-insert-and-indent (key)
|
||||||
|
"Run command bound to key and indent current line. Runs the command
|
||||||
|
bound to KEY in the global keymap and indents the current line."
|
||||||
|
(interactive (list (this-command-keys)))
|
||||||
|
(call-interactively (lookup-key (current-global-map) key))
|
||||||
|
(indent-according-to-mode))
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Syntax Table And Parsing ---
|
||||||
|
|
||||||
|
(defvar javascript-mode-syntax-table
|
||||||
|
(let ((table (make-syntax-table)))
|
||||||
|
(c-populate-syntax-table table)
|
||||||
|
|
||||||
|
;; The syntax class of underscore should really be `symbol' ("_")
|
||||||
|
;; but that makes matching of tokens much more complex as e.g.
|
||||||
|
;; "\\<xyz\\>" matches part of e.g. "_xyz" and "xyz_abc". Defines
|
||||||
|
;; it as word constituent for now.
|
||||||
|
(modify-syntax-entry ?_ "w" table)
|
||||||
|
|
||||||
|
table)
|
||||||
|
"Syntax table used in JavaScript mode.")
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-re-search-forward-inner (regexp &optional bound count)
|
||||||
|
"Auxiliary function for `js-re-search-forward'."
|
||||||
|
(let ((parse)
|
||||||
|
(saved-point (point-min)))
|
||||||
|
(while (> count 0)
|
||||||
|
(re-search-forward regexp bound)
|
||||||
|
(setq parse (parse-partial-sexp saved-point (point)))
|
||||||
|
(cond ((nth 3 parse)
|
||||||
|
(re-search-forward
|
||||||
|
(concat "\\([^\\]\\|^\\)" (string (nth 3 parse)))
|
||||||
|
(save-excursion (end-of-line) (point)) t))
|
||||||
|
((nth 7 parse)
|
||||||
|
(forward-line))
|
||||||
|
((or (nth 4 parse)
|
||||||
|
(and (eq (char-before) ?\/) (eq (char-after) ?\*)))
|
||||||
|
(re-search-forward "\\*/"))
|
||||||
|
(t
|
||||||
|
(setq count (1- count))))
|
||||||
|
(setq saved-point (point))))
|
||||||
|
(point))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-re-search-forward (regexp &optional bound noerror count)
|
||||||
|
"Search forward but ignore strings and comments. Invokes
|
||||||
|
`re-search-forward' but treats the buffer as if strings and
|
||||||
|
comments have been removed."
|
||||||
|
(let ((saved-point (point))
|
||||||
|
(search-expr
|
||||||
|
(cond ((null count)
|
||||||
|
'(js-re-search-forward-inner regexp bound 1))
|
||||||
|
((< count 0)
|
||||||
|
'(js-re-search-backward-inner regexp bound (- count)))
|
||||||
|
((> count 0)
|
||||||
|
'(js-re-search-forward-inner regexp bound count)))))
|
||||||
|
(condition-case err
|
||||||
|
(eval search-expr)
|
||||||
|
(search-failed
|
||||||
|
(goto-char saved-point)
|
||||||
|
(unless noerror
|
||||||
|
(error (error-message-string err)))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-re-search-backward-inner (regexp &optional bound count)
|
||||||
|
"Auxiliary function for `js-re-search-backward'."
|
||||||
|
(let ((parse)
|
||||||
|
(saved-point (point-min)))
|
||||||
|
(while (> count 0)
|
||||||
|
(re-search-backward regexp bound)
|
||||||
|
(when (and (> (point) (point-min))
|
||||||
|
(save-excursion (backward-char) (looking-at "/[/*]")))
|
||||||
|
(forward-char))
|
||||||
|
(setq parse (parse-partial-sexp saved-point (point)))
|
||||||
|
(cond ((nth 3 parse)
|
||||||
|
(re-search-backward
|
||||||
|
(concat "\\([^\\]\\|^\\)" (string (nth 3 parse)))
|
||||||
|
(save-excursion (beginning-of-line) (point)) t))
|
||||||
|
((nth 7 parse)
|
||||||
|
(goto-char (nth 8 parse)))
|
||||||
|
((or (nth 4 parse)
|
||||||
|
(and (eq (char-before) ?/) (eq (char-after) ?*)))
|
||||||
|
(re-search-backward "/\\*"))
|
||||||
|
(t
|
||||||
|
(setq count (1- count))))))
|
||||||
|
(point))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-re-search-backward (regexp &optional bound noerror count)
|
||||||
|
"Search backward but ignore strings and comments. Invokes
|
||||||
|
`re-search-backward' but treats the buffer as if strings and
|
||||||
|
comments have been removed."
|
||||||
|
(let ((saved-point (point))
|
||||||
|
(search-expr
|
||||||
|
(cond ((null count)
|
||||||
|
'(js-re-search-backward-inner regexp bound 1))
|
||||||
|
((< count 0)
|
||||||
|
'(js-re-search-forward-inner regexp bound (- count)))
|
||||||
|
((> count 0)
|
||||||
|
'(js-re-search-backward-inner regexp bound count)))))
|
||||||
|
(condition-case err
|
||||||
|
(eval search-expr)
|
||||||
|
(search-failed
|
||||||
|
(goto-char saved-point)
|
||||||
|
(unless noerror
|
||||||
|
(error (error-message-string err)))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-continued-var-decl-list-p ()
|
||||||
|
"Return non-nil if point is inside a continued variable declaration
|
||||||
|
list."
|
||||||
|
(interactive)
|
||||||
|
(let ((start (save-excursion (js-re-search-backward "\\<var\\>" nil t))))
|
||||||
|
(and start
|
||||||
|
(save-excursion (re-search-backward "\n" start t))
|
||||||
|
(not (save-excursion
|
||||||
|
(js-re-search-backward
|
||||||
|
";\\|[^, \t][ \t]*\\(/[/*]\\|$\\)" start t))))))
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Font Lock ---
|
||||||
|
|
||||||
|
(defun js-inside-param-list-p ()
|
||||||
|
"Return non-nil if point is inside a function parameter list."
|
||||||
|
(condition-case err
|
||||||
|
(save-excursion
|
||||||
|
(up-list -1)
|
||||||
|
(and (looking-at "(")
|
||||||
|
(progn (backward-word 1)
|
||||||
|
(or (looking-at "function")
|
||||||
|
(progn (backward-word 1) (looking-at "function"))))))
|
||||||
|
(error nil)))
|
||||||
|
|
||||||
|
|
||||||
|
(defconst js-function-heading-1-re
|
||||||
|
"^[ \t]*function[ \t]+\\(\\w+\\)"
|
||||||
|
"Regular expression matching the start of a function header.")
|
||||||
|
|
||||||
|
(defconst js-function-heading-2-re
|
||||||
|
"^[ \t]*\\(\\w+\\)[ \t]*:[ \t]*function\\>"
|
||||||
|
"Regular expression matching the start of a function entry in
|
||||||
|
an associative array.")
|
||||||
|
|
||||||
|
(defconst js-keyword-re
|
||||||
|
(regexp-opt '("abstract" "break" "case" "catch" "class" "const"
|
||||||
|
"continue" "debugger" "default" "delete" "do" "else"
|
||||||
|
"enum" "export" "extends" "final" "finally" "for"
|
||||||
|
"function" "goto" "if" "implements" "import" "in"
|
||||||
|
"instanceof" "interface" "native" "new" "package"
|
||||||
|
"private" "protected" "public" "return" "static"
|
||||||
|
"super" "switch" "synchronized" "this" "throw"
|
||||||
|
"throws" "transient" "try" "typeof" "var" "void"
|
||||||
|
"volatile" "while" "with"
|
||||||
|
"let") 'words)
|
||||||
|
"Regular expression matching any JavaScript keyword.")
|
||||||
|
|
||||||
|
(defconst js-basic-type-re
|
||||||
|
(regexp-opt '("boolean" "byte" "char" "double" "float" "int" "long"
|
||||||
|
"short" "void") 'words)
|
||||||
|
"Regular expression matching any predefined type in JavaScript.")
|
||||||
|
|
||||||
|
(defconst js-constant-re
|
||||||
|
(regexp-opt '("false" "null" "true") 'words)
|
||||||
|
"Regular expression matching any future reserved words in JavaScript.")
|
||||||
|
|
||||||
|
|
||||||
|
(defconst js-font-lock-keywords-1
|
||||||
|
(list
|
||||||
|
"\\<import\\>"
|
||||||
|
(list js-function-heading-1-re 1 font-lock-function-name-face)
|
||||||
|
(list js-function-heading-2-re 1 font-lock-function-name-face)
|
||||||
|
(list "[=(][ \t]*\\(/.*?[^\\]/\\w*\\)" 1 font-lock-string-face))
|
||||||
|
"Level one font lock.")
|
||||||
|
|
||||||
|
(defconst js-font-lock-keywords-2
|
||||||
|
(append js-font-lock-keywords-1
|
||||||
|
(list (list js-keyword-re 1 font-lock-keyword-face)
|
||||||
|
(cons js-basic-type-re font-lock-type-face)
|
||||||
|
(cons js-constant-re font-lock-constant-face)))
|
||||||
|
"Level two font lock.")
|
||||||
|
|
||||||
|
|
||||||
|
;; Limitations with variable declarations: There seems to be no
|
||||||
|
;; sensible way to highlight variables occuring after an initialized
|
||||||
|
;; variable in a variable list. For instance, in
|
||||||
|
;;
|
||||||
|
;; var x, y = f(a, b), z
|
||||||
|
;;
|
||||||
|
;; z will not be highlighted.
|
||||||
|
|
||||||
|
(defconst js-font-lock-keywords-3
|
||||||
|
(append
|
||||||
|
js-font-lock-keywords-2
|
||||||
|
(list
|
||||||
|
|
||||||
|
;; variable declarations
|
||||||
|
(list
|
||||||
|
(concat "\\<\\(const\\|var\\)\\>\\|" js-basic-type-re)
|
||||||
|
(list "\\(\\w+\\)[ \t]*\\([=;].*\\|,\\|/[/*]\\|$\\)"
|
||||||
|
nil
|
||||||
|
nil
|
||||||
|
'(1 font-lock-variable-name-face)))
|
||||||
|
|
||||||
|
;; continued variable declaration list
|
||||||
|
(list
|
||||||
|
(concat "^[ \t]*\\w+[ \t]*\\([,;=]\\|/[/*]\\|$\\)")
|
||||||
|
(list "\\(\\w+\\)[ \t]*\\([=;].*\\|,\\|/[/*]\\|$\\)"
|
||||||
|
'(if (save-excursion (backward-char) (js-continued-var-decl-list-p))
|
||||||
|
(backward-word 1)
|
||||||
|
(end-of-line))
|
||||||
|
'(end-of-line)
|
||||||
|
'(1 font-lock-variable-name-face)))
|
||||||
|
|
||||||
|
;; formal parameters
|
||||||
|
(list
|
||||||
|
(concat "\\<function\\>\\([ \t]+\\w+\\)?[ \t]*([ \t]*\\w")
|
||||||
|
(list "\\(\\w+\\)\\([ \t]*).*\\)?"
|
||||||
|
'(backward-char)
|
||||||
|
'(end-of-line)
|
||||||
|
'(1 font-lock-variable-name-face)))
|
||||||
|
|
||||||
|
;; continued formal parameter list
|
||||||
|
(list
|
||||||
|
(concat "^[ \t]*\\w+[ \t]*[,)]")
|
||||||
|
(list "\\w+"
|
||||||
|
'(if (save-excursion (backward-char) (js-inside-param-list-p))
|
||||||
|
(backward-word 1)
|
||||||
|
(end-of-line))
|
||||||
|
'(end-of-line)
|
||||||
|
'(0 font-lock-variable-name-face)))))
|
||||||
|
"Level three font lock.")
|
||||||
|
|
||||||
|
(defconst js-font-lock-keywords
|
||||||
|
'(js-font-lock-keywords-3 js-font-lock-keywords-1 js-font-lock-keywords-2
|
||||||
|
js-font-lock-keywords-3)
|
||||||
|
"See `font-lock-keywords'.")
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Indentation ---
|
||||||
|
|
||||||
|
(defconst js-possibly-braceless-keyword-re
|
||||||
|
(regexp-opt
|
||||||
|
'("catch" "do" "else" "finally" "for" "if" "try" "while" "with" "let")
|
||||||
|
'words)
|
||||||
|
"Regular expression matching keywords that are optionally
|
||||||
|
followed by an opening brace.")
|
||||||
|
|
||||||
|
(defconst js-indent-operator-re
|
||||||
|
(concat "[-+*/%<>=&^|?:.]\\([^-+*/]\\|$\\)\\|"
|
||||||
|
(regexp-opt '("in" "instanceof") 'words))
|
||||||
|
"Regular expression matching operators that affect indentation
|
||||||
|
of continued expressions.")
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-looking-at-operator-p ()
|
||||||
|
"Return non-nil if text after point is an operator (that is not
|
||||||
|
a comma)."
|
||||||
|
(save-match-data
|
||||||
|
(and (looking-at js-indent-operator-re)
|
||||||
|
(or (not (looking-at ":"))
|
||||||
|
(save-excursion
|
||||||
|
(and (js-re-search-backward "[?:{]\\|\\<case\\>" nil t)
|
||||||
|
(looking-at "?")))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-continued-expression-p ()
|
||||||
|
"Returns non-nil if the current line continues an expression."
|
||||||
|
(save-excursion
|
||||||
|
(back-to-indentation)
|
||||||
|
(or (js-looking-at-operator-p)
|
||||||
|
(and (js-re-search-backward "\n" nil t)
|
||||||
|
(progn
|
||||||
|
(skip-chars-backward " \t")
|
||||||
|
(backward-char)
|
||||||
|
(and (> (point) (point-min))
|
||||||
|
(save-excursion (backward-char) (not (looking-at "[/*]/")))
|
||||||
|
(js-looking-at-operator-p)
|
||||||
|
(and (progn (backward-char)
|
||||||
|
(not (looking-at "++\\|--\\|/[/*]"))))))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-end-of-do-while-loop-p ()
|
||||||
|
"Returns non-nil if word after point is `while' of a do-while
|
||||||
|
statement, else returns nil. A braceless do-while statement
|
||||||
|
spanning several lines requires that the start of the loop is
|
||||||
|
indented to the same column as the current line."
|
||||||
|
(interactive)
|
||||||
|
(save-excursion
|
||||||
|
(save-match-data
|
||||||
|
(when (looking-at "\\s-*\\<while\\>")
|
||||||
|
(if (save-excursion
|
||||||
|
(skip-chars-backward "[ \t\n]*}")
|
||||||
|
(looking-at "[ \t\n]*}"))
|
||||||
|
(save-excursion
|
||||||
|
(backward-list) (backward-word 1) (looking-at "\\<do\\>"))
|
||||||
|
(js-re-search-backward "\\<do\\>" (point-at-bol) t)
|
||||||
|
(or (looking-at "\\<do\\>")
|
||||||
|
(let ((saved-indent (current-indentation)))
|
||||||
|
(while (and (js-re-search-backward "^[ \t]*\\<" nil t)
|
||||||
|
(/= (current-indentation) saved-indent)))
|
||||||
|
(and (looking-at "[ \t]*\\<do\\>")
|
||||||
|
(not (js-re-search-forward
|
||||||
|
"\\<while\\>" (point-at-eol) t))
|
||||||
|
(= (current-indentation) saved-indent)))))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-ctrl-statement-indentation ()
|
||||||
|
"Returns the proper indentation of the current line if it
|
||||||
|
starts the body of a control statement without braces, else
|
||||||
|
returns nil."
|
||||||
|
(save-excursion
|
||||||
|
(back-to-indentation)
|
||||||
|
(when (save-excursion
|
||||||
|
(and (not (looking-at "[{]"))
|
||||||
|
(progn
|
||||||
|
(js-re-search-backward "[[:graph:]]" nil t)
|
||||||
|
(forward-char)
|
||||||
|
(when (= (char-before) ?\)) (backward-list))
|
||||||
|
(skip-syntax-backward " ")
|
||||||
|
(skip-syntax-backward "w")
|
||||||
|
(looking-at js-possibly-braceless-keyword-re))
|
||||||
|
(not (js-end-of-do-while-loop-p))))
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (match-beginning 0))
|
||||||
|
(+ (current-indentation) javascript-indent-level)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-proper-indentation (parse-status)
|
||||||
|
"Return the proper indentation for the current line."
|
||||||
|
(save-excursion
|
||||||
|
(back-to-indentation)
|
||||||
|
(let ((ctrl-stmt-indent (js-ctrl-statement-indentation))
|
||||||
|
(same-indent-p (looking-at "[]})]\\|\\<case\\>\\|\\<default\\>"))
|
||||||
|
(continued-expr-p (js-continued-expression-p)))
|
||||||
|
(cond (ctrl-stmt-indent)
|
||||||
|
((js-continued-var-decl-list-p)
|
||||||
|
(js-re-search-backward "\\<var\\>" nil t)
|
||||||
|
(+ (current-indentation) javascript-indent-level))
|
||||||
|
((nth 1 parse-status)
|
||||||
|
(goto-char (nth 1 parse-status))
|
||||||
|
(if (looking-at "[({[][ \t]*\\(/[/*]\\|$\\)")
|
||||||
|
(progn
|
||||||
|
(skip-syntax-backward " ")
|
||||||
|
(when (= (char-before) ?\)) (backward-list))
|
||||||
|
(back-to-indentation)
|
||||||
|
(cond (same-indent-p
|
||||||
|
(current-column))
|
||||||
|
(continued-expr-p
|
||||||
|
(+ (current-column) (* 2 javascript-indent-level)))
|
||||||
|
(t
|
||||||
|
(+ (current-column) javascript-indent-level))))
|
||||||
|
(unless same-indent-p
|
||||||
|
(forward-char)
|
||||||
|
(skip-chars-forward " \t"))
|
||||||
|
(current-column)))
|
||||||
|
(continued-expr-p javascript-indent-level)
|
||||||
|
(t 0)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun javascript-indent-line ()
|
||||||
|
"Indent the current line as JavaScript source text."
|
||||||
|
(interactive)
|
||||||
|
(let ((parse-status
|
||||||
|
(save-excursion (parse-partial-sexp (point-min) (point-at-bol))))
|
||||||
|
(offset (- (current-column) (current-indentation))))
|
||||||
|
(when (not (nth 8 parse-status))
|
||||||
|
(indent-line-to (js-proper-indentation parse-status))
|
||||||
|
(when (> offset 0) (forward-char offset)))))
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Filling ---
|
||||||
|
|
||||||
|
;; FIXME: It should be possible to use the more sofisticated function
|
||||||
|
;; `c-fill-paragraph' in `cc-cmds.el' instead. However, just setting
|
||||||
|
;; `fill-paragraph-function' to `c-fill-paragraph' does not work;
|
||||||
|
;; inside `c-fill-paragraph', `fill-paragraph-function' evaluates to
|
||||||
|
;; nil!?
|
||||||
|
|
||||||
|
(defun js-backward-paragraph ()
|
||||||
|
"Move backward to start of paragraph. Postcondition: Point is at
|
||||||
|
beginning of buffer or the previous line contains only whitespace."
|
||||||
|
(forward-line -1)
|
||||||
|
(while (not (or (bobp) (looking-at "^[ \t]*$")))
|
||||||
|
(forward-line -1))
|
||||||
|
(when (not (bobp)) (forward-line 1)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-forward-paragraph ()
|
||||||
|
"Move forward to end of paragraph. Postcondition: Point is at
|
||||||
|
end of buffer or the next line contains only whitespace."
|
||||||
|
(forward-line 1)
|
||||||
|
(while (not (or (eobp) (looking-at "^[ \t]*$")))
|
||||||
|
(forward-line 1))
|
||||||
|
(when (not (eobp)) (backward-char 1)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-fill-block-comment-paragraph (parse-status justify)
|
||||||
|
"Fill current paragraph as a block comment. PARSE-STATUS is the
|
||||||
|
result of `parse-partial-regexp' from beginning of buffer to
|
||||||
|
point. JUSTIFY has the same meaning as in `fill-paragraph'."
|
||||||
|
(let ((offset (save-excursion
|
||||||
|
(goto-char (nth 8 parse-status)) (current-indentation))))
|
||||||
|
(save-excursion
|
||||||
|
(save-restriction
|
||||||
|
(narrow-to-region (save-excursion
|
||||||
|
(goto-char (nth 8 parse-status)) (point-at-bol))
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (nth 8 parse-status))
|
||||||
|
(re-search-forward "*/")))
|
||||||
|
(narrow-to-region (save-excursion
|
||||||
|
(js-backward-paragraph)
|
||||||
|
(when (looking-at "^[ \t]*$") (forward-line 1))
|
||||||
|
(point))
|
||||||
|
(save-excursion
|
||||||
|
(js-forward-paragraph)
|
||||||
|
(when (looking-at "^[ \t]*$") (backward-char))
|
||||||
|
(point)))
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (not (eobp))
|
||||||
|
(delete-horizontal-space)
|
||||||
|
(forward-line 1))
|
||||||
|
(let ((fill-column (- fill-column offset))
|
||||||
|
(fill-paragraph-function nil))
|
||||||
|
(fill-paragraph justify))
|
||||||
|
|
||||||
|
;; In Emacs 21.4 as opposed to CVS Emacs 22,
|
||||||
|
;; `fill-paragraph' seems toadd a newline at the end of the
|
||||||
|
;; paragraph. Remove it!
|
||||||
|
(goto-char (point-max))
|
||||||
|
(when (looking-at "^$") (backward-delete-char 1))
|
||||||
|
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (not (eobp))
|
||||||
|
(indent-to offset)
|
||||||
|
(forward-line 1))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-sline-comment-par-start ()
|
||||||
|
"Return point at the beginning of the line where the current
|
||||||
|
single-line comment paragraph starts."
|
||||||
|
(save-excursion
|
||||||
|
(beginning-of-line)
|
||||||
|
(while (and (not (bobp))
|
||||||
|
(looking-at "^[ \t]*//[ \t]*[[:graph:]]"))
|
||||||
|
(forward-line -1))
|
||||||
|
(unless (bobp) (forward-line 1))
|
||||||
|
(point)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-sline-comment-par-end ()
|
||||||
|
"Return point at end of current single-line comment paragraph."
|
||||||
|
(save-excursion
|
||||||
|
(beginning-of-line)
|
||||||
|
(while (and (not (eobp))
|
||||||
|
(looking-at "^[ \t]*//[ \t]*[[:graph:]]"))
|
||||||
|
(forward-line 1))
|
||||||
|
(unless (bobp) (backward-char))
|
||||||
|
(point)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-sline-comment-offset (line)
|
||||||
|
"Return the column at the start of the current single-line
|
||||||
|
comment paragraph."
|
||||||
|
(save-excursion
|
||||||
|
(goto-line line)
|
||||||
|
(re-search-forward "//" (point-at-eol))
|
||||||
|
(goto-char (match-beginning 0))
|
||||||
|
(current-column)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-sline-comment-text-offset (line)
|
||||||
|
"Return the column at the start of the text of the current
|
||||||
|
single-line comment paragraph."
|
||||||
|
(save-excursion
|
||||||
|
(goto-line line)
|
||||||
|
(re-search-forward "//[ \t]*" (point-at-eol))
|
||||||
|
(current-column)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-at-empty-sline-comment-p ()
|
||||||
|
"Return non-nil if inside an empty single-line comment."
|
||||||
|
(and (save-excursion
|
||||||
|
(beginning-of-line)
|
||||||
|
(not (looking-at "^.*//.*[[:graph:]]")))
|
||||||
|
(save-excursion
|
||||||
|
(re-search-backward "//" (point-at-bol) t))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-fill-sline-comments (parse-status justify)
|
||||||
|
"Fill current paragraph as a sequence of single-line comments.
|
||||||
|
PARSE-STATUS is the result of `parse-partial-regexp' from
|
||||||
|
beginning of buffer to point. JUSTIFY has the same meaning as in
|
||||||
|
`fill-paragraph'."
|
||||||
|
(when (not (js-at-empty-sline-comment-p))
|
||||||
|
(let* ((start (js-sline-comment-par-start))
|
||||||
|
(start-line (1+ (count-lines (point-min) start)))
|
||||||
|
(end (js-sline-comment-par-end))
|
||||||
|
(offset (js-sline-comment-offset start-line))
|
||||||
|
(text-offset (js-sline-comment-text-offset start-line)))
|
||||||
|
(save-excursion
|
||||||
|
(save-restriction
|
||||||
|
(narrow-to-region start end)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (re-search-forward "^[ \t]*//[ \t]*" nil t)
|
||||||
|
(replace-match "")
|
||||||
|
(forward-line 1))
|
||||||
|
(let ((fill-paragraph-function nil)
|
||||||
|
(fill-column (- fill-column text-offset)))
|
||||||
|
(fill-paragraph justify))
|
||||||
|
|
||||||
|
;; In Emacs 21.4 as opposed to CVS Emacs 22,
|
||||||
|
;; `fill-paragraph' seems toadd a newline at the end of the
|
||||||
|
;; paragraph. Remove it!
|
||||||
|
(goto-char (point-max))
|
||||||
|
(when (looking-at "^$") (backward-delete-char 1))
|
||||||
|
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (not (eobp))
|
||||||
|
(indent-to offset)
|
||||||
|
(insert "//")
|
||||||
|
(indent-to text-offset)
|
||||||
|
(forward-line 1)))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-trailing-comment-p (parse-status)
|
||||||
|
"Return non-nil if inside a trailing comment. PARSE-STATUS is
|
||||||
|
the result of `parse-partial-regexp' from beginning of buffer to
|
||||||
|
point."
|
||||||
|
(save-excursion
|
||||||
|
(when (nth 4 parse-status)
|
||||||
|
(goto-char (nth 8 parse-status))
|
||||||
|
(skip-chars-backward " \t")
|
||||||
|
(not (bolp)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-block-comment-p (parse-status)
|
||||||
|
"Return non-nil if inside a block comment. PARSE-STATUS is the
|
||||||
|
result of `parse-partial-regexp' from beginning of buffer to
|
||||||
|
point."
|
||||||
|
(save-excursion
|
||||||
|
(save-match-data
|
||||||
|
(when (nth 4 parse-status)
|
||||||
|
(goto-char (nth 8 parse-status))
|
||||||
|
(looking-at "/\\*")))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun javascript-fill-paragraph (&optional justify)
|
||||||
|
"If inside a comment, fill the current comment paragraph.
|
||||||
|
Trailing comments are ignored."
|
||||||
|
(interactive)
|
||||||
|
(let ((parse-status (parse-partial-sexp (point-min) (point))))
|
||||||
|
(when (and (nth 4 parse-status)
|
||||||
|
(not (js-trailing-comment-p parse-status)))
|
||||||
|
(if (js-block-comment-p parse-status)
|
||||||
|
(js-fill-block-comment-paragraph parse-status justify)
|
||||||
|
(js-fill-sline-comments parse-status justify))))
|
||||||
|
t)
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Imenu ---
|
||||||
|
|
||||||
|
(defconst js-imenu-generic-expression
|
||||||
|
(list
|
||||||
|
(list
|
||||||
|
nil
|
||||||
|
"function\\s-+\\(\\w+\\)\\s-*("
|
||||||
|
1))
|
||||||
|
"Regular expression matching top level procedures. Used by imenu.")
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Main Function ---
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun javascript-mode ()
|
||||||
|
"Major mode for editing JavaScript source text.
|
||||||
|
|
||||||
|
Key bindings:
|
||||||
|
|
||||||
|
\\{javascript-mode-map}"
|
||||||
|
(interactive)
|
||||||
|
(kill-all-local-variables)
|
||||||
|
|
||||||
|
(use-local-map javascript-mode-map)
|
||||||
|
(set-syntax-table javascript-mode-syntax-table)
|
||||||
|
(set (make-local-variable 'indent-line-function) 'javascript-indent-line)
|
||||||
|
(set (make-local-variable 'font-lock-defaults) (list js-font-lock-keywords))
|
||||||
|
|
||||||
|
(set (make-local-variable 'parse-sexp-ignore-comments) t)
|
||||||
|
|
||||||
|
;; Comments
|
||||||
|
(setq comment-start "// ")
|
||||||
|
(setq comment-end "")
|
||||||
|
(set (make-local-variable 'fill-paragraph-function)
|
||||||
|
'javascript-fill-paragraph)
|
||||||
|
|
||||||
|
;; Make c-mark-function work
|
||||||
|
(setq c-nonsymbol-token-regexp "!=\\|%=\\|&[&=]\\|\\*[/=]\\|\\+[+=]\\|-[=-]\\|/[*/=]\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>\\(?:>=\\|[=>]\\)\\|[=>]\\)\\|\\^=\\||[=|]\\|[]!%&(-,./:-?[{-~^-]"
|
||||||
|
c-stmt-delim-chars "^;{}?:"
|
||||||
|
c-syntactic-ws-end "[ \n
\f/]"
|
||||||
|
c-syntactic-eol "\\(\\s \\|/\\*\\([^*\n
]\\|\\*[^/\n
]\\)*\\*/\\)*\\(\\(/\\*\\([^*\n
]\\|\\*[^/\n
]\\)*\\|\\\\\\)?$\\|//\\)")
|
||||||
|
|
||||||
|
;; Imenu
|
||||||
|
(setq imenu-case-fold-search nil)
|
||||||
|
(set (make-local-variable 'imenu-generic-expression)
|
||||||
|
js-imenu-generic-expression)
|
||||||
|
|
||||||
|
(setq major-mode 'javascript-mode)
|
||||||
|
(setq mode-name "JavaScript")
|
||||||
|
(run-hooks 'javascript-mode-hook))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'javascript-mode)
|
||||||
|
;;; javascript.el ends here
|
1
.emacs.d/linux/.emacs
Normal file
1
.emacs.d/linux/.emacs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
(set-default-font "-xos4-terminus-medium-*-*-*-14-*-*-*-*-*-*-*")
|
1061
.emacs.d/popup.el
Normal file
1061
.emacs.d/popup.el
Normal file
File diff suppressed because it is too large
Load diff
BIN
.emacs.d/popup.elc
Normal file
BIN
.emacs.d/popup.elc
Normal file
Binary file not shown.
15
.emacs.d/slash_c.el
Normal file
15
.emacs.d/slash_c.el
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
(if (not (intern-soft "cc-mode"))
|
||||||
|
(require 'cc-mode))
|
||||||
|
|
||||||
|
(global-set-key [(f9)] 'compile) ; make F9 call the compilation command
|
||||||
|
(setq compilation-window-height 8) ; make the compilation window smaller
|
||||||
|
|
||||||
|
;; Make compilation window disappear on succesful build
|
||||||
|
(setq compilation-finish-function
|
||||||
|
(lambda (buf str)
|
||||||
|
(if (string-match "exited abnormally" str)
|
||||||
|
;; there were errors
|
||||||
|
(message "compilation errors, press C-x ` to visit")
|
||||||
|
;; no errors, make the compilation window go away in 0.5 seconds
|
||||||
|
(run-at-time 0.5 nil 'delete-windows-on buf)
|
||||||
|
(message "NO COMPILATION ERRORS!"))))
|
5
.emacs.d/slash_functions.el
Normal file
5
.emacs.d/slash_functions.el
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
(defun what-face (pos)
|
||||||
|
(interactive "d")
|
||||||
|
(let ((face (or (get-char-property (point) 'read-face-name)
|
||||||
|
(get-char-property (point) 'face))))
|
||||||
|
(if face (message "Face: %s" face) (message "No face at %d" pos))))
|
17
.emacs.d/slash_python.el
Normal file
17
.emacs.d/slash_python.el
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
;; Pyflakes
|
||||||
|
(when (load "flymake" t)
|
||||||
|
(defun flymake-pyflakes-init ()
|
||||||
|
(let* ((temp-file (flymake-init-create-temp-buffer-copy
|
||||||
|
'flymake-create-temp-inplace))
|
||||||
|
(local-file (file-relative-name
|
||||||
|
temp-file
|
||||||
|
(file-name-directory buffer-file-name))))
|
||||||
|
(list "pyflakes" (list local-file))))
|
||||||
|
|
||||||
|
(add-to-list 'flymake-allowed-file-name-masks
|
||||||
|
'("\\.py\\'" flymake-pyflakes-init)))
|
||||||
|
(add-hook 'find-file-hook 'flymake-find-file-hook)
|
||||||
|
|
||||||
|
;; Bind RET to py-newline-and-indent
|
||||||
|
(add-hook 'python-mode-hook '(lambda ()
|
||||||
|
(define-key python-mode-map "\C-m" 'newline-and-indent)))
|
35
.emacs.d/slash_theme.el
Normal file
35
.emacs.d/slash_theme.el
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
(add-to-list 'load-path "~/.emacs.d")
|
||||||
|
(require 'color-theme)
|
||||||
|
|
||||||
|
;; weirdness color-theme
|
||||||
|
(defun color-theme-weirdness ()
|
||||||
|
(interactive)
|
||||||
|
(color-theme-install
|
||||||
|
'(color-theme-weirdness
|
||||||
|
((background-color . "#000000")
|
||||||
|
(background-mode . dark)
|
||||||
|
(border-color . "#000000")
|
||||||
|
(cursor-color . "#FFFFFF")
|
||||||
|
(foreground-color . "#FFFFFF")
|
||||||
|
(mouse-color . "#000000"))
|
||||||
|
(org-level-1 ((t (:foreground "#5BFD5B" :weight normal))))
|
||||||
|
(org-level-2 ((t (:foreground "#379A37" :weight normal))))
|
||||||
|
(org-level-3 ((t (:foreground "#757575" :weight normal))))
|
||||||
|
(org-level-4 ((t (:foreground "#778899" :weight normal))))
|
||||||
|
(org-level-5 ((t (:foreground "#9898FF" :weight normal))))
|
||||||
|
(org-level-6 ((t (:foreground "#0000B0" :weight normal))))
|
||||||
|
(org-level-7 ((t (:foreground "#740091" :weight normal))))
|
||||||
|
(org-level-8 ((t (:foreground "#B275C1" :weight normal))))
|
||||||
|
(fringe ((t (:background "#000000"))))
|
||||||
|
(mode-line ((t (:foreground "#B3B3B3" :background "#43527A"))))
|
||||||
|
(region ((t (:background "#3D3D3D"))))
|
||||||
|
(minibuffer-prompt ((t (:foreground "#72F3FF" :bold t))))
|
||||||
|
(font-lock-builtin-face ((t (:foreground "#C436C4"))))
|
||||||
|
(font-lock-comment-face ((t (:foreground "#427240" :bold t))))
|
||||||
|
(font-lock-function-name-face ((t (:foreground "#0FFF28"))))
|
||||||
|
(font-lock-keyword-face ((t (:foreground "#6B84FF"))))
|
||||||
|
(font-lock-string-face ((t (:foreground "#E00900"))))
|
||||||
|
(font-lock-type-face ((t (:foreground "#8522DD"))))
|
||||||
|
(font-lock-variable-name-face ((t (:foreground "#18EFF2"))))
|
||||||
|
(font-lock-warning-face ((t (:foreground "#FF0000" :bold t)))))))
|
||||||
|
(provide 'color-theme-weirdness)
|
5151
.emacs.d/sqlplus.el
Normal file
5151
.emacs.d/sqlplus.el
Normal file
File diff suppressed because it is too large
Load diff
22
.emacs.d/themes/color-theme-example.el
Normal file
22
.emacs.d/themes/color-theme-example.el
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
(eval-when-compile
|
||||||
|
(require 'color-theme))
|
||||||
|
|
||||||
|
(defun color-theme-example ()
|
||||||
|
"Example theme. Carbon copy of color-theme-gnome contributed by Jonadab."
|
||||||
|
(interactive)
|
||||||
|
(color-theme-install
|
||||||
|
'(color-theme-example
|
||||||
|
((foreground-color . "wheat")
|
||||||
|
(background-color . "darkslategrey")
|
||||||
|
(background-mode . dark))
|
||||||
|
(default ((t (nil))))
|
||||||
|
(region ((t (:foreground "cyan" :background "dark cyan"))))
|
||||||
|
(underline ((t (:foreground "yellow" :underline t))))
|
||||||
|
(modeline ((t (:foreground "dark cyan" :background "wheat"))))
|
||||||
|
(modeline-buffer-id ((t (:foreground "dark cyan" :background "wheat"))))
|
||||||
|
(modeline-mousable ((t (:foreground "dark cyan" :background "wheat"))))
|
||||||
|
(modeline-mousable-minor-mode ((t (:foreground "dark cyan" :background "wheat"))))
|
||||||
|
(italic ((t (:foreground "dark red" :italic t))))
|
||||||
|
(bold-italic ((t (:foreground "dark red" :bold t :italic t))))
|
||||||
|
(font-lock-comment-face ((t (:foreground "Firebrick"))))
|
||||||
|
(bold ((t (:bold)))))))
|
13539
.emacs.d/themes/color-theme-library.el
Normal file
13539
.emacs.d/themes/color-theme-library.el
Normal file
File diff suppressed because it is too large
Load diff
20
.emacs.d/tramp
Normal file
20
.emacs.d/tramp
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
;; -*- emacs-lisp -*-
|
||||||
|
;; Tramp connection history. Don't change this file.
|
||||||
|
;; You can delete it, forcing Tramp to reapply the checks.
|
||||||
|
|
||||||
|
((["scp" "slash" "192.168.1.90" nil]
|
||||||
|
("uname" "Linux 2.6.33.5-112.fc13.i686")
|
||||||
|
("test" "test")
|
||||||
|
("remote-path"
|
||||||
|
("/bin" "/usr/bin" "/usr/sbin" "/usr/local/bin"))
|
||||||
|
("remote-shell" "/bin/sh")
|
||||||
|
("~" "/home/slash")
|
||||||
|
("file-exists" "test -e")
|
||||||
|
("stat" "\\stat")
|
||||||
|
("id" "/usr/bin/id")
|
||||||
|
("gid-integer" 500)
|
||||||
|
("local-encoding" base64-encode-region)
|
||||||
|
("local-decoding" base64-decode-region)
|
||||||
|
("remote-encoding" "base64")
|
||||||
|
("remote-decoding" "base64 -d")
|
||||||
|
("perl" "\\perl")))
|
395
.emacs.d/vala-mode.el
Normal file
395
.emacs.d/vala-mode.el
Normal file
|
@ -0,0 +1,395 @@
|
||||||
|
;;; vala-mode.el --- Vala mode derived mode
|
||||||
|
|
||||||
|
;; Author: 2005 Dylan R. E. Moonfire
|
||||||
|
;; 2008 Étienne BERSAC
|
||||||
|
;; Maintainer: Étienne BERSAC <bersace03@laposte.net>
|
||||||
|
;; Created: 2008 May the 4th
|
||||||
|
;; Modified: May 2008
|
||||||
|
;; Version: 0.1
|
||||||
|
;; Keywords: vala languages oop
|
||||||
|
|
||||||
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation; either version 2 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
;;
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
;;
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
;; Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;; See http://live.gnome.org/Vala for details about Vala language.
|
||||||
|
;;
|
||||||
|
;; This is a separate mode to implement the Vala constructs and
|
||||||
|
;; font-locking. It is mostly the csharp-mode from
|
||||||
|
;; http://mfgames.com/linux/csharp-mode with vala specific keywords
|
||||||
|
;; and filename suffixes.
|
||||||
|
;;
|
||||||
|
;; Note: The interface used in this file requires CC Mode 5.30 or
|
||||||
|
;; later.
|
||||||
|
|
||||||
|
;;; .emacs (don't put in (require 'vala-mode))
|
||||||
|
;; (autoload 'vala-mode "vala-mode" "Major mode for editing Vala code." t)
|
||||||
|
;; (setq auto-mode-alist
|
||||||
|
;; (append '(("\\.vala$" . vala-mode)) auto-mode-alist))
|
||||||
|
|
||||||
|
;;; Versions:
|
||||||
|
;;
|
||||||
|
;; 0.1 : Initial version based on csharp-mode
|
||||||
|
;;
|
||||||
|
|
||||||
|
;; This is a copy of the function in cc-mode which is used to handle
|
||||||
|
;; the eval-when-compile which is needed during other times.
|
||||||
|
(defun c-filter-ops (ops opgroup-filter op-filter &optional xlate)
|
||||||
|
;; See cc-langs.el, a direct copy.
|
||||||
|
(unless (listp (car-safe ops))
|
||||||
|
(setq ops (list ops)))
|
||||||
|
(cond ((eq opgroup-filter t)
|
||||||
|
(setq opgroup-filter (lambda (opgroup) t)))
|
||||||
|
((not (functionp opgroup-filter))
|
||||||
|
(setq opgroup-filter `(lambda (opgroup)
|
||||||
|
(memq opgroup ',opgroup-filter)))))
|
||||||
|
(cond ((eq op-filter t)
|
||||||
|
(setq op-filter (lambda (op) t)))
|
||||||
|
((stringp op-filter)
|
||||||
|
(setq op-filter `(lambda (op)
|
||||||
|
(string-match ,op-filter op)))))
|
||||||
|
(unless xlate
|
||||||
|
(setq xlate 'identity))
|
||||||
|
(c-with-syntax-table (c-lang-const c-mode-syntax-table)
|
||||||
|
(delete-duplicates
|
||||||
|
(mapcan (lambda (opgroup)
|
||||||
|
(when (if (symbolp (car opgroup))
|
||||||
|
(when (funcall opgroup-filter (car opgroup))
|
||||||
|
(setq opgroup (cdr opgroup))
|
||||||
|
t)
|
||||||
|
t)
|
||||||
|
(mapcan (lambda (op)
|
||||||
|
(when (funcall op-filter op)
|
||||||
|
(let ((res (funcall xlate op)))
|
||||||
|
(if (listp res) res (list res)))))
|
||||||
|
opgroup)))
|
||||||
|
ops)
|
||||||
|
:test 'equal)))
|
||||||
|
|
||||||
|
;; This inserts the bulk of the code.
|
||||||
|
(require 'cc-mode)
|
||||||
|
|
||||||
|
;; These are only required at compile time to get the sources for the
|
||||||
|
;; language constants. (The cc-fonts require and the font-lock
|
||||||
|
;; related constants could additionally be put inside an
|
||||||
|
;; (eval-after-load "font-lock" ...) but then some trickery is
|
||||||
|
;; necessary to get them compiled.)
|
||||||
|
(eval-when-compile
|
||||||
|
(let ((load-path
|
||||||
|
(if (and (boundp 'byte-compile-dest-file)
|
||||||
|
(stringp byte-compile-dest-file))
|
||||||
|
(cons (file-name-directory byte-compile-dest-file) load-path)
|
||||||
|
load-path)))
|
||||||
|
(load "cc-mode" nil t)
|
||||||
|
(load "cc-fonts" nil t)
|
||||||
|
(load "cc-langs" nil t)))
|
||||||
|
|
||||||
|
(eval-and-compile
|
||||||
|
;; Make our mode known to the language constant system. Use Java
|
||||||
|
;; mode as the fallback for the constants we don't change here.
|
||||||
|
;; This needs to be done also at compile time since the language
|
||||||
|
;; constants are evaluated then.
|
||||||
|
(c-add-language 'vala-mode 'java-mode))
|
||||||
|
|
||||||
|
;; Java uses a series of regexes to change the font-lock for class
|
||||||
|
;; references. The problem comes in because Java uses Pascal (leading
|
||||||
|
;; space in names, SomeClass) for class and package names, but
|
||||||
|
;; Camel-casing (initial lowercase, upper case in words,
|
||||||
|
;; i.e. someVariable) for variables.
|
||||||
|
;;(error (byte-compile-dest-file))
|
||||||
|
;;(error (c-get-current-file))
|
||||||
|
(c-lang-defconst c-opt-after-id-concat-key
|
||||||
|
vala (if (c-lang-const c-opt-identifier-concat-key)
|
||||||
|
(c-lang-const c-symbol-start)))
|
||||||
|
|
||||||
|
(c-lang-defconst c-basic-matchers-before
|
||||||
|
vala `(
|
||||||
|
;;;; Font-lock the attributes by searching for the
|
||||||
|
;;;; appropriate regex and marking it as TODO.
|
||||||
|
;;,`(,(concat "\\(" vala-attribute-regex "\\)")
|
||||||
|
;; 0 font-lock-function-name-face)
|
||||||
|
|
||||||
|
;; Put a warning face on the opener of unclosed strings that
|
||||||
|
;; can't span lines. Later font
|
||||||
|
;; lock packages have a `font-lock-syntactic-face-function' for
|
||||||
|
;; this, but it doesn't give the control we want since any
|
||||||
|
;; fontification done inside the function will be
|
||||||
|
;; unconditionally overridden.
|
||||||
|
,(c-make-font-lock-search-function
|
||||||
|
;; Match a char before the string starter to make
|
||||||
|
;; `c-skip-comments-and-strings' work correctly.
|
||||||
|
(concat ".\\(" c-string-limit-regexp "\\)")
|
||||||
|
'((c-font-lock-invalid-string)))
|
||||||
|
|
||||||
|
;; Fontify keyword constants.
|
||||||
|
,@(when (c-lang-const c-constant-kwds)
|
||||||
|
(let ((re (c-make-keywords-re nil
|
||||||
|
(c-lang-const c-constant-kwds))))
|
||||||
|
`((eval . (list ,(concat "\\<\\(" re "\\)\\>")
|
||||||
|
1 c-constant-face-name)))))
|
||||||
|
|
||||||
|
;; Fontify all keywords except the primitive types.
|
||||||
|
,`(,(concat "\\<" (c-lang-const c-regular-keywords-regexp))
|
||||||
|
1 font-lock-keyword-face)
|
||||||
|
|
||||||
|
;; Fontify leading identifiers in fully
|
||||||
|
;; qualified names like "Foo.Bar".
|
||||||
|
,@(when (c-lang-const c-opt-identifier-concat-key)
|
||||||
|
`((,(byte-compile
|
||||||
|
`(lambda (limit)
|
||||||
|
(while (re-search-forward
|
||||||
|
,(concat "\\(\\<" ; 1
|
||||||
|
"\\(" (c-lang-const c-symbol-key)
|
||||||
|
"\\)" ; 2
|
||||||
|
"[ \t\n\r\f\v]*"
|
||||||
|
(c-lang-const
|
||||||
|
c-opt-identifier-concat-key)
|
||||||
|
"[ \t\n\r\f\v]*"
|
||||||
|
"\\)"
|
||||||
|
"\\("
|
||||||
|
(c-lang-const
|
||||||
|
c-opt-after-id-concat-key)
|
||||||
|
"\\)")
|
||||||
|
limit t)
|
||||||
|
(unless (progn
|
||||||
|
(goto-char (match-beginning 0))
|
||||||
|
(c-skip-comments-and-strings limit))
|
||||||
|
(or (get-text-property (match-beginning 2) 'face)
|
||||||
|
(c-put-font-lock-face (match-beginning 2)
|
||||||
|
(match-end 2)
|
||||||
|
c-reference-face-name))
|
||||||
|
(goto-char (match-end 1)))))))))
|
||||||
|
))
|
||||||
|
|
||||||
|
;; Vala does not allow a leading qualifier operator. It also doesn't
|
||||||
|
;; allow the ".*" construct of Java. So, we redo this regex without
|
||||||
|
;; the "\\|\\*" regex.
|
||||||
|
(c-lang-defconst c-identifier-key
|
||||||
|
vala (concat "\\(" (c-lang-const c-symbol-key) "\\)" ; 1
|
||||||
|
(concat "\\("
|
||||||
|
"[ \t\n\r\f\v]*"
|
||||||
|
(c-lang-const c-opt-identifier-concat-key)
|
||||||
|
"[ \t\n\r\f\v]*"
|
||||||
|
(concat "\\("
|
||||||
|
"\\(" (c-lang-const c-symbol-key) "\\)"
|
||||||
|
"\\)")
|
||||||
|
"\\)*")))
|
||||||
|
|
||||||
|
;; Vala has a few rules that are slightly different than Java for
|
||||||
|
;; operators. This also removed the Java's "super" and replaces it
|
||||||
|
;; with the Vala's "base".
|
||||||
|
(c-lang-defconst c-operators
|
||||||
|
vala `((prefix "base")))
|
||||||
|
|
||||||
|
;; Vala directives ?
|
||||||
|
;; (c-lang-defconst c-opt-cpp-prefix
|
||||||
|
;; csharp "^\\s *#.*")
|
||||||
|
|
||||||
|
|
||||||
|
;; Vala uses the following assignment operators
|
||||||
|
(c-lang-defconst c-assignment-operators
|
||||||
|
vala '("=" "*=" "/=" "%=" "+=" "-=" ">>=" "<<="
|
||||||
|
"&=" "^=" "|=" "++" "--"))
|
||||||
|
|
||||||
|
;; This defines the primative types for Vala
|
||||||
|
(c-lang-defconst c-primitive-type-kwds
|
||||||
|
vala '("void" "char" "int" "float" "double" "string"))
|
||||||
|
|
||||||
|
;; The keywords that define that the following is a type, such as a
|
||||||
|
;; class definition.
|
||||||
|
(c-lang-defconst c-type-prefix-kwds
|
||||||
|
vala '("class" "interface" "struct" "enum" "signal"))
|
||||||
|
|
||||||
|
;; Type modifier keywords. They appear anywhere in types, but modifiy
|
||||||
|
;; instead create one.
|
||||||
|
(c-lang-defconst c-type-modifier-kwds
|
||||||
|
vala '("const"))
|
||||||
|
|
||||||
|
;; Structures that are similiar to classes.
|
||||||
|
(c-lang-defconst c-class-decl-kwds
|
||||||
|
vala '("class" "interface"))
|
||||||
|
|
||||||
|
;; The various modifiers used for class and method descriptions.
|
||||||
|
(c-lang-defconst c-modifier-kwds
|
||||||
|
vala '("public" "partial" "private" "const" "abstract"
|
||||||
|
"protected" "ref" "in" "out" "static" "virtual"
|
||||||
|
"override" "params" "internal" "weak" "owned"
|
||||||
|
"unowned"))
|
||||||
|
|
||||||
|
;; We don't use the protection level stuff because it breaks the
|
||||||
|
;; method indenting. Not sure why, though.
|
||||||
|
(c-lang-defconst c-protection-kwds
|
||||||
|
vala nil)
|
||||||
|
|
||||||
|
;; Define the keywords that can have something following after them.
|
||||||
|
(c-lang-defconst c-type-list-kwds
|
||||||
|
vala '("struct" "class" "interface" "is" "as"
|
||||||
|
"delegate" "event" "set" "get" "add" "remove"
|
||||||
|
"callback" "signal" "var" "default"))
|
||||||
|
|
||||||
|
;; This allows the classes after the : in the class declartion to be
|
||||||
|
;; fontified.
|
||||||
|
(c-lang-defconst c-typeless-decl-kwds
|
||||||
|
vala '(":"))
|
||||||
|
|
||||||
|
;; Sets up the enum to handle the list properly
|
||||||
|
(c-lang-defconst c-brace-list-decl-kwds
|
||||||
|
vala '("enum" "errordomain"))
|
||||||
|
|
||||||
|
;; We need to remove Java's package keyword
|
||||||
|
(c-lang-defconst c-ref-list-kwds
|
||||||
|
vala '("using" "namespace" "construct"))
|
||||||
|
|
||||||
|
;; Follow-on blocks that don't require a brace
|
||||||
|
(c-lang-defconst c-block-stmt-2-kwds
|
||||||
|
vala '("for" "if" "switch" "while" "catch" "foreach" "lock"))
|
||||||
|
|
||||||
|
;; Statements that break out of braces
|
||||||
|
(c-lang-defconst c-simple-stmt-kwds
|
||||||
|
vala '("return" "continue" "break" "throw"))
|
||||||
|
|
||||||
|
;; Statements that allow a label
|
||||||
|
;; TODO?
|
||||||
|
(c-lang-defconst c-before-label-kwds
|
||||||
|
vala nil)
|
||||||
|
|
||||||
|
;; Constant keywords
|
||||||
|
(c-lang-defconst c-constant-kwds
|
||||||
|
vala '("true" "false" "null"))
|
||||||
|
|
||||||
|
;; Keywords that start "primary expressions."
|
||||||
|
(c-lang-defconst c-primary-expr-kwds
|
||||||
|
vala '("this" "base"))
|
||||||
|
|
||||||
|
;; We need to treat namespace as an outer block to class indenting
|
||||||
|
;; works properly.
|
||||||
|
(c-lang-defconst c-other-block-decl-kwds
|
||||||
|
vala '("namespace"))
|
||||||
|
|
||||||
|
;; We need to include the "in" for the foreach
|
||||||
|
(c-lang-defconst c-other-kwds
|
||||||
|
vala '("in" "sizeof" "typeof"))
|
||||||
|
|
||||||
|
(require 'cc-awk)
|
||||||
|
|
||||||
|
(c-lang-defconst c-at-vsemi-p-fn
|
||||||
|
vala 'c-awk-at-vsemi-p)
|
||||||
|
|
||||||
|
|
||||||
|
(defcustom vala-font-lock-extra-types nil
|
||||||
|
"*List of extra types (aside from the type keywords) to recognize in Vala mode.
|
||||||
|
Each list item should be a regexp matching a single identifier.")
|
||||||
|
|
||||||
|
(defconst vala-font-lock-keywords-1 (c-lang-const c-matchers-1 vala)
|
||||||
|
"Minimal highlighting for Vala mode.")
|
||||||
|
|
||||||
|
(defconst vala-font-lock-keywords-2 (c-lang-const c-matchers-2 vala)
|
||||||
|
"Fast normal highlighting for Vala mode.")
|
||||||
|
|
||||||
|
(defconst vala-font-lock-keywords-3 (c-lang-const c-matchers-3 vala)
|
||||||
|
"Accurate normal highlighting for Vala mode.")
|
||||||
|
|
||||||
|
(defvar vala-font-lock-keywords vala-font-lock-keywords-3
|
||||||
|
"Default expressions to highlight in Vala mode.")
|
||||||
|
|
||||||
|
(defvar vala-mode-syntax-table
|
||||||
|
nil
|
||||||
|
"Syntax table used in vala-mode buffers.")
|
||||||
|
(or vala-mode-syntax-table
|
||||||
|
(setq vala-mode-syntax-table
|
||||||
|
(funcall (c-lang-const c-make-mode-syntax-table vala))))
|
||||||
|
|
||||||
|
(defvar vala-mode-abbrev-table nil
|
||||||
|
"Abbreviation table used in vala-mode buffers.")
|
||||||
|
(c-define-abbrev-table 'vala-mode-abbrev-table
|
||||||
|
;; Keywords that if they occur first on a line
|
||||||
|
;; might alter the syntactic context, and which
|
||||||
|
;; therefore should trig reindentation when
|
||||||
|
;; they are completed.
|
||||||
|
'(("else" "else" c-electric-continued-statement 0)
|
||||||
|
("while" "while" c-electric-continued-statement 0)
|
||||||
|
("catch" "catch" c-electric-continued-statement 0)
|
||||||
|
("finally" "finally" c-electric-continued-statement 0)))
|
||||||
|
|
||||||
|
(defvar vala-mode-map (let ((map (c-make-inherited-keymap)))
|
||||||
|
;; Add bindings which are only useful for Vala
|
||||||
|
map)
|
||||||
|
"Keymap used in vala-mode buffers.")
|
||||||
|
|
||||||
|
;;(easy-menu-define vala-menu vala-mode-map "Vala Mode Commands"
|
||||||
|
;; ;; Can use `vala' as the language for `c-mode-menu'
|
||||||
|
;; ;; since its definition covers any language. In
|
||||||
|
;; ;; this case the language is used to adapt to the
|
||||||
|
;; ;; nonexistence of a cpp pass and thus removing some
|
||||||
|
;; ;; irrelevant menu alternatives.
|
||||||
|
;; (cons "Vala" (c-lang-const c-mode-menu vala)))
|
||||||
|
|
||||||
|
;;; Autoload mode trigger
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.vala$" . vala-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.vapi$" . vala-mode))
|
||||||
|
|
||||||
|
;; Custom variables
|
||||||
|
(defcustom vala-mode-hook nil
|
||||||
|
"*Hook called by `vala-mode'."
|
||||||
|
:type 'hook
|
||||||
|
:group 'c)
|
||||||
|
|
||||||
|
;;; The entry point into the mode
|
||||||
|
;;;###autoload
|
||||||
|
(defun vala-mode ()
|
||||||
|
"Major mode for editing Vala code.
|
||||||
|
This is a simple example of a separate mode derived from CC Mode
|
||||||
|
to support a language with syntax similar to
|
||||||
|
C#/C/C++/ObjC/Java/IDL/Pike.
|
||||||
|
|
||||||
|
The hook `c-mode-common-hook' is run with no args at mode
|
||||||
|
initialization, then `vala-mode-hook'.
|
||||||
|
|
||||||
|
Key bindings:
|
||||||
|
\\{vala-mode-map}"
|
||||||
|
(interactive)
|
||||||
|
(kill-all-local-variables)
|
||||||
|
(c-initialize-cc-mode t)
|
||||||
|
(set-syntax-table vala-mode-syntax-table)
|
||||||
|
(setq major-mode 'vala-mode
|
||||||
|
mode-name "Vala"
|
||||||
|
local-abbrev-table vala-mode-abbrev-table
|
||||||
|
abbrev-mode t)
|
||||||
|
(use-local-map c-mode-map)
|
||||||
|
;; `c-init-language-vars' is a macro that is expanded at compile
|
||||||
|
;; time to a large `setq' with all the language variables and their
|
||||||
|
;; customized values for our language.
|
||||||
|
(c-init-language-vars vala-mode)
|
||||||
|
;; `c-common-init' initializes most of the components of a CC Mode
|
||||||
|
;; buffer, including setup of the mode menu, font-lock, etc.
|
||||||
|
;; There's also a lower level routine `c-basic-common-init' that
|
||||||
|
;; only makes the necessary initialization to get the syntactic
|
||||||
|
;; analysis and similar things working.
|
||||||
|
(c-common-init 'vala-mode)
|
||||||
|
;;(easy-menu-add vala-menu)
|
||||||
|
(c-set-style "linux")
|
||||||
|
(setq indent-tabs-mode t)
|
||||||
|
(setq c-basic-offset 4)
|
||||||
|
(setq tab-width 4)
|
||||||
|
(c-toggle-auto-newline -1)
|
||||||
|
(c-toggle-hungry-state -1)
|
||||||
|
(run-hooks 'c-mode-common-hook)
|
||||||
|
(run-hooks 'vala-mode-hook)
|
||||||
|
(c-update-modeline))
|
||||||
|
|
||||||
|
(provide 'vala-mode)
|
||||||
|
|
||||||
|
;;; vala-mode.el ends here
|
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
*~
|
||||||
|
*session.*
|
||||||
|
*\#*
|
||||||
|
.emacs.d/ac-comphist.dat
|
7
README
Normal file
7
README
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
To use these settings you need:
|
||||||
|
* Pyflakes
|
||||||
|
|
||||||
|
To install this in Ubuntu use:
|
||||||
|
sudo apt-get install pyflakes
|
||||||
|
To install this in Fedora use:
|
||||||
|
su -c "yum install pyflakes"
|
5
install.bat
Normal file
5
install.bat
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
@echo off
|
||||||
|
REM An install script for windows
|
||||||
|
|
||||||
|
copy /Y .emacs %APPDATA%\
|
||||||
|
copy /Y .emacs.d %APPDATA%\
|
9
install.sh
Normal file
9
install.sh
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
INSTALL_BASEFILE=`readlink -f $0`
|
||||||
|
INSTALL_BASEDIR=`dirname $INSTALL_BASEFILE`
|
||||||
|
|
||||||
|
ln -sf $INSTALL_BASEDIR/.emacs $HOME/.emacs
|
||||||
|
|
||||||
|
if [ -d $HOME/.emacs.d ]; then
|
||||||
|
rm -rf $HOME/.emacs.d
|
||||||
|
fi
|
||||||
|
ln -sf $INSTALL_BASEDIR/.emacs.d $HOME/
|
Loading…
Reference in a new issue