Skip to content

Function reference not counted in codelens when on same line as definition #1889

Description

@fflaten

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

Create a function and invoke it on the same line. See image.

Expected behavior

Invocation is counted in codelens

Actual behavior

Invocation isn't counted in codelense.
Go to reference detects the invocation as expected.

Error details

No response

Environment data

Name                           Value
----                           -----
PSVersion                      7.2.6
PSEdition                      Core
GitCommitId                    7.2.6
OS                             Microsoft Windows 10.0.22000
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Version

2022.8.2 preview

Visuals

image

This issue also means this will show 2 references in code lense because it counts the function-name in definition itself:

function
funcNewline {
    'hello'
}

funcNewline

Activity

  1. ghost added
    Needs: TriageMaintainer attention needed!
    on Aug 14, 2022
  2. fflaten commented on Aug 15, 2022

    @fflaten
    ContributorAuthor

    Problem is here where it only compares file and startline.

    private static bool IsReferenceDefinition(
    SymbolReference definition,
    SymbolReference reference)
    {
    // First check if we are in the same file as the definition. if we are...
    // check if it's on the same line number.
    // TODO: Do we care about two symbol definitions of the same name?
    // if we do, how could we possibly know that a reference in one file is a reference
    // of a particular symbol definition?
    return
    definition.FilePath == reference.FilePath &&
    definition.ScriptRegion.StartLineNumber == reference.ScriptRegion.StartLineNumber;
    }

    Suggestions

    1. Compare reference startcolumn not equal

    2. Add SymbolType.Command for CommandAst or more generic, extend SymbolReference with something like IsDefinition. The new prop or type would be applied here to identify that the commandsAst are references only. FindReferencesVisitor.VisitCommand(CommandAst)?

  3. andyleejordan commented on Feb 2, 2023

    @andyleejordan
    Member

    I think fixed by #1984

  4. deleted a comment from on Feb 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions