------------------------------------------------------------------------------ -- 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. -- ------------------------------------------------------------------------------ -- -- This package provides a file monitoring service interface. with GNATCOLL.VFS; with Ada.Unchecked_Deallocation; package LSP.File_Monitors is type File_Monitor is limited interface; type File_Monitor_Access is access all File_Monitor'Class; function Assigned (Self : access File_Monitor'Class) return Boolean is (Self /= null); -- Check is the reference has not nul value procedure Monitor_Directories (Self : access File_Monitor; Directories : GNATCOLL.VFS.File_Array) is abstract; -- Set up filesystem monitoring for Directories, and emit -- "workspace/didChangeWatchedFiles" notifications -- for any modification of any files in these directories. -- -- This cancels any monitoring that was previously set up: only -- one set of directories is monitored at a given time. procedure Stop_Monitoring_Directories (Self : access File_Monitor) is null; -- Stop filesystem monitoring. This is a no-op if no monitoring is -- ongoing. procedure Unchecked_Free is new Ada.Unchecked_Deallocation (File_Monitor'Class, File_Monitor_Access); end LSP.File_Monitors;