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/screen.h"
|
||||||
#include "nvim/strings.h"
|
#include "nvim/strings.h"
|
||||||
#include "nvim/undo.h"
|
#include "nvim/undo.h"
|
||||||
|
#include "nvim/ui.h"
|
||||||
#include "nvim/vim.h"
|
#include "nvim/vim.h"
|
||||||
#include "nvim/window.h"
|
#include "nvim/window.h"
|
||||||
#include "xdiff/xdiff.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.
|
* The previous contents of the redo buffer is kept in old_redobuffer.
|
||||||
* This is used for the CTRL-O <.> command in insert mode.
|
* This is used for the CTRL-O <.> command in insert mode.
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#include "nvim/eval.h"
|
#include "nvim/eval.h"
|
||||||
#include "nvim/fileio.h"
|
#include "nvim/fileio.h"
|
||||||
#include "nvim/func_attr.h"
|
#include "nvim/func_attr.h"
|
||||||
|
#include "nvim/getchar.h"
|
||||||
#include "nvim/iconv.h"
|
#include "nvim/iconv.h"
|
||||||
#include "nvim/mark.h"
|
#include "nvim/mark.h"
|
||||||
#include "nvim/mbyte.h"
|
#include "nvim/mbyte.h"
|
||||||
|
@ -325,54 +325,6 @@ int prompt_for_number(int *mouse_used)
|
|||||||
return i;
|
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.
|
/// os_call_shell() wrapper. Handles 'verbose', :profile, and v:shell_error.
|
||||||
/// Invalidates cached tags.
|
/// Invalidates cached tags.
|
||||||
///
|
///
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "nvim/diff.h"
|
#include "nvim/diff.h"
|
||||||
#include "nvim/edit.h"
|
#include "nvim/edit.h"
|
||||||
#include "nvim/fold.h"
|
#include "nvim/fold.h"
|
||||||
|
#include "nvim/getchar.h"
|
||||||
#include "nvim/mbyte.h"
|
#include "nvim/mbyte.h"
|
||||||
#include "nvim/memline.h"
|
#include "nvim/memline.h"
|
||||||
#include "nvim/misc1.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)
|
void ui_attach_impl(UI *ui, uint64_t chanid)
|
||||||
{
|
{
|
||||||
if (ui_count == MAX_UI_COUNT) {
|
if (ui_count == MAX_UI_COUNT) {
|
||||||
|
@ -93,6 +93,7 @@
|
|||||||
#include "nvim/fileio.h"
|
#include "nvim/fileio.h"
|
||||||
#include "nvim/fold.h"
|
#include "nvim/fold.h"
|
||||||
#include "nvim/garray.h"
|
#include "nvim/garray.h"
|
||||||
|
#include "nvim/getchar.h"
|
||||||
#include "nvim/lib/kvec.h"
|
#include "nvim/lib/kvec.h"
|
||||||
#include "nvim/mark.h"
|
#include "nvim/mark.h"
|
||||||
#include "nvim/memline.h"
|
#include "nvim/memline.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user