Mercurial > vim
view runtime/indent/context.vim @ 31089:bbd5549acced v9.0.0879
patch 9.0.0879: unnecessary nesting in makefile
Commit: https://github.com/vim/vim/commit/dcbdd82d059a9b621e09f4447446a92ae2562e16
Author: K.Takata <kentkt@csc.jp>
Date: Mon Nov 14 14:50:15 2022 +0000
patch 9.0.0879: unnecessary nesting in makefile
Problem: Unnecessary nesting in makefile.
Solution: Join "else" and "ifeq". (Ken Takata, closes https://github.com/vim/vim/issues/11547)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 14 Nov 2022 16:00:05 +0100 |
parents | f00c56ee8118 |
children | d81556766132 |
line wrap: on
line source
vim9script # Language: ConTeXt typesetting engine # Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> # Former Maintainers: Nikolai Weibull <now@bitwi.se> # Latest Revision: 2022 Aug 12 if exists("b:did_indent") finish endif # Load MetaPost indentation script (this will also set b:did_indent) runtime! indent/mp.vim setlocal indentexpr=ConTeXtIndent() b:undo_indent = "setl indentexpr<" def PrevNotComment(l: number): number var prevlnum = prevnonblank(l) while prevlnum > 0 && getline(prevlnum) =~# '^\s*%' prevlnum = prevnonblank(prevlnum - 1) endwhile return prevlnum enddef def FindPair(pstart: string, pmid: string, pend: string): number cursor(v:lnum, 1) return indent(searchpair(pstart, pmid, pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')) enddef def ConTeXtIndent(): number # Use MetaPost rules inside MetaPost graphic environments if len(synstack(v:lnum, 1)) > 0 && synIDattr(synstack(v:lnum, 1)[0], "name") ==# 'contextMPGraphic' return g:MetaPostIndent() endif const prevlnum = PrevNotComment(v:lnum - 1) const prevind = indent(prevlnum) const prevline = getline(prevlnum) const currline = getline(v:lnum) # If the current line starts with ], match indentation. if currline =~# '^\s*\]' return FindPair('\[', '', '\]') endif # If the current line starts with }, match indentation. if currline =~# '^\s*}' return FindPair('{', '', '}') endif # If the previous line ends with [ or { (possibly followed by a comment) then indent. if prevline =~# '[{[]\s*\%(%.*\)\=$' return prevind + shiftwidth() endif return -1 enddef # vim: sw=2 fdm=marker