Skip to content

Commit 3b6c9b8

Browse files
committed
Compose系コマンドを統一
1 parent a0bdf78 commit 3b6c9b8

File tree

4 files changed

+32
-120
lines changed

4 files changed

+32
-120
lines changed

package.json

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@
4040
"activationEvents": [
4141
"onView:qiitaItems",
4242
"onLanguage:markdown",
43-
"onCommand:qiita.composeFromTextEditor",
44-
"onCommand:qiita.composeFromExplorer",
43+
"onCommand:qiita.compose",
4544
"onCommand:qiita.openItem",
4645
"onCommand:qiita.deleteItem",
4746
"onCommand:qiita.editTags",
@@ -51,12 +50,7 @@
5150
"contributes": {
5251
"commands": [
5352
{
54-
"command": "qiita.composeFromTextEditor",
55-
"title": "%commands.compose.title%",
56-
"category": "Qiita"
57-
},
58-
{
59-
"command": "qiita.composeFromExplorer",
53+
"command": "qiita.compose",
6054
"title": "%commands.compose.title%",
6155
"category": "Qiita"
6256
},
@@ -110,8 +104,7 @@
110104
],
111105
"menus": {
112106
"commandPalette": [
113-
{ "command": "qiita.composeFromTextEditor" },
114-
{ "command": "qiita.composeFromExplorer", "when": "false" },
107+
{ "command": "qiita.compose" },
115108
{ "command": "qiita.openItem", "when": "false" },
116109
{ "command": "qiita.deleteItem", "when": "false" },
117110
{ "command": "qiita.editTags", "when": "false" },
@@ -120,28 +113,28 @@
120113
],
121114
"editor/title": [
122115
{
123-
"command": "qiita.composeFromTextEditor",
116+
"command": "qiita.compose",
124117
"when": "resourceLangId == markdown",
125118
"group": "3_open"
126119
}
127120
],
128121
"editor/context": [
129122
{
130-
"command": "qiita.composeFromTextEditor",
123+
"command": "qiita.compose",
131124
"when": "resourceLangId == markdown",
132125
"group": "z_commands"
133126
}
134127
],
135128
"editor/title/context": [
136129
{
137-
"command": "qiita.composeFromExplorer",
130+
"command": "qiita.compose",
138131
"when": "resourceLangId == markdown",
139132
"group": "1_modification"
140133
}
141134
],
142135
"explorer/context": [
143136
{
144-
"command": "qiita.composeFromExplorer",
137+
"command": "qiita.compose",
145138
"when": "resourceLangId == markdown",
146139
"group": "7_modification"
147140
}
Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { CreateItemOptions } from 'qiita-js-2';
2-
import { commands, Uri, window } from 'vscode';
2+
import { commands, Uri, window, workspace } from 'vscode';
33
import * as nls from 'vscode-nls';
44
import { client } from '../client';
55
import { configuration } from '../configuration';
@@ -12,28 +12,38 @@ import { getFilenameFromPath } from '../utils/getFilenameFromPath';
1212

1313
const localize = nls.loadMessageBundle();
1414

15+
16+
1517
/**
1618
* アクティブなテキストエディタから投稿を公開するコマンドパレット向け関数
19+
* @param resource コマンドがexplorerから発火した際に渡される引数
1720
*/
18-
export async function composeFromTextEditor () {
19-
if (!window.activeTextEditor) {
20-
return;
21-
}
22-
23-
const titleInputBox = titleInputBoxCreator(getFilenameFromPath(window.activeTextEditor.document.fileName));
24-
const tagsQuickPick = tagQuickPickCreator();
25-
const visibilityQuickPick = visibilityQuickPickCreator();
26-
27-
// Qiita.createItemのオプション
21+
export async function compose (resource?: { path: string }) {
2822
const options: CreateItemOptions = {
23+
body: '',
2924
title: '',
30-
body: window.activeTextEditor.document.getText(),
3125
tags: [],
3226
private: false,
3327
tweet: configuration.tweetOnCreateItem,
3428
gist: configuration.gistOnCreateItem,
3529
};
3630

31+
// explorerから発火した場合
32+
if (resource && resource.path) {
33+
options.title = getFilenameFromPath(resource.path);
34+
options.body = await workspace.openTextDocument(resource.path).then((document) => document.getText());
35+
}
36+
37+
// テキストエディタから発火した場合
38+
if (window.activeTextEditor) {
39+
options.title = getFilenameFromPath(window.activeTextEditor.document.fileName);
40+
options.body = window.activeTextEditor.document.getText();
41+
}
42+
43+
const titleInputBox = titleInputBoxCreator(options.title);
44+
const tagsQuickPick = tagQuickPickCreator();
45+
const visibilityQuickPick = visibilityQuickPickCreator();
46+
3747
// titleInputBoxからタイトルを代入
3848
titleInputBox.onDidAccept(() => {
3949
options.title = titleInputBox.value;
@@ -53,6 +63,7 @@ export async function composeFromTextEditor () {
5363

5464
try {
5565
visibilityQuickPick.hide();
66+
5667
const item = await client.createItem(options);
5768

5869
const openInBrowser = localize(

src/commands/composeFromExplorer.ts

Lines changed: 0 additions & 90 deletions
This file was deleted.

src/extension.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { commands, ExtensionContext, window } from 'vscode';
22
import * as nls from 'vscode-nls';
3-
import { composeFromExplorer } from './commands/composeFromExplorer';
4-
import { composeFromTextEditor } from './commands/composeFromTextEditor';
3+
import { compose } from './commands/compose';
54
import { deleteItem } from './commands/deleteItem';
65
import { editTags } from './commands/editTags';
76
import { makePublic } from './commands/makePublic';
@@ -19,8 +18,7 @@ export function activate (context: ExtensionContext) {
1918
commands.registerCommand('qiita.openItem', openItem(context.storagePath)),
2019
commands.registerCommand('qiita.editTags', editTags),
2120
commands.registerCommand('qiita.makePublic', makePublic),
22-
commands.registerCommand('qiita.composeFromExplorer', composeFromExplorer),
23-
commands.registerCommand('qiita.composeFromTextEditor', composeFromTextEditor),
21+
commands.registerCommand('qiita.compose', compose),
2422
commands.registerCommand('qiita.openItemExternal', openItemExternal),
2523
commands.registerCommand('qiita.deleteItem', deleteItem),
2624
);

0 commit comments

Comments
 (0)