orbitalquark / textadept-lsp

Language server protocol client module for Textadept.
MIT License
28 stars 9 forks source link

Return `find_references` results to caller #5

Open metaleap opened 2 years ago

metaleap commented 2 years ago

This is so that users can optionally hook up another handling than ui._print to find_references results, yet the change is non-breaking. (So plain old normal lsp.find_references() calls see no change in behavior.)

(If you're curious, with this PR accepted, then in my case I'd later implement in my init.lua a ui.dialogs.filteredlist-based handling of find_references results. =)

orbitalquark commented 2 years ago

Thanks for the suggestion. I'm not sure how I feel about exposing implementation-specific details to user scripts. In this case, find_references() would be returning a table (or nil) of locations, which are composed of uri and then range tables with its own structure. I know these structures are documented in the LSP and probably will not change, but it doesn't feel right to forward that to the user. I think perhaps having a module option (e.g. find_references_dialog = true) and then changing the function to either print or show a filteredlist dialog is a better way to go about this. I'm not sure how you'd display the results in the filteredlist dialog though, especially when it comes to searching. Do you have any ideas?