summaryrefslogtreecommitdiff
path: root/src/quickfix.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-11-23 22:05:45 +0100
committerBram Moolenaar <Bram@vim.org>2017-11-23 22:05:45 +0100
commit93a32e2ec4b5a391c5006ca09f196e6510c8c2e9 (patch)
tree8669de3300e97fae2600e5d7e65183849d81821c /src/quickfix.c
parent3679c17917d7ff22e836982c81e5816bd07451dd (diff)
downloadvim-git-93a32e2ec4b5a391c5006ca09f196e6510c8c2e9.tar.gz
patch 8.0.1332: highlighting in quickfix window could be betterv8.0.1332
Problem: Highlighting in quickfix window could be better. (Axel Bender) Solution: Use the qfSeparator highlight item. (Yegappan Lakshmanan)
Diffstat (limited to 'src/quickfix.c')
-rw-r--r--src/quickfix.c33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/quickfix.c b/src/quickfix.c
index 8e76cbfcd..e802e5dfd 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2654,6 +2654,9 @@ qf_list(exarg_T *eap)
int idx2 = -1;
char_u *arg = eap->arg;
int plus = FALSE;
+ int qfFileAttr;
+ int qfSepAttr;
+ int qfLineAttr;
int all = eap->forceit; /* if not :cl!, only show
recognised errors */
qf_info_T *qi = &ql_info;
@@ -2699,6 +2702,20 @@ qf_list(exarg_T *eap)
idx2 = (-idx2 > i) ? 0 : idx2 + i + 1;
}
+ /*
+ * Get the attributes for the different quickfix highlight items. Note
+ * that this depends on syntax items defined in the qf.vim syntax file
+ */
+ qfFileAttr = syn_name2attr((char_u *)"qfFileName");
+ if (qfFileAttr == 0)
+ qfFileAttr = HL_ATTR(HLF_D);
+ qfSepAttr = syn_name2attr((char_u *)"qfSeparator");
+ if (qfSepAttr == 0)
+ qfSepAttr = HL_ATTR(HLF_D);
+ qfLineAttr = syn_name2attr((char_u *)"qfLineNr");
+ if (qfLineAttr == 0)
+ qfLineAttr = HL_ATTR(HLF_N);
+
if (qi->qf_lists[qi->qf_curlist].qf_nonevalid)
all = TRUE;
qfp = qi->qf_lists[qi->qf_curlist].qf_start;
@@ -2724,22 +2741,26 @@ qf_list(exarg_T *eap)
vim_snprintf((char *)IObuff, IOSIZE, "%2d %s",
i, (char *)fname);
msg_outtrans_attr(IObuff, i == qi->qf_lists[qi->qf_curlist].qf_index
- ? HL_ATTR(HLF_QFL) : HL_ATTR(HLF_D));
+ ? HL_ATTR(HLF_QFL) : qfFileAttr);
+
+ if (qfp->qf_lnum != 0)
+ msg_puts_attr((char_u *)":", qfSepAttr);
if (qfp->qf_lnum == 0)
IObuff[0] = NUL;
else if (qfp->qf_col == 0)
- sprintf((char *)IObuff, ":%ld", qfp->qf_lnum);
+ sprintf((char *)IObuff, "%ld", qfp->qf_lnum);
else
- sprintf((char *)IObuff, ":%ld col %d",
+ sprintf((char *)IObuff, "%ld col %d",
qfp->qf_lnum, qfp->qf_col);
- sprintf((char *)IObuff + STRLEN(IObuff), "%s:",
+ sprintf((char *)IObuff + STRLEN(IObuff), "%s",
(char *)qf_types(qfp->qf_type, qfp->qf_nr));
- msg_puts_attr(IObuff, HL_ATTR(HLF_N));
+ msg_puts_attr(IObuff, qfLineAttr);
+ msg_puts_attr((char_u *)":", qfSepAttr);
if (qfp->qf_pattern != NULL)
{
qf_fmt_text(qfp->qf_pattern, IObuff, IOSIZE);
- STRCAT(IObuff, ":");
msg_puts(IObuff);
+ msg_puts_attr((char_u *)":", qfSepAttr);
}
msg_puts((char_u *)" ");