aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/search.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/search.h')
-rw-r--r--src/nvim/search.h99
1 files changed, 55 insertions, 44 deletions
diff --git a/src/nvim/search.h b/src/nvim/search.h
index 48ca555e7f..09af34d87e 100644
--- a/src/nvim/search.h
+++ b/src/nvim/search.h
@@ -3,67 +3,78 @@
#include <stdbool.h>
#include <stdint.h>
-#include "nvim/buffer_defs.h"
#include "nvim/eval/typval_defs.h"
#include "nvim/normal_defs.h" // IWYU pragma: keep
#include "nvim/os/time_defs.h"
#include "nvim/pos_defs.h"
#include "nvim/regexp_defs.h" // IWYU pragma: keep
#include "nvim/types_defs.h"
-#include "nvim/vim_defs.h"
+#include "nvim/vim_defs.h" // IWYU pragma: keep
-// Values for the find_pattern_in_path() function args 'type' and 'action':
-#define FIND_ANY 1
-#define FIND_DEFINE 2
-#define CHECK_PATH 3
+/// Values for the find_pattern_in_path() function args 'type' and 'action':
+enum {
+ FIND_ANY = 1,
+ FIND_DEFINE = 2,
+ CHECK_PATH = 3,
+};
-#define ACTION_SHOW 1
-#define ACTION_GOTO 2
-#define ACTION_SPLIT 3
-#define ACTION_SHOW_ALL 4
-#define ACTION_EXPAND 5
+enum {
+ ACTION_SHOW = 1,
+ ACTION_GOTO = 2,
+ ACTION_SPLIT = 3,
+ ACTION_SHOW_ALL = 4,
+ ACTION_EXPAND = 5,
+};
-// Values for 'options' argument in do_search() and searchit()
-#define SEARCH_REV 0x01 ///< go in reverse of previous dir.
-#define SEARCH_ECHO 0x02 ///< echo the search command and handle options
-#define SEARCH_MSG 0x0c ///< give messages (yes, it's not 0x04)
-#define SEARCH_NFMSG 0x08 ///< give all messages except not found
-#define SEARCH_OPT 0x10 ///< interpret optional flags
-#define SEARCH_HIS 0x20 ///< put search pattern in history
-#define SEARCH_END 0x40 ///< put cursor at end of match
-#define SEARCH_NOOF 0x80 ///< don't add offset to position
-#define SEARCH_START 0x100 ///< start search without col offset
-#define SEARCH_MARK 0x200 ///< set previous context mark
-#define SEARCH_KEEP 0x400 ///< keep previous search pattern
-#define SEARCH_PEEK 0x800 ///< peek for typed char, cancel search
-#define SEARCH_COL 0x1000 ///< start at specified column instead of zero
+/// Values for "options" argument in do_search() and searchit()
+enum {
+ SEARCH_REV = 0x01, ///< go in reverse of previous dir.
+ SEARCH_ECHO = 0x02, ///< echo the search command and handle options
+ SEARCH_MSG = 0x0c, ///< give messages (yes, it's not 0x04)
+ SEARCH_NFMSG = 0x08, ///< give all messages except not found
+ SEARCH_OPT = 0x10, ///< interpret optional flags
+ SEARCH_HIS = 0x20, ///< put search pattern in history
+ SEARCH_END = 0x40, ///< put cursor at end of match
+ SEARCH_NOOF = 0x80, ///< don't add offset to position
+ SEARCH_START = 0x100, ///< start search without col offset
+ SEARCH_MARK = 0x200, ///< set previous context mark
+ SEARCH_KEEP = 0x400, ///< keep previous search pattern
+ SEARCH_PEEK = 0x800, ///< peek for typed char, cancel search
+ SEARCH_COL = 0x1000, ///< start at specified column instead of zero
+};
-// Values for flags argument for findmatchlimit()
-#define FM_BACKWARD 0x01 // search backwards
-#define FM_FORWARD 0x02 // search forwards
-#define FM_BLOCKSTOP 0x04 // stop at start/end of block
-#define FM_SKIPCOMM 0x08 // skip comments
+/// Values for flags argument for findmatchlimit()
+enum {
+ FM_BACKWARD = 0x01, ///< search backwards
+ FM_FORWARD = 0x02, ///< search forwards
+ FM_BLOCKSTOP = 0x04, ///< stop at start/end of block
+ FM_SKIPCOMM = 0x08, ///< skip comments
+};
-// Values for sub_cmd and which_pat argument for search_regcomp()
-// Also used for which_pat argument for searchit()
-#define RE_SEARCH 0 // save/use pat in/from search_pattern
-#define RE_SUBST 1 // save/use pat in/from subst_pattern
-#define RE_BOTH 2 // save pat in both patterns
-#define RE_LAST 2 // use last used pattern if "pat" is NULL
+/// Values for sub_cmd and which_pat argument for search_regcomp()
+/// Also used for which_pat argument for searchit()
+enum {
+ RE_SEARCH = 0, ///< save/use pat in/from search_pattern
+ RE_SUBST = 1, ///< save/use pat in/from subst_pattern
+ RE_BOTH = 2, ///< save pat in both patterns
+ RE_LAST = 2, ///< use last used pattern if "pat" is NULL
+};
// Values for searchcount()
-#define SEARCH_STAT_DEF_TIMEOUT 40
-#define SEARCH_STAT_DEF_MAX_COUNT 99
-#define SEARCH_STAT_BUF_LEN 12
+enum { SEARCH_STAT_DEF_TIMEOUT = 40, };
+enum { SEARCH_STAT_DEF_MAX_COUNT = 99, };
+enum { SEARCH_STAT_BUF_LEN = 12, };
-/// Maximum number of characters that can be fuzzy matched
-#define MAX_FUZZY_MATCHES 256
+enum {
+ /// Maximum number of characters that can be fuzzy matched
+ MAX_FUZZY_MATCHES = 256,
+};
/// Structure containing offset definition for the last search pattern
///
/// @note Only offset for the last search pattern is used, not for the last
/// substitute pattern.
-typedef struct soffset {
+typedef struct {
char dir; ///< Search direction: forward ('/') or backward ('?')
bool line; ///< True if search has line offset.
bool end; ///< True if search sets cursor at the end.
@@ -71,7 +82,7 @@ typedef struct soffset {
} SearchOffset;
/// Structure containing last search pattern and its attributes.
-typedef struct spat {
+typedef struct {
char *pat; ///< The pattern (in allocated memory) or NULL.
bool magic; ///< Magicness of the pattern.
bool no_scs; ///< No smartcase for this pattern.
@@ -88,7 +99,7 @@ typedef struct {
int sa_wrapped; ///< search wrapped around
} searchit_arg_T;
-typedef struct searchstat {
+typedef struct {
int cur; // current position of found words
int cnt; // total count of found words
bool exact_match; // true if matched exactly on specified position