電子書籍の厳選無料作品が豊富!

VSCodeで自動保存をオンにしようとしたところ、
「ユーザー設定に書き込めません。ユーザー設定を開いて、ファイル内のエラー/警告を修正してからもう一度お試しください。」と表示され、設定の画面を開いたのですが何が間違っているのか分かりません。下のコードを設定のところに入力しており、最上段の{に赤い波線が引かれ、「ファイルの終わりが必要です。」と表示されています。なお最上段の{と最下段の}は縦棒で繋がっているような表示がありました。
以下のコードのどこが間違っているのでしょうか?コードはhttps://qiita.com/rainbartown/items/d7718f12d71e …のものを用いています。

{
// ---------- Language ----------

"[tex]": {
// スニペット補完中にも補完を使えるようにする
"editor.suggest.snippetsPreventQuickSuggestions": false,
// インデント幅を2にする
"editor.tabSize": 2
},

"[latex]": {
// スニペット補完中にも補完を使えるようにする
"editor.suggest.snippetsPreventQuickSuggestions": false,
// インデント幅を2にする
"editor.tabSize": 2
},

"[bibtex]": {
// インデント幅を2にする
"editor.tabSize": 2
},


// ---------- LaTeX Workshop ----------

// 使用パッケージのコマンドや環境の補完を有効にする
"latex-workshop.intellisense.package.enabled": true,

// 生成ファイルを削除するときに対象とするファイル
// デフォルト値に "*.synctex.gz" を追加
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk",
"*.snm",
"*.nav",
"*.dvi",
"*.synctex.gz"
],

// 生成ファイルを "out" ディレクトリに吐き出す
"latex-workshop.latex.outDir": "out",

// ビルドのレシピ
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
},
],

// ビルドのレシピに使われるパーツ
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-silent",
"-outdir=%OUTDIR%",
"%DOC%"
],
},
],
}

質問者からの補足コメント

  • すみません。改行してもエラーのままでした…

    No.1の回答に寄せられた補足コメントです。 補足日時:2024/06/01 21:31
  • カンマの削除、全角半角の確認もしたのですが未だエラーのままになってしまっています><

    No.2の回答に寄せられた補足コメントです。 補足日時:2024/06/01 22:06
  • すみません、大変申し訳ないのですが、setting.jsonにはこのコードの上に
    {
    "workbench.colorTheme": "Default Dark Modern"
    }
    というコードがあり、このコードを削除、または質問元コードの下に移動させた場合、このコードの上の{に赤波線が表示されました。

    すなわちコードを複数種類書いている(?)ことが原因で一方(後に書かれた方)のコードでエラーが起こっている状況であるように見えたのですが、これは対処できますかね。
    あるいはユーザーに反映されるsetting.jsonは複数作成できるんでしょうか。
    追加の質問のようになってしまって申し訳ありません。

    ちなみにMacOSです。

      補足日時:2024/06/01 23:12

A 回答 (8件)

ああ、全ての設定は、トップレベルの {} の下に入れないといけなかったと思うので



{
 "workbench.colorTheme": "Default Dark Modern",

 // ---------- Language ----------

 "[tex]": {
  // スニペット補完中にも補完を使えるようにする
  "editor.suggest.snippetsPreventQuickSuggestions": false,
  // インデント幅を2にする
  "editor.tabSize": 2
 },

  省略

 // ビルドのレシピに使われるパーツ
 "latex-workshop.latex.tools": [
  {
   "name": "latexmk",
   "command": "latexmk",
   "args": [
    "-silent",
    "-outdir=%OUTDIR%",
    "%DOC%"
   ]
  }
 ]
}

こうなると思います
    • good
    • 1
この回答へのお礼

ありがとうございます!この方法でエラー無くなりました!

お礼日時:2024/06/02 09:21

逆でした



NG
"latex-workshop.latex.recipes": [ 
{
 "name": "latexmk",

OK
"latex-workshop.latex.recipes": {
 "name": "latexmk",

ですね、度々すみません
    • good
    • 1

あと、よくみると、配列とオブジェクトの構成が一緒になってるので、



"latex-workshop.latex.recipes": [
// { ←これが原因かもしれない
"name": "latexmk",
"tools": [
"latexmk"
]
// },   ←これが原因かもしれない
],


 // ビルドのレシピに使われるパーツ
 "latex-workshop.latex.tools": [
//  { ←同様に
   "name": "latexmk",
   "command": "latexmk",
   "args": [
    "-silent",
    "-outdir=%OUTDIR%",
    "%DOC%"
   ]
//  }
 ]

の変更も追加で試してみてください
    • good
    • 1

workbench.colorTheme


が有るなら、独立したブロックではなく前後の{}を削除した上で、最後の}の直前にでも入れれば良いと思います
行末に,を追加すれば、最初の{の後などでも大丈夫でしょう
    • good
    • 1
この回答へのお礼

ありがとうございます!エラー無くなりました!

お礼日時:2024/06/02 09:21

コメント部分を削除してから jq でチェックしてみると、67, 79, 80, 81 行目エラーになりますね


VScode の設定ファイルとしては、この程度は許されていたと思うのですが、ブロック内最後の項目は「,」が不要なので、試しに上記行末の「,」を削除するとどうでしょう?

VScodeでこのファイルを開いてやると、警告として(カラースキームによって変わるでしょうが)赤の波線がつくようです
    • good
    • 1

ちなみに、macOSでしょうか?



macOSの場合、セキュリティが厳格なので、Applicationフォルダー以外に、VSCodeをインストールすると、設定ファイルなどが上書きされない可能性があるので、Applicationフォルダーにインストールし直して、みてください


また、記事が少し古いようなので、// --- Language の設定セクションの三つの設定を削除してみるとか、他のLatex系を試せるのであれば、試すのも手かもしれません
https://zenn.dev/hash_yuki/articles/31855fbdb5fd …
    • good
    • 1

確認ありがとうございます



そうなると、全角半角の{}または、[]が使われているか、

または、元の構文のフォーマットを見る限り、項目内のアイテムが最後の場合には、"," がつかないようなので、

1)
"latexmk"
]
},
],



"latexmk"
]
}   //←ここのカンマを取る
],

2)
"%DOC%"
],
},
],
}


"%DOC%"
]   //←ここのカンマを取る
}   //←ここのカンマを取る
]   //←ここのカンマを取る
}

ぐらいでしょうか?
この回答への補足あり
    • good
    • 1

テキストファイルの最後の行に、改行が入ってない場合、エラーとなるケースが、たまにあります



多分、readline(), writeline()系の関数を使っている

その可能性が高いと思いますので、"}"の後、改行してみてください
この回答への補足あり
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A