Skip to content

Commit

Permalink
DEV2-2022 use new api version 4.4.223 (#1016)
Browse files Browse the repository at this point in the history
  • Loading branch information
yonip23 authored Jan 25, 2023
1 parent 3e5c1f3 commit 854e303
Show file tree
Hide file tree
Showing 14 changed files with 60 additions and 54 deletions.
3 changes: 1 addition & 2 deletions src/CompletionArguments.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import { Position } from "vscode";
import { ResultEntry, SnippetContext } from "./binary/requests/requests";
import { ResultEntry } from "./binary/requests/requests";
import { SuggestionTrigger } from "./globals/consts";

export type CompletionArguments = {
currentCompletion: string;
completions: ResultEntry[];
position: Position;
limited: boolean;
snippetContext?: SnippetContext;
oldPrefix?: string;
suggestionTrigger?: SuggestionTrigger;
};
33 changes: 18 additions & 15 deletions src/binary/requests/requests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,6 @@ export enum CompletionKind {
Snippet = "Snippet",
}

export type ResultEntry = {
new_prefix: string;
old_suffix: string;
new_suffix: string;

kind?: vscode.CompletionItemKind;
origin?: CompletionOrigin;
detail?: string;
documentation?: string | MarkdownStringSpec;
deprecated?: boolean;
completion_kind?: CompletionKind;
is_cached?: boolean;
};

enum UserIntent {
Comment,
Block,
Expand All @@ -53,12 +39,29 @@ export interface SnippetContext extends Record<string, unknown> {
intent_metadata?: SnippetIntentMetadata;
}

export type CompletionMetadata = {
kind?: vscode.CompletionItemKind;
origin?: CompletionOrigin;
detail?: string;
documentation?: string | MarkdownStringSpec;
deprecated?: boolean;
completion_kind?: CompletionKind;
is_cached?: boolean;
snippet_context?: SnippetContext;
};

export type ResultEntry = {
new_prefix: string;
old_suffix: string;
new_suffix: string;
completion_metadata?: CompletionMetadata;
};

export type AutocompleteResult = {
old_prefix: string;
results: ResultEntry[];
user_message: string[];
is_locked: boolean;
snippet_context?: SnippetContext;
};

export function initBinary(): Promise<void> {
Expand Down
6 changes: 2 additions & 4 deletions src/binary/requests/suggestionShown.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import CompletionOrigin from "../../CompletionOrigin";
import { CompletionKind, tabNineProcess } from "./requests";
import { CompletionMetadata, tabNineProcess } from "./requests";

export interface SuggestionShown {
SuggestionShown: {
origin: CompletionOrigin;
net_length: number;
completion_kind?: CompletionKind;
filename: string;
metadata?: CompletionMetadata;
};
}

Expand Down
2 changes: 1 addition & 1 deletion src/getAutoImportCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default function getAutoImportCommand(
completions: response?.results,
position,
limited: response?.is_locked,
snippetContext: response?.snippet_context,
snippetContext: result.completion_metadata?.snippet_context,
oldPrefix: response?.old_prefix,
suggestionTrigger,
},
Expand Down
6 changes: 3 additions & 3 deletions src/getInlineCompletionItems.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ export default async function getInlineCompletionItems(
position,
SuggestionTrigger.DocumentChanged
),
result.completion_kind,
result.is_cached,
response.snippet_context
result.completion_metadata?.completion_kind,
result.completion_metadata?.is_cached,
result.completion_metadata?.snippet_context
)
);

Expand Down
2 changes: 1 addition & 1 deletion src/globals/consts.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import isCloudEnv from "../cloudEnvs/isCloudEnv";

export const TABNINE_URL_QUERY_PARAM = "tabnineUrl";
export const API_VERSION = "4.4.71";
export const API_VERSION = "4.4.223";
export const BINARY_UPDATE_URL = "https://update.tabnine.com/bundles";
export const BINARY_UPDATE_VERSION_FILE_URL = `${BINARY_UPDATE_URL}/version`;
export const ATTRIBUTION_BRAND = "⌬ ";
Expand Down
2 changes: 1 addition & 1 deletion src/inlineSuggestions/hoverPopup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ function tryGetAlphaDebugContent(): string | null {
if (isCapabilityEnabled(Capability.ALPHA_CAPABILITY)) {
// eslint-disable-next-line @typescript-eslint/naming-convention
const { completion_kind = "none", origin = "none" } =
getCurrentSuggestion() ?? {};
getCurrentSuggestion()?.completion_metadata ?? {};
return `context - origin: ${origin} - kind: ${completion_kind}`;
}
return null;
Expand Down
3 changes: 2 additions & 1 deletion src/inlineSuggestions/setInlineSuggestion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,8 @@ async function showInlineDecoration(
position: Position,
suggestion: string
): Promise<void> {
const currentCompletionKind = getCurrentSuggestion()?.completion_kind;
const currentCompletionKind = getCurrentSuggestion()?.completion_metadata
?.completion_kind;
const decorations =
currentCompletionKind === CompletionKind.Snippet
? await getSnippetDecorations(position, suggestion)
Expand Down
6 changes: 3 additions & 3 deletions src/lookAheadSuggestion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ export async function getLookAheadSuggestion(
position,
SuggestionTrigger.LookAhead
),
result.completion_kind,
result.is_cached,
response.snippet_context
result.completion_metadata?.completion_kind,
result.completion_metadata?.is_cached,
result.completion_metadata?.snippet_context
);

currentLookAheadSuggestion = completion;
Expand Down
16 changes: 12 additions & 4 deletions src/provideCompletionItems.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ function makeCompletionItem(args: {

item.filterText = args.entry.new_prefix;
item.preselect = args.index === 0;
item.kind = args.entry.kind;
item.kind = args.entry.completion_metadata?.kind;
item.range = new vscode.Range(
args.position.translate(0, -args.oldPrefix.length),
args.position.translate(0, args.entry.old_suffix.length)
Expand Down Expand Up @@ -127,8 +127,10 @@ function makeCompletionItem(args: {
.appendText(escapeTabStopSign(args.entry.new_suffix));
}

if (args.entry.documentation) {
item.documentation = formatDocumentation(args.entry.documentation);
if (args.entry.completion_metadata?.documentation) {
item.documentation = formatDocumentation(
args.entry.completion_metadata?.documentation
);
}

return item;
Expand Down Expand Up @@ -205,7 +207,13 @@ function showFew(
document: vscode.TextDocument,
position: vscode.Position
): boolean {
if (response.results.some((entry) => entry.kind || entry.documentation)) {
if (
response.results.some(
(entry) =>
entry.completion_metadata?.kind ||
entry.completion_metadata?.documentation
)
) {
return false;
}

Expand Down
4 changes: 1 addition & 3 deletions src/reportSuggestionShown.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import * as vscode from "vscode";
import TabnineInlineCompletionItem from "./inlineSuggestions/tabnineInlineCompletionItem";
import suggestionShown from "./binary/requests/suggestionShown";
import CompletionOrigin from "./CompletionOrigin";
import { ResultEntry } from "./binary/requests/requests";

let lastShownSuggestion: ResultEntry | undefined | null;
Expand All @@ -15,10 +14,9 @@ export default function reportSuggestionShown(
if (item && !lastShownSuggestion?.new_prefix.endsWith(item.new_prefix)) {
void suggestionShown({
SuggestionShown: {
origin: item.origin ?? CompletionOrigin.UNKNOWN,
net_length: item.new_prefix.length,
completion_kind: item.completion_kind,
filename: document.fileName,
metadata: item.completion_metadata,
},
});
}
Expand Down
20 changes: 8 additions & 12 deletions src/selectionHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
DELAY_FOR_CODE_ACTION_PROVIDER,
SuggestionTrigger,
} from "./globals/consts";
import { ResultEntry, SnippetContext } from "./binary/requests/requests";
import { ResultEntry } from "./binary/requests/requests";
import setState, {
SelectionStateRequest,
SetStateSuggestion,
Expand Down Expand Up @@ -45,7 +45,6 @@ export function getSelectionHandler(
completions,
position,
limited,
snippetContext,
oldPrefix,
suggestionTrigger,
}: CompletionArguments
Expand All @@ -58,7 +57,6 @@ export function getSelectionHandler(
limited,
editor,
oldPrefix,
snippetContext,
suggestionTrigger
);

Expand All @@ -80,7 +78,6 @@ export function getSelectionHandler(
limited: boolean,
editor: TextEditor,
oldPrefix?: string,
snippetContext?: SnippetContext,
suggestionTrigger?: SuggestionTrigger
) {
if (position && completions?.length) {
Expand All @@ -91,7 +88,6 @@ export function getSelectionHandler(
editor,
position,
oldPrefix,
snippetContext,
suggestionTrigger
);
void setState(eventData).then(() => {
Expand All @@ -114,7 +110,6 @@ function eventDataOf(
editor: TextEditor,
position: Position,
oldPrefix?: string,
snippetContext?: SnippetContext,
suggestionTrigger?: SuggestionTrigger
) {
const index = completions.findIndex(
Expand All @@ -126,9 +121,10 @@ function eventDataOf(
let numOfLspSuggestions = 0;
let numOfVanillaKeywordSuggestions = 0;
const currInCompletions = completions[index];
const snippetContext = currInCompletions.completion_metadata?.snippet_context;

const suggestions: SetStateSuggestion[] = completions.map((c) => {
switch (c.origin) {
switch (c.completion_metadata?.origin) {
case CompletionOrigin.VANILLA:
numOfVanillaSuggestions += 1;
break;
Expand All @@ -153,14 +149,14 @@ function eventDataOf(
return {
length: c.new_prefix.length,
strength: resolveDetailOf(c),
origin: c.origin ?? CompletionOrigin.UNKNOWN,
origin: c.completion_metadata?.origin ?? CompletionOrigin.UNKNOWN,
};
});

const { length } = currentCompletion;
const netLength = length - (oldPrefix?.length || 0);
const strength = resolveDetailOf(currInCompletions);
const { origin } = currInCompletions;
const { origin } = currInCompletions.completion_metadata ?? {};
const prefixLength = editor.document
.getText(new Range(new Position(position.line, 0), position))
.trimLeft().length;
Expand Down Expand Up @@ -191,7 +187,7 @@ function eventDataOf(
num_of_vanilla_keyword_suggestions: numOfVanillaKeywordSuggestions,
suggestions,
is_locked: limited,
completion_kind: currInCompletions.completion_kind,
completion_kind: currInCompletions.completion_metadata?.completion_kind,
snippet_context: snippetContext,
suggestion_trigger: suggestionTrigger,
},
Expand All @@ -201,11 +197,11 @@ function eventDataOf(
}

function resolveDetailOf(completion: ResultEntry): string | undefined {
if (completion.origin === CompletionOrigin.LSP) {
if (completion.completion_metadata?.origin === CompletionOrigin.LSP) {
return "";
}

return completion.detail;
return completion.completion_metadata?.detail;
}

function extractLanguage(editor: TextEditor) {
Expand Down
1 change: 0 additions & 1 deletion src/test/suite/utils/completion.utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ export function selectionCommandArgs(
completions: result.results,
position,
limited: result.is_locked,
snippetContext: result.snippet_context,
oldPrefix: result.old_prefix,
};
}
Expand Down
10 changes: 7 additions & 3 deletions src/test/suite/utils/testData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,18 @@ export function anAutocompleteResponse(
new_prefix: newPrefix !== undefined ? newPrefix : A_SUGGESTION,
old_suffix: oldSuffix,
new_suffix: newSuffix,
origin: CompletionOrigin.VANILLA,
completion_metadata: {
origin: CompletionOrigin.VANILLA,
},
},
{
new_prefix: ANOTHER_SUGGESTION,
detail: "5%",
old_suffix: "",
new_suffix: "",
origin: CompletionOrigin.LOCAL,
completion_metadata: {
detail: "5%",
origin: CompletionOrigin.LOCAL,
},
},
],
user_message: [""],
Expand Down

0 comments on commit 854e303

Please sign in to comment.