in internal/langserver/handlers/command/aztfmigrate_command.go [350:396]
func reportProgress(ctx context.Context, message string, percentage uint32) {
clientCaller, err := context2.ClientCaller(ctx)
if err != nil {
log.Printf("[ERROR] failed to get client caller: %+v", err)
return
}
clientNotifier, err := context2.ClientNotifier(ctx)
if err != nil {
log.Printf("[ERROR] failed to get client notifier: %+v", err)
return
}
switch percentage {
case 0:
_, _ = clientCaller.Callback(ctx, "window/workDoneProgress/create", lsp.WorkDoneProgressCreateParams{
Token: "aztfmigrate",
})
_ = clientNotifier.Notify(ctx, "$/progress", map[string]interface{}{
"token": "aztfmigrate",
"value": lsp.WorkDoneProgressBegin{
Kind: "begin",
Title: "Azure providers migration",
Cancellable: false,
Message: message,
Percentage: 0,
},
})
case 100:
_ = clientNotifier.Notify(ctx, "$/progress", map[string]interface{}{
"token": "aztfmigrate",
"value": lsp.WorkDoneProgressEnd{
Kind: "end",
Message: message,
},
})
default:
_ = clientNotifier.Notify(ctx, "$/progress", map[string]interface{}{
"token": "aztfmigrate",
"value": lsp.WorkDoneProgressReport{
Kind: "report",
Cancellable: false,
Message: message,
Percentage: percentage,
},
})
}
}