1
0
forked from aniani/vim
Files
vim/runtime/ftplugin
Dennis van den Berg 1ad194c0df patch 9.1.0551: filetype: htmlangular files are not properly detected
Problem:  filetype: htmlangular files are not properly detected
Solution: Use the new htmlangular filetype for angular files, because
          since angular v17, those are no longer valid HTML files.
          (Dennis van den Berg)

Since Angular 17, the new Control Flow Syntax is not valid HTML. This PR
adds a new filetype detection for the HTML templates of Angular.

It first checks the filename. The Angular convention is to use
*.component.html for the template. However, this is not mandatory.

If the filename does not match, it will check the contents of the file
if it contains:

  - One of the Control-Flow blocks: @if, @for, @switch, @defer
  - A structural directive: *ngIf, *ngFor, *ngSwitch, *ngTemplateOutlet
  - Builtin Angular elements: ng-template or ng-content
  - String interpolation: {{ something }}

This enables the Angular LSP to attach only to htmlangular filetypes, as
well as language parsers, such as tree-sitter.

closes: #15190

Signed-off-by: Dennis van den Berg <dennis.vandenberg@nedap.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-07-09 19:44:32 +02:00
..
2021-09-21 20:09:51 +02:00
2017-03-05 17:04:09 +01:00
2021-01-25 21:14:57 +01:00
2017-03-05 17:04:09 +01:00
2022-10-28 20:47:54 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2010-01-06 20:54:52 +01:00
2017-03-05 17:04:09 +01:00
2018-12-27 23:59:26 +01:00
2004-06-13 20:20:40 +00:00
2022-09-27 17:30:34 +01:00
2017-03-05 17:04:09 +01:00
2022-06-03 21:59:47 +01:00
2023-06-10 21:40:39 +01:00
2017-03-05 17:04:09 +01:00
2022-09-18 13:04:22 +01:00
2022-03-08 21:35:07 +00:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2012-04-25 19:07:41 +02:00
2014-08-29 15:12:19 +02:00
2021-09-09 21:55:11 +02:00
2017-03-05 17:04:09 +01:00
2022-04-27 15:25:03 +01:00
2017-03-05 17:04:09 +01:00
2022-07-01 18:45:04 +01:00
2006-04-30 18:54:39 +00:00
2021-01-25 21:14:57 +01:00
2007-05-05 18:24:42 +00:00
2022-09-18 13:04:22 +01:00
2022-09-18 13:04:22 +01:00
2023-12-28 23:17:54 +01:00
2022-09-10 13:13:14 +01:00
2010-01-06 20:54:52 +01:00
2022-09-10 13:13:14 +01:00
2022-01-08 21:51:59 +00:00
2010-01-06 20:54:52 +01:00
2014-08-22 19:21:47 +02:00
2021-09-21 20:09:51 +02:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2022-09-27 17:30:34 +01:00
2019-01-01 15:32:17 +01:00
2016-01-10 15:59:26 +01:00
2015-11-01 16:49:04 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2007-05-05 18:24:42 +00:00
2021-12-16 14:41:10 +00:00
2020-08-30 17:20:20 +02:00
2019-12-03 22:49:09 +01:00
2022-09-10 13:13:14 +01:00
2021-08-14 21:25:52 +02:00
2015-01-07 16:57:10 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2023-04-22 22:40:14 +01:00
2023-02-02 13:59:48 +00:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2018-08-11 18:00:22 +02:00
2023-05-14 18:50:25 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2022-04-27 15:25:03 +01:00
2021-09-09 21:55:11 +02:00
2022-11-23 23:46:31 +00:00
2017-03-05 17:04:09 +01:00
2007-05-05 17:56:55 +00:00
2017-03-05 17:04:09 +01:00
2017-11-02 22:58:42 +01:00
2023-04-22 22:40:14 +01:00
2021-10-23 12:08:41 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2022-10-16 13:11:12 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2022-01-29 22:20:48 +00:00
2019-07-19 22:05:51 +02:00
2017-03-05 17:04:09 +01:00
2023-02-27 15:49:53 +00:00
2017-03-05 17:04:09 +01:00
2004-06-13 20:20:40 +00:00
2022-04-27 15:25:03 +01:00
2017-03-05 17:04:09 +01:00
2020-10-26 21:12:46 +01:00
2023-08-23 21:20:00 +02:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2022-05-21 13:08:16 +01:00
2022-10-16 13:11:12 +01:00
2022-07-29 21:36:21 +01:00
2021-01-11 19:40:15 +01:00
2017-03-05 17:04:09 +01:00
2021-09-09 21:55:11 +02:00
2022-06-14 17:41:28 +01:00
2017-03-05 17:04:09 +01:00
2021-09-09 21:55:11 +02:00
2019-01-17 16:07:22 +01:00
2024-07-07 21:07:56 +02:00
2021-10-16 15:23:36 +01:00
2017-03-05 17:04:09 +01:00
2022-06-14 17:41:28 +01:00
2020-08-15 18:55:18 +02:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2023-08-09 16:50:52 +02:00
2017-03-05 17:04:09 +01:00
2023-06-10 21:40:39 +01:00
2022-09-18 13:04:22 +01:00
2014-08-22 19:21:47 +02:00
2022-07-01 18:45:04 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2017-03-05 17:04:09 +01:00
2022-06-14 17:41:28 +01:00

The ftplugin directory is for Vim plugin scripts that are only used for a
specific filetype.

All files ending in .vim in this directory and subdirectories will be sourced
by Vim when it detects the filetype that matches the name of the file or
subdirectory.
For example, these are all loaded for the "c" filetype:

	c.vim
	c_extra.vim
	c/settings.vim

Note that the "_" in "c_extra.vim" is required to separate the filetype name
from the following arbitrary name.

The filetype plugins are only loaded when the ":filetype plugin" command has
been used.

The default filetype plugin files contain settings that 95% of the users will
want to use.  They do not contain personal preferences, like the value of
'shiftwidth'.

If you want to do additional settings, or overrule the default filetype
plugin, you can create your own plugin file.  See ":help ftplugin" in Vim.