Mercurial > vim
view runtime/indent/objc.vim @ 33652:0a3895772dce v9.0.2065
patch 9.0.2065: EXPAND flag set for filetype option
Commit: https://github.com/vim/vim/commit/3932072ab435eb171ab55b2a2c0185358cd0d7bf
Author: Doug Kearns <dougkearns@gmail.com>
Date: Wed Oct 25 20:54:00 2023 +0200
patch 9.0.2065: EXPAND flag set for filetype option
Problem: EXPAND flag set for filetype option
Solution: Remove P_EXPAND flag from the 'filetype' option
Remove P_EXPAND flag from the 'filetype' option
Problem: P_EXPAND flag is erroneously set for 'filetype' option
Solution: Remove the P_EXPAND flag
This flag is used by string options that accept file path values. See
:help set_env.
This appears to have been included in d5e8c92 and resulted from an
incorrect implementation of 'filetype' completion.
See #12900 for a small discussion.
related: #12900
closes: #13416
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 25 Oct 2023 21:00:06 +0200 |
parents | 6dd88e45d47d |
children |
line wrap: on
line source
" Vim indent file " Language: Objective-C " Maintainer: Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com> " Last Change: 2022 Apr 06 " Only load this indent file when no other was loaded. if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal cindent " Set the function to do the work. setlocal indentexpr=GetObjCIndent() " To make a colon (:) suggest an indentation other than a goto/switch label, setlocal indentkeys-=: setlocal indentkeys+=<:> let b:undo_indent = "setl cin< inde< indk<" " Only define the function once. if exists("*GetObjCIndent") finish endif function s:GetWidth(line, regexp) let end = matchend(a:line, a:regexp) let width = 0 let i = 0 while i < end if a:line[i] != "\t" let width = width + 1 else let width = width + &ts - (width % &ts) endif let i = i + 1 endwhile return width endfunction function s:LeadingWhiteSpace(line) let end = strlen(a:line) let width = 0 let i = 0 while i < end let char = a:line[i] if char != " " && char != "\t" break endif if char != "\t" let width = width + 1 else let width = width + &ts - (width % &ts) endif let i = i + 1 endwhile return width endfunction function GetObjCIndent() let theIndent = cindent(v:lnum) let prev_line = getline(v:lnum - 1) let cur_line = getline(v:lnum) if prev_line !~# ":" || cur_line !~# ":" return theIndent endif if prev_line !~# ";" let prev_colon_pos = s:GetWidth(prev_line, ":") let delta = s:GetWidth(cur_line, ":") - s:LeadingWhiteSpace(cur_line) let theIndent = prev_colon_pos - delta endif return theIndent endfunction