diff --git a/README.md b/README.md index 1ab9b38..ffac8d8 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# About +## About ProjMan (aka "Tcl/Tk Project Manager") is a editor for programming in TCL/Tk (and other language). It includes a file manager, a source editor with syntax highlighting and code navigation, a context-sensitive help system, Git support, and much more. Working an Linux and Windows. -# Support languages +## Support languages Highlightning and source code navigation: @@ -22,13 +22,88 @@ Highlightning: * HTML * XML -# Requirements +## Requirements For UNIX-like OS Tcl/Tk >= 8.6 http://tcl.tk tcllib, tklib -# Credits + +## Getting source code + +Download the source code archive https://git.nuk-svk.ru/svk/projman/archive/master.tar.gz + +Or use git: + +``` + git clone https://git.nuk-svk.ru/svk/projman.git +``` + +## Build package + +``` + cd projman/debian/ + ./build-deb-projman.sh + + cd projman/redhat/ + ./build-rpm-projman.sh +``` + +## Install + +Use package manager for you system: + +Debian ```sudo dpkg -i projman_2.0.0-alpha_amd64.deb``` + +Redhat ```sudo rpm -Uhv projman_2.0.0-alpha_amd64.rpm``` + +## Usage + +Running command (need full path to the each file or folder): + +Open files + +``` + projman ~/tmp/test.tcl ~/tmp/2.go ... +``` + +Open folders + +``` + projman ~/projects/projman ... +``` + +Or type "projman" into terminal, Or choose the name of the program "Projman" on the Start menu. + +### Keyboard shortcut + +- Ctrl-N - Create new file +- Ctrl-O - Open file +- Ctrl-W - Close editor (file) +- Ctrl-K - Open folder +- Ctrl-Q - Quit from ProjMan +- Ctrl-J - Show procedures (functions) list for navigation in open editor +- Ctrl-L - Find and display files where the variable is defined, the name of which is located under the cursor in the editor +- Ctrl-F - Search text in open editor + +- Ctrl-[ - Move the line (or selected lines) one position (see config tabSize=4) to the right +- Ctrl-] - Move the line (or selected lines) one position to the left +- Ctrl-, - Comment the line (or selected lines) +- Ctrl-. - Uncomment the line (or selected lines) +- Ctrl-I - Insert base64 encoded image into edited text +- Ctrl-G - Go to line dialog +- Ctrl-C - Copy selected text into buffer +- Ctrl-V - Paste text from buffer + +- Alt-P - Show/Hide the file tree panel +- Alt-W - Delete the word +- Alt-E - Delete text from current position to end of line +- Alt-B - Delete text from current position to begin of line +- Alt-R - Delete current line +- Alt-Y - Copy current line into buffer +- Alt-S - Split the edited window horizontally + +## Credits Sergey Kalinin - author svk@nuk-svk.ru diff --git a/debian/build-deb-projman.sh b/debian/build-deb-projman.sh index a0e27e8..8cdef0a 100755 --- a/debian/build-deb-projman.sh +++ b/debian/build-deb-projman.sh @@ -3,10 +3,10 @@ cd ../ VERSION=$(grep Version projman.tcl | grep -oE '\b[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}\b') -RELEASE=$(grep Release projman.tcl | grep -oE '\b[0-9A-Za-z]{1,3}\b') +RELEASE=$(grep Release projman.tcl | grep -oE '[0-9A-Za-z]+$') BUILD_DATE=$(date +%d%m%Y%H%M%S) TXT="# Build: ${BUILD_DATE}" - +echo "$VERSION, $RELEASE, $BUILD_DATE" sed -i "/# Build:.*/c$TXT" projman.tcl cp projman.tcl projman @@ -25,4 +25,3 @@ dpkg-buildpackage rm -v projman rm -r -v debian/{projman,.debhelper} - diff --git a/debian/install b/debian/install index ee1639a..f267e59 100644 --- a/debian/install +++ b/debian/install @@ -3,5 +3,5 @@ lib/*.tcl /usr/share/projman/lib lib/msgs/* /usr/share/projman/lib/msgs theme /usr/share/projman/ README.md /usr/share/doc/projman -debian/projman.desktop /usr/share/applications -projman-48.png /usr/share/pixmaps \ No newline at end of file +projman.desktop /usr/share/applications +projman.png /usr/share/pixmaps diff --git a/debian/projman.desktop b/projman.desktop similarity index 94% rename from debian/projman.desktop rename to projman.desktop index 474f212..598d2ca 100644 --- a/debian/projman.desktop +++ b/projman.desktop @@ -8,4 +8,4 @@ Type=Application StartupNotify=true MimeType=text/plain; Categories=Development;TextEditor; -Icon=projman-48 +Icon=projman diff --git a/projman.png b/projman.png new file mode 100644 index 0000000..61c52dc Binary files /dev/null and b/projman.png differ diff --git a/projman.spec b/projman.spec deleted file mode 100644 index a2cf21d..0000000 --- a/projman.spec +++ /dev/null @@ -1,108 +0,0 @@ -Name: projman -Version: 0.4.5 -Release: rh1 -Summary: Tcl/Tk Project Manager -License: GPL -Group: Development/Tcl -Url: https://bitbucket.org/svk28/projman -BuildArch: noarch -Source: %name-%version-%release.tar.gz -Requires: tcl, tk, bwidget, tcl-img - -%description -This programm is Integrated Development Environment for Tcl/Tk language programming. Include - project manager, text and source editor with syntax highlightning, archive (tar.gz) and PRM builder and more. - -%description -l ru_RU.UTF8 -Интегрированная среда для программирования на Tcl/Tk. Включает в себя - менеджер проектов, полнофункциональный редактор, систему навигации по файлам и структуре файлов и многое другое. - -%prep -%setup -n %name - -%build - -%install -mkdir -p $RPM_BUILD_ROOT{%_bindir,%_datadir/%name/{img,msgs,/lib/highlight}} - -install -p -m755 projman.tcl $RPM_BUILD_ROOT%_bindir/%name -install -p -m644 *.tcl $RPM_BUILD_ROOT%_datadir/%name/ -install -p -m644 lib/highlight/*.tcl $RPM_BUILD_ROOT%_datadir/%name/highlight/ -install -p -m644 *.conf $RPM_BUILD_ROOT%_datadir/%name/ -install -p -m644 img/*.* $RPM_BUILD_ROOT%_datadir/%name/img/ -install -p -m644 msgs/*.* $RPM_BUILD_ROOT%_datadir/%name/msgs/ - -# Menu support -#mkdir -p $RPM_BUILD_ROOT/usr/lib/menu -#cat > $RPM_BUILD_ROOT%_libdir/menu/%name << EOF -#?package(%name): needs=x11 icon="projman.png" section="Applications/Development/Development environments" title=ProjMan longtitle="Tcl/Tk Project Manager" command=projman -#EOF -#mdk icons -#install -d $RPM_BUILD_ROOT{%_iconsdir,%_liconsdir,%_miconsdir} -#install -p -m644 img/icons/%name.png $RPM_BUILD_ROOT%_iconsdir/ -#install -p -m644 img/icons/large/%name.png $RPM_BUILD_ROOT%_liconsdir/ -#install -p -m644 img/icons/mini/%name.png $RPM_BUILD_ROOT%_miconsdir/ - -%post -%update_menus - -%postun -%clean_menus - -%files -%doc INSTALL CHANGELOG TODO COPYING README THANKS -%doc hlp/ru/* -%_bindir/%name -%_datadir/%name -#%_libdir/menu/%name -#%_iconsdir/%name.png -#%_liconsdir/%name.png -#%_miconsdir/%name.png - - -%changelog -* Fri Feb 16 2018 Sergey Kalinin 0.4.5 -- Added saving main window geometry into projman.conf file when close programm -- Fixed AutoComplite precedure for TCL/TK-projects -- Added colored icon for main window -- Fixed "Close all" procedure if opened files from projects and file browser -- Fixed parsing some procedure name like ::proc::name or proc_na::me(aa) and parameters {{} {} {}} -- Added opening last active project when project run -- Fixed Windows OS running without installation -- Added gray theme -- Fixed work with file from directory (FileBrowser function). -- Auto indent added for () [] braces -- File Browser added. Now we will edited any file without project -- Tcl, Perl, PHP highlight comment procedure fixed -- Help file Text.html utf-8 encoding -- Change hotkeys "Control+," "Control+." "Control+/" (commect selected, uncoment selected, select all) -- Add new function Comments/Uncomment selected text -- Added binding mouse button: click on notebook tab highlight opened file name in tree -- Change "Paste from Clipboard" function -- Change popup editor menu (undo, redo, copy, paste, cut functions) -- Change Logo and About dialog -- Russian help files was conerting into utf-8 encode -- Change help file load procedure -- Fixed paste text highlight -- Fixed setting edited flag when paste the text from buffer -- Remove ctags support -- Added gitk (gui for git) support -- Changes color setting dialog into "Setting" -- Actualizing information into "About" dialog -- Corrected color settings for all widgets -- Change default color scheme -- Remove ctag, change autocomplitt procedure - -* Wed Feb 13 2008 Sergey Kalinin 0.3.8-alt1 -- Added text encoding support from koi8-r,cpp1251,cp866 to UTF-8 - -* Tue Feb 20 2007 Sergey Kalinin 0.3.7-alt4 -- Fixed setiings dialog -- Fixed saved settings parameter - -* Wed Oct 18 2006 Sergey Kalinin 0.3.7-alt3 -- Remove SuperText widget now use native TEXT - - - - - - diff --git a/projman.tcl b/projman.tcl index 94bcd5e..784bc33 100755 --- a/projman.tcl +++ b/projman.tcl @@ -10,7 +10,7 @@ exec wish "$0" -- "$@" ###################################################### # Version: 2.0.0 # Release: alpha -# Build: 25112022125026 +# Build: 28112022130305 ###################################################### # определим текущую версию, релиз и т.д. diff --git a/redhat/build-rpm.sh b/redhat/build-rpm.sh new file mode 100755 index 0000000..9457944 --- /dev/null +++ b/redhat/build-rpm.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +RPM_BUILD_DIR=${HOME}/rpmbuild + +mkdir -p ${RPM_BUILD_DIR}/{SOURCES,RPMS,SRPMS,SPECS,RPMS/noarch} + +cd ../ + +VERSION=$(grep "Version" projman.tcl | grep -oE '\b[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}\b') +RELEASE=$(grep "# Release" projman.tcl | grep -oE '[0-9A-Za-z]+$') +BUILD_DATE=$(date +%d%m%Y%H%M%S) +TXT="# Build: ${BUILD_DATE}" + +sed -i "/# Build:.*/c$TXT" projman.tcl + +cp projman.tcl projman + +sed -i "s+^set\ dir(lib)+set\ dir(lib)\ /usr/share/projman/lib ;#+g" projman +sed -i "s+\[pwd\]+/usr/share/projman+g" projman + +CUR_DIR=$(pwd) + +cd ../ + +tar --exclude='.git' --exclude='debian' --exclude='redhat' --exclude='projman.tcl' -czf ${RPM_BUILD_DIR}/SOURCES/projman-${VERSION}-${RELEASE}.tar.gz projman + +cd ${CUR_DIR} + +cp redhat/projman.spec ${RPM_BUILD_DIR}/SPECS/projman.spec + +sed -i "s/.*Version:.*/Version:\t${VERSION}/" ${RPM_BUILD_DIR}/SPECS/projman.spec +sed -i "s/.*Release:.*/Release:\t${RELEASE}/" ${RPM_BUILD_DIR}/SPECS/projman.spec + +rpmbuild -ba "${RPM_BUILD_DIR}/SPECS/projman.spec" + +# cp ${RPM_BUILD_DIR}/RPMS/noarch/projman-${VERSION}-${RELEASE}.noarch.rpm /files/ +# cp ${RPM_BUILD_DIR}/SRPMS/projman-${VERSION}-${RELEASE}.src.rpm /files/ + +rm -v projman +rm -r -v ${RPM_BUILD_DIR}/SPECS/projman.spec +rm -r -v ${RPM_BUILD_DIR}/SOURCES/projman-${VERSION}-${RELEASE}.tar.gz +rm -r -v ${RPM_BUILD_DIR}/BUILD/projman diff --git a/redhat/projman.spec b/redhat/projman.spec new file mode 100644 index 0000000..66a878a --- /dev/null +++ b/redhat/projman.spec @@ -0,0 +1,55 @@ +Name: projman +Version: 2.0.0 +Release: rh1 +Summary: Tcl/Tk Project Manager +License: GPL +Group: Development/Tcl +Url: https://nuk-svk.ru +BuildArch: noarch +Source: %name-%version-%release.tar.gz +Requires: tcl, tk, tklib, tcllib + +%description +This a editor for programming in TCL/Tk (and other language). It includes a file manager, a source editor with syntax highlighting and code navigation, a context-sensitive help system, Git support, and much more. + +%description -l ru_RU.UTF8 +Интегрированная среда для программирования на Tcl/Tk. Включает в себя - менеджер проектов, полнофункциональный редактор, систему навигации по файлам и структуре файлов и многое другое. + +%prep +%setup -n %name + +%build + +%install +mkdir -p $RPM_BUILD_ROOT%_bindir +mkdir -p $RPM_BUILD_ROOT%_datadir/%name/lib/msgs +mkdir -p $RPM_BUILD_ROOT%_datadir/%name/theme +mkdir -p $RPM_BUILD_ROOT%{_datarootdir}/applications + +install -p -m755 projman $RPM_BUILD_ROOT%_bindir/%name +install -p -m755 tkregexp.tcl $RPM_BUILD_ROOT%_bindir/tkregexp + +# install -p -m644 *.tcl $RPM_BUILD_ROOT%_datadir/%name/ +install -p -m644 lib/*.tcl $RPM_BUILD_ROOT%_datadir/%name/lib/ +install -p -m644 lib/msgs/*.* $RPM_BUILD_ROOT%_datadir/%name/lib/msgs/ +install -p -m644 theme/*.tcl $RPM_BUILD_ROOT%_datadir/%name/theme +install -p -m644 projman.desktop $RPM_BUILD_ROOT%{_datarootdir}/applications + +%post +%update_menus + +%postun +%clean_menus + +%files +%doc INSTALL CHANGELOG TODO LICENSE README.md +%_bindir/%name +%_bindir/tkregexp +%_datarootdir/applications/%name.desktop +%_datadir/%name + + +%changelog +* Mon Nov 28 2022 Sergey Kalinin 2.0.0 + - Initial release +