micro/internal/buffer
Dmytro Maluka 39e410aa46 UpdateRules: reintroduce using header regex for filetype detection
Replacing header patterns with signature patterns was a mistake, since
both are quite different from each other, and both have their uses. In
fact, this caused a serious regression: for such files as shell scripts
without *.sh extension but with #!/bin/sh inside, filetype detection
does not work at all anymore.

Since both header and signature patterns are useful, reintroduce support
for header patterns while keeping support for signature patterns as well
and make both work nicely together.

Also, unlike in the old implementation (before signatures were
introduced), ensure that filename matches take precedence over header
matches, i.e. if there is at least one filename match found, all header
matches are ignored. This makes the behavior more deterministic and
prevents previously observed issues like #2894 and #3054: wrongly
detected filetypes caused by some overly general header patterns.

Precisely, the new behavior is:

1. if there is at least one filename match, use filename matches only
2. if there are no filename matches, use header matches
3. in both cases, try to use signatures to find the best match among
multiple filename or header matches
2024-03-24 04:47:04 +01:00
..
autocomplete.go feat: adds GetArg and GetWord methods to Buffer (#3112) 2024-03-12 21:23:08 +01:00
backup.go Allow aborting while opening a file with backup 2021-08-02 21:05:22 -04:00
buffer.go UpdateRules: reintroduce using header regex for filetype detection 2024-03-24 04:47:04 +01:00
buffer_generated_test.go Merge branch 'buffer-benchmarks' of https://github.com/p-e-w/micro into p-e-w-buffer-benchmarks 2020-05-20 15:28:36 -04:00
buffer_test.go command: Fix reload command to correctly initialize and reload all runtime files (#3062) 2024-03-22 20:47:30 +01:00
cursor.go Highlighting trailing whitespaces 2024-03-14 03:10:31 +01:00
eventhandler.go hltrailingws: simpler and better undo/redo handling 2024-03-14 03:18:11 +01:00
line_array.go Fixed newline format detection for files not ending with a newline (#2875) 2023-10-16 11:03:03 +02:00
line_array_test.go Improve unicode line array test 2020-05-20 19:53:54 -04:00
loc.go Use CharacterCount over RuneCount 2020-05-20 16:47:08 -04:00
message.go Warn for readonly instead of setting option 2021-05-19 14:58:00 -04:00
save.go option: Don't apply rmtrailingws in case of timed autosave (#2850) 2024-03-15 18:46:51 +01:00
search.go command: Fix replace to be able to insert '$' (#2954) 2024-03-17 21:37:16 +01:00
serialize.go Fix quality issues (#1856) 2020-09-16 00:08:01 -04:00
settings.go command: Fix reload command to correctly initialize and reload all runtime files (#3062) 2024-03-22 20:47:30 +01:00
stack.go Change project layout and use go.mod 2019-12-25 17:05:10 -05:00
stack_test.go Change project layout and use go.mod 2019-12-25 17:05:10 -05:00