summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/src/resources/find.ts
blob: 13062c426e5b02dd9683b2f49082d7e5163581d4 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

import { APIResource } from '../core/resource';
import { APIPromise } from '../core/api-promise';
import { RequestOptions } from '../internal/request-options';

export class Find extends APIResource {
  /**
   * Find files
   */
  files(query: FindFilesParams, options?: RequestOptions): APIPromise<FindFilesResponse> {
    return this._client.get('/find/file', { query, ...options });
  }

  /**
   * Find workspace symbols
   */
  symbols(query: FindSymbolsParams, options?: RequestOptions): APIPromise<FindSymbolsResponse> {
    return this._client.get('/find/symbol', { query, ...options });
  }

  /**
   * Find text in files
   */
  text(query: FindTextParams, options?: RequestOptions): APIPromise<FindTextResponse> {
    return this._client.get('/find', { query, ...options });
  }
}

export interface Match {
  absolute_offset: number;

  line_number: number;

  lines: Match.Lines;

  path: Match.Path;

  submatches: Array<Match.Submatch>;
}

export namespace Match {
  export interface Lines {
    text: string;
  }

  export interface Path {
    text: string;
  }

  export interface Submatch {
    end: number;

    match: Submatch.Match;

    start: number;
  }

  export namespace Submatch {
    export interface Match {
      text: string;
    }
  }
}

export interface Symbol {
  kind: number;

  location: Symbol.Location;

  name: string;
}

export namespace Symbol {
  export interface Location {
    range: Location.Range;

    uri: string;
  }

  export namespace Location {
    export interface Range {
      end: Range.End;

      start: Range.Start;
    }

    export namespace Range {
      export interface End {
        character: number;

        line: number;
      }

      export interface Start {
        character: number;

        line: number;
      }
    }
  }
}

export type FindFilesResponse = Array<string>;

export type FindSymbolsResponse = Array<Symbol>;

export type FindTextResponse = Array<Match>;

export interface FindFilesParams {
  query: string;
}

export interface FindSymbolsParams {
  query: string;
}

export interface FindTextParams {
  pattern: string;
}

export declare namespace Find {
  export {
    type Match as Match,
    type Symbol as Symbol,
    type FindFilesResponse as FindFilesResponse,
    type FindSymbolsResponse as FindSymbolsResponse,
    type FindTextResponse as FindTextResponse,
    type FindFilesParams as FindFilesParams,
    type FindSymbolsParams as FindSymbolsParams,
    type FindTextParams as FindTextParams,
  };
}