affka
@affka
http://affka.ru

Как указать jsdoc для this в шаблонах (underscore)?

Всем привет!
Пытаюсь сделать вменяемым отображение underscore шаблонов в IDE PhpStorm. Для подсветки тегов <% ..js here.. %> нашел плагин ejs, у него схожий синтаксис, поэтому работает. (Если знаете лучше - сообщите, потому что он не на 100% устраивает меня).
Далее пытаюсь указать типы переменных, которые передаются в шаблон, а так же чем является this для этого шаблона.
Пытаюсь так:
<%
    /** @this Jii.view.WebView this */
    /** @typedef {String} myvar */
%>
<% this.registerJsFile('http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js'); %>
<% this.registerCss('body {background: #eee;}'); %>
<% this.registerJs('console.log(6626)', 'head'); %>

<div>
    <%= myvar %>
</div>


Переменная myvar хоть и подсвечивается криво, однако по клике на неё - ссылается на кусок документации. А вот this - ни в какую. Пробовал и через typedef - тоже не помогает. Для this очень необходим тип, чтобы работали подсказки в IDE.
Кто знает как побороть? Может кто-то другим способом решал проблему?

Заранее спасибо!
  • Вопрос задан
  • 2503 просмотра
Решения вопроса 1
affka
@affka Автор вопроса
http://affka.ru
пока-что решил только таким способом:

<%
/** @typedef {String} qqq */
/** @this {Jii.view.WebView} */
(function() {
%>

    <% this.registerCssFile('http://api.jquery.com/jquery-wp-content/themes/jquery/css/base.css'); %>
    <% this.registerJsFile('http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js'); %>
    <% this.registerCss('body {background: #eee;}'); %>
    <% this.registerLinkTag({
        rel: 'icon',
        type: 'image/x-icon',
        href: 'https://assets-cdn.github.com/favicon.ico'
    }); %>
    <% this.registerMetaTag({
        authenticity_token: 'csrf-param'
    }); %>

    <div>
        <%= qqq %>
    </div>

<% })(); %>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Очевидное решение -- обозвать эту переменную как-то иначе, например that или self.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы