From d59c519d8248e9c337f9020e98242e2afbfcb3e8 Mon Sep 17 00:00:00 2001 From: Heikki Junes Date: Mon, 22 Mar 2004 22:21:55 +0000 Subject: [PATCH 1/1] * buildscripts/lilypond.words.py: remove. * buildscripts/lilypond-words.py: add new, renamed file. Give generated targets and dirs explicitly in arguments. * GNUmakefile.in, elisp/GNUmakefile, elisp/lilypond-init.el, elisp/lilypond-mode.el, vim/lilypond-ftplugin.vim, vim/lilypond-syntax.vim: update to use new lilypond-words.py. * config.make.in: give '/usr/share/vim' explicitly as $(vimdir). * vim/GNUmake use --words and --vim targets in lilypond-words.py --- ChangeLog | 14 ++++ GNUmakefile.in | 2 +- .../{lilypond.words.py => lilypond-words.py} | 83 ++++++++++++++----- config.make.in | 3 +- elisp/GNUmakefile | 8 +- elisp/lilypond-init.el | 2 +- elisp/lilypond-mode.el | 4 +- vim/GNUmakefile | 19 +++++ vim/lilypond-ftplugin.vim | 4 +- vim/lilypond-syntax.vim | 6 +- 10 files changed, 108 insertions(+), 37 deletions(-) rename buildscripts/{lilypond.words.py => lilypond-words.py} (60%) diff --git a/ChangeLog b/ChangeLog index 467c785cee..d1cc15defb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2004-03-23 Heikki Junes + + * buildscripts/lilypond.words.py: remove. + * buildscripts/lilypond-words.py: add new, renamed file. + Give generated targets and dirs explicitly in arguments. + + * GNUmakefile.in, elisp/GNUmakefile, elisp/lilypond-init.el, + elisp/lilypond-mode.el, vim/lilypond-ftplugin.vim, + vim/lilypond-syntax.vim: update to use new lilypond-words.py. + + * config.make.in: give '/usr/share/vim' explicitly as $(vimdir). + + * vim/GNUmakefile: use --words and --vim targets in lilypond-words.py + 2004-03-22 Heikki Junes * config.make.in: add vimdir. diff --git a/GNUmakefile.in b/GNUmakefile.in index e2b3bcc097..7160e393a6 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -121,7 +121,7 @@ $(builddir)/share/lilypond-force: ln -s ../../../mf/$(outconfbase) tfm && \ ln -s ../../../mf/$(outconfbase) type1 cd $(builddir)/share/lilypond/elisp && \ - ln -sf ../../../elisp/$(outconfbase)/lilypond.words.el . && \ + ln -sf ../../../elisp/$(outconfbase)/lilypond-words.el . && \ ln -s $(abs-srcdir)/elisp/*.el . $(foreach i,$(CATALOGS), \ mkdir -p $(builddir)/share/locale/$i/LC_MESSAGES && \ diff --git a/buildscripts/lilypond.words.py b/buildscripts/lilypond-words.py similarity index 60% rename from buildscripts/lilypond.words.py rename to buildscripts/lilypond-words.py index 0de3329c80..6c3e4293cf 100755 --- a/buildscripts/lilypond.words.py +++ b/buildscripts/lilypond-words.py @@ -1,7 +1,7 @@ #!@PYTHON@ # Created 01 September 2003 by Heikki Junes. -# Generates lilypond.words.el for (X)Emacs and lilypond.words.vim for Vim. +# Generates lilypond-words.el for (X)Emacs and lilypond-words[.vim] for Vim. import string import re @@ -104,46 +104,78 @@ for name in [ F.close() # the output file -if sys.argv[1:] == []: - out_el = open('lilypond.words.el', 'w') - out_vim = open('lilypond.words.vim', 'w') -else: - out_el = open(sys.argv[1]+'/lilypond.words.el', 'w') - out_vim = open(sys.argv[1]+'/lilypond.words.vim', 'w') - +outdir = '.'; +suffix = ['skip','skip','skip']; +outs = ['','','']; +for s in sys.argv[1:]: + if s == '--words': + suffix[0] = ''; + if s == '--el': + suffix[1] = '.el'; + if s == '--vim': + suffix[2] = '.vim'; + m = re.search(r"(--dir=)(\S*)",s) + if m: + outdir = m.group(2) + +if '' in suffix: + outs[0] = open(outdir+'/lilypond-words'+suffix[0], 'w') +if '.el' in suffix: + outs[1] = open(outdir+'/lilypond-words'+suffix[1], 'w') +if '.vim' in suffix: + outs[2] = open(outdir+'/lilypond-words'+suffix[2], 'w') + # alphabetically ordered words kw.sort() kw.reverse() prevline = '' -out_vim.write('syn match lilyKeyword \"[-_^]\\?\\\\\\('); +if '.vim' in suffix: + outs[2].write('syn match lilyKeyword \"[-_^]\\?\\\\\\('); for line in kw: if line != prevline: - out_el.write('\\\\' + line + '\n') - out_vim.write(line + '\\|') + if '' in suffix: + outs[0].write('\\\\' + line + '\n') + if '.el' in suffix: + outs[1].write('\\\\' + line + '\n') + if '.vim' in suffix: + outs[2].write(line + '\\|') prevline = line -out_vim.write('n\\)\\(\\A\\|\\n\\)\"me=e-1\n') +if '.vim' in suffix: + outs[2].write('n\\)\\(\\A\\|\\n\\)\"me=e-1\n') rw.sort() rw.reverse() prevline = '' -out_vim.write('syn match lilyReservedWord \"\\(\\A\\|\\n\\)\\('); +if '.vim' in suffix: + outs[2].write('syn match lilyReservedWord \"\\(\\A\\|\\n\\)\\(') for line in rw: if line != prevline: - out_el.write(line + '\n') - out_vim.write(line + '\\|') + if '' in suffix: + outs[0].write(line + '\n') + if '.el' in suffix: + outs[1].write(line + '\n') + if '.vim' in suffix: + outs[2].write(line + '\\|') prevline = line -out_vim.write('Score\\)\\(\\A\\|\\n\\)\"ms=s+1,me=e-1\n') +if '.vim' in suffix: + outs[2].write('Score\\)\\(\\A\\|\\n\\)\"ms=s+1,me=e-1\n') notes.sort() notes.reverse() prevline = '' -out_vim.write('syn match lilyNote \"\\<\\(\\(\\('); +if '.vim' in suffix: + outs[2].write('syn match lilyNote \"\\<\\(\\(\\('); for line in notes: if line != prevline: - out_el.write(line + '\n') - out_vim.write(line + '\\|') + if '' in suffix: + outs[0].write(line + '\n') + if '.el' in suffix: + outs[1].write(line + '\n') + if '.vim' in suffix: + outs[2].write(line + '\\|') prevline = line -out_vim.write('a\\)\\([,\']\\)\\{,4}\\([?!]\\)\\?\\)\\|s\\|r\\)\\(\\(128\\|64\\|32\\|16\\|8\\|4\\|2\\|1\\|\\\\breve\\|\\\\longa\\|\\\\maxima\\)[.]\\{,8}\\)\\?\\(\\A\\|\\n\\)\"me=e-1\n') +if '.vim' in suffix: + outs[2].write('a\\)\\([,\']\\)\\{,4}\\([?!]\\)\\?\\)\\|s\\|r\\)\\(\\(128\\|64\\|32\\|16\\|8\\|4\\|2\\|1\\|\\\\breve\\|\\\\longa\\|\\\\maxima\\)[.]\\{,8}\\)\\?\\(\\A\\|\\n\\)\"me=e-1\n') # the menu in lilypond-mode.el for line in [ @@ -169,7 +201,12 @@ for line in [ '//transpose - % { _ } -', ]: # urg. escape char '/' is replaced with '\\' which python writes as a '\'. - out_el.write(string.join(string.split(line,'/'),'\\') + '\n') + if '.el' in suffix: + outs[1].write(string.join(string.split(line,'/'),'\\') + '\n') -out_el.close() -out_vim.close() +if '' in suffix: + outs[0].close() +if '.el' in suffix: + outs[1].close() +if '.vim' in suffix: + outs[2].close() diff --git a/config.make.in b/config.make.in index a48fac837b..6e86d2e9fb 100644 --- a/config.make.in +++ b/config.make.in @@ -37,7 +37,8 @@ stepmake = @stepmake@ docdir = $(datadir)/doc/ omfdir = $(datadir)/omf/ elispdir = $(datadir)/emacs/site-lisp -vimdir = $(datadir)/vim +vimdir = /usr/share/vim +# forced instead of $(datadir)/vim # move out of config.make.in? package_datadir = $(datadir)/$(package) diff --git a/elisp/GNUmakefile b/elisp/GNUmakefile index 09e23a203d..b68847804c 100644 --- a/elisp/GNUmakefile +++ b/elisp/GNUmakefile @@ -6,20 +6,20 @@ INSTALLATION_DIR=$(elispdir) INSTALLATION_FILES=$(EL_FILES) INSTALLATION_OUT_DIR=$(elispdir) -INSTALLATION_OUT_FILES=$(outdir)/lilypond.words.el +INSTALLATION_OUT_FILES=$(outdir)/lilypond-words.el STEPMAKE_TEMPLATES=elisp install install-out include $(depth)/make/stepmake.make -LILYPOND_WORDS = $(outdir)/lilypond.words.el $(outdir)/lilypond.words.vim +LILYPOND_WORDS = $(outdir)/lilypond-words.el LILYPOND_WORDS_DEPENDS =\ $(topdir)/lily/my-lily-lexer.cc \ - $(buildscript-dir)/lilypond.words.py \ + $(buildscript-dir)/lilypond-words.py \ $(topdir)/scm/new-markup.scm \ $(topdir)/ly/engraver-init.ly $(LILYPOND_WORDS): - cd $(topdir) && $(PYTHON) buildscripts/lilypond.words.py $(builddir)/elisp/$(outconfbase) + cd $(topdir) && $(PYTHON) buildscripts/lilypond-words.py --el --dir=$(builddir)/elisp/$(outconfbase) all: $(LILYPOND_WORDS) diff --git a/elisp/lilypond-init.el b/elisp/lilypond-init.el index 960c886aa5..be841c2654 100644 --- a/elisp/lilypond-init.el +++ b/elisp/lilypond-init.el @@ -4,7 +4,7 @@ ;; Emacs mode for entering music and running LilyPond is contained in ;; the source archive as `lilypond-mode.el', `lilypond-indent.el', -;; `lilypond-font-lock.el' and `lilypond.words.el'. You should install +;; `lilypond-font-lock.el' and `lilypond-words.el'. You should install ;; these files to a directory included in your `load-path'. ;; File `lilypond-init.el' should be placed to `load-path/site-start.d/' ;; or appended to your `~/.emacs' or `~/.emacs.el'. diff --git a/elisp/lilypond-mode.el b/elisp/lilypond-mode.el index fb53bb0358..0087f59636 100644 --- a/elisp/lilypond-mode.el +++ b/elisp/lilypond-mode.el @@ -60,13 +60,13 @@ Finds file lilypond-words.el from load-path." (let ((fn nil) (lp load-path) - (words-file "lilypond.words.el")) + (words-file "lilypond-words.el")) (while (and (> (length lp) 0) (not fn)) (setq fn (concat (car lp) "/" words-file)) (if (not (file-readable-p fn)) (progn (setq fn nil) (setq lp (cdr lp))))) (if (not fn) - (progn (message "Warning: `lilypond.words.el' not found in `load-path'. See `lilypond-init.el'.") + (progn (message "Warning: `lilypond-words.el' not found in `load-path'. See `lilypond-init.el'.") (sit-for 5 0))) fn)) diff --git a/vim/GNUmakefile b/vim/GNUmakefile index b645e678c3..189d61e4b4 100644 --- a/vim/GNUmakefile +++ b/vim/GNUmakefile @@ -1,5 +1,11 @@ depth = .. +INSTALLATION_OUT_DIR=$(vimdir)/syntax +INSTALLATION_OUT_FILES=$(LILYPOND_WORDS) +# $(outdir)/lilypond-words $(outdir)/lilypond-words.el + +STEPMAKE_TEMPLATES=install-out + # vimdir defined in config.make include $(depth)/make/stepmake.make @@ -20,3 +26,16 @@ local-install: $(INSTALL) lilypond-syntax.vim $(vimdir)/syntax/lilypond.vim EXTRA_DIST_FILES=filetype.vim + +LILYPOND_WORDS = $(outdir)/lilypond-words $(outdir)/lilypond-words.vim +LILYPOND_WORDS_DEPENDS =\ + $(topdir)/lily/my-lily-lexer.cc \ + $(buildscript-dir)/lilypond-words.py \ + $(topdir)/scm/new-markup.scm \ + $(topdir)/ly/engraver-init.ly + +$(LILYPOND_WORDS): + cd $(topdir) && $(PYTHON) buildscripts/lilypond-words.py --words --vim --dir=$(builddir)/vim/$(outconfbase) + +all: $(LILYPOND_WORDS) + diff --git a/vim/lilypond-ftplugin.vim b/vim/lilypond-ftplugin.vim index fa69f49ebd..2a2a580159 100644 --- a/vim/lilypond-ftplugin.vim +++ b/vim/lilypond-ftplugin.vim @@ -4,7 +4,7 @@ " Last Change: 2004 March 1 " " Installed As: vim/ftplugin/lilypond.vim -" Uses Generated File: vim/syntax/lilypond.words.el +" Uses Generated File: vim/syntax/lilypond-words.el " " Only do this when not done yet for this buffer if exists("b:did_ftplugin") @@ -54,7 +54,7 @@ map :g!/%.*/normal 0i% map :g/%.*/normal 0x " " Completions in Insert/Replace-mode with -setlocal dictionary-=~/.vim/syntax/lilypond.words.el dictionary+=~/.vim/syntax/lilypond.words.el +setlocal dictionary-=$VIM/syntax/lilypond-words dictionary+=$VIM/syntax/lilypond-words setlocal complete-=k complete+=k " setlocal showmatch diff --git a/vim/lilypond-syntax.vim b/vim/lilypond-syntax.vim index 7874f6eeb2..9808176736 100644 --- a/vim/lilypond-syntax.vim +++ b/vim/lilypond-syntax.vim @@ -6,7 +6,7 @@ " Version: 6.1-1 " " Installed As: vim/syntax/lilypond.vim -" Uses Generated File: vim/syntax/lilypond.words.vim +" Uses Generated File: vim/syntax/lilypond-words.vim " " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded @@ -19,9 +19,9 @@ endif " Read the LilyPond syntax match groups: " lilyKeyword, lilyReservedWord, lilyNote if version < 600 - so :p:h/lilypond.words.vim + so :p:h/lilypond-words.vim else - runtime! syntax/lilypond.words.vim + runtime! syntax/lilypond-words.vim if exists("b:current_syntax") unlet b:current_syntax endif -- 2.39.2