summaryrefslogtreecommitdiff
path: root/argv.proto
blob: 8f3a558fcd0d086f6d7478419f8e5d856aeb9227 (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
34
35
36
37
38
39
40
41
42
// Copyright 2025 WIT.COM Inc Licensed GPL 3.0

syntax = "proto3";

package argvpb;

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

message App {
        string                      APPNAME       = 1;
        string                      VERSION       = 2;
        string                      BUILDTIME     = 3;
}

message Argv {                                          // `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             real          = 7;  // what is really sent to the application
        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
        bool                        fast          = 16; // was the user fast last time?
        string                      fastcmd       = 17; // what subcommand was the user fast on?
        App                         app           = 18;
}

message Argvs {                                         // `autogenpb:marshal` `autogenpb:sort` `autogenpb:nomutex`
        string                      uuid          = 1;  // `autogenpb:uuid:1e6e765c-0c77-4c81-a622-0d819bfcce9a`
        string                      version       = 2;  // `autogenpb:version:v0.0.3`
        repeated Argv               argvs         = 3;
        string                      filename      = 4;  // `autogenpb:save` -- this enables autogenerated pb.Load() and pb.Save()
}