Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Lua API to get the status of treesitter context #408

Open
UtkarshVerma opened this issue Feb 25, 2024 · 2 comments
Open

feat: Lua API to get the status of treesitter context #408

UtkarshVerma opened this issue Feb 25, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@UtkarshVerma
Copy link

Currently, there's no Lua API for knowing whether the plugin is enabled. I have to get the upvalue for tsc.toggle to query this.

-- Get up value for {func}'s {name} variable.
---@generic T
---@param func fun(...):T
---@param name string
---@return unknown?
---@nodiscard
function M.get_upvalue(func, name)
  local i = 1

  while true do
    local n, v = debug.getupvalue(func, i)
    if n == nil then
      return nil
    end

    if n == name then
      return v
    end

    i = i + 1
  end
end


local function toggle_context()
          local util = require("util")
          local tsc = require("treesitter-context")
          tsc.toggle()

          if util.get_upvalue(tsc.toggle, "enabled") then
            util.log.info("Enabled treesitter context", "Option")
          else
            util.log.warn("Disabled treesitter context", "Option")
          end
end

Having a function like tsc.status() would be really helpful.

@lewis6991 lewis6991 added the enhancement New feature or request label Jul 5, 2024
@lewis6991
Copy link
Member

Why do you need to know if the plugin is enabled?

@UtkarshVerma
Copy link
Author

I wanted to show a UI message based on whether the context was enabled or not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants