summary refs log tree commit diff
path: root/.vim/lua/internal/plugins/writing.lua
diff options
context:
space:
mode:
Diffstat (limited to '.vim/lua/internal/plugins/writing.lua')
-rw-r--r--.vim/lua/internal/plugins/writing.lua142
1 files changed, 68 insertions, 74 deletions
diff --git a/.vim/lua/internal/plugins/writing.lua b/.vim/lua/internal/plugins/writing.lua
index 4792697..8f207b7 100644
--- a/.vim/lua/internal/plugins/writing.lua
+++ b/.vim/lua/internal/plugins/writing.lua
@@ -1,76 +1,21 @@
 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' },
-          },
-        },
-      },
-    },
-  },
-  {
+    -- 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,
     },
-    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,
   },
   {
+    -- DESC: pretty print markdown
     'MeanderingProgrammer/markdown.nvim',
     name = 'render-markdown', -- needed if used together with markdown.nvim above
     main = 'render-markdown',
@@ -80,15 +25,18 @@ return {
     },
     ft = { 'markdown' },
     opts = {
+      completions = { blink = { enabled = true } },
+      sign = { enabled = false },
       heading = {
+        width = 'block',
         -- icons = { '❶  ', '❷  ', '❸  ', '❹  ', '❺  ', '❻  ' },
         icons = {
-          ' ',
-          ' ',
-          ' ',
-          ' ',
-          ' ',
-          ' ',
+          '▒ ',
+          '▒▒ ',
+          '▒▒▒ ',
+          '▒▒▒▒ ',
+          '▒▒▒▒▒ ',
+          '▒▒▒▒▒▒ ',
         },
         signs = { 'ⅰ', 'ⅱ', 'ⅲ', 'ⅳ', 'ⅴ', 'ⅵ' },
       },
@@ -104,8 +52,8 @@ return {
       },
     },
     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, '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' })
@@ -113,11 +61,57 @@ return {
       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, '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' },
+          },
+        },
+      },
+    },
+  },
 }