mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 18:32:50 +00:00
kate: templates rewrite and implement cursor
I guess selection was something unfinished/experimental Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
b117de749a
commit
74a63ed2fe
10 changed files with 100 additions and 184 deletions
|
@ -2,11 +2,9 @@
|
|||
|
||||
install(
|
||||
FILES
|
||||
html.katetemplate
|
||||
cpplgpl.cpp.katetemplate
|
||||
cpplgpl.hh.katetemplate
|
||||
cpplgpl.h.katetemplate
|
||||
cppgpl.cpp.katetemplate
|
||||
cppgpl.hh.katetemplate
|
||||
language.xml.katetemplate
|
||||
cppgpl.h.katetemplate
|
||||
DESTINATION ${KDE4_DATA_INSTALL_DIR}/kate/plugins/katefiletemplates/templates
|
||||
)
|
||||
|
|
|
@ -1,24 +1,23 @@
|
|||
katetemplate: template=C++ Source File (GPL) group=Source Code documentname=New%N.cpp highlight=C++
|
||||
katetemplate: description=A very simple GPL C++ source file
|
||||
katetemplate: author= Anders Lund <anders@alweb.dk>
|
||||
/*
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
katetemplate: author=Ivailo Monev <xakepa10@gmail.com>
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) %{year} %{fullname} <%{email}>
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
---
|
||||
Copyright (C) %{year}, %{fullname} <%{email}>
|
||||
*/
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
${cursor}
|
||||
%{cursor}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
katetemplate: template=C++ Header (GPL) group=Source Code documentname=New%N.h highlight=C++
|
||||
katetemplate: description=A very simple GPL C++ header file
|
||||
katetemplate: author=Ivailo Monev <xakepa10@gmail.com>
|
||||
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) %{year} %{fullname} <%{email}>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
%{cursor}
|
|
@ -1,34 +0,0 @@
|
|||
katetemplate: template=C++ Header (GPL) group=Source Code documentname=New%N.hh highlight=C++
|
||||
katetemplate: description=A very simple GPL C++ header file
|
||||
katetemplate: author= Anders Lund <anders@alweb.dk>
|
||||
/*
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
|
||||
---
|
||||
Copyright (C) %{year}, %{fullname} <%{email}>
|
||||
*/
|
||||
|
||||
#ifndef _${ClassName}_h_
|
||||
#define _${ClassName}_h_
|
||||
|
||||
class ${ClassName} : public ${Super} {
|
||||
public:
|
||||
${ClassName}( ${cursor} );
|
||||
~${ClassName}();
|
||||
|
||||
}
|
||||
|
||||
#endif // _${ClassName}_h_
|
|
@ -1,23 +1,23 @@
|
|||
katetemplate: template=C++ Source File (LGPL) group=Source Code documentname=New%N.cpp highlight=C++
|
||||
katetemplate: description=A very simple LGPL C++ source file
|
||||
katetemplate: author= Anders Lund <anders@alweb.dk>
|
||||
/*
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License version 2 as published by the Free Software Foundation.
|
||||
katetemplate: author=Ivailo Monev <xakepa10@gmail.com>
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) %{year} %{fullname} <%{email}>
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
---
|
||||
Copyright (C) %{year}, %{fullname} <%{email}>
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
${cursor}
|
||||
%{cursor}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
katetemplate: template=C++ Header (LGPL) group=Source Code documentname=New%N.h highlight=C++
|
||||
katetemplate: description=A very simple LGPL C++ header file
|
||||
katetemplate: author=Ivailo Monev <xakepa10@gmail.com>
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) %{year} %{fullname} <%{email}>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
%{cursor}
|
|
@ -1,32 +0,0 @@
|
|||
katetemplate: template=C++ Header (LGPL) group=Source Code documentname=New%N.hh highlight=C++
|
||||
katetemplate: description=A very simple LGPL C++ header file
|
||||
katetemplate: author= Anders Lund <anders@alweb.dk>
|
||||
/*
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License version 2 as published by the Free Software Foundation.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License
|
||||
along with this library; see the file COPYING.LIB. If not, write to
|
||||
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
|
||||
---
|
||||
Copyright (C) %{year}, %{fullname} <%{email}>
|
||||
*/
|
||||
#ifndef _${ClassName}_h_
|
||||
#define _${ClassName}_h_
|
||||
|
||||
class ${ClassName} : public ${Super} {
|
||||
public:
|
||||
${ClassName}( ${cursor} );
|
||||
~${ClassName}();
|
||||
|
||||
}
|
||||
|
||||
#endif // _${ClassName}_h_
|
|
@ -1,18 +0,0 @@
|
|||
katetemplate: template=HTML 4.01 Strict Document documentname=New%N.html
|
||||
katetemplate: highlight=HTML group=Internet icon=www
|
||||
katetemplate: description=This will create a very basic HTML file with the HTML 4.01 strict DTD.
|
||||
katetemplate: author=Anders Lund <anders@alweb.dk>
|
||||
katetemplate: this text is supposedly thrown away.
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||
"http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<!-- Copyright (C) %{year} %{fullname} <%{email}> -->
|
||||
<head>
|
||||
<title>${title}</title>
|
||||
<link rel="author" title="%{fullname}" href="mailto: (%{author}) %{email}">
|
||||
</head>
|
||||
<body>
|
||||
<h1>${title}</h1>
|
||||
${cursor}
|
||||
</body>
|
||||
</html>
|
|
@ -1,60 +0,0 @@
|
|||
katetemplate: Documentname=New language.xml (%N) Template=Kate Highlight Definition highlight=XML
|
||||
katetemplate: Author=Dominik Haumann <dhdev@gmx.de>
|
||||
katetemplate: Description=This template will create the basics of a kate highlight definition file.
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language SYSTEM "language.dtd">
|
||||
<!--
|
||||
This file is part of KDE's kate project.
|
||||
|
||||
copyright : (C) %{year} by %{fullname}
|
||||
email : %{email}
|
||||
|
||||
This file is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
-->
|
||||
<!--
|
||||
You'll find the "Writing a Kate Highlighting XML File HOWTO" at
|
||||
http://kate.kde.org/doc/hlhowto.php
|
||||
This is a template for the XML format used for syntax highlight descriptions
|
||||
for the Kate text editor (http://kate.kde.org), which is part of the KDE
|
||||
desktop environment (http://www.kde.org).
|
||||
|
||||
Use it as the base for your own syntax files.
|
||||
|
||||
Look at language.dtd for some documentation of the allowed elements and their attributes.
|
||||
There is also a description of how to validate your syntax file.
|
||||
|
||||
You'll find the "Writing a Kate Highlighting XML File HOWTO" at
|
||||
http://kate.kde.org/doc/hlhowto.php
|
||||
-->
|
||||
|
||||
<language version="1.00" kateversion="2.4" name="${cursor}" section="${section}" extensions="${extensions}" mimetype="${mimetypes}" author="%{fullname}" licence="GPL">
|
||||
<highlighting>
|
||||
<!--
|
||||
<list name="aList">
|
||||
<item></item>
|
||||
</list>
|
||||
-->
|
||||
<contexts>
|
||||
<context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
|
||||
<!-- <keyword attribute="Normal Text" context="#stay" String="aList" />
|
||||
-->
|
||||
</context>
|
||||
</contexts>
|
||||
<itemDatas>
|
||||
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||||
</itemDatas>
|
||||
</highlighting>
|
||||
<general>
|
||||
<keywords casesensitive="1" />
|
||||
<!--
|
||||
<comments>
|
||||
<comment name="singleLine" start="" />
|
||||
<comment name="multiLine" start="" end="" />
|
||||
</comments>
|
||||
-->
|
||||
</general>
|
||||
</language>
|
||||
<!-- kate: space-indent on; indent-width 2; replace-tabs on; indent-mode xml; -->
|
|
@ -2133,11 +2133,27 @@ bool KateView::insertTemplateTextImplementation ( const KTextEditor::Cursor& c,
|
|||
docText.replace(toreplace, it.value());
|
||||
it++;
|
||||
}
|
||||
// TODO: handle %{cursor} and %{selection}
|
||||
// TODO: ${foo} references in templates could be Shell variable - what now?
|
||||
|
||||
KTextEditor::Cursor viewCursor = cursorPosition();
|
||||
m_doc->insertText( c, docText );
|
||||
|
||||
const QStringList docLines = docText.split(QLatin1Char('\n'));
|
||||
for (int i = 0; i < docLines.size(); i++) {
|
||||
const int cursorIndex = docLines.at(i).indexOf(QLatin1String("%{cursor}"));
|
||||
if (cursorIndex != -1) {
|
||||
m_doc->editRemoveText(i, cursorIndex, 9);
|
||||
|
||||
const int viewLine = viewCursor.line();
|
||||
viewCursor.setLine(viewLine + i);
|
||||
viewCursor.setColumn(cursorIndex);
|
||||
setCursorPosition(viewCursor);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: handle %{selection}, selection begin and end?
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue