github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/tools/oracle/TODO (about) 1 2 3 ORACLE TODO 4 =========== 5 6 General 7 ======= 8 9 Save unsaved editor buffers into an archive and provide that to the 10 tools, which should act as if they were saved. 11 12 Include complete pos/end information Serial output. 13 But beware that sometimes a single token (e.g. +) is more helpful 14 than the pos/end of the containing expression (e.g. x \n + \n y). 15 16 Specific queries 17 ================ 18 19 callers, callees 20 21 Use a type-based (e.g. RTA) callgraph when a callers/callees query is 22 outside the analysis scope. 23 24 implements 25 26 Make it require that the selection is a type, and show only the 27 implements relation as it applies to that type. 28 29 definition, referrers 30 31 definition: Make it work with qualified identifiers (SelectorExpr) too. 32 33 references: Make it work on things that are implicit idents, like 34 import specs, perhaps? 35 36 what 37 38 Report def/ref info if available. 39 Editors could use it to highlight all idents of the same local var. 40 41 More tests. 42 43 pointsto 44 45 When invoked on a function Ident, we get an error. 46 47 When invoked on a named return parameter, we get an error. 48 49 describe 50 51 When invoked on a var, we want to see the type and its methods. 52 53 Split "show type" and "describe syntax" into separate commands? 54 55 peers 56 57 Permit querying from a makechan, for...range, or reflective op. 58 59 Report aliasing reflect.{Send,Recv,Close} and close() operations. 60 61 New queries 62 63 "updaters": show all statements that may update the selected lvalue 64 (local, global, field, etc). 65 66 "creators": show all places where an object of type T is created 67 (&T{}, var t T, new(T), new(struct{array [3]T}), etc. 68 (Useful for datatypes whose zero value is not safe) 69 70 71 Editor-specific 72 =============== 73 74 Add support for "what" to .el; clean up. 75 76 Emacs: use JSON to get the raw information from the oracle. Don't 77 open an editor buffer for simpler queries, just jump to the result 78 and/or display it in the modeline. 79 80 Emacs: go-root-and-paths depends on the current buffer, so be sure to 81 call it from within the source file, not the *go-oracle* buffer: 82 the user may have switched workspaces and the oracle should run in 83 the new one.