def _PlaceNewSigns(kept_signs, new_signs): placed_signs = kept_signs[:] for sign in new_signs: # Do not set two signs on the same line, it will screw up storing sign # locations. if sign in placed_signs: continue vimsupport.PlaceSign(sign.id, sign.line, sign.buffer, sign.is_error) placed_signs.append(sign) return placed_signs
def _UpdateSigns(buffer_number_to_line_to_diags, next_sign_id): vimsupport.UnplaceAllSignsInBuffer(vim.current.buffer.number) for buffer_number, line_to_diags in buffer_number_to_line_to_diags.iteritems( ): if not vimsupport.BufferIsVisible(buffer_number): continue vimsupport.UnplaceAllSignsInBuffer(buffer_number) for line, diags in line_to_diags.iteritems(): for diag in diags: vimsupport.PlaceSign(next_sign_id, line, buffer_number, _DiagnosticIsError(diag)) next_sign_id += 1 return next_sign_id
def _UpdateSigns(self): signs_to_unplace = vimsupport.GetSignsInBuffer(self._bufnr) for line, diags in self._line_to_diags.items(): if not diags: continue # We always go for the first diagnostic on the line because diagnostics # are sorted by errors in priority and Vim can only display one sign by # line. name = 'YcmError' if _DiagnosticIsError(diags[0]) else 'YcmWarning' sign = vimsupport.CreateSign(line, name, self._bufnr) try: signs_to_unplace.remove(sign) except ValueError: vimsupport.PlaceSign(sign) for sign in signs_to_unplace: vimsupport.UnplaceSign(sign)
def _PlaceNewSigns(self, new_signs): for sign in new_signs: vimsupport.PlaceSign(sign.id, sign.line, self._bufnr, sign.is_error) self._placed_signs.append(sign)