Skip to content

Commit 75ed1bd

Browse files
committed
設定の変更を反映するためのリスナーを追加
1 parent 1da1d5b commit 75ed1bd

File tree

5 files changed

+28
-20
lines changed

5 files changed

+28
-20
lines changed

package.nls.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
"general.failure.InternalServerError": "削除に失敗しました。Qiitaのサーバーがダウンしている可能性があります。",
77
"general.failure.fallback": "ご迷惑をお掛けしてしまい申し訳ございませんが、エラーが発生しました。 バグの可能性がある場合は開発者にご報告いただけると幸いです。\nhttps://github.com/neet/vscode-qiita/issues",
88

9+
"general.information.unauthorized": "まだQiitaアカウントを連携していないようです。設定画面からトークンを入力することで利用可能になります。",
10+
911
"commands.compose.title": "Qiitaで公開",
1012
"commands.compose.success": "投稿を公開しました",
1113
"commands.compose.openInBrowser": "ブラウザで確認",

src/client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Qiita } from 'qiita-js-2';
2-
import { configuration } from './configuration';
2+
import { workspace } from 'vscode';
33

44
export const client = new Qiita({
5-
token: configuration.token || '',
5+
token: workspace.getConfiguration('qiita').get('token') || '',
66
});

src/commands/compose.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { CreateItemOptions } from 'qiita-js-2';
22
import { commands, Uri, window, workspace } from 'vscode';
33
import * as nls from 'vscode-nls';
44
import { client } from '../client';
5-
import { configuration } from '../configuration';
65
import { qiitaItemsProvider } from '../explorers/qiitaItems';
76
import { tagQuickPickCreator, validateTagQuickPick } from '../quickpicks/tagQuickPick';
87
import { titleInputBoxCreator, validateTitleInputBox } from '../quickpicks/titleInputBox';
@@ -22,8 +21,8 @@ export async function compose (resource?: { path: string }) {
2221
title: '',
2322
tags: [],
2423
private: false,
25-
tweet: configuration.tweetOnCreateItem,
26-
gist: configuration.gistOnCreateItem,
24+
tweet: workspace.getConfiguration('qiita').get('tweetOnCreateItem'),
25+
gist: workspace.getConfiguration('qiita').get('gistOnCreateItem'),
2726
};
2827

2928
// explorerから発火した場合

src/configuration.ts

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

src/extension.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { commands, ExtensionContext, window } from 'vscode';
1+
import { commands, ConfigurationChangeEvent, ExtensionContext, window, workspace } from 'vscode';
22
import * as nls from 'vscode-nls';
3+
import { client } from './client';
34
import { compose } from './commands/compose';
45
import { deleteItem } from './commands/deleteItem';
56
import { editTags } from './commands/editTags';
@@ -11,11 +12,13 @@ import { openItemExternal } from './commands/openItemExternal';
1112
import { qiitaItemsProvider } from './explorers/qiitaItems';
1213

1314
nls.config(process.env.VSCODE_NLS_CONFIG as nls.Options)();
15+
const localize = nls.loadMessageBundle();
1416

1517
export function activate (context: ExtensionContext) {
1618
window.registerTreeDataProvider('qiitaItems', qiitaItemsProvider);
1719

1820
context.subscriptions.push(
21+
workspace.onDidChangeConfiguration(refreshUserState),
1922
commands.registerCommand('qiita.openItem', openItem(context.storagePath)),
2023
commands.registerCommand('qiita.editTags', editTags),
2124
commands.registerCommand('qiita.makePublic', makePublic),
@@ -25,8 +28,26 @@ export function activate (context: ExtensionContext) {
2528
commands.registerCommand('qiita.editTitle', editTitle),
2629
commands.registerCommand('qiita.expandItems', expandItems),
2730
);
31+
32+
if (!workspace.getConfiguration('qiita').get('token')) {
33+
window.showInformationMessage(localize(
34+
'general.information.unauthorized',
35+
'まだQiitaアカウントを連携していないようです。設定画面からトークンを入力することで利用可能になります。',
36+
));
37+
}
2838
}
2939

3040
export function deactivate () {
3141
/* none */
3242
}
43+
44+
/**
45+
* 設定が変更されたときにトークンをセットし直してツリーデータをリフレッシュ
46+
* @param e 変更イベント
47+
*/
48+
export const refreshUserState = async (e: ConfigurationChangeEvent) => {
49+
if (e.affectsConfiguration('qiita.token')) {
50+
client.setToken(workspace.getConfiguration('qiita').get('token') || '');
51+
await qiitaItemsProvider.refresh();
52+
}
53+
};

0 commit comments

Comments
 (0)