------------------------------------------------------------------------------ -- Language Server Protocol -- -- -- -- Copyright (C) 2018-2021, AdaCore -- -- -- -- This is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- -- ware Foundation; either version 3, or (at your option) any later ver- -- -- sion. This software is distributed in the hope that it will be useful, -- -- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- -- -- TABILITY 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 distributed with this software; see file -- -- COPYING3. If not, go to http://www.gnu.org/licenses for a complete copy -- -- of the license. -- ------------------------------------------------------------------------------ with Ada.Unchecked_Deallocation; with LSP.Messages; limited with LSP.Ada_Contexts; package LSP.Diagnostic_Sources is type Diagnostic_Source is limited interface; -- A source of diagnostic (errors/warnings) messages type Diagnostic_Source_Access is access LSP.Diagnostic_Sources.Diagnostic_Source'Class; procedure Get_Diagnostic (Self : in out Diagnostic_Source; Context : LSP.Ada_Contexts.Context; Errors : out LSP.Messages.Diagnostic_Vector) is abstract; -- Fill diagnostics for given document. function Has_New_Diagnostic (Self : in out Diagnostic_Source; Context : LSP.Ada_Contexts.Context) return Boolean is abstract; -- Return True if diagnostic changed since last call to Get_Diagnostic or -- if Get_Diagnostic was never called and any diagnostic presents. procedure Unchecked_Free is new Ada.Unchecked_Deallocation (Diagnostic_Source'Class, Diagnostic_Source_Access); end LSP.Diagnostic_Sources;