branch: elpa/yaml-mode
commit 20d12a2aff0bc9b21428f1421eaf097f4a355ad7
Author: root <root@c9fe89ab-c918-0410-b9be-faebe9bd2962>
Commit: root <root@c9fe89ab-c918-0410-b9be-faebe9bd2962>
init
git-svn-id: http://svn.clouder.jp/repos/public/yaml-mode/trunk@1
c9fe89ab-c918-0410-b9be-faebe9bd2962
---
Makefile | 30 +++++++++++++++++++++
README | 44 +++++++++++++++++++++++++++++++
yaml-mode.el | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 159 insertions(+)
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..86c91d0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,30 @@
+VERSION=0.01
+EMACS = emacs
+PREFIX = /usr/local
+INSTALLLIBDIR = $(PREFIX)/share/emacs/site-lisp
+FLAGS = -batch -L $(INSTALLLIBDIR) -q -f batch-byte-compile
+SRC = yaml-mode.el
+INSTALL = /usr/bin/install -c -m 444
+
+all: bytecompile
+
+bytecompile:
+ $(EMACS) $(FLAGS) $(SRC)
+
+install: bytecompile
+ $(INSTALL) yaml-mode.elc $(INSTALLLIBDIR)
+ $(INSTALL) yaml-mode.el $(INSTALLLIBDIR)
+
+uninstall:
+ rm $(INSTALLLIBDIR)/yaml-mode.elc
+ rm $(INSTALLLIBDIR)/yaml-mode.el
+
+tardist:
+ mkdir yaml-mode-$(VERSION)
+ cp yaml-mode.el Makefile README yaml-mode-$(VERSION)
+ tar zcvf yaml-mode-$(VERSION).tar.gz yaml-mode-$(VERSION)
+ rm -fr yaml-mode-$(VERSION)
+
+clean:
+ rm -fr \#*\# *.elc *~ *.tar.gz
+
diff --git a/README b/README
new file mode 100644
index 0000000..cb426c7
--- /dev/null
+++ b/README
@@ -0,0 +1,44 @@
+NAME
+ yaml-mode - Simple major mode to edit YAML file for emacs
+
+SYNOPSIS
+ # You must add path installed yaml-mode.el to load-path.
+ (autoload 'yaml-mode "yaml-mode" "YAML" t)
+ (setq auto-mode-alist
+ (append '(("\\.yml$" . yaml-mode)) auto-mode-alist))
+
+DESCRIPTION
+ yaml-mode is major mode for emacs.
+
+INSTALL
+ You can install yaml-mode typing below.
+
+ % make
+ % make install
+
+ or
+
+ % make PREFIX=/your/home/dir
+ % make install PREFIX=/your/home/dir
+
+SETTING
+ see SYNOPSIS.
+
+AUTHOR
+ Yoshiki Kurihara <kurih...@cpan.org> Copyright (C) 2002 by Free Software
+ Foundation, Inc.
+
+ 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.
diff --git a/yaml-mode.el b/yaml-mode.el
new file mode 100644
index 0000000..a53283a
--- /dev/null
+++ b/yaml-mode.el
@@ -0,0 +1,85 @@
+;;; yaml-mode.el ---
+;; $Id$
+
+;; Copyright (C) 2006 Free Software Foundation, Inc.
+
+;; Author: Yoshiki Kurihara <kurih...@livedoor.jp>
+;; Keywords:
+
+;; 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:
+
+;; To handle files included with do 'filename.yml';, add something like
+;; (setq auto-mode-alist (append (list (cons "\\.yml\\'" 'yaml-mode))
+;; auto-mode-alist))
+;; to your .emacs file; otherwise the .pl suffix defaults to prolog-mode.
+
+;;; Code:
+
+(defcustom yaml-indent-offset 2
+ ""
+ :type 'integer
+ :group 'yaml-mode)
+
+(defun yaml-indent-line ()
+ (interactive)
+ (let ((pos (point)) ; position from the end of the buffer
+ (cur (current-indentation)) ; indentation of current line
+ (before (current-column))
+ (indentation 0)
+ new-column)
+ (save-excursion
+ (forward-line -1)
+ (if (and (not (bobp))
+ (looking-at "^[ \t]*\\(.+\\)[ \t]*:[ \r\n]"))
+ (if (< cur (+ (current-indentation) yaml-indent-offset))
+ (setq indentation (+ (current-indentation) yaml-indent-offset)))
+ (if (< cur (current-indentation))
+ (setq indentation (current-indentation))))
+ (if (and (not (bobp))
+ (looking-at "^[ \t]*\\(.+\\)[ \t]*: [^\r\n]+"))
+ (if (< cur (+ (current-indentation) yaml-indent-offset))
+ (setq indentation (current-indentation))))
+ )
+ (if (> indentation 0)
+ (indent-line-to indentation))
+ ))
+
+(defvar yaml-font-lock-keywords
+ (list
+ '("^[ \t]*\\(.+\\)[ \t]*:[ \r\n]" 0 font-lock-variable-name-face)
+ '("\\(%YAML\\|# \\(.*\\)\\|\\(---\\|\\.\\.\\.\\)\\(.*\\)\\)" 0
font-lock-comment-face)
+ '("\\(\\*\\|\\&\\)\\(.*\\)" 0 (cons font-lock-variable-name-face
'(underline)))
+ '("\\!\\!\\sw+[ \r\n]" 0 font-lock-function-name-face)
+ ))
+
+(define-derived-mode yaml-mode fundamental-mode "YAML"
+ "Simple mode to edit yaml
+
+\\{yaml-mode-map}"
+
+ ;; font-lock
+ (set (make-local-variable 'comment-start) "# ")
+ (set (make-local-variable 'comment-start-skip) "\\(^\\|\\s-\\);?#+ *")
+ (set (make-local-variable 'font-lock-defaults) '(yaml-font-lock-keywords))
+
+ ;; indent-line
+ (set (make-local-variable 'indent-line-function) 'yaml-indent-line)
+ )
+
+(provide 'yaml-mode)
+;;; yaml-mode.el ends here