mirror of
https://github.com/Myzel394/config-lsp.git
synced 2025-06-22 08:50:31 +02:00
38 lines
812 B
Go
38 lines
812 B
Go
package handlers
|
|
|
|
import (
|
|
"config-lsp/handlers/aliases/indexes"
|
|
|
|
protocol "github.com/tliron/glsp/protocol_3_16"
|
|
)
|
|
|
|
func RenameAlias(
|
|
i indexes.AliasesIndexes,
|
|
oldName string,
|
|
newName string,
|
|
) []protocol.TextEdit {
|
|
normalizedName := indexes.NormalizeKey(oldName)
|
|
definitionEntry := i.Keys[normalizedName]
|
|
occurrences := i.UserOccurrences[normalizedName]
|
|
|
|
changes := make([]protocol.TextEdit, 0, len(occurrences))
|
|
|
|
if definitionEntry != nil {
|
|
// Own rename
|
|
changes = append(changes, protocol.TextEdit{
|
|
Range: definitionEntry.Key.Location.ToLSPRange(),
|
|
NewText: newName,
|
|
})
|
|
}
|
|
|
|
// Other AliasValueUser occurrences
|
|
for _, value := range occurrences {
|
|
changes = append(changes, protocol.TextEdit{
|
|
Range: value.Location.ToLSPRange(),
|
|
NewText: newName,
|
|
})
|
|
}
|
|
|
|
return changes
|
|
}
|