Line data Source code
1 : -- lua/yoda/environment.lua
2 : -- Environment detection and notification for Yoda.nvim
3 :
4 1 : local M = {}
5 :
6 : -- ============================================================================
7 : -- Constants
8 : -- ============================================================================
9 :
10 1 : local NOTIFICATION_TIMEOUT_MS = 2000 -- Display environment notification for 2 seconds
11 :
12 : --- Show environment notification on startup
13 : --- Displays which mode Yoda is running in (Home/Work)
14 : M.show_notification = function()
15 7 : local yoda_config = vim.g.yoda_config
16 7 : if not (yoda_config and yoda_config.show_environment_notification) then
17 2 : return
18 : end
19 :
20 10 : vim.schedule(function()
21 8 : local env = vim.env.YODA_ENV or ""
22 4 : local env_label = "Unknown"
23 4 : local icon = ""
24 :
25 4 : if env == "home" then
26 3 : env_label = "Home"
27 3 : icon = ""
28 1 : elseif env == "work" then
29 1 : env_label = "Work"
30 1 : icon = ""
31 : end
32 :
33 4 : local msg = string.format("%s Yoda is in %s mode", icon, env_label)
34 4 : require("yoda-adapters.notification").notify(msg, "info", { title = "Yoda Environment", timeout = NOTIFICATION_TIMEOUT_MS })
35 9 : end)
36 6 : end
37 :
38 : --- Show local development notification on startup
39 : --- Displays when YODA_DEV_LOCAL is set
40 : M.show_local_dev_notification = function()
41 10 : if not vim.env.YODA_DEV_LOCAL then
42 1 : return
43 : end
44 :
45 8 : vim.schedule(function()
46 3 : local msg = " Local Development Mode Active"
47 3 : require("yoda-adapters.notification").notify(msg, "info", { title = "Yoda Development", timeout = NOTIFICATION_TIMEOUT_MS })
48 7 : end)
49 5 : end
50 :
51 : --- Get current environment mode
52 : --- @return string Environment mode (home/work/unknown)
53 : M.get_mode = function()
54 12 : local env = vim.env.YODA_ENV or ""
55 6 : if env == "home" or env == "work" then
56 2 : return env
57 : end
58 4 : return "unknown"
59 1 : end
60 :
61 1 : return M
|