summary refs log tree commit diff
path: root/.vim/lua/internal/plugins/writing.lua
blob: 4792697780f6be303f5d4ff5b4d6680d8bedd4a9 (plain) (blame)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
return {
  {
    'folke/zen-mode.nvim',
    cmd = { 'ZenMode' },
    opts = {
      window = {
        -- width = 0.9,
        -- height = 0.9,
        options = {
          cursorline = true,
        },
      },
      plugins = {
        options = {
          number = false,
          ruler = false,
          showcmd = false,
        },
        gitsigns = { enabled = false },
        twilight = { enabled = true },
      },
      on_open = function()
        vim.diagnostic.enable(false)
      end,
      on_close = function()
        vim.diagnostic.enable(true)
      end,
    },
    -- init = function()
    --   vim.api.nvim_create_autocmd({ 'BufWinEnter', 'BufWinLeave' }, {
    --     pattern = { '*.md' },
    --     command = [[ZenMode]],
    --   })
    -- end,
    dependencies = {
      {
        'folke/twilight.nvim',
        opts = {
          context = 24,
          dimming = {
            alpha = 0.5,
            color = { 'Normal', '#ffffff' },
          },
        },
      },
    },
  },
  {
    'tadmccorkle/markdown.nvim',
    ft = { 'markdown' },
    opts = {
      mappings = false,
    },
    config = function(_, opts)
      require('markdown').setup(opts)

      local set = vim.keymap.set
      set('n', '[[', [[<Plug>(markdown_go_prev_heading)]], { desc = 'md: previous heading' })
      set('n', ']]', [[<Plug>(markdown_go_next_heading)]], { desc = 'md: next heading' })
      set('n', '<s-tab>', [[:MDTaskToggle<cr>]], { desc = 'md: toggle task' })
      set('x', '<c-l>', [[<esc>gv<Plug>(markdown_add_link_visual)]], { desc = 'md: make link' })
      local toggle_emph = function(key)
        return [[<esc>gv<cmd>lua require('markdown.inline').toggle_emphasis_visual(']]
          .. key
          .. [[')<cr>]]
      end
      set('x', '<c-b>', toggle_emph('b'), { desc = 'md: make bold' })
      set('x', '<c-i>', toggle_emph('i'), { desc = 'md: make italic' })
      set('x', '<c-s>', toggle_emph('s'), { desc = 'md: make strikethrough' })
      set('x', '<c-c>', toggle_emph('c'), { desc = 'md: make code' })
    end,
  },
  {
    'MeanderingProgrammer/markdown.nvim',
    name = 'render-markdown', -- needed if used together with markdown.nvim above
    main = 'render-markdown',
    dependencies = {
      'nvim-treesitter/nvim-treesitter',
      'echasnovski/mini.icons',
    },
    ft = { 'markdown' },
    opts = {
      heading = {
        -- icons = { '❶  ', '❷  ', '❸  ', '❹  ', '❺  ', '❻  ' },
        icons = {
          ' ',
          ' ',
          ' ',
          ' ',
          ' ',
          ' ',
        },
        signs = { 'ⅰ', 'ⅱ', 'ⅲ', 'ⅳ', 'ⅴ', 'ⅵ' },
      },
      bullet = {
        icons = { '∙', '∘', '⋅', '⋄' },
      },
      checkbox = {
        checked = { icon = '󰄲 ' },
        unchecked = { icon = '󰄱 ' },
        custom = {
          todo = { raw = '[-]', rendered = '󰔟 ', highlight = 'RenderMarkdownTodo' },
        },
      },
    },
    init = vim.schedule_wrap(function()
      vim.api.nvim_set_hl(0, 'RenderMarkdownH1Bg', { bg = 'NvimDarkBlue' })
      vim.api.nvim_set_hl(0, 'RenderMarkdownH1Fg', { fg = 'NvimLightBlue' })

      vim.api.nvim_set_hl(0, 'RenderMarkdownH2Bg', { bg = 'NvimDarkMagenta' })
      vim.api.nvim_set_hl(0, 'RenderMarkdownH2Fg', { fg = 'NvimLightMagenta' })

      vim.api.nvim_set_hl(0, 'RenderMarkdownH3Bg', { bg = 'NvimDarkYellow' })
      vim.api.nvim_set_hl(0, 'RenderMarkdownH3Fg', { fg = 'NvimLightYellow' })

      vim.api.nvim_set_hl(0, 'RenderMarkdownH4Bg', { bg = 'NvimDarkCyan' })
      vim.api.nvim_set_hl(0, 'RenderMarkdownH4Fg', { fg = 'NvimLightCyan' })

      vim.api.nvim_set_hl(0, 'RenderMarkdownH6Bg', { bg = 'NvimDarkRed' })
      vim.api.nvim_set_hl(0, 'RenderMarkdownH6Fg', { fg = 'NvimLightRed' })
    end),
  },
}