Mercurial > vim
view runtime/indent/krl.vim @ 33004:50e7d33c40f9 v9.0.1794
patch 9.0.1794: autoconf: not correctly detecing include dirs
Commit: https://github.com/vim/vim/commit/74e1dada4199b2d9e68ccaafdb7895c85b4b08f1
Author: Illia Bobyr <illia.bobyr@gmail.com>
Date: Sun Aug 27 18:26:54 2023 +0200
patch 9.0.1794: autoconf: not correctly detecing include dirs
Problem: autoconf: not correctly detecing include dirs
Solution: make use of python3 to generate includedirs
configure: Python3: Use sysconfig for -I
It seems better to use tools provided by Python for determining the
include directories, rather than construct them "manually".
Current system is broken when using virtual environments for python
3.11.4. It used to work before, but now it detects a incorrect value
for `-I`.
It would probably make sense to switch to a similar logic for lib
folders, that is for the `-l` switch. There are also
`sysconfig.get_config_h_filename()` and
`sysconfig.get_makefile_filename()`, that could replace more Python
specific logic in the current `configure{.ac,}`.
sysconfig provides the necessary tools since Python 2.7.
closes: #12889
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Illia Bobyr <illia.bobyr@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 27 Aug 2023 18:45:03 +0200 |
parents | f73a9bdff3a3 |
children | d6dde6229b36 |
line wrap: on
line source
" Vim indent file " Language: Kuka Robot Language " Maintainer: Patrick Meiser-Knosowski <knosowski@graeffrobotics.de> " Version: 3.0.0 " Last Change: 15. Apr 2022 " Credits: Based on indent/vim.vim " Only load this indent file when no other was loaded. if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal nolisp setlocal nocindent setlocal nosmartindent setlocal autoindent setlocal indentexpr=GetKrlIndent() setlocal indentkeys=!^F,o,O,=~end,0=~else,0=~case,0=~default,0=~until,0=~continue,=~part let b:undo_indent = "setlocal lisp< cindent< smartindent< autoindent< indentexpr< indentkeys<" if get(g:,'krlSpaceIndent',1) " Use spaces, not tabs, for indention, 2 is enough. " More or even tabs would waste valuable space on the teach pendant. setlocal softtabstop=2 setlocal shiftwidth=2 setlocal expandtab setlocal shiftround let b:undo_indent = b:undo_indent." softtabstop< shiftwidth< expandtab< shiftround<" endif " Only define the function once. if exists("*GetKrlIndent") finish endif let s:keepcpo = &cpo set cpo&vim function GetKrlIndent() abort let currentLine = getline(v:lnum) if currentLine =~? '\v^;(\s*(end)?fold>)@!' && !get(g:, 'krlCommentIndent', 0) " If current line has a ; in column 1 and is no fold, keep zero indent. " This may be usefull if code is commented out at the first column. return 0 endif " Find a non-blank line above the current line. let preNoneBlankLineNum = s:KrlPreNoneBlank(v:lnum - 1) if preNoneBlankLineNum == 0 " At the start of the file use zero indent. return 0 endif let preNoneBlankLine = getline(preNoneBlankLineNum) let ind = indent(preNoneBlankLineNum) " Define add 'shiftwidth' pattern let addShiftwidthPattern = '\v^\s*(' if get(g:, 'krlIndentBetweenDef', 1) let addShiftwidthPattern ..= '(global\s+)?def(fct|dat)?\s+\$?\w' let addShiftwidthPattern ..= '|' endif let addShiftwidthPattern ..= 'if>|while>|for>|loop>' let addShiftwidthPattern ..= '|else>' let addShiftwidthPattern ..= '|case>|default>' let addShiftwidthPattern ..= '|repeat>' let addShiftwidthPattern ..= '|skip>|(ptp_)?spline>' let addShiftwidthPattern ..= '|time_block\s+(start|part)>' let addShiftwidthPattern ..= '|const_vel\s+start>' let addShiftwidthPattern ..= ')' " Define Subtract 'shiftwidth' pattern let subtractShiftwidthPattern = '\v^\s*(' if get(g:, 'krlIndentBetweenDef', 1) let subtractShiftwidthPattern ..= 'end(fct|dat)?>' let subtractShiftwidthPattern ..= '|' endif let subtractShiftwidthPattern ..= 'end(if|while|for|loop)>' let subtractShiftwidthPattern ..= '|else>' let subtractShiftwidthPattern ..= '|case>|default>|endswitch>' let subtractShiftwidthPattern ..= '|until>' let subtractShiftwidthPattern ..= '|end(skip|spline)>' let subtractShiftwidthPattern ..= '|time_block\s+(part|end)>' let subtractShiftwidthPattern ..= '|const_vel\s+end>' let subtractShiftwidthPattern ..= ')' " Add shiftwidth if preNoneBlankLine =~? addShiftwidthPattern let ind += &sw endif " Subtract shiftwidth if currentLine =~? subtractShiftwidthPattern let ind = ind - &sw endif " First case after a switch gets the indent of the switch. if currentLine =~? '\v^\s*case>' \&& preNoneBlankLine =~? '\v^\s*switch>' let ind = ind + &sw endif " align continue with the following instruction if currentLine =~? '\v^\s*continue>' \&& getline(v:lnum + 1) =~? subtractShiftwidthPattern let ind = ind - &sw endif return ind endfunction " This function works almost like prevnonblank() but handles &-headers, " comments and continue instructions like blank lines function s:KrlPreNoneBlank(lnum) abort let nPreNoneBlank = prevnonblank(a:lnum) while nPreNoneBlank > 0 && getline(nPreNoneBlank) =~? '\v^\s*(\&\w\+|;|continue>)' " Previouse none blank line irrelevant. Look further aback. let nPreNoneBlank = prevnonblank(nPreNoneBlank - 1) endwhile return nPreNoneBlank endfunction let &cpo = s:keepcpo unlet s:keepcpo " vim:sw=2 sts=2 et