async function uploadSnippet()

in src/desktop/commands/create_snippet.ts [37:70]


async function uploadSnippet(
  editor: vscode.TextEditor,
  visibility: SnippetVisibility,
  context: string,
  projectInRepository: ProjectInRepository,
) {
  let content = '';
  const fileName = editor.document.fileName.split('/').reverse()[0];

  if (context === 'selection' && editor.selection) {
    const { start, end } = editor.selection;
    const endLine = end.line + 1;
    const startPos = new vscode.Position(start.line, 0);
    const endPos = new vscode.Position(endLine, 0);
    const range = new vscode.Range(startPos, endPos);
    content = editor.document.getText(range);
  } else {
    content = editor.document.getText();
  }

  const data = {
    title: fileName,
    file_name: fileName,
    visibility,
    content,
  };

  const snippet = await getGitLabService(projectInRepository).createSnippet(
    projectInRepository.project,
    data,
  );

  await openers.openUrl(snippet.web_url);
}