summaryrefslogtreecommitdiff
path: root/auto.proto
blob: 1774cd4ce13b660669559dc2481f7ad53edb2520 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright 2025 WIT.COM Inc Licensed GPL 3.0

syntax = "proto3";

package httppb;

import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp
import "google/protobuf/duration.proto"; // for duration

message Auto {                                          // `autogenpb:marshal` `autogenpb:sort` `autogenpb:nomutex`
        google.protobuf.Timestamp   ctime         = 1;  // when the user tried this autocomplete
        google.protobuf.Duration    duration      = 2;  // time since the last autocomplete
        string                      argname       = 3;  // what the shell thinks the name of the executable is
        string                      arg0          = 4;  // what os.Exec() has as os.Argv[0]   // not interesting
        string                      arg1          = 5;  // should always be "--auto-complete" // not interesting
        string                      arg3          = 6;  // usually argv3 == argv0
        repeated string             argv          = 7;  // use this to store whatever you want while the whole POST happens
        string                      cmd           = 8;  // the cmd being processed. For "git pull <tab>", cmd would be "pull"
        string                      partial       = 9;  // set to the partial string trying to be matched
        bool                        isAuto        = 10; // is true if '--auto-complete' is set
        bool                        setupAuto     = 11; // is true if '--bash' is set // setup bash autocomplete here
        bool                        debug         = 12; // print debugging info if true
        bool                        newline       = 13; // was a newline was sent to STDERR?
        string                      last          = 14; // the last arg
        repeated string             goargs        = 15; // what to send to alex flint's go-args for help
}

message Autos {                                         // `autogenpb:marshal` `autogenpb:sort` `autogenpb:nomutex`
        string                      uuid          = 1;  // `autogenpb:uuid:94210ebf-a534-4b33-aadd-2f5e1f56ae38`
        string                      version       = 2;  // `autogenpb:version:v0.0.1`
        repeated Auto               autos         = 3;
        string                      filename      = 4;  // `autogenpb:save` -- this enables autogenerated pb.Load() and pb.Save()
}