По мотивам https://opencartforum.com/blogs/entry/559-ocmod-helper-dlya-sublime/
Так как sublime не пользуюсь, а идея оказалась очень даже классная для разработки, на постоянке юзаю только PhpStorm.
Вот только писать расширения для PhpStorm, тем более не зная java, такое себе, поэтому подключаем для написания кода Gemini
Использование плагина "LivePlugin"
1.Зайдите в Settings -> Plugins, найдите и установите плагин LivePlugin.
2.Перезагрузите IDE.
3.Справа появится панель Plugins. Откройте её.
4.Нажмите + -> New Plugin -> Groovy.
5. Дайте имя и в открывшийся файл plugin.groovy вставьте этот код:
6. Нажмите кнопку Run (зеленый треугольник) на панели плагина, чтобы скомпилировать его первый раз.
7. Там же на панели плагина , выделите этот плагин и нажмите шестеренку, выберите только Run Plugins on IDE Start
8. Теперь выделите код в любом файле PHP и правой кнопкой мыши, внизу списка (или в середине) должен появиться пункт CopyAsOCMOD, нажмите.

Код будет скопирован в буфер обмена.
Или через горячие клавиши (ctrl alt shift O) Можете назначить другие в коде плагина в начале кода.
Так как sublime не пользуюсь, а идея оказалась очень даже классная для разработки, на постоянке юзаю только PhpStorm.
Вот только писать расширения для PhpStorm, тем более не зная java, такое себе, поэтому подключаем для написания кода Gemini

Использование плагина "LivePlugin"
1.Зайдите в Settings -> Plugins, найдите и установите плагин LivePlugin.
2.Перезагрузите IDE.
3.Справа появится панель Plugins. Откройте её.
4.Нажмите + -> New Plugin -> Groovy.
5. Дайте имя и в открывшийся файл plugin.groovy вставьте этот код:
Java:
import com.intellij.openapi.ide.CopyPasteManager
import java.awt.datatransfer.StringSelection
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.vfs.VfsUtil
import com.intellij.openapi.project.ProjectUtil
import com.intellij.openapi.actionSystem.AnActionEvent
import static liveplugin.PluginUtil.*
// ИЗМЕНЕНИЕ ЗДЕСЬ:
// 3-й аргумент "EditorPopupMenu" добавляет пункт в меню по правому клику мыши.
registerAction("CopyAsOCMOD", "ctrl alt shift O", "EditorPopupMenu") { AnActionEvent event ->
// 1. Проверяем проект
def project = event.project
if (!project) return
// 2. Проверяем редактор
def editor = FileEditorManager.getInstance(project).selectedTextEditor
if (!editor) {
show("OCMOD: Нет активного редактора")
return
}
// 3. Получаем выделенный текст
def selection = editor.selectionModel.selectedText
if (!selection) {
show("OCMOD: Выделите текст, чтобы скопировать его как XML!")
return
}
// 4. Определяем путь к файлу
def document = editor.document
def file = com.intellij.openapi.fileEditor.FileDocumentManager.getInstance().getFile(document)
def root = ProjectUtil.guessProjectDir(project)
def relPath = file.path
// Пытаемся получить относительный путь
if (root != null) {
def calculatedPath = VfsUtil.getRelativePath(file, root)
if (calculatedPath != null) {
relPath = calculatedPath
}
}
// 5. Формируем XML
def template = """<file path="${relPath}">
<operation>
<search><![CDATA[__CODE__]]></search>
<add position="replace"><![CDATA[
]]></add>
</operation>
</file>""".replace("__CODE__", selection)
// 6. Копируем в буфер обмена
CopyPasteManager.getInstance().setContents(new StringSelection(template))
// 7. Показываем уведомление
show("OCMOD код скопирован!")
}
7. Там же на панели плагина , выделите этот плагин и нажмите шестеренку, выберите только Run Plugins on IDE Start
8. Теперь выделите код в любом файле PHP и правой кнопкой мыши, внизу списка (или в середине) должен появиться пункт CopyAsOCMOD, нажмите.

Код будет скопирован в буфер обмена.
Или через горячие клавиши (ctrl alt shift O) Можете назначить другие в коде плагина в начале кода.
XML:
<file path="admin/controller/blog/article.php">
<operation>
<search><![CDATA[$this->document->setTitle($this->language->get('heading_title'));]]></search>
<add position="replace"><![CDATA[
]]></add>
</operation>
</file>
Последнее редактирование: