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.