mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
refactor(misc1): move way beep functions elsewhere
This commit is contained in:
parent
6dbd4f3787
commit
c88555418a
@ -39,6 +39,7 @@
|
||||
#include "nvim/screen.h"
|
||||
#include "nvim/strings.h"
|
||||
#include "nvim/undo.h"
|
||||
#include "nvim/ui.h"
|
||||
#include "nvim/vim.h"
|
||||
#include "nvim/window.h"
|
||||
#include "xdiff/xdiff.h"
|
||||
|
@ -458,6 +458,15 @@ void flush_buffers(flush_buffers_T flush_typeahead)
|
||||
}
|
||||
}
|
||||
|
||||
/// flush map and typeahead buffers and give a warning for an error
|
||||
void beep_flush(void)
|
||||
{
|
||||
if (emsg_silent == 0) {
|
||||
flush_buffers(FLUSH_MINIMAL);
|
||||
vim_beep(BO_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* The previous contents of the redo buffer is kept in old_redobuffer.
|
||||
* This is used for the CTRL-O <.> command in insert mode.
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "nvim/eval.h"
|
||||
#include "nvim/fileio.h"
|
||||
#include "nvim/func_attr.h"
|
||||
#include "nvim/getchar.h"
|
||||
#include "nvim/iconv.h"
|
||||
#include "nvim/mark.h"
|
||||
#include "nvim/mbyte.h"
|
||||
|
@ -325,54 +325,6 @@ int prompt_for_number(int *mouse_used)
|
||||
return i;
|
||||
}
|
||||
|
||||
/*
|
||||
* flush map and typeahead buffers and give a warning for an error
|
||||
*/
|
||||
void beep_flush(void)
|
||||
{
|
||||
if (emsg_silent == 0) {
|
||||
flush_buffers(FLUSH_MINIMAL);
|
||||
vim_beep(BO_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
// Give a warning for an error
|
||||
// val is one of the BO_ values, e.g., BO_OPER
|
||||
void vim_beep(unsigned val)
|
||||
{
|
||||
called_vim_beep = true;
|
||||
|
||||
if (emsg_silent == 0) {
|
||||
if (!((bo_flags & val) || (bo_flags & BO_ALL))) {
|
||||
static int beeps = 0;
|
||||
static uint64_t start_time = 0;
|
||||
|
||||
// Only beep up to three times per half a second,
|
||||
// otherwise a sequence of beeps would freeze Vim.
|
||||
if (start_time == 0 || os_hrtime() - start_time > 500000000u) {
|
||||
beeps = 0;
|
||||
start_time = os_hrtime();
|
||||
}
|
||||
beeps++;
|
||||
if (beeps <= 3) {
|
||||
if (p_vb) {
|
||||
ui_call_visual_bell();
|
||||
} else {
|
||||
ui_call_bell();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// When 'debug' contains "beep" produce a message. If we are sourcing
|
||||
// a script or executing a function give the user a hint where the beep
|
||||
// comes from.
|
||||
if (vim_strchr(p_debug, 'e') != NULL) {
|
||||
msg_source(HL_ATTR(HLF_W));
|
||||
msg_attr(_("Beep!"), HL_ATTR(HLF_W));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// os_call_shell() wrapper. Handles 'verbose', :profile, and v:shell_error.
|
||||
/// Invalidates cached tags.
|
||||
///
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "nvim/diff.h"
|
||||
#include "nvim/edit.h"
|
||||
#include "nvim/fold.h"
|
||||
#include "nvim/getchar.h"
|
||||
#include "nvim/mbyte.h"
|
||||
#include "nvim/memline.h"
|
||||
#include "nvim/misc1.h"
|
||||
|
@ -300,6 +300,44 @@ void ui_busy_stop(void)
|
||||
}
|
||||
}
|
||||
|
||||
/// Emit a bell or visualbell as a warning
|
||||
///
|
||||
/// val is one of the BO_ values, e.g., BO_OPER
|
||||
void vim_beep(unsigned val)
|
||||
{
|
||||
called_vim_beep = true;
|
||||
|
||||
if (emsg_silent == 0) {
|
||||
if (!((bo_flags & val) || (bo_flags & BO_ALL))) {
|
||||
static int beeps = 0;
|
||||
static uint64_t start_time = 0;
|
||||
|
||||
// Only beep up to three times per half a second,
|
||||
// otherwise a sequence of beeps would freeze Vim.
|
||||
if (start_time == 0 || os_hrtime() - start_time > 500000000u) {
|
||||
beeps = 0;
|
||||
start_time = os_hrtime();
|
||||
}
|
||||
beeps++;
|
||||
if (beeps <= 3) {
|
||||
if (p_vb) {
|
||||
ui_call_visual_bell();
|
||||
} else {
|
||||
ui_call_bell();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// When 'debug' contains "beep" produce a message. If we are sourcing
|
||||
// a script or executing a function give the user a hint where the beep
|
||||
// comes from.
|
||||
if (vim_strchr(p_debug, 'e') != NULL) {
|
||||
msg_source(HL_ATTR(HLF_W));
|
||||
msg_attr(_("Beep!"), HL_ATTR(HLF_W));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ui_attach_impl(UI *ui, uint64_t chanid)
|
||||
{
|
||||
if (ui_count == MAX_UI_COUNT) {
|
||||
|
@ -93,6 +93,7 @@
|
||||
#include "nvim/fileio.h"
|
||||
#include "nvim/fold.h"
|
||||
#include "nvim/garray.h"
|
||||
#include "nvim/getchar.h"
|
||||
#include "nvim/lib/kvec.h"
|
||||
#include "nvim/mark.h"
|
||||
#include "nvim/memline.h"
|
||||
|
Loading…
Reference in New Issue
Block a user