summaryrefslogtreecommitdiff
path: root/lua/talha/functions.lua
blob: 97245419ebdc3b21c4bafec340875246b6e94997 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
local Path = require"plenary.path"

function FormatFile()
  local filename = vim.api.nvim_buf_get_name(0)
  vim.cmd(":silent !autopep8 -i " .. filename)
  vim.cmd(":silent !isort " .. filename)
end

function CreateDailyNote()
    local file_path = vim.api.nvim_buf_get_name(0)
    local dir_path = file_path
    local path_obj = Path:new(file_path)

    if path_obj:is_file() == true then
        path_obj = path_obj:parent()    -- get the parent directory
        dir_path = path_obj:_fs_filename()
    end

    local today_date_fmt = os.date('%Y-%m-%d')
    local daily_note_file_name = today_date_fmt .. '.md'
    local daily_note_file_obj = path_obj:joinpath(daily_note_file_name)

    local template_file_name = '.daily-notes-template.md'
    local template_file_obj = path_obj:joinpath(template_file_name)

    local status = template_file_obj:copy({destination=daily_note_file_obj})

    -- check if operation was a success
    if status[daily_note_file_obj] == false then
        print('Error! failed to create daily note')
        print([[Possible Causes:
        1. No `.daily-notes-template.md` found
        2. Something went wrong with copy, in which case check nvim config]])
        return
    end

    vim.cmd('e ' .. daily_note_file_obj:_fs_filename())
end

local function _ReloadConfigsInPath(path_selector)
    local config_paths = vim.fn.glob(path_selector, true, true)

    for _, filepath in ipairs(config_paths) do
        dofile(filepath)
    end
end

function ReloadLuaConfig()
    for name,_ in pairs(package.loaded) do
        if name:match('^linux') then
            package.loaded[name] = nil
        end
    end

    -- Reload init/ directory
    local lua_path_selector = vim.fn.stdpath('config') .. '/lua/**/*.lua'
    _ReloadConfigsInPath(lua_path_selector)

    -- local after_path_selector = vim.fn.stdpath('config') .. '/after/**/*.lua'
    _ReloadConfigsInPath(after_path_selector)

    print('Nvim configurations reloaded')
end

function ToggleSpellCheck()
    vim.opt.spell = not(vim.opt.spell:get())
    vim.opt.spelllang = 'en_us'
end

function SetFocusColors(mode)
  vim.o.background = "light"
  vim.opt.cursorline = false
  vim.cmd("colorscheme vscode")
end

function GetHomeDir()
  -- for linux/mac
  local home = os.getenv("HOME")
  -- for windows
  local user_profile = os.getenv("UserProfile")

  if home ~= nil then
    return home
  elseif user_profile ~= nil then
    return user_profile
  end
  return nil
end