html-snippets icon indicating copy to clipboard operation
html-snippets copied to clipboard

HTML Snippets not working in .php files

Open axdyng opened this issue 8 years ago • 28 comments

Hello,

Great extension. However, the snippets aren't working correctly in .php files. I'd have to create a html file -> trigger the snippet inside .html file -> then will it work in .php files.

Once i restart VSCode, i need to repeat this.

Please address?

Thank you!

axdyng avatar Feb 16 '17 04:02 axdyng

Nice one, I looking for this. Please support php file.

htran81 avatar Feb 20 '17 08:02 htran81

Seems to have been removed in the last update, 14 days ago, when languages were removed from the package.json.

A previous commit that had added the support for languages, including PHP, can be viewed here : b6f9bb6

I have tried re-adding these, but it does not seem to work properly, only works consistently in HTML.

I am specifically looking for javascriptreact and typescriptreact support... if I do re-add the languages, it will only display syntax completion for a top level tag in the .jsx or .tsx files, not within a render method.

The author, @abusaidm, must have his reasons for doing this, but it would be wonderful if he could either revert back to language support, or perhaps explain how we can choose which languages the snippets will apply to, without remapping file extensions to the html document type, which loses all syntax completion / support for that language, as obviously it is now treated as simple HTML.

mcquiggd avatar Feb 24 '17 17:02 mcquiggd

hello all, sorry for the late reply.

I have indeed removed the other languages, as other users have complained about the extension getting in the way while they program in other languages like php and js which makes sense. I was actually thinking that I should make a full extension that can be customised and add other features.

Since VSCode has cleaned its act and started to handle extensions better than before, I think it is reasonable for individuals to customise individual extensions to meet their needs.

Add a new language support to the extension:

VSC Documentation Side Loading VS Code looks for extensions under your extensions folder .vscode/extensions. Depending on your platform it is located in the following folders:

Windows %USERPROFILE%\.vscode\extensions
Mac ~/.vscode/extensions
Linux ~/.vscode/extensions
  1. Go to the extensions folder matching your OS
  2. Find the extension abusaidm.html-snippets-x.x.x
  3. Find package.json inside the extension's directory and open it with any text editor, e.g. VSC
  4. Locate the sections with snippets and you will see:
{
     "language": "html",
     "path": "./snippets/snippets.json"
}
  1. Add the below snippet with another language you want.
,{
     "language": "NEW LANGUAGE",
     "path": "./snippets/snippets.json"
}
  1. Close VSCode and start it again, I have noticed a reload doesn't always work as intended, now the extension should work with the languages you added.

Example of languages: php javascript javascriptreact

I hope you find this helpful.

abusaidm avatar Feb 25 '17 21:02 abusaidm

@abusaidm

Thanks for the clear instructions... I have tried this, but as I mention above, it seems to only work reliably in html files.

For example,in an html file, it is possible to create a body tag from a snippet, then a select box, option etc, correctly nested within each other.

< body >    < select >         < option > < / option >    < /select > < /body >

In javascript, javascriptreact, typescript, typescriptreact, it is only possible to create a one level of a tag using a snippet; once that is created, no further snippets are listed. You can create other tags, at the same level, but you won't get snippets available inside them, as you do with html.

< body > < /body > < select > < /select > < option > < /option >

Update: I see the same behaviour with other snippet extensions - for example React snippets are not displayed when within a < tag >, but are displayed anywhere else in the file if not contained in a < tag >, so perhaps this is a limitation of the language services for those languages?

I will log an issue with the Vs Code team.

mcquiggd avatar Feb 28 '17 16:02 mcquiggd

A simple fix for this would be to go to the snippet's directory under

Windows %USERPROFILE%\.vscode\extensions
Mac ~/.vscode/extensions
Linux ~/.vscode/extensions

And locate snippets.json , copy its contents and paste it under user defined snippets for your required language. Worked like a charm for me.

AmitJoki avatar Oct 16 '17 03:10 AmitJoki

    ,{
            "language": "javascript",
            "path": "./snippets/snippets.json"
    },{
            "language": "js",
            "path": "./snippets/snippets.json"
    },{
            "language": "javascriptreact",
            "path": "./snippets/snippets.json"
    }

(I have added them both combined and each one alone), and nothing happened when I press tab after div tag

Any idea how to fix it ?

Mohammed-Elias avatar Jan 11 '18 10:01 Mohammed-Elias

having the same problem

leo1mml avatar Feb 04 '18 22:02 leo1mml

To @AmitJoki solution, you may need to remove the scope "scope": "text.html" from each snippet if you're working in the (languageId).json file, but a mass selection will take care of that for you.

mikeymurph77 avatar Feb 22 '18 02:02 mikeymurph77

Why don't you just create a custom setting for your extension for this, similar to the built-in emmet:

"emmet.includeLanguages": {
        "php": "html",
        "hbs": "html"
},

Seems kind of weird that someone would need to go in and hack your installed snippet files when you could just use an extension setting value instead.

Jakobud avatar Mar 30 '18 05:03 Jakobud

@Jakobud that worked perfect for me thank you very much. for those looking for react or javascript Jakes answer worked for me like this

"emmet.includeLanguages": {
        "javascriptreact": "html",
        "javascript": "html"
    }

Jwiens92 avatar Apr 09 '18 18:04 Jwiens92

I'm having same issue, Where do you put this code?

"emmet.includeLanguages": {
        "php": "html",
        "hbs": "html"
},

Thanks

Tom

tommylux avatar May 15 '18 13:05 tommylux

@tommylux it goes in you User Settings (settings.json)

Jwiens92 avatar May 15 '18 13:05 Jwiens92

Thanks.. figured it out. Was a little unsure of the syntax.

{
    "workbench.colorTheme": "Default Light+",
    "git.ignoreMissingGitWarning": true,
    "php.executablePath": "C:\\Program Files\\Microsoft VS Code\\php\\php.exe",
    "editor.minimap.enabled": false,
    "emmet.includeLanguages": {
        "php": "html",
    }
}

Still new to this editor, Think I will ditch the atom.io.

tommylux avatar May 15 '18 14:05 tommylux

any idea how to add it to razor files : *.cshtml ?

coeur85 avatar Dec 27 '18 10:12 coeur85

any idea how to add it to razor files : *.cshtml ?

Up!

excme avatar Jan 17 '19 10:01 excme

Thank you I finally got to make it work!

kelmag avatar Apr 18 '19 15:04 kelmag

I want to know about '.ejs extension'?

AyeMyintHtet avatar Jul 20 '19 06:07 AyeMyintHtet

i want work in cshtml file iusing "contributes": { "snippets": [ { "language": "html", "path": "./snippets/snippets.json" }, { "language": "cshtml", "path": "./snippets/snippets.json" }

	]
},

but not work in cshtml file? please help

h-taj avatar Jan 30 '20 15:01 h-taj

Any idea how to support markdown files?

baiterry avatar Feb 02 '20 16:02 baiterry

What about Twig files ? I just try this, but there are no effect on twig files. Thank you ! ;) "contributes": { "snippets": [ { "language": "html", "path": "./snippets/snippets.json" }, { "language": "twig", "path": "./snippets/snippets.json" } ] },

sined79 avatar Mar 19 '20 15:03 sined79

What about Twig files ? I just try this, but there are no effect on twig files. Thank you ! ;) "contributes": { "snippets": [ { "language": "html", "path": "./snippets/snippets.json" }, { "language": "twig", "path": "./snippets/snippets.json" } ] },

@sined79 Use this in your settings: "emmet.includeLanguages": { "twig": "html", }

  1. Open your Settings (ctrl + ,) Снимок экрана от 2020-06-18 08-52-34

  2. Find "emmet.includeLanguages" Снимок экрана от 2020-06-18 08-50-11

  3. Add this config to your settings Снимок экрана от 2020-06-18 08-50-51

  4. It works!

dmitrach avatar Jun 18 '20 05:06 dmitrach

What about Twig files ? I just try this, but there are no effect on twig files. Thank you ! ;) "contributes": { "snippets": [ { "language": "html", "path": "./snippets/snippets.json" }, { "language": "twig", "path": "./snippets/snippets.json" } ] },

@sined79 Use this in your settings: "emmet.includeLanguages": { "twig": "html", }

1. Open your Settings (ctrl + ,)
   ![Снимок экрана от 2020-06-18 08-52-34](https://user-images.githubusercontent.com/19969187/84983315-2467e280-b141-11ea-951a-e76900325f11.png)

2. Find "emmet.includeLanguages"
   ![Снимок экрана от 2020-06-18 08-50-11](https://user-images.githubusercontent.com/19969187/84983226-fa162500-b140-11ea-8ec2-26db332f3886.png)

3. Add this config to your settings
   ![Снимок экрана от 2020-06-18 08-50-51](https://user-images.githubusercontent.com/19969187/84983247-013d3300-b141-11ea-839a-2ca6514b03cd.png)

4. It works!

That works for me

mrcMesen avatar Dec 03 '20 22:12 mrcMesen

@Jakobud that worked perfect for me thank you very much. for those looking for react or javascript Jakes answer worked for me like this

"emmet.includeLanguages": {
        "javascriptreact": "html",
        "javascript": "html"
    }
``

Thanks buddy, It worked for me.

BinMansoor11 avatar Dec 11 '20 06:12 BinMansoor11

@Jakobud I added "erb": "html" to emmet's included languages and that worked perfectly. Thanks!

J-pilon avatar Jun 02 '22 19:06 J-pilon

  • Go to settings
  • Search emmet
  • Remove php from Emmet: Exclude Languages

MohdTamimi1 avatar Mar 13 '23 20:03 MohdTamimi1

HTML Snippets not working in .html files. This is what I'm getting: This extension is deprecated as it is no longer being maintained.

Oluwatemmy avatar Sep 18 '23 07:09 Oluwatemmy