phpstorm unresolved function or method $() - phpstorm

I have the following problem: phpstorm do not recognize jquery methods and here and there I see
Unresolved function or method $()
This was bugging me for sometime but finally I tried to get rid of it with File->Settings->JavaScript->Libraries and adding jquery as a global / project.
My library setup looks like this:
But is has not changed anything. I still see those pesky notices. Does anyone know how to get rid of them?

There is a really stupid workaround,
Download the Library (in this case jQuery) from inside the IDE itself.
Open up settings (Ctrl + Alt + S on Linux)
Navigate to Languages & Frameworks -> Javascript -> Libraries
Click Download and choose jQuery
Hopefully the errors will vanish
EDIT:
After running the IDE through Fiddler, I realised this only solves the problem because of the version the IDE downloads.
So, the correct workaround is to Add older, non-AMD jQuery versions as a Global scoped Library and add the latest one as a Project scope library.
The latest non-AMD versions are:
1.10.2 for 1.x series. And, 2.0.0 for 2.x series.

I had the same issue with version 1.11.2, and resolved it simply by adding the uncompressed version into my js folder.

Just copy the uncompressed version of jQuery into your project folder.
you don't even need to import it into your project, just copy it to javascript folder.

The jQuery v1.11.0 shows exactly the same behaviour here as well. At the same time previous version 1.10.2 works fine in IDE (no warnings).
I think it has something to do with "AMD-fy jQuery source" ticket (http://bugs.jquery.com/ticket/14113) -- looks like IDE has some issues figuring out this style.
If you wish (and can) -- roll back to jQuery v1.10.2 (which is like half a year old, which means it's stable and still good to use).
Hopefully IDE will be able to properly parse this new jQuery style in next release.
Actual ticket: http://youtrack.jetbrains.com/issue/WEB-10908

If you import both 1.11.0 and 1.10.2 in phpstorm it will be resolved
You don't have to rollback your project.

Related

'refactor' move files in VSCode - es6

If I move ComponentFoo.js from folder X to folder Y, than a bunch of import statements break. Looking into this it seems there are many solutions for typescript, but what about js / es6? If I move a file in the editor, it should find all the import statements and update them to the new location. Is this possible?
Old post, but this might help some Googlers. This feature can be enabled and disabled in User Settings. For Javascript and Typescript, it's called "Updated Imports On File Move".
I had apparently disabled it and just figured the feature was broken :X
VS Code has built-in support for this for both javascript and typescript since VS Code 1.24.
For JavaScript specifically, you need to make sure VS code's language support can find all the references to the file so that imports referring symbols in that can be updated properly. Definitely create a jsconfig.json for your project, and also consider enabling semantic checking for JavaScript so that VS Code shows when imports are not being properly resolved
If your project is configured properly but files are not being updated, make sure you are running the latest VS Code insiders build and report an issue if it still doesn't work
for flutter developers you should move files one by one. vscode doesn't support multi file moving with refactor yet.
Just use IntelliJ. It handles all kinds of refactoring perfectly. I'm a huge fan of VS Code, but refacotoring is definetly not one of it's stengths. Some imports don't get detected, and the imports can get modified in a weird way. For example, I had an import like this:
import { myStore} from 'src/common/stores/myStore';
When moving the file of myStore.ts to a different folder, VS Code constructed this bull**it:
import { myStore} from 'src/common/composables/myStoreStore';
The line above is no typo!
Btw I'm using vetur, maybe thats causing it, I don't know ...

Wordpress disable out-of-the-box rest-api, use library instead

In newer Wordpress, there is REST-API in the core.
Previously used plugin (specifically WP-API-1.2.3) had different API base URL (e.g. /wp-json/posts), but the newer one is using different structure (e.g. /wp-json/wp/v2/posts).
In order to be backward compatible, I want to support older version and not changing the base of API - otherwise, all other pages using this service would no longer work.
I found how to change the "wp-json" part, but not namespace "/wp/v2/".
Is there a way around how to use the original base path and in the best case to be sure nothing will go wrong to use the older library instead of the newer core functionality?
Disabling it in functions.php can't solve this issue - it's shutting down the lib.
add_filter('json_enabled', '__return_false');
add_filter('json_jsonp_enabled', '__return_false');
Thanks
Basically, there were 2 things I did and it's working:
rest_url_prefix was the same like in previous version (wp-json), paths were writing over each other (after requesting something like wp-json/posts went through the new core part of WP, not the lib).
function rest_get_url_prefix() {
return apply_filters( 'rest_url_prefix', 'newPrefix' );
}
I didn't click on Settings -> Permalinks -> Save changes
By doing this I am now able to use the original endpoints

No autocompletion of JavaScript code in PhpStorm html files [duplicate]

So after updating PhpStorm from 2017.1 to 2017.2, JavaScript autocomplete stopped working in JavaScript, that is embedded inside of PHP file. Nothing works, not core JS method autocomplete, and not even the most basic declared variable autocomplete.
Any idea what could be wrong?
It's a bug/regression in PhpStorm 2017.2 (https://youtrack.jetbrains.com/issue/WI-36767) and it's fixed for 2017.2.1.
If you wish -- you may install 2017.2.1 EAP build now and not wait until 2017.2.1 final will be officially released: https://blog.jetbrains.com/phpstorm/2017/07/phpstorm-2017-2-1-eap-172-3544/
UPDATE: 2017.2.1 has been released -- https://blog.jetbrains.com/phpstorm/2017/08/phpstorm-2017-2-1-is-here/

Using Compass in PHPStorm 7

So i'm using brand new PHPStorm 7, which is supposed to have full Compass support, with syntax highlighting and stuff.
I successfully install compass to my project directory, PHPStorm offers me to use compass sass watcher, automatically finds compass.bat and my config.rb .
And then, nothing happens - my #import "compass" still triggers unable to resolve import from watcher, i don't get any code completion or search features. The only solution i know was an old trick of adding compass stylesheets directory as a resource root to my project.
So what i'm asking - is this the way it's supposed to be, or am i doing anything wrong, because i don't think manually importing a library into every project is a proper way for supposed library support.
After all, there is an issue on Windows.
There's the solution, and it works. Thanks LazyOne.
http://youtrack.jetbrains.com/issue/WEB-9139

Conditional minification for specific bundles using System.Web.Optimizations

I am making use of System.Web.Optimizations BundleConfig in my project. I'm running into an issue with a specific jQuery plugin that I'm using on my site. If I add the file to my ScriptBundle it works fine in Debug mode but throws JavaScript errors when I am in Release mode (i.e. set Web.config debug=false). I'm thinking something isn't getting minified correctly.
All others scripts are not giving me any problems so I don't want to affect behavior for all bundles but is there a way to customize for a specific bundle to tell it to use a specific version in debug and the min version in release.
I know the default behavior is for it to look for .min files but I just can't seem to get this to work. Can anyone tell me what I may be missing here? Thanks for your help.
Here is example I split it out by self. This works in debug but not when i set debug=false in web.config
ScriptBundle layoutBundle = new ScriptBundle("~/jsbundles/jquery/layout");
layoutBundle.Include("~/Scripts/plugins/jquery.layout-latest.js");
bundles.Add(layoutBundle);
If you just want to turn off minification for one bundle, you can simply switch to a normal Bundle instead of a ScriptBundle and it won't be minified. Then it will serve that bundle in whatever form that you included without running it through minification.