How can I change language contexts in Textmate bundles? - text-editor

I'd like to get my Textmate bundles to use the correct contexts based on what I'm editing. For example I use YUI a lot so I'd like the HTML bundle to use the YUI JS bundle instead of the standard JS one, etc.
Can anyone suggest where and what I should be editing to make that happen. Bonus points for tips on bundle editing.

The thing we are talking about here is scope. You'll have to edit your Bundle elements scope.
Let's take a look:
alt text http://mtod.org/so/scope.png
Now, edit the scope to a wider one, for example use source.js instead of source.js.yui. This should be applied to every snippet, command, etc. in the Bundle. You could probably do a search & replace directly on your Bundle files.
alt text http://mtod.org/so/edit.png
That's it. Bundle snippet triggered below.
alt text http://mtod.org/so/yui.png

Related

VSCode Vim multiple cursors

I have looked everywhere and I am still unable to switch off this 'feature'!
I've been using vi and, later, vim, since the 80's and I have never had need of multiple cursors, nor can I see a use for them.
:<range>s/search/replace/ does everything I need so this new feature is infuriating beyond words, especially as I've no idea how to switch it off when it seemingly-randomly appears.
Would someone be wonderful enough as to tell me how to banish, remove, consign-to-history the multiple cursors feature in VSCode Vim 1.12.4, please?
I believe this issue is specific to the plugin. I experienced it with the HTML plugin recently, and I'm assuming you have the same problem with HTML files, but the same principle should apply to other plugins as well. You just have to find the setting.
In the VS Code settings, there is an option that reads:
HTML: Mirror Cursor On Matching Tag
You can uncheck the box there to disable the feature. Or you can go to the settings.json in your local repo (inside the .vscode directory), or the equivalent global file, and add/modify the following field like so:
"html.mirrorCursorOnMatchingTag": false
That should take care of it for you.

Sublime, altering behavior of highlighting definions upon mouse-hover

I have a project with several classes which partly share functions while at other times the functions are different in code, but use the same name.
When hovering over a function name, Sublime highlights every file and line where that definition is found.
In my opinion it would be better if it actually included which class the different highlights belong to.
Is it possible to edit this in some way ?
Assume systems.js contains 4 different classes (1 base, 3 children). I would like to append or prepend the shown strings by the class definition (fetchable via prototype).
The hover popup mentioned in your question is powered by Sublime's internal symbol index, which is created in combination with the syntax definition that's used to syntax highlight files that you're editing. The Sublime syntax system is fairly context free; it parses the structure of the code but it doesn't contain any real structural information about it.
So for example it can determine that getShots is a function or method because of the syntax that was used to define it, but it doesn't know what class it came from.
The code for the hover popup is available in Default/symbol.py (you can use PackageResourceViewer to examine it) and associates symbols under the cursor with other places that it's seen symbols with that name in other files in the project; it literally only knows the information that you see in the popup; places where things by that name are defined and places where things of that name are referenced.
So in one sense, the answer to your question is No; core sublime can't do that because it doesn't have enough code intelligence to be able to figure that sort of thing out; this is exacerbated by dynamic languages like JavaScript where things can theoretically change at runtime as well.
The primary reason for that is because Sublime is extensible enough to support literally every programming language instead of just focusing on one or two (as e.g. PhpStorm does), so it doesn't have the core code to determine the information required.
All that said, since Sublime is indeed extremely extensible, it's possible that external code that does specialize on a language could be leveraged by a package in order to provide the appropriate information.
Two examples of that are SublimeCodeIntel and LSP for example. I don't use either of them myself, so I don't know for sure how good a fit they might be in your workflow.
I highly recommend you shift to Visual Studio Code majorly because sublime is an editor whereas vs code is an IDE. Also, it has very great extension support for all languages. I would recommend you to use jshint which the most popular plugin for js code available for almost all popular editors and IDEs. But still if you want to go with Sublime I suggest you following plugins:
https://www.sitepoint.com/essential-sublime-text-javascript-plugins/

Emmet with sublime

I am trying to make something pretty easy and for some reason i can't. Generally with Emmet on html i don't have any problem, but i wanna make something custom. On javascript, when i type log i want on Tab should generate console.log() and write pointer inside (). I have searched folder with packages installed but i didn't find somewhere i could put code on. Also on the google i didn't find something that can help, i had this thing on the ATOM but i also can't find how they have it there.
You don't need Emmet for that, just create a snippet in Sublime Text.
Example:
<snippet>
<content><![CDATA[console.log($1)]]></content>
<tabTrigger>log</tabTrigger>
<scope>source.js</scope>
</snippet>
If you need this to work for HTML as well, you could change the scope to source.js,text.html

How can I create a short cut to wrap selection sublime text

I want to be able to select some content in sublime text, then press cmd+ctrl+l and then the selected content to be wrapped with an advanced version of markdown link. for example
[ $selection ](linkGoesHere "titleGoesHere")
You can likely get this working by writing a snippet or plugin to suit your needs.
You will be able to bind a plugin to your preferred keystroke, but snippets are triggered as you type in your file. Therefore a plugin is more likely to be your solution (since this requires some text to be written, selected, then the command executed), but if that ends up as a dead end, you might be able to use a snippet to accomplish the same task.

Changing Gantry v4 menu color

I can't seem to figure out how to change the menu color or add a background to the menu bar in Gantry 4 for Joomla. Tired of the gray or dark gray default.
I could change the font and selection through the .less file but not the menu itself.
The documentation on the Gantry website is too general.
Thank You in advance.
Also check: menu-light.less & menu-dark.less in the less\ directory.
The folks at RocketTheme don't recommend editing the compiled CSS (but it works great as #Adriana pointed out).
Hi Gantry framework for joomla as you probably notice uses Less to really understand how to change things on the template you first have to learn how less works even that Gantry compiles the less files for you. Less it is fantastic so it worth it. Basically you use a code to define css in a clever way much more economic and then you compile this into more efficient css files
If you change the compiled files as our friends are saying here make not sense at all because as soon you compile again (and you will) this files will be override and all your work lose.
I will give you the direction and you will see that it is not that difficult as look.
1- check the menu you had selected on your Gantry template under Templates Manager - Style - menu style.
2- on your less folder you will see a less file for each of the menu styles with the main variables
for example menu-dark.less try to make sense of the variables and the colors and change them to see what is what.
3- on the same folder you have menu.less and there is where the magic is done using the variables from the previous file. You will see that for example define first level of menu you will have something like:
&.l1 {
> li.active {
background: #menuActiveBack;
So that menuActiveBack variable will be the background value of the active li of the level 1.
4- the last part will be the menu-hovers.less that i thinks it is over complicate things because it is not a need to have a different file to do the hovers but there it is.
You can control CSS compression, Compile Wait Time and Debug Header, as well as manually clear the cache with the Clear Cache button at Extensions → Template Manager → gantry → Advanced → Less Compiler.
more info at: ganty less documentation
Hope it helps to start with....
Happy coding,
Eduardo
it took me a while maybe half an hour to go through the "menu" css file in the "css-compiled" folder.
You can find all the css to alter the background and colors of Gantry's default menu.. I'm using Gantry v4 also.
Go here:
Joomla>templates>gantry>css-compiled>menu-675c76.....
Please view my image to see my results:
http://dream2unite.com/images/misc/GANTRY-MENU-675c76.png
Use FireBug or similar to find the default CSS styling.
Create a file /templates/gantry/css/gantry-custom.css and add your own CSS to override the default CSS.
This is a better method than editing compiled or other template less or css files which can be overwritten during compilation or when the template is updated.

Resources