mirror of
https://github.com/mawww/kakoune.git
synced 2024-08-16 16:20:38 +03:00
Compare commits
10 Commits
05b941f0f0
...
ba0ba525dd
Author | SHA1 | Date | |
---|---|---|---|
|
ba0ba525dd | ||
|
e0bbd1e7ca | ||
|
8ca7b5815a | ||
|
0a10612786 | ||
|
07000adb9b | ||
|
6cdd1c083f | ||
|
e54932cb39 | ||
|
e5e7930397 | ||
|
94261eb4cf | ||
|
dc9cc5be0c |
@ -147,6 +147,11 @@ name. Hooks with no description will always use an empty string.
|
||||
*SessionRenamed* `<old name>:<new name>`::
|
||||
executed when a session is renamed using the `rename-session` command
|
||||
|
||||
*EnterDirectory* `path`::
|
||||
executed on startup and when the current working directory is changed
|
||||
using the `change-directory` command. The hook param is an absolute path
|
||||
to the new working directory.
|
||||
|
||||
*RuntimeError* `error message`::
|
||||
an error was encountered while executing a user command
|
||||
|
||||
|
@ -75,7 +75,7 @@ hook global BufSetOption filetype=(html|xml) %{
|
||||
set-option buffer comment_block_end '-->'
|
||||
}
|
||||
|
||||
hook global BufSetOption filetype=(latex|mercury) %{
|
||||
hook global BufSetOption filetype=(erlang|latex|mercury) %{
|
||||
set-option buffer comment_line '%'
|
||||
}
|
||||
|
||||
|
@ -12,22 +12,24 @@ define-command -params .. -docstring %{
|
||||
make [<arguments>]: make utility wrapper
|
||||
All the optional arguments are forwarded to the make utility
|
||||
} make %{
|
||||
evaluate-commands -try-client %opt{toolsclient} %{
|
||||
evaluate-commands -try-client %opt{toolsclient} -save-regs a %{
|
||||
set-register a %opt{make_error_pattern} # save current error_pattern
|
||||
fifo -scroll -name *make* -script %{
|
||||
trap - INT QUIT
|
||||
$kak_opt_makecmd "$@"
|
||||
} -- %arg{@}
|
||||
set-option buffer filetype make
|
||||
set-option buffer jump_current_line 0
|
||||
set-option buffer make_error_pattern %reg{a} # set the pattern to the value while firing the make command
|
||||
}
|
||||
}
|
||||
|
||||
add-highlighter shared/make group
|
||||
add-highlighter shared/make/ regex "^([^:\n]+):(\d+):(?:(\d+):)?\h+(?:((?:fatal )?error)|(warning)|(note)|(required from(?: here)?))?.*?$" 1:cyan 2:green 3:green 4:red 5:yellow 6:blue 7:yellow
|
||||
add-highlighter shared/make/ regex "^\h*(~*(?:(\^)~*)?)$" 1:green 2:cyan+b
|
||||
add-highlighter shared/make/ line '%opt{jump_current_line}' default+b
|
||||
|
||||
hook -group make-highlight global WinSetOption filetype=make %{
|
||||
add-highlighter -override shared/make/ regex %opt{make_error_pattern} 1:cyan 2:green 3:green 4:red 5:yellow 6:blue 7:yellow
|
||||
add-highlighter window/make ref make
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/make }
|
||||
}
|
||||
|
@ -2600,13 +2600,15 @@ const CommandDesc change_directory_cmd = {
|
||||
cursor_pos, FilenameFlags::OnlyDirectories),
|
||||
Completions::Flags::Menu };
|
||||
}),
|
||||
[](const ParametersParser& parser, Context&, const ShellContext&)
|
||||
[](const ParametersParser& parser, Context& ctx, const ShellContext&)
|
||||
{
|
||||
StringView target = parser.positional_count() == 1 ? StringView{parser[0]} : "~";
|
||||
if (chdir(parse_filename(target).c_str()) != 0)
|
||||
auto path = real_path(parse_filename(target));
|
||||
if (chdir(path.c_str()) != 0)
|
||||
throw runtime_error(format("unable to change to directory: '{}'", target));
|
||||
for (auto& buffer : BufferManager::instance())
|
||||
buffer->update_display_name();
|
||||
ctx.hooks().run_hook(Hook::EnterDirectory, path, ctx);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -50,6 +50,7 @@ enum class Hook
|
||||
NextKeyIdle,
|
||||
NormalKey,
|
||||
ModeChange,
|
||||
EnterDirectory,
|
||||
RawKey,
|
||||
RegisterModified,
|
||||
WinClose,
|
||||
@ -97,6 +98,7 @@ constexpr auto enum_desc(Meta::Type<Hook>)
|
||||
{Hook::NextKeyIdle, "NextKeyIdle"},
|
||||
{Hook::NormalKey, "NormalKey"},
|
||||
{Hook::ModeChange, "ModeChange"},
|
||||
{Hook::EnterDirectory, "EnterDirectory"},
|
||||
{Hook::RawKey, "RawKey"},
|
||||
{Hook::RegisterModified, "RegisterModified"},
|
||||
{Hook::WinClose, "WinClose"},
|
||||
|
@ -842,6 +842,7 @@ int run_server(StringView session, StringView server_init,
|
||||
|
||||
{
|
||||
Context empty_context{Context::EmptyContextFlag{}};
|
||||
global_scope.hooks().run_hook(Hook::EnterDirectory, real_path("."), empty_context);
|
||||
global_scope.hooks().run_hook(Hook::KakBegin, session, empty_context);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user