diff options
author | mattkae <mattkae@protonmail.com> | 2022-05-11 09:23:58 -0400 |
---|---|---|
committer | mattkae <mattkae@protonmail.com> | 2022-05-11 09:23:58 -0400 |
commit | 3f4a0d5370ae6c34afe180df96add3b8522f4af1 (patch) | |
tree | ae901409e02bde8ee278475f8cf6818f8f680a60 /elpa/irony-20220110.849/irony-diagnostics.el |
initial commit
Diffstat (limited to 'elpa/irony-20220110.849/irony-diagnostics.el')
-rw-r--r-- | elpa/irony-20220110.849/irony-diagnostics.el | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/elpa/irony-20220110.849/irony-diagnostics.el b/elpa/irony-20220110.849/irony-diagnostics.el new file mode 100644 index 0000000..76c268d --- /dev/null +++ b/elpa/irony-20220110.849/irony-diagnostics.el @@ -0,0 +1,90 @@ +;;; irony-diagnostics.el --- irony-mode diagnostic reporting + +;; Copyright (C) 2014 Guillaume Papin + +;; Author: Guillaume Papin <guillaume.papin@epitech.eu> +;; Keywords: c, convenience, tools + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; Interface libclang's "Diagnostic Reporting", see +;; http://clang.llvm.org/doxygen/group__CINDEX__DIAG.html + +;;; Code: + +(require 'irony) +(require 'irony-iotask) + +(eval-when-compile + (require 'cl)) ;for lexical-let macro + + +;; +;; Irony Diagnostics Interface +;; + +(defun irony-diagnostics-file (diagnostic) + (nth 0 diagnostic)) + +(defun irony-diagnostics-line (diagnostic) + (nth 1 diagnostic)) + +(defun irony-diagnostics-column (diagnostic) + (nth 2 diagnostic)) + +(defun irony-diagnostics-severity (diagnostic) + (nth 4 diagnostic)) + +(defun irony-diagnostics-message (diagnostic) + (nth 5 diagnostic)) + +(defun irony-diagnostics-async (callback) + "Perform an asynchronous diagnostic request for the current +buffer. + +CALLBACK is called with at least one argument, a symbol +representing the status of the request. Depending on the status +more argument are provided. Possible values are explained below: + +- success + + When quering the diagnostics work, the additional argument is a + list of diagnostic object, diagnostics fields can be queried + with the functions `irony-diagnostics-<xxx>'. + +- error + + Retrieving the diagnostics wasn't possible. A string explaining + the reason is passed as a second argument. + +- cancelled + + Retrieving the diagnostics was cancelled, e.g: because the + buffer has changed since the beginning of the request, and as + such the diagnostics are considered no longer relevant. A + reason string is passed as a second argument." + (lexical-let ((cb callback)) + (irony--run-task-asynchronously + (irony--diagnostics-task) + (lambda (diagnostics-result) + (condition-case err + (funcall cb 'success (irony-iotask-result-get diagnostics-result)) + (error + (funcall cb 'error (error-message-string err)))))))) + +(provide 'irony-diagnostics) + +;;; irony-diagnostics.el ends here |