Files
neovim/runtime/ftplugin
zeertzjq 2c76a50e20 vim-patch:9.1.1821: filetype: Not all PKL files are recognized (#36008)
Problem:  filetype: Not all PKL files are recognized
Solution: Detect *.pcf as pkl filetype, detect using the pkl-lsp://
          protocol as pkl filetype, include PKL syntax script
          (Jan Claußen)

This adds basic syntax support for the new PKL language by Apple.

What works:
- Shebang support
- Comment support
- Integers (decimal, hex, octal and binary) support
- Floating point support including exponentials
- Basic datatype support
- Unicode escape delimiters
- Escape code support
- String interpolation
- Support up to five pounds for custom delimiters
- Folding of multi-line comments and blocks

What doesn't work:

  The language heavily uses parameterized type declarations, which can get
  very complex. It is very hard to highlight this properly. There is
  official Tree-sitter support for this. Since it is hard to pull this off
  in a vim syntax file, I opted for basic support of the data types.

References:
  https://github.com/apple/pkl-pantry

fixes: vim/vim#18271
closes: vim/vim#18274

67a8f2945e

Co-authored-by: Jan Claußen <jan.claussen10@web.de>
2025-10-04 06:01:16 +08:00
..
2021-09-22 06:12:06 -07:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2023-08-29 11:32:46 +02:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2023-08-23 20:36:16 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2024-04-19 16:09:30 +02:00
2014-07-29 02:12:31 +00:00
2023-08-13 13:25:10 +01:00
2023-08-29 11:32:46 +02:00
2017-11-06 05:26:16 +01:00
2019-07-29 20:50:07 +02:00
2014-07-29 02:12:31 +00:00
2023-11-05 21:52:02 +01:00
2022-09-28 12:48:36 +02:00
2024-11-21 06:50:30 +08:00
2024-01-15 11:40:44 +01:00
2024-04-21 00:09:48 +02:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2023-06-11 12:40:22 +01:00
2017-11-06 05:26:16 +01:00
2022-09-18 15:20:20 +02:00
2017-04-28 21:13:55 +02:00
2017-11-06 05:26:16 +01:00
2024-05-20 00:13:40 +02:00
2023-10-27 10:06:52 +02:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2023-12-28 10:42:09 +01:00
2022-04-27 17:48:35 +02:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2024-01-15 11:40:44 +01:00
2022-07-02 11:06:03 +02:00
2024-01-15 11:40:44 +01:00
2024-01-15 11:40:44 +01:00
2021-05-01 23:19:58 -04:00
2024-01-15 11:40:44 +01:00
2023-12-29 00:54:09 +01:00
2023-12-29 00:54:09 +01:00
2022-09-10 14:54:13 +02:00
2022-01-11 14:14:17 +01:00
2021-09-22 06:12:06 -07:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2022-09-28 12:48:36 +02:00
2024-01-15 11:40:44 +01:00
2016-05-03 20:59:26 +02:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2024-01-27 12:02:59 +01:00
2021-12-16 21:46:13 +01:00
2024-01-15 11:40:44 +01:00
2024-01-15 11:40:44 +01:00
2021-04-27 09:21:31 -04:00
2024-01-15 11:40:44 +01:00
2022-09-10 14:54:13 +02:00
2024-01-15 11:40:44 +01:00
2021-08-15 11:02:19 +02:00
2024-01-15 11:40:44 +01:00
2024-01-15 11:40:44 +01:00
2015-10-11 18:07:58 -04:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2023-04-23 15:22:55 +02:00
2023-02-03 09:18:18 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2023-12-16 15:57:22 +01:00
2018-10-29 10:01:44 +01:00
2023-05-15 09:38:32 +02:00
2024-01-15 11:40:44 +01:00
2024-01-15 11:40:44 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2023-08-13 13:25:10 +01:00
2017-11-06 05:26:16 +01:00
2021-09-13 16:33:41 +02:00
2024-01-15 11:40:44 +01:00
2017-04-29 01:01:51 +02:00
2017-04-29 01:01:51 +02:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2017-11-07 23:07:03 +01:00
2023-04-23 15:22:55 +02:00
2023-08-29 11:32:46 +02:00
2024-05-20 14:43:12 +02:00
2025-08-02 15:00:42 +03:00
2023-08-13 13:25:10 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2023-08-29 11:32:46 +02:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2022-10-17 08:19:48 +02:00
2024-01-15 11:40:44 +01:00
2024-05-20 14:43:12 +02:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2023-08-13 11:53:51 +02:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2024-03-03 10:38:58 +01:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2024-03-03 10:38:58 +01:00
2017-11-06 05:26:16 +01:00
2024-03-03 10:38:58 +01:00
2024-01-15 11:40:44 +01:00
2023-08-24 11:33:06 +09:00
2024-01-15 11:40:44 +01:00
2023-12-29 00:54:09 +01:00
2023-12-15 10:30:13 +01:00
2023-08-29 11:32:46 +02:00
2017-11-06 05:26:16 +01:00
2017-04-28 21:13:55 +02:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2023-08-29 11:32:46 +02:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2023-08-24 11:33:06 +09:00
2024-01-15 11:40:44 +01:00
2022-10-17 08:19:48 +02:00
2024-05-18 08:57:07 +02:00
2024-01-15 11:40:44 +01:00
2022-07-30 15:48:32 +02:00
2021-05-01 23:19:57 -04:00
2021-04-27 09:21:34 -04:00
2017-11-06 05:26:16 +01:00
2022-06-15 09:20:32 +02:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2024-10-15 20:50:21 +02:00
2019-07-29 20:50:07 +02:00
2024-01-15 11:40:44 +01:00
2021-10-16 18:03:51 +02:00
2023-08-11 22:06:37 +02:00
2017-11-06 05:26:16 +01:00
2022-06-15 09:20:32 +02:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2023-08-09 22:34:02 +02:00
2017-11-06 05:26:16 +01:00
2023-08-29 11:32:46 +02:00
2024-05-20 14:43:12 +02:00
2024-01-15 11:40:44 +01:00
2022-09-18 15:20:20 +02:00
2024-05-20 22:58:05 +02:00
2024-01-15 11:40:44 +01:00
2014-12-30 13:51:39 +01:00
2024-01-15 11:40:44 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2024-01-15 11:40:44 +01:00
2017-11-06 05:26:16 +01:00
2017-11-06 05:26:16 +01:00
2022-06-15 09:20:32 +02:00
2024-01-15 11:40:44 +01:00
2024-01-15 11:40:44 +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.