mirror of
https://github.com/jiriks74/presence.nvim
synced 2024-12-30 20:02:05 +01:00
Use workspace text option when no project is detected
This commit is contained in:
parent
0537801065
commit
9162582eb6
2 changed files with 17 additions and 5 deletions
|
@ -30,8 +30,8 @@ Require the plugin and call `setup` with a config table with any of the followin
|
||||||
Presence = require("presence"):setup({
|
Presence = require("presence"):setup({
|
||||||
-- This config table shows all available config options with their default values
|
-- This config table shows all available config options with their default values
|
||||||
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua Presence:update()`)
|
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua Presence:update()`)
|
||||||
editing_text = "Editing %s", -- Editing format string (either string or function(filename, path): string)
|
editing_text = "Editing %s", -- Editing format string (either string or function(filename: string|nil, buffer: string): string)
|
||||||
workspace_text = "Working on %s", -- Workspace format string (either string or function(project_name, path): string)
|
workspace_text = "Working on %s", -- Workspace format string (either string or function(git_project_name: string|nil, buffer: string): string)
|
||||||
neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image
|
neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image
|
||||||
main_image = "neovim", -- Main image display (either "neovim" or "file")
|
main_image = "neovim", -- Main image display (either "neovim" or "file")
|
||||||
client_id = "793271441293967371", -- Use your own Discord application client id (not recommended)
|
client_id = "793271441293967371", -- Use your own Discord application client id (not recommended)
|
||||||
|
|
|
@ -350,18 +350,30 @@ function Presence:update_for_buffer(buffer)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Include project details if available
|
local workspace_text = self.options.workspace_text
|
||||||
local project_name = self:get_project_name(parent_dirpath)
|
local project_name = self:get_project_name(parent_dirpath)
|
||||||
|
|
||||||
|
-- Include project details if available
|
||||||
if project_name then
|
if project_name then
|
||||||
self.log:debug(string.format("Detected project: %s", project_name))
|
self.log:debug(string.format("Detected project: %s", project_name))
|
||||||
|
|
||||||
local workspace_text = self.options.workspace_text
|
|
||||||
activity.details = type(workspace_text) == "function"
|
activity.details = type(workspace_text) == "function"
|
||||||
and workspace_text(project_name, buffer)
|
and workspace_text(project_name, buffer)
|
||||||
or string.format(workspace_text, project_name)
|
or string.format(workspace_text, project_name)
|
||||||
|
|
||||||
else
|
else
|
||||||
self.log:debug("No project detected")
|
self.log:debug("No project detected")
|
||||||
|
|
||||||
|
-- When no project is detected, set custom workspace text if:
|
||||||
|
-- * The custom function returns custom workspace text
|
||||||
|
-- * The configured workspace text does not contain a directive
|
||||||
|
if type(workspace_text) == "function" then
|
||||||
|
local custom_workspace_text = workspace_text(nil, buffer)
|
||||||
|
if custom_workspace_text then
|
||||||
|
activity.details = custom_workspace_text
|
||||||
|
end
|
||||||
|
elseif not workspace_text:find("%s") then
|
||||||
|
activity.details = workspace_text
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.discord:set_activity(activity, function(err)
|
self.discord:set_activity(activity, function(err)
|
||||||
|
|
Loading…
Reference in a new issue