diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc
index 0cce1bc793cd402765dce585d75a10a679008afa..f3e17144af99bdce902167f4f286bf1f7d7a1a92 100644
--- a/src/VivyApplication.cc
+++ b/src/VivyApplication.cc
@@ -92,13 +92,10 @@ VivyApplication::getMainWindow() const
     return mainWindowPtr.get();
 }
 
-/*
- * @return the current VivyDocument, or null if there isn't one or if the current document is not a VivyDocument
- */
-VivyDocument *
-VivyApplication::getCurrentVivyDocument() const
+AbstractDocument *
+VivyApplication::getCurrentDocument() const
 {
     if (!mainWindowPtr)
         throw std::logic_error("No main window in the graphic VivyApplication");
-    return dynamic_cast<VivyDocument*>(mainWindowPtr.get()->getCurrentDocument());
+    return mainWindowPtr.get()->getCurrentDocument();
 }
diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh
index d992f5e16fb576a9387c625c8b1f5533e6bf637f..757dcff18f8e029802675da3cff344b4147512a6 100644
--- a/src/VivyApplication.hh
+++ b/src/VivyApplication.hh
@@ -6,6 +6,9 @@
 
 #define vivyApp static_cast<VivyApplication *>(QApplication::instance())
 
+#define currentVivyDocument() dynamic_cast<VivyDocument*>(vivyApp->getCurrentDocument())
+#define currentScriptDocument dynamic_cast<ScriptDocument*>(vivyApp->getCurrentDocument())
+
 // Only support dark theme for now
 #define VIVY_ICON_APP     ":icons/vivy.png"
 #define VIVY_ICON_SCRIPT  ":icons/lua.png"
@@ -71,7 +74,7 @@ public:
 
     QFont getApplicationFont(Font) const noexcept;
     [[nodiscard("handle-it")]] MainWindow *getMainWindow() const;
-    [[nodiscard("handle-it")]] VivyDocument *getCurrentVivyDocument() const;
+    [[nodiscard("handle-it")]] AbstractDocument *getCurrentDocument() const;
     void setTheme(Theme) noexcept;
 };