Mercurial > vim
view runtime/ftplugin/html.vim @ 32960:d5c05e15cf81 v9.0.1780
patch 9.0.1780: Vim9 type not defined during object creation
Commit: https://github.com/vim/vim/commit/618e47d1cd93954bad26d47e5353b4f1432daa5e
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Tue Aug 22 21:29:28 2023 +0200
patch 9.0.1780: Vim9 type not defined during object creation
Problem: Vim9 type not defined during object creation
Solution: Define type during object creation and not during class
definition, parse mulit-line member initializers, fix lock
initialization
If type is not specified for a member, set it during object creation
instead of during class definition. Add a runtime type check for the
object member initialization expression
Also, while at it, when copying an object or class, make sure the lock
is correctly initialized.
And finally, parse multi-line member initializers correctly.
closes: #11957
closes: #12868
closes: #12869
closes: #12881
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Co-authored-by: LemonBoy <thatlemon@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 22 Aug 2023 21:45:02 +0200 |
parents | 67f31c24291b |
children | 8ae680be2a51 |
line wrap: on
line source
" Vim filetype plugin file " Language: HTML " Maintainer: Doug Kearns <dougkearns@gmail.com> " Previous Maintainer: Dan Sharp " Last Changed: 2022 Jul 20 if exists("b:did_ftplugin") finish endif let b:did_ftplugin = 1 let s:save_cpo = &cpo set cpo-=C setlocal matchpairs+=<:> setlocal commentstring=<!--%s--> setlocal comments=s:<!--,m:\ \ \ \ ,e:--> let b:undo_ftplugin = "setlocal comments< commentstring< matchpairs<" if get(g:, "ft_html_autocomment", 0) setlocal formatoptions-=t formatoptions+=croql let b:undo_ftplugin ..= " | setlocal formatoptions<" endif if exists('&omnifunc') setlocal omnifunc=htmlcomplete#CompleteTags call htmlcomplete#DetectOmniFlavor() let b:undo_ftplugin ..= " | setlocal omnifunc<" endif " HTML: thanks to Johannes Zellner and Benji Fisher. if exists("loaded_matchit") && !exists("b:match_words") let b:match_ignorecase = 1 let b:match_words = '<!--:-->,' .. \ '<:>,' .. \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' .. \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' .. \ '<\@<=\([^/!][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' let b:html_set_match_words = 1 let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words b:html_set_match_words" endif " Change the :browse e filter to primarily show HTML-related files. if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") let b:browsefilter = "HTML Files (*.html *.htm)\t*.htm;*.html\n" .. \ "JavaScript Files (*.js)\t*.js\n" .. \ "Cascading StyleSheets (*.css)\t*.css\n" .. \ "All Files (*.*)\t*.*\n" let b:html_set_browsefilter = 1 let b:undo_ftplugin ..= " | unlet! b:browsefilter b:html_set_browsefilter" endif let &cpo = s:save_cpo unlet s:save_cpo