๐Ÿ’ YAML toolkit for Neovim users

Add safety to get_value, is_sequence_block on nil values

Support for returning an empty value instead of crashing when the value
is nil

This helps when working on in-progress yaml files while the winbar is
activated

+13 -8
+13 -8
lua/yaml_nvim/pair.lua
··· 28 28 local function get_value(node, bufnr) 29 29 while node ~= nil do 30 30 if node:type() == "block_mapping_pair" then 31 - local value = node:field("value")[1] 32 - return table.concat({ vim.treesitter.get_node_text(value, bufnr) }, "\n") 31 + if node:field("value")[1] ~= nil then 32 + local value = node:field("value")[1] 33 + return table.concat({ vim.treesitter.get_node_text(value, bufnr) }, "\n") 34 + end 33 35 end 34 - 35 36 node = node:parent() 36 37 end 37 38 end 38 39 39 40 local function is_sequence_block(value) 40 - if value:type() ~= "block_node" then 41 - return false 42 - end 41 + if value then 42 + if value:type() ~= "block_node" then 43 + return false 44 + end 43 45 44 - for block_sequence, _ in value:iter_children() do 45 - return block_sequence:type() == "block_sequence" 46 + for block_sequence, _ in value:iter_children() do 47 + return block_sequence:type() == "block_sequence" 48 + end 49 + else 50 + return false 46 51 end 47 52 end 48 53