diff options
| author | Ariel D'Alessandro <ariel.dalessandro@auto1.com> | 2022-03-18 16:03:59 +0100 |
|---|---|---|
| committer | Ariel D'Alessandro <ariel.dalessandro@auto1.com> | 2022-03-18 16:03:59 +0100 |
| commit | 86f114da90e46e588a5e0a193b6f33e49417c82e (patch) | |
| tree | 599e56742b5735b8e58a7200cfd5d832f67caf65 /lua/alpha/scratchs/draft.lua | |
| parent | d23640a29181e5ee7efae42278bb9929bb8bcdbf (diff) | |
| download | nvim-conf-86f114da90e46e588a5e0a193b6f33e49417c82e.tar.gz nvim-conf-86f114da90e46e588a5e0a193b6f33e49417c82e.zip | |
add draft packer compiled
Diffstat (limited to 'lua/alpha/scratchs/draft.lua')
| -rw-r--r-- | lua/alpha/scratchs/draft.lua | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/lua/alpha/scratchs/draft.lua b/lua/alpha/scratchs/draft.lua index bc0568e..225a64d 100644 --- a/lua/alpha/scratchs/draft.lua +++ b/lua/alpha/scratchs/draft.lua @@ -13,3 +13,59 @@ function GlobalFunction() vim.lsp.util.apply_text_edits(textEdit, bufnr) end) end + +local ts_locals = require "nvim-treesitter.locals" +local ts_utils = require "nvim-treesitter.ts_utils" + +local get_node_text = vim.treesitter.get_node_text + + +local function get_root_node() + local node = ts_utils.get_node_at_cursor() + if node == nil then + error("No treesitter parser found.") + end + + local parent = node:parent() + while (parent ~= nil) do + node = parent + parent = node:parent() + end + + return node +end + +-- this function allows me to retrieve all the queries or mutations +-- from the yaml file +-- next integrate with telescope to quick search +-- actions, go to the file line +-- new action open the php class on the method (lsp maybe, but the problem is not attached) +function Queries() + vim.treesitter.set_query( + "yaml", + "GraphQL_endpoints", + [[ +( + (document + (block_node +(block_mapping +(block_mapping_pair + value: (block_node +(block_mapping (block_mapping_pair + value: (block_node +(block_mapping (block_mapping_pair + value: (block_node + (block_mapping (block_mapping_pair key: (flow_node) @name)) +)))))))))) + ) +) + ]] + ) + + local query = vim.treesitter.get_query("yaml", "GraphQL_endpoints") + + local rootNode = get_root_node() + for _, node in query:iter_captures(rootNode, 0, rootNode:start(), rootNode:end_()) do + P(get_node_text(node, 0)) + end +end |