summary refs log tree commit diff
path: root/.vim/lua/internal/plugins/writing.lua
blob: 8f207b7fad61e956fa663aca8f3231a274201509 (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
return {
  {
    -- DESC: handy markdown commands
    'tadmccorkle/markdown.nvim',
    ft = { 'markdown' },
    opts = {
      mappings = false,
      on_attach = function(buf)
        vim.keymap.set('n', 'nl', '<cmd>MDListItemBelow<cr>', { buffer = buf })
        vim.keymap.set('n', 'nl', '<cmd>MDListItemAbove<cr>', { buffer = buf })
        vim.keymap.set('n', '<m-x>', '<cmd>MDTaskToggle<cr>', { buffer = buf })
        vim.keymap.set('x', '<m-x>', '<cmd>MDTaskToggle<cr>', { buffer = buf })
        vim.keymap.set('x', '<m-l>', '<esc>gv<plug>(markdown_add_link_visual)', { buffer = buf })
      end,
    },
  },
  {
    -- DESC: pretty print markdown
    '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 = {
      completions = { blink = { enabled = true } },
      sign = { enabled = false },
      heading = {
        width = 'block',
        -- 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 = 'NvimDarkCyan' })
      vim.api.nvim_set_hl(0, 'RenderMarkdownH1Fg', { fg = 'NvimLightCyan' })

      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 = 'NvimDarkBlue' })
      vim.api.nvim_set_hl(0, 'RenderMarkdownH4Fg', { fg = 'NvimLightBlue' })

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

      vim.api.nvim_set_hl(0, '@markup.bold', { link = 'markdownBold' })
      vim.api.nvim_set_hl(0, '@markup.italic', { link = 'markdownItalic' })
    end),
  },
  {
    'folke/zen-mode.nvim',
    cmd = { 'ZenMode' },
    opts = {
      window = {
        height = 1,
        options = {
          number = false,
          cursorline = false,
        },
      },
      plugins = {
        options = {
          ruler = false,
          showcmd = false,
          laststatus = 0,
        },
        gitsigns = { enabled = false },
        twilight = { enabled = true },
      },
      on_open = function()
        vim.diagnostic.enable(false)
        require('render-markdown').buf_disable()
      end,
      on_close = function()
        vim.diagnostic.enable(true)
        require('render-markdown').buf_enable()
      end,
    },
    dependencies = {
      {
        'folke/twilight.nvim',
        cmd = { 'Twilight' },
        opts = {
          context = 24,
          dimming = {
            alpha = 0.3,
            color = { 'Normal', '#ffffff' },
          },
        },
      },
    },
  },
}