"Failed to import snippets" after adding sample snippet to ADS - no custom snippets in SSMS
TrailBear
Posts: 2 New member
in SQL Prompt
I want to add one new user snippet to ADS, but SQL Prompt is throwing an error.
Further, while experimenting I see that if I add only comments to the ADS sql.json, that they get erased.
Redgate SQL Prompt Version 0.2.10 in ADS 1.36.2
Added just the "select top 5" sample snippet from Create reusable code snippets - Azure Data Studio | Microsoft Docs to the ADS sql.json snippets and get
Further, while experimenting I see that if I add only comments to the ADS sql.json, that they get erased.
Redgate SQL Prompt Version 0.2.10 in ADS 1.36.2
Added just the "select top 5" sample snippet from Create reusable code snippets - Azure Data Studio | Microsoft Docs to the ADS sql.json snippets and get
<div>Failed to import snippets from SSMS: Error: Unhandled exception: System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: <b>$['Select top 5'].body</b> | LineNumber: 3 | BytePositionInLine: 51.</div><div></div>
I have no custom snippets in SSMS or Visual Studio to import, so not sure what value this is adding.
Tagged:
Answers
Our apology for not responding to you on this before now!
As a ticket has been logged for this, I will continue to communicate with you via that ticket.
Dan Jary | Redgate Software
Have you visited our Help Center?
SQL Prompt attempts to sync the snippets from SSMS/VS when launching ADS.
It is using the sql.json file for this.
If external code is introduced into the file it looks to break this process.
There also looks to be a difference in how SQL Prompt snippets & ADS snippets handle placeholders.
Prompt wraps placeholders in $$ and ADS uses the one $ at the start.
So when attempting to read the ADS snippet in the SQL Prompt format it generates the error.
I believe the workaround here is to keep SSMS/SQL Prompt snippets only in the sql.json file and create a separate snippet file for other code.
For my testing I had created a global snippet file and saved the code snippet from your website in it, then I allowed Prompt to maintain the sql.json file.
Both files resided in my ADS snippet folder
C:\Users\<user>\AppData\Roaming\azuredatastudio\User\snippets and I could use all snippets in my project.
Hope this helps for any users of ADS and SQL Prompt trying to maintain multiple sources of snippets