Skip to content

Commit

Permalink
fix: add support for Svelte (#3874)
Browse files Browse the repository at this point in the history
fix: #3873
  • Loading branch information
Jason3S committed Nov 29, 2022
1 parent 865898e commit 07a837a
Show file tree
Hide file tree
Showing 7 changed files with 78 additions and 0 deletions.
5 changes: 5 additions & 0 deletions packages/cspell-bundled-dicts/cspell-default.config.js
Expand Up @@ -50,6 +50,10 @@ const settings = {
languageId: 'typescript,typescriptreact,mdx',
dictionaries: ['typescript', 'node', 'npm'],
},
{
languageId: 'svelte',
dictionaries: ['typescript', 'npm', 'html', 'html-symbol-entities', 'css', 'fonts'],
},
{
languageId: 'javascriptreact,typescriptreact,mdx',
dictionaries: ['html', 'html-symbol-entities', 'css', 'fonts'],
Expand Down Expand Up @@ -99,6 +103,7 @@ const settings = {
ignoreRegExpList: ['MARKDOWN-link-reference', 'MARKDOWN-link-footer', 'MARKDOWN-link', 'MARKDOWN-anchor'],
},
],
enableFiletypes: ['svelte'],
import: [
'./cspell-compatibility.json',
'@cspell/dict-ada/cspell-ext.json',
Expand Down
5 changes: 5 additions & 0 deletions packages/cspell-bundled-dicts/cspell-default.config.ts
Expand Up @@ -53,6 +53,10 @@ const settings: AdvancedCSpellSettings = {
languageId: 'typescript,typescriptreact,mdx',
dictionaries: ['typescript', 'node', 'npm'],
},
{
languageId: 'svelte',
dictionaries: ['typescript', 'npm', 'html', 'html-symbol-entities', 'css', 'fonts'],
},
{
languageId: 'javascriptreact,typescriptreact,mdx',
dictionaries: ['html', 'html-symbol-entities', 'css', 'fonts'],
Expand Down Expand Up @@ -102,6 +106,7 @@ const settings: AdvancedCSpellSettings = {
ignoreRegExpList: ['MARKDOWN-link-reference', 'MARKDOWN-link-footer', 'MARKDOWN-link', 'MARKDOWN-anchor'],
},
],
enableFiletypes: ['svelte'],
import: [
'./cspell-compatibility.json',
'@cspell/dict-ada/cspell-ext.json',
Expand Down
1 change: 1 addition & 0 deletions packages/cspell-lib/src/LanguageIds.ts
Expand Up @@ -112,6 +112,7 @@ export const languageExtensionDefinitions: LanguageDefinitions = [
],
},
{ id: 'sql', extensions: ['.sql', '.dsql'] },
{ id: 'svelte', extensions: ['.svelte'] },
{ id: 'swift', extensions: ['.swift'] },
{ id: 'toml', extensions: ['.toml'] },
{ id: 'typescript', extensions: ['.ts', '.cts', '.mts'] },
Expand Down
1 change: 1 addition & 0 deletions test-fixtures/issues/issue-3873/README.md
@@ -0,0 +1 @@
# Support Svelte
10 changes: 10 additions & 0 deletions test-fixtures/issues/issue-3873/cspell.config.yaml
@@ -0,0 +1,10 @@
# This config file can be used before `.svelte` support is added.
enableFiletypes:
- svelte
languageSettings:
- caseSensitive: false
languageId: svelte
dictionaries: ['typescript', 'npm', 'html', 'html-symbol-entities', 'css', 'fonts']
overrides:
- filename: '**/*.svelte'
languageId: svelte
2 changes: 2 additions & 0 deletions test-fixtures/issues/issue-3873/cspell.json
@@ -0,0 +1,2 @@
{
}
54 changes: 54 additions & 0 deletions test-fixtures/issues/issue-3873/src/app.svelte
@@ -0,0 +1,54 @@
<script>
let scoops = 1;
let flavours = ['Mint choc chip'];
let menu = [
'Cookies and cream',
'Mint choc chip',
'Raspberry ripple'
];
function join(flavours) {
if (typeof flavours !== 'object') return '';
if (flavours.length === 1) return flavours[0];
return `${flavours.slice(0, -1).join(', ')} and ${flavours[flavours.length - 1]}`;
}
</script>

<h2>Size</h2>

<label>
<input type=radio bind:group={scoops} value={1}>
One scoop
</label>

<label>
<input type=radio bind:group={scoops} value={2}>
Two scoops
</label>

<label>
<input type=radio bind:group={scoops} value={3}>
Three scoops
</label>

<h2>Flavours</h2>

<select multiple bind:value={flavours}>
{#each menu as flavour}
<option value={flavour}>
{flavour}
</option>
{/each}
</select>

{#if flavours.length === 0}
<p>Please select at least one flavour</p>
{:else if flavours.length > scoops}
<p>Can't order more flavours than scoops!</p>
{:else}
<p>
You ordered {scoops} {scoops === 1 ? 'scoop' : 'scoops'}
of {join(flavours)}
</p>
{/if}

0 comments on commit 07a837a

Please sign in to comment.