From c66e1dff85bf723019cab24abf70408da7c50e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Fri, 17 Sep 2021 14:34:03 +0200 Subject: [PATCH] [server] New kernel request to save the current session. --- .../src/frama-c/api/generated/kernel/services/index.ts | 9 +++++++++ src/plugins/server/kernel_main.ml | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/ivette/src/frama-c/api/generated/kernel/services/index.ts b/ivette/src/frama-c/api/generated/kernel/services/index.ts index 3419792ac5a..666ca9816dc 100644 --- a/ivette/src/frama-c/api/generated/kernel/services/index.ts +++ b/ivette/src/frama-c/api/generated/kernel/services/index.ts @@ -75,6 +75,15 @@ const load_internal: Server.SetRequest<string,string | undefined> = { /** Load a save file. Returns an error, if not successfull. */ export const load: Server.SetRequest<string,string | undefined>= load_internal; +const save_internal: Server.SetRequest<string,string | undefined> = { + kind: Server.RqKind.SET, + name: 'kernel.services.save', + input: Json.jString, + output: Json.jString, +}; +/** Save the current session. Returns an error, if not successfull. */ +export const save: Server.SetRequest<string,string | undefined>= save_internal; + /** Source file positions. */ export type source = { dir: string, base: string, file: string, line: number }; diff --git a/src/plugins/server/kernel_main.ml b/src/plugins/server/kernel_main.ml index effed249b3a..3c5fb34a461 100644 --- a/src/plugins/server/kernel_main.ml +++ b/src/plugins/server/kernel_main.ml @@ -74,6 +74,16 @@ let () = try Project.load_all (Filepath.Normalized.of_string file); None with Project.IOError err -> Some err) + +let () = + Request.register ~package ~kind:`SET ~name:"save" + ~descr:(Md.plain "Save the current session. Returns an error, if not successfull.") + ~input:(module Jstring) + ~output:(module Joption(Jstring)) + (fun file -> + try Project.save_all (Filepath.Normalized.of_string file); None + with Project.IOError err -> Some err) + (* -------------------------------------------------------------------------- *) (* --- File Positions --- *) (* -------------------------------------------------------------------------- *) -- GitLab