Added Yassnippets for org-mode
This commit is contained in:
parent
43ff89c0ee
commit
f34b3d6c30
30 changed files with 2909 additions and 121 deletions
2
.org-id-locations
Normal file
2
.org-id-locations
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
nil
|
4
auto-save-list/.saves-1773-GlaDOS~
Normal file
4
auto-save-list/.saves-1773-GlaDOS~
Normal file
|
@ -0,0 +1,4 @@
|
|||
/home/balazs/Dokumentumok/Org/bsz2/bsz2.org
|
||||
/home/balazs/Dokumentumok/Org/bsz2/#bsz2.org#
|
||||
/home/balazs/Dokumentumok/Org/bsz2/bsz2.tex
|
||||
/home/balazs/Dokumentumok/Org/bsz2/#bsz2.tex#
|
|
@ -1,6 +0,0 @@
|
|||
/home/balazs/.emacs.d/conf.org
|
||||
/home/balazs/.emacs.d/#conf.org#
|
||||
/home/balazs/Dokumentumok/Org/SzhArch/szgarch.org
|
||||
/home/balazs/Dokumentumok/Org/SzhArch/#szgarch.org#
|
||||
/home/balazs/.emacs.d/init.el
|
||||
/home/balazs/.emacs.d/#init.el#
|
10
auto-save-list/.saves-1964-GlaDOS~
Normal file
10
auto-save-list/.saves-1964-GlaDOS~
Normal file
|
@ -0,0 +1,10 @@
|
|||
/home/balazs/Dokumentumok/Org/bsz2/bsz2.org
|
||||
/home/balazs/Dokumentumok/Org/bsz2/#bsz2.org#
|
||||
/sudo:root@GlaDOS:/etc/fstab
|
||||
/tmp/#!sudo:root@GlaDOS:!etc!fstab#
|
||||
/home/balazs/Dokumentumok/bsz2_jegyzet.pdf
|
||||
/home/balazs/Dokumentumok/#bsz2_jegyzet.pdf#
|
||||
/home/balazs/Dokumentumok/bsz2_tetelsor_2020tavasz.pdf
|
||||
/home/balazs/Dokumentumok/#bsz2_tetelsor_2020tavasz.pdf#
|
||||
/home/balazs/.emacs.d/conf.org
|
||||
/home/balazs/.emacs.d/#conf.org#
|
0
auto-save-list/.saves-713-GlaDOS~
Normal file
0
auto-save-list/.saves-713-GlaDOS~
Normal file
0
auto-save-list/.saves-714-GlaDOS~
Normal file
0
auto-save-list/.saves-714-GlaDOS~
Normal file
4
auto-save-list/.saves-98352-GlaDOS~
Normal file
4
auto-save-list/.saves-98352-GlaDOS~
Normal file
|
@ -0,0 +1,4 @@
|
|||
/home/balazs/Dokumentumok/Katona_Gyula_Recski_Andras_Szabo_Csaba--A_szamitastudomany_alapjai.pdf
|
||||
/home/balazs/Dokumentumok/#Katona_Gyula_Recski_Andras_Szabo_Csaba--A_szamitastudomany_alapjai.pdf#
|
||||
/home/balazs/Dokumentumok/Org/bsz2/bsz2.org
|
||||
/home/balazs/Dokumentumok/Org/bsz2/#bsz2.org#
|
13
conf.el
13
conf.el
|
@ -109,7 +109,11 @@ There are two things you can do about this warning:
|
|||
(global-set-key (kbd "M-RET d") 'srefactor-lisp-format-defun)
|
||||
(global-set-key (kbd "M-RET b") 'srefactor-lisp-format-buffer)
|
||||
|
||||
(load-file "~/.emacs.d/elpa/discord-emacs.el/discord-emacs.el")
|
||||
;(load-file "~/.emacs.d/elpa/discord-emacs.el/discord-emacs.el")
|
||||
|
||||
(add-to-list 'load-path "~/.emacs.d/plugins/")
|
||||
(load "elcord")
|
||||
(elcord-mode)
|
||||
|
||||
(require 'smex) ; Not needed if you use package.el
|
||||
(smex-initialize) ; Can be omitted. This might cause a (minimal) delay
|
||||
|
@ -134,6 +138,8 @@ There are two things you can do about this warning:
|
|||
(require 'neotree)
|
||||
(global-set-key [f8] 'neotree-toggle)
|
||||
|
||||
(global-unset-key (kbd "C-z"))
|
||||
|
||||
(define-key c-mode-base-map (kbd "M-.") (function rtags-find-symbol-at-point))
|
||||
(define-key c-mode-base-map (kbd "M-,") (function rtags-find-references-at-point))
|
||||
(define-key c-mode-base-map (kbd "M-;") (function rtags-find-file))
|
||||
|
@ -151,6 +157,8 @@ There are two things you can do about this warning:
|
|||
(message "Configuration reloaded")
|
||||
))
|
||||
|
||||
(defvar cmake-last-target nil)
|
||||
|
||||
(defun cmake-build-and-run ()
|
||||
"Asks for cmake target, then compiles and runs it."
|
||||
(interactive)
|
||||
|
@ -178,6 +186,7 @@ There are two things you can do about this warning:
|
|||
|
||||
|
||||
(define-key org-mode-map (kbd "M-p") 'org-latex-export-to-pdf)
|
||||
(define-key org-mode-map (kbd "<mouse-8>") 'org-mark-ring-goto)
|
||||
|
||||
(global-set-key (kbd "C-x g") 'magit-status)
|
||||
|
||||
|
@ -186,6 +195,8 @@ There are two things you can do about this warning:
|
|||
;; This is your old M-x.
|
||||
(global-set-key (kbd "C-c C-c M-x") 'execute-extended-command)
|
||||
|
||||
(global-set-key (kbd "C-z") 'yas-insert-snippet)
|
||||
|
||||
|
||||
|
||||
(setq minibuffer-completion-confirm nil)
|
||||
|
|
20
conf.org
20
conf.org
|
@ -135,9 +135,16 @@ There are two things you can do about this warning:
|
|||
(global-set-key (kbd "M-RET b") 'srefactor-lisp-format-buffer)
|
||||
#+END_SRC
|
||||
*** Discord-Emacs
|
||||
Ez nem működött
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(load-file "~/.emacs.d/elpa/discord-emacs.el/discord-emacs.el")
|
||||
;(load-file "~/.emacs.d/elpa/discord-emacs.el/discord-emacs.el")
|
||||
#+END_SRC
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(add-to-list 'load-path "~/.emacs.d/plugins/")
|
||||
(load "elcord")
|
||||
(elcord-mode)
|
||||
#+END_SRC
|
||||
|
||||
*** Smex
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(require 'smex) ; Not needed if you use package.el
|
||||
|
@ -175,6 +182,10 @@ There are two things you can do about this warning:
|
|||
(global-set-key [f8] 'neotree-toggle)
|
||||
#+END_SRC
|
||||
* Makró beállítások
|
||||
** Eltávolítás
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(global-unset-key (kbd "C-z"))
|
||||
#+END_SRC
|
||||
** Rtags
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(define-key c-mode-base-map (kbd "M-.") (function rtags-find-symbol-at-point))
|
||||
|
@ -232,9 +243,10 @@ There are two things you can do about this warning:
|
|||
#+BEGIN_SRC emacs-lisp
|
||||
|
||||
#+END_SRC
|
||||
** Org export
|
||||
** Org mode
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(define-key org-mode-map (kbd "M-p") 'org-latex-export-to-pdf)
|
||||
(define-key org-mode-map (kbd "<mouse-8>") 'org-mark-ring-goto)
|
||||
#+END_SRC
|
||||
** Magit
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
|
@ -247,6 +259,10 @@ There are two things you can do about this warning:
|
|||
;; This is your old M-x.
|
||||
(global-set-key (kbd "C-c C-c M-x") 'execute-extended-command)
|
||||
#+END_SRC
|
||||
** Yas
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(global-set-key (kbd "C-z") 'yas-insert-snippet)
|
||||
#+END_SRC
|
||||
* Saját változók
|
||||
** Csomag változók
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
;;
|
||||
;; File auto-generated by irony-cdb-json.
|
||||
;;
|
||||
(("/home/balazs/Code/remo_sim/" . "/tmp/cmake55bC56/compile_commands.json")
|
||||
(("/home/balazs/Code/Akos_rand/" . "/tmp/cmakerN1NYl/compile_commands.json")
|
||||
("/home/balazs/Code/remo_sim/" . "/tmp/cmake55bC56/compile_commands.json")
|
||||
("/home/balazs/Code/remo_sim/" . "/tmp/cmakef2iCaw/compile_commands.json")
|
||||
("/home/balazs/Code/remo_sim/" . "/tmp/cmakeoZ5sr1/compile_commands.json")
|
||||
("/home/balazs/Code/remo_sim/" . "/tmp/cmakep4K1fN/compile_commands.json")
|
||||
|
|
18
elpa/magit-popup-20200306.223/dir
Normal file
18
elpa/magit-popup-20200306.223/dir
Normal file
|
@ -0,0 +1,18 @@
|
|||
This is the file .../info/dir, which contains the
|
||||
topmost node of the Info hierarchy, called (dir)Top.
|
||||
The first time you invoke Info you start off looking at this node.
|
||||
|
||||
File: dir, Node: Top This is the top of the INFO tree
|
||||
|
||||
This (the Directory node) gives a menu of major topics.
|
||||
Typing "q" exits, "H" lists all Info commands, "d" returns here,
|
||||
"h" gives a primer for first-timers,
|
||||
"mEmacs<Return>" visits the Emacs manual, etc.
|
||||
|
||||
In Emacs, you can click mouse button 2 on a menu item or cross reference
|
||||
to select it.
|
||||
|
||||
* Menu:
|
||||
|
||||
Emacs
|
||||
* Magit-Popup: (magit-popup). Infix arguments with feedback.
|
26
elpa/magit-popup-20200306.223/magit-popup-autoloads.el
Normal file
26
elpa/magit-popup-20200306.223/magit-popup-autoloads.el
Normal file
|
@ -0,0 +1,26 @@
|
|||
;;; magit-popup-autoloads.el --- automatically extracted autoloads
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
(add-to-list 'load-path (directory-file-name
|
||||
(or (file-name-directory #$) (car load-path))))
|
||||
|
||||
|
||||
;;;### (autoloads nil "magit-popup" "magit-popup.el" (0 0 0 0))
|
||||
;;; Generated autoloads from magit-popup.el
|
||||
|
||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "magit-popup" '("magit-")))
|
||||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil nil ("magit-popup-pkg.el") (0 0 0 0))
|
||||
|
||||
;;;***
|
||||
|
||||
;; Local Variables:
|
||||
;; version-control: never
|
||||
;; no-byte-compile: t
|
||||
;; no-update-autoloads: t
|
||||
;; coding: utf-8
|
||||
;; End:
|
||||
;;; magit-popup-autoloads.el ends here
|
13
elpa/magit-popup-20200306.223/magit-popup-pkg.el
Normal file
13
elpa/magit-popup-20200306.223/magit-popup-pkg.el
Normal file
|
@ -0,0 +1,13 @@
|
|||
(define-package "magit-popup" "20200306.223" "Define prefix-infix-suffix command combos"
|
||||
'((emacs "24.4")
|
||||
(dash "2.13.0"))
|
||||
:commit "b8e886c4f2242d6c58f84d4549af712e86360db1" :keywords
|
||||
'("bindings")
|
||||
:authors
|
||||
'(("Jonas Bernoulli" . "jonas@bernoul.li"))
|
||||
:maintainer
|
||||
'("Jonas Bernoulli" . "jonas@bernoul.li")
|
||||
:url "https://github.com/magit/magit-popup")
|
||||
;; Local Variables:
|
||||
;; no-byte-compile: t
|
||||
;; End:
|
1360
elpa/magit-popup-20200306.223/magit-popup.el
Normal file
1360
elpa/magit-popup-20200306.223/magit-popup.el
Normal file
File diff suppressed because it is too large
Load diff
BIN
elpa/magit-popup-20200306.223/magit-popup.elc
Normal file
BIN
elpa/magit-popup-20200306.223/magit-popup.elc
Normal file
Binary file not shown.
744
elpa/magit-popup-20200306.223/magit-popup.info
Normal file
744
elpa/magit-popup-20200306.223/magit-popup.info
Normal file
|
@ -0,0 +1,744 @@
|
|||
This is magit-popup.info, produced by makeinfo version 6.5 from
|
||||
magit-popup.texi.
|
||||
|
||||
Copyright (C) 2015-2020 Jonas Bernoulli <jonas@bernoul.li>
|
||||
|
||||
You can redistribute this document and/or modify it under the terms
|
||||
of the GNU General Public License as published by the Free Software
|
||||
Foundation, either version 3 of the License, or (at your option)
|
||||
any later version.
|
||||
|
||||
This document 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.
|
||||
|
||||
INFO-DIR-SECTION Emacs
|
||||
START-INFO-DIR-ENTRY
|
||||
* Magit-Popup: (magit-popup). Infix arguments with feedback.
|
||||
END-INFO-DIR-ENTRY
|
||||
|
||||
|
||||
File: magit-popup.info, Node: Top, Next: Introduction, Up: (dir)
|
||||
|
||||
Magit-Popup User Manual
|
||||
***********************
|
||||
|
||||
This package implements a generic interface for toggling switches and
|
||||
setting options and then invoking an Emacs command that does something
|
||||
with these arguments. Usually the command calls an external process
|
||||
with the specified arguments.
|
||||
|
||||
This package has been superseded by Transient (*note
|
||||
(transient)Top::). No new features will be added but bugs will be
|
||||
fixed.
|
||||
|
||||
This manual is for Magit-Popup version 2.13.2 (v2.13.2+1).
|
||||
|
||||
Copyright (C) 2015-2020 Jonas Bernoulli <jonas@bernoul.li>
|
||||
|
||||
You can redistribute this document and/or modify it under the terms
|
||||
of the GNU General Public License as published by the Free Software
|
||||
Foundation, either version 3 of the License, or (at your option)
|
||||
any later version.
|
||||
|
||||
This document 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.
|
||||
|
||||
* Menu:
|
||||
|
||||
* Introduction::
|
||||
* Usage::
|
||||
* Defining Prefix and Suffix Commands::
|
||||
|
||||
— The Detailed Node Listing —
|
||||
|
||||
Usage
|
||||
|
||||
* Customizing Existing Popups::
|
||||
* Other Options::
|
||||
|
||||
Defining Prefix and Suffix Commands
|
||||
|
||||
* Defining Prefix Commands::
|
||||
* Defining Suffix Commands::
|
||||
|
||||
|
||||
|
||||
File: magit-popup.info, Node: Introduction, Next: Usage, Prev: Top, Up: Top
|
||||
|
||||
1 Introduction
|
||||
**************
|
||||
|
||||
Taking inspiration from regular prefix commands and prefix arguments,
|
||||
this library implements a similar abstraction; a new kind of prefix
|
||||
command that is associated with a specific set of infix arguments and
|
||||
suffix commands.
|
||||
|
||||
Invoking such a prefix command displays a popup buffer which lists
|
||||
the associated infix arguments and suffix commands. In that buffer each
|
||||
argument is prefixed with the key sequence that can be used to toggle it
|
||||
or change its value. Likewise each suffix command is prefixed with the
|
||||
key used to invoke it. Such a popup buffer might look like this:
|
||||
|
||||
,-----------------------------------------
|
||||
|Switches
|
||||
| -l Show graph (--graph)
|
||||
| -d Show refnames (--decorate)
|
||||
|
|
||||
|Options
|
||||
| =m Search messages (--grep="popup")
|
||||
| =p Search patches (-G)
|
||||
|
|
||||
|Action
|
||||
| l Show log for current branch
|
||||
| o Show log for another branch
|
||||
'-----------------------------------------
|
||||
|
||||
The user could then for example type ‘-l’ to toggle the ‘--graph’
|
||||
*switch* (when it is on then it is shown in green, otherwise in gray),
|
||||
or ‘=m’ to change the value of the *option* ‘--grep’.
|
||||
|
||||
Once all arguments are as desired one invokes a suffix command, which
|
||||
causes the popup buffer to disappear. The suffix command should then
|
||||
retrieve the infix arguments in its ‘interactive’ form like this is done
|
||||
for prefix arguments.
|
||||
|
||||
While such "prefix-infix-suffix" combos were inspired by regular
|
||||
prefix commands and prefix arguments, they are also quite different.
|
||||
This should illustrate the most basic differences:
|
||||
|
||||
• A regular prefix command
|
||||
|
||||
/- command1
|
||||
prefix --- command2
|
||||
\- command3
|
||||
|
||||
• Prefix arguments
|
||||
|
||||
/- command1
|
||||
C-u ... --- command2
|
||||
\- well any command
|
||||
|
||||
• A Prefix-Infix-Suffix combo
|
||||
|
||||
/- argument1 -\ /- suffix1
|
||||
prefix----- argument2 --+-- suffix2
|
||||
^ \- argument3 -/
|
||||
| |
|
||||
'--------'
|
||||
(refresh buffer)
|
||||
|
||||
This package has been superseded by Transient (*note
|
||||
(transient)Top::). No new features will be added but bugs will be
|
||||
fixed.
|
||||
|
||||
|
||||
File: magit-popup.info, Node: Usage, Next: Defining Prefix and Suffix Commands, Prev: Introduction, Up: Top
|
||||
|
||||
2 Usage
|
||||
*******
|
||||
|
||||
Every popup buffers created with a prefix command contains a section
|
||||
named "Actions" listing the available suffix commands. Most buffers
|
||||
also contain a "Switches" and/or an "Options" section which list the two
|
||||
types of infix arguments separately.
|
||||
|
||||
Switches are arguments that can be toggled on or off. When a switch
|
||||
is active then it is shown in color, when it is off then it is shown in
|
||||
gray (of course the details depend on the color theme in use).
|
||||
|
||||
Options are arguments that have a value. When an option has a value
|
||||
then that is shown after the option itself. Because for some options
|
||||
the empty string is a valid value, options are additionally colorized
|
||||
like switches to indicate whether they are active or not.
|
||||
|
||||
The events bound to suffix commands are always single alphabetic
|
||||
characters. The bindings for arguments are always two events long. For
|
||||
switches the first key is always ‘-’, for options it is always ‘=’. The
|
||||
second key is always an alphabetic character.
|
||||
|
||||
By default popup buffers also feature a section listing commands
|
||||
common to all popups. To avoid conflicts with suffix commands, the
|
||||
bindings of these common commands are not alphabetic characters. This
|
||||
section is shown by default so that documentation-resistant users get a
|
||||
chance to notice them.
|
||||
|
||||
-- User Option: magit-popup-show-common-commands
|
||||
|
||||
This option controls whether the section that lists the commands
|
||||
that are common to all popups is initially shown.
|
||||
|
||||
By default this is not the case, but note that you can temporarily
|
||||
show this section using ‘C-t’, which therefore is the only common
|
||||
command you actually have to memorize.
|
||||
|
||||
‘C-t’ (‘magit-popup-toggle-show-common-commands’)
|
||||
|
||||
Show or hide the section listing the commands shared by all popups.
|
||||
|
||||
‘C-g’ (‘magit-popup-quit’)
|
||||
|
||||
Quit popup buffer without invoking a suffix command.
|
||||
|
||||
Without further action, setting arguments only affects the next
|
||||
suffix command. Invoking the same prefix command again resets the
|
||||
arguments to their default value, but the defaults can be changed
|
||||
directly from the popup buffer itself. For a prefix command named
|
||||
‘NAME-popup’ the default values are stored as the value of the custom
|
||||
option named ‘NAME-arguments’. While this option can be customized
|
||||
using the Custom interface, it is better to do so directly from the
|
||||
popup buffer.
|
||||
|
||||
‘C-c C-c’ (‘magit-popup-set-default-arguments’)
|
||||
|
||||
This sets the default value for the arguments for the current
|
||||
popup.
|
||||
|
||||
Then the popup buffer is closed without invoking a suffix command;
|
||||
unless a prefix argument is used in which case the popup remains
|
||||
open.
|
||||
|
||||
‘C-x C-s’ (‘magit-popup-save-default-arguments’)
|
||||
|
||||
This sets the default value for the arguments for the current popup
|
||||
and saves it for future Emacs sessions.
|
||||
|
||||
Then the popup buffer is closed without invoking an action; unless
|
||||
a prefix argument is used in which case the popup remains open.
|
||||
|
||||
It is also possible to add additional arguments and commands to an
|
||||
existing popup, but that cannot be done directly from the popup (or the
|
||||
Custom interface). See *note Customizing Existing Popups::.
|
||||
|
||||
Documentation about a popup’s arguments and commands can be shown
|
||||
directly from the popup.
|
||||
|
||||
‘C-h i’ (‘magit-popup-info’)
|
||||
|
||||
Show this manual.
|
||||
|
||||
‘?’ (‘magit-popup-help’)
|
||||
|
||||
This command reads a key sequence and then shows the documentation
|
||||
of the argument or command that sequence is bound to. In other
|
||||
words type the same keys that you would use to invoke the argument
|
||||
or command, but prefix the sequence with ‘?’.
|
||||
|
||||
For suffix commands this shows the doc-string. For arguments this
|
||||
command can only show something for popups that have an associated
|
||||
man-page. If the man-page is set, then this command displays it in
|
||||
a separate buffer and puts point on the entry about the argument in
|
||||
question.
|
||||
|
||||
The buffer which is used to display the documentation is selected.
|
||||
Simply press ‘q’ to leave that buffer and restore the old window
|
||||
configuration.
|
||||
|
||||
While it isn’t very useful, it is possible to move around in a popup
|
||||
buffer using ‘C-p’ and ‘C-n’, and to invoke the argument or command at
|
||||
point using ‘RET’. But it is much more efficient to use the dedicated
|
||||
key bindings instead, so these commands are not listed in popup buffers
|
||||
along with the other common commands.
|
||||
|
||||
* Menu:
|
||||
|
||||
* Customizing Existing Popups::
|
||||
* Other Options::
|
||||
|
||||
|
||||
File: magit-popup.info, Node: Customizing Existing Popups, Next: Other Options, Up: Usage
|
||||
|
||||
2.1 Customizing Existing Popups
|
||||
===============================
|
||||
|
||||
It is possible to define additional infix arguments and suffix commands
|
||||
to an existing popup using the following functions.
|
||||
|
||||
You can find some examples which use the below commands at
|
||||
<https://github.com/magit/magit/wiki/Additional-proposed-infix-arguments-and-suffix-commands>.
|
||||
|
||||
-- Function: magit-define-popup-switch popup key desc switch &optional
|
||||
enable at prepend
|
||||
|
||||
In POPUP, define KEY as SWITCH.
|
||||
|
||||
POPUP is a popup command defined using ‘magit-define-popup’.
|
||||
SWITCH is a string representing an argument that takes no value.
|
||||
KEY is a character representing the second event in the sequence of
|
||||
keystrokes used to toggle the argument. (The first event, the
|
||||
prefix, is shared among all switches, defaults to ‘-’, and can be
|
||||
changed in ‘magit-popup-mode-keymap’).
|
||||
|
||||
DESC is a string describing the purpose of the argument, it is
|
||||
displayed in the popup.
|
||||
|
||||
If optional ENABLE is non-nil then the switch is on by default.
|
||||
|
||||
SWITCH is inserted after all other switches already defined for
|
||||
POPUP, unless optional PREPEND is non-nil, in which case it is
|
||||
placed first. If optional AT is non-nil then it should be the KEY
|
||||
of another switch already defined for POPUP, the argument is then
|
||||
placed before or after AT, depending on PREPEND.
|
||||
|
||||
-- Function: magit-define-popup-option popup key desc option &optional
|
||||
reader value at prepend
|
||||
|
||||
In POPUP, define KEY as OPTION.
|
||||
|
||||
POPUP is a popup command defined using ‘magit-define-popup’.
|
||||
OPTION is a string representing an argument that takes a value.
|
||||
KEY is a character representing the second event in the sequence of
|
||||
keystrokes used to set the argument’s value. (The first event, the
|
||||
prefix, is shared among all options, defaults to ‘=’, and can be
|
||||
changed in ‘magit-popup-mode-keymap’).
|
||||
|
||||
DESC is a string describing the purpose of the argument, it is
|
||||
displayed in the popup.
|
||||
|
||||
If optional VALUE is non-nil then the option is on by default, and
|
||||
VALUE is its default value.
|
||||
|
||||
READER is used to read a value from the user when the option is
|
||||
invoked and does not currently have a value. (When the option has
|
||||
a value, then invoking the option causes it to be unset.) This
|
||||
function must take two arguments but may choose to ignore them.
|
||||
The first argument is the name of the option (with ": \" appended,
|
||||
unless it ends with "=") and can be used as the prompt. The second
|
||||
argument is nil or the value that was in effect before the option
|
||||
was unset, which may be suitable as initial completion input. If
|
||||
no reader is specified, then ‘read-from-minibuffer’ is used.
|
||||
|
||||
OPTION is inserted after all other options already defined for
|
||||
POPUP, unless optional PREPEND is non-nil, in which case it is
|
||||
placed first. If optional AT is non-nil then it should be the KEY
|
||||
of another option already defined for POPUP, the argument is then
|
||||
placed before or after AT, depending on PREPEND.
|
||||
|
||||
-- Function: magit-define-popup-action popup key desc command &optional
|
||||
at prepend
|
||||
|
||||
In POPUP, define KEY as COMMAND.
|
||||
|
||||
POPUP is a popup command defined using ‘magit-define-popup’.
|
||||
COMMAND can be any command but should usually consume the popup
|
||||
arguments in its ‘interactive’ form. KEY is a character
|
||||
representing the event used invoke the action, i.e. to
|
||||
interactively call the COMMAND.
|
||||
|
||||
DESC is a string describing the purpose of the action, it is
|
||||
displayed in the popup.
|
||||
|
||||
COMMAND is inserted after all other commands already defined for
|
||||
POPUP, unless optional PREPEND is non-nil, in which case it is
|
||||
placed first. If optional AT is non-nil then it should be the KEY
|
||||
of another command already defined for POPUP, the command is then
|
||||
placed before or after AT, depending on PREPEND.
|
||||
|
||||
-- Function: magit-define-popup-sequence-action popup key desc command
|
||||
&optional at prepend
|
||||
|
||||
Like ‘magit-define-popup-action’, but modifies the value of the
|
||||
‘:sequence-actions’ property instead of ‘:actions’.
|
||||
|
||||
-- Function: magit-define-popup-variable popup key desc command
|
||||
formatter &optional at prepend
|
||||
|
||||
In POPUP, define KEY as COMMAND.
|
||||
|
||||
POPUP is a popup command defined using ‘magit-define-popup’.
|
||||
COMMAND is a command which calls ‘magit-popup-set-variable’.
|
||||
FORMATTER is a function which calls ‘magit-popup-format-variable’.
|
||||
These two functions have to be called with the same arguments.
|
||||
|
||||
KEY is a character representing the event used interactively call
|
||||
the COMMAND.
|
||||
|
||||
DESC is the variable or a representation thereof. It’s not
|
||||
actually used for anything.
|
||||
|
||||
COMMAND is inserted after all other commands already defined for
|
||||
POPUP, unless optional PREPEND is non-nil, in which case it is
|
||||
placed first. If optional AT is non-nil then it should be the KEY
|
||||
of another command already defined for POPUP, the command is then
|
||||
placed before or after AT, depending on PREPEND."
|
||||
|
||||
-- Function: magit-change-popup-key popup type from to
|
||||
|
||||
In POPUP, bind TO to what FROM was bound to. TYPE is one of
|
||||
‘:action’, ‘:sequence-action’, ‘:switch’, or ‘:option’. Bind TO
|
||||
and unbind FROM, both are characters.
|
||||
|
||||
-- Function: magit-remove-popup-key popup type key
|
||||
|
||||
In POPUP, remove KEY’s binding of TYPE. POPUP is a popup command
|
||||
defined using ‘magit-define-popup’. TYPE is one of ‘:action’,
|
||||
‘:sequence-action’, ‘:switch’, or ‘:option’. KEY is the character
|
||||
which is to be unbound.
|
||||
|
||||
It is also possible to change other aspects of a popup by setting a
|
||||
property using ‘plist-put’. See *note Defining Prefix Commands:: for
|
||||
valid properties. The most likely change Magit users might want to make
|
||||
is:
|
||||
|
||||
(plist-put magit-show-refs-popup :use-prefix nil)
|
||||
|
||||
|
||||
File: magit-popup.info, Node: Other Options, Prev: Customizing Existing Popups, Up: Usage
|
||||
|
||||
2.2 Other Options
|
||||
=================
|
||||
|
||||
-- User Option: magit-popup-use-prefix-argument
|
||||
|
||||
This option controls the effect that the use of a prefix argument
|
||||
before entering a popup has.
|
||||
|
||||
• ‘default’
|
||||
|
||||
With a prefix argument directly invoke the popup’s default
|
||||
action (an Emacs command), instead of bringing up the popup.
|
||||
|
||||
• ‘popup’
|
||||
|
||||
With a prefix argument bring up the popup, otherwise directly
|
||||
invoke the popup’s default action.
|
||||
|
||||
• ‘nil’
|
||||
|
||||
Ignore prefix arguments.
|
||||
|
||||
This option can be overridden for individual popups.
|
||||
‘magit-show-refs-popup’ for example defaults to invoking the
|
||||
default action directly. It only shows the popup buffer when a
|
||||
prefix argument is used. See *note Customizing Existing Popups::.
|
||||
|
||||
-- User Option: magit-popup-manpage-package
|
||||
|
||||
The Emacs package used to display man-pages, one of ‘man’ or
|
||||
‘woman’.
|
||||
|
||||
-- User Option: magit-popup-display-buffer-action
|
||||
|
||||
The option controls how the window used to display a popup buffer
|
||||
is created. Popup buffers are displayed using ‘display-buffer’
|
||||
with the value of this option as ACTION argument. You can also set
|
||||
this to nil and instead add an entry to ‘display-buffer-alist’.
|
||||
|
||||
To emphasize the default action by making it bold use this:
|
||||
|
||||
(button-type-put 'magit-popup-action-button 'format " %k %D")
|
||||
|
||||
|
||||
File: magit-popup.info, Node: Defining Prefix and Suffix Commands, Prev: Usage, Up: Top
|
||||
|
||||
3 Defining Prefix and Suffix Commands
|
||||
*************************************
|
||||
|
||||
If you write an extension for Magit then you should use this library now
|
||||
and later when ‘transient’ is released port to that.
|
||||
|
||||
If you are considering using this library to define popups for
|
||||
packages not related to Magit, then keep in mind that it will be
|
||||
superseded eventually. Once ‘transient’ has been released I will only
|
||||
fix bugs in ‘magit-popup’ but not implement any new features.
|
||||
|
||||
Also consider using ‘hydra’ instead. To some extend ‘magit-popup’
|
||||
and ‘hydra’ are similar but have a different focus. The main purpose of
|
||||
‘magit-popup’ is to pass infix arguments to suffix commands. If all you
|
||||
need is a command dispatcher then you are better of using ‘hydra’. Of
|
||||
course ‘hydra’ may also be a better fit not only because of the features
|
||||
it lacks, but also because of the features it provides, which are in
|
||||
turn missing from ‘magit-popup’.
|
||||
|
||||
Here is an example of how one defines a prefix command along with its
|
||||
infix arguments, and then also one of its suffix commands.
|
||||
|
||||
;;;###autoload (autoload 'magit-tag-popup "magit" nil t)
|
||||
(magit-define-popup magit-tag-popup
|
||||
"Show popup buffer featuring tagging commands."
|
||||
'magit-commands
|
||||
:man-page "git-tag"
|
||||
:switches '((?a "Annotate" "--annotate")
|
||||
(?s "Sign" "--sign")
|
||||
(?f "Force" "--force"))
|
||||
:actions '((?t "Create" magit-tag)
|
||||
(?k "Delete" magit-tag-delete)
|
||||
(?p "Prune" magit-tag-prune))
|
||||
:default-action 'magit-tag)
|
||||
|
||||
;;;###autoload
|
||||
(defun magit-tag (name rev &optional args)
|
||||
"Create a new tag with the given NAME at REV."
|
||||
(interactive (list (magit-read-tag "Tag name")
|
||||
(magit-read-branch-or-commit "Place tag on")
|
||||
(magit-tag-arguments)))
|
||||
(magit-run-git-with-editor "tag" args name rev))
|
||||
|
||||
* Menu:
|
||||
|
||||
* Defining Prefix Commands::
|
||||
* Defining Suffix Commands::
|
||||
|
||||
|
||||
File: magit-popup.info, Node: Defining Prefix Commands, Next: Defining Suffix Commands, Up: Defining Prefix and Suffix Commands
|
||||
|
||||
3.1 Defining Prefix Commands
|
||||
============================
|
||||
|
||||
Prefix commands and their infix arguments are defined using the macro
|
||||
‘magit-define-popup’. The key bindings and descriptions of suffix
|
||||
commands are also defined using that macro, but the actual interactive
|
||||
commands have to be defined separately using plain ‘defun’.
|
||||
|
||||
-- Macro: magit-define-popup name doc [group [mode [option]]] :keyword
|
||||
value...
|
||||
|
||||
This macro defines a popup named NAME. The NAME should begin with
|
||||
the package prefix and by convention end with ‘-popup’, it is used
|
||||
as the name of the command which shows the popup and for an
|
||||
internal variable (whose value is used to store information about
|
||||
the popup and should not be accessed directly). DOC is the
|
||||
doc-string of the popup command.
|
||||
|
||||
This macro also defines an option and a function both named
|
||||
‘SHORTNAME-arguments’, where SHORTNAME is NAME with the trailing
|
||||
‘-popup’ removed. The name of this option and this function can be
|
||||
overwritten using the optional argument OPTION, but that is rarely
|
||||
advisable. As a special case if OPTION is specified but ‘nil’,
|
||||
then this option and this function are not defined at all, which is
|
||||
useful for popups that are used as simple dispatchers that offer no
|
||||
arguments.
|
||||
|
||||
The option ‘SHORTNAME-arguments’ holds the value for the popup
|
||||
arguments. It can be customized from within the popup or using the
|
||||
Custom interface. It can also have a buffer local value in any
|
||||
non-popup buffer. The local value for the buffer from which the
|
||||
popup command was invoked, can be set from within the popup buffer.
|
||||
|
||||
The function ‘SHORTNAME-arguments’ returns the currently effective
|
||||
value of the variable by the same name. See below for more
|
||||
information.
|
||||
|
||||
Optional argument GROUP specifies the Custom group into which the
|
||||
option is placed. If omitted then the option is placed into some
|
||||
group the same way it is done when directly using ‘defcustom’ and
|
||||
omitting the group, except when NAME begins with "magit-", in which
|
||||
case the group ‘magit-git-arguments’ is used.
|
||||
|
||||
The optional argument MODE specifies the mode used by the popup
|
||||
buffer. If it is omitted or ‘nil’ then ‘magit-popup-mode’ is used.
|
||||
|
||||
The remaining arguments should have the form ‘[KEYWORD VALUE]...’.
|
||||
|
||||
The following keywords are meaningful (and by convention are
|
||||
usually specified in that order):
|
||||
|
||||
• ‘:actions’
|
||||
|
||||
The actions which can be invoked from the popup. VALUE is a
|
||||
list whose members have the form (KEY DESC COMMAND), see
|
||||
‘magit-define-popup-action’ for details.
|
||||
|
||||
Actions are regular Emacs commands, which usually have an
|
||||
‘interactive’ form setup to consume the values of the popup
|
||||
‘:switches’ and ‘:options’ when invoked from the corresponding
|
||||
popup, else when invoked as the default action or directly
|
||||
without using the popup, the default value of the variable
|
||||
‘SHORTNAME-arguments’. This is usually done by calling the
|
||||
function ‘SHORTNAME-arguments’.
|
||||
|
||||
Members of VALUE may also be strings and functions, assuming
|
||||
the first member is a string or function. In that case the
|
||||
members are split into sections and these special elements are
|
||||
used as headings. If such an element is a function then it is
|
||||
called with no arguments and must return either a string,
|
||||
which is used as the heading, or nil, in which case the
|
||||
section is not inserted.
|
||||
|
||||
Members of VALUE may also be nil. This should only be used
|
||||
together with ‘:max-action-columns’ and allows having gaps in
|
||||
the action grid, which can help arranging actions sensibly.
|
||||
|
||||
• ‘:default-action’
|
||||
|
||||
The default action of the popup which is used directly instead
|
||||
of displaying the popup buffer, when the popup is invoked with
|
||||
a prefix argument. Also see ‘magit-popup-use-prefix-argument’
|
||||
and ‘:use-prefix’, which can be used to inverse the meaning of
|
||||
the prefix argument.
|
||||
|
||||
• ‘:use-prefix’
|
||||
|
||||
Controls when to display the popup buffer and when to invoke
|
||||
the default action (if any) directly. This overrides the
|
||||
global default set using ‘magit-popup-use-prefix-argument’.
|
||||
The value, if specified, should be one of ‘default’ or
|
||||
‘prefix’, or a function that is called with no arguments and
|
||||
returns one of these symbols.
|
||||
|
||||
• ‘:max-action-columns’
|
||||
|
||||
The maximum number of actions to display on a single line, a
|
||||
number or a function that return a number and takes the name
|
||||
of the section currently being inserted as argument. If there
|
||||
isn’t enough room to display as many columns as specified
|
||||
here, then fewer are used.
|
||||
|
||||
• ‘:switches’
|
||||
|
||||
The popup arguments which can be toggled on and off. VALUE is
|
||||
a list whose members have the form ‘(KEY DESC SWITCH)’, see
|
||||
‘magit-define-popup-switch’ for details.
|
||||
|
||||
Members of VALUE may also be strings and functions, assuming
|
||||
the first member is a string or function. In that case the
|
||||
members are split into sections and these special elements are
|
||||
used as headings. If such an element is a function then it is
|
||||
called with no arguments and must return either a string,
|
||||
which is used as the heading, or nil, in which case the
|
||||
section is not inserted.
|
||||
|
||||
• ‘:options’
|
||||
|
||||
The popup arguments which take a value, as in "–opt~OPTVAL".
|
||||
VALUE is a list whose members have the form ‘(KEY DESC OPTION
|
||||
READER)’, see ‘magit-define-popup-option’ for details.
|
||||
|
||||
Members of VALUE may also be strings and functions, assuming
|
||||
the first member is a string or function. In that case the
|
||||
members are split into sections and these special elements are
|
||||
used as headings. If such an element is a function then it is
|
||||
called with no arguments and must return either a string,
|
||||
which is used as the heading, or nil, in which case the
|
||||
section is not inserted.
|
||||
|
||||
• ‘:default-arguments’
|
||||
|
||||
The default arguments, a list of switches (which are then
|
||||
enabled by default) and options with there default values, as
|
||||
in ‘"--OPT=OPTVAL"’.
|
||||
|
||||
• ‘:variables’
|
||||
|
||||
Variables which can be set from the popup. VALUE is a list
|
||||
whose members have the form ‘(KEY DESC COMMAND FORMATTER)’,
|
||||
see ‘magit-define-popup-variable’ for details.
|
||||
|
||||
Members of VALUE may also be strings and functions, assuming
|
||||
the first member is a string or function. In that case the
|
||||
members are split into sections and these special elements are
|
||||
used as headings. If such an element is a function then it is
|
||||
called with no arguments and must return either a string,
|
||||
which is used as the heading, or nil, in which case the
|
||||
section is not inserted.
|
||||
|
||||
Members of VALUE may also be actions as described above for
|
||||
‘:actions’.
|
||||
|
||||
VALUE may also be a function that returns a list as describe
|
||||
above.
|
||||
|
||||
• ‘:sequence-predicate’
|
||||
|
||||
When this function returns non-nil, then the popup uses
|
||||
‘:sequence-actions’ instead of ‘:actions’, and does not show
|
||||
the ‘:switches’ and ‘:options’.
|
||||
|
||||
• ‘:sequence-actions’
|
||||
|
||||
The actions which can be invoked from the popup, when
|
||||
‘:sequence-predicate’ returns non-nil.
|
||||
|
||||
• ‘:setup-function’
|
||||
|
||||
When this function is specified, then it is used instead of
|
||||
‘magit-popup-default-setup’.
|
||||
|
||||
• ‘:refresh-function’
|
||||
|
||||
When this function is specified, then it is used instead of
|
||||
calling ‘magit-popup-insert-section’ three times with symbols
|
||||
‘magit-popup-switch-button’, ‘magit-popup-option-button’, and
|
||||
finally ‘magit-popup-action-button’ as argument.
|
||||
|
||||
• ‘:man-page’
|
||||
|
||||
The name of the manpage to be displayed when the user requests
|
||||
help for an argument.
|
||||
|
||||
|
||||
File: magit-popup.info, Node: Defining Suffix Commands, Prev: Defining Prefix Commands, Up: Defining Prefix and Suffix Commands
|
||||
|
||||
3.2 Defining Suffix Commands
|
||||
============================
|
||||
|
||||
Commands intended to be invoked from a particular popup should determine
|
||||
the currently effective arguments by calling the function
|
||||
‘SHORTNAME-arguments’ inside their ‘interactive’ form. This function is
|
||||
created by the ‘magit-define-popup’ macro. For a popup named
|
||||
‘prefix-foo-popup’ the name of this function is ‘prefix-foo-arguments’.
|
||||
|
||||
When the command was invoked as an action in the respective popup,
|
||||
then this function returns the arguments that were set in the popup.
|
||||
Otherwise when the command was invoked as the default of the popup (by
|
||||
calling the popup command with a prefix argument), or without using the
|
||||
popup command at all, then this function returns the buffer-local or
|
||||
global value of the variable ‘SHORTNAME-arguments’.
|
||||
|
||||
Internally arguments are handled as a list of strings. This might
|
||||
not be appropriate for the intended use inside commands, or it might be
|
||||
necessary to manipulate that list somehow, i.e. to split "–ARG=VAL"
|
||||
into "–ARG""VAL". This should be done by advising or redefining the
|
||||
function ‘SHORTNAME-arguments’.
|
||||
|
||||
Internally ‘SHORNAME-arguments’ used following variables and
|
||||
function. Except when redefining the former, you should not use these
|
||||
directly.
|
||||
|
||||
-- Variable: magit-current-popup
|
||||
|
||||
The popup from which this editing command was invoked.
|
||||
|
||||
-- Variable: magit-current-popup-args
|
||||
|
||||
The value of the popup arguments for this editing command.
|
||||
|
||||
If the current command was invoked from a popup, then this is a
|
||||
list of strings of all the set switches and options. This includes
|
||||
arguments which are set by default not only those explicitly set
|
||||
during this invocation.
|
||||
|
||||
When the value is nil, then that can be because no argument is set,
|
||||
or because the current command wasn’t invoked from a popup at all.
|
||||
|
||||
-- Function: magit-current-popup-args &rest args
|
||||
|
||||
This function returns the value of the popup arguments for this
|
||||
editing command. The value is the same as that of the variable by
|
||||
the same name, except that FILTER is applied. FILTER is a list of
|
||||
regexps; only arguments that match one of them are returned. The
|
||||
first element of FILTER may also be ‘:not’ in which case only
|
||||
arguments that don’t match any of the regexps are returned, or
|
||||
‘:only’ which doesn’t change the behavior.
|
||||
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top770
|
||||
Node: Introduction2151
|
||||
Node: Usage4490
|
||||
Node: Customizing Existing Popups9187
|
||||
Node: Other Options15328
|
||||
Node: Defining Prefix and Suffix Commands16871
|
||||
Node: Defining Prefix Commands19023
|
||||
Node: Defining Suffix Commands27718
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
Local Variables:
|
||||
coding: utf-8
|
||||
End:
|
4
init.el
4
init.el
|
@ -8,13 +8,15 @@
|
|||
'(custom-safe-themes
|
||||
(quote
|
||||
("2679db166117d5b26b22a8f12a940f5ac415d76b004de03fcd34483505705f62" "0fffa9669425ff140ff2ae8568c7719705ef33b7a927a0ba7c5e2ffcfac09b75" "2809bcb77ad21312897b541134981282dc455ccd7c14d74cc333b6e549b824f3" "8ca8fbaeaeff06ac803d7c42de1430b9765d22a439efc45b5ac572c2d9d09b16" "229c5cf9c9bd4012be621d271320036c69a14758f70e60385e87880b46d60780" default)))
|
||||
'(ispell-highlight-face (quote flyspell-incorrect))
|
||||
'(package-selected-packages
|
||||
(quote
|
||||
(drag-stuff smex ox-epub quelpa emacsshot org-drill auctex highlight-doxygen format-all srefactor preproc-font-lock solarized-theme humanoid-themes nyan-mode neotree flycheck))))
|
||||
(magit-popup elcord drag-stuff smex ox-epub quelpa emacsshot org-drill auctex highlight-doxygen format-all srefactor preproc-font-lock solarized-theme humanoid-themes nyan-mode neotree flycheck))))
|
||||
(custom-set-faces
|
||||
;; custom-set-faces was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(flyspell-incorrect ((t (:underline (:color "#f0615d" :style wave)))))
|
||||
'(preproc-font-lock-preprocessor-background ((t (:foreground "lawn green")))))
|
||||
(load-theme 'humanoid-dark t)
|
||||
|
|
4
init.el~
4
init.el~
|
@ -8,13 +8,15 @@
|
|||
'(custom-safe-themes
|
||||
(quote
|
||||
("2679db166117d5b26b22a8f12a940f5ac415d76b004de03fcd34483505705f62" "0fffa9669425ff140ff2ae8568c7719705ef33b7a927a0ba7c5e2ffcfac09b75" "2809bcb77ad21312897b541134981282dc455ccd7c14d74cc333b6e549b824f3" "8ca8fbaeaeff06ac803d7c42de1430b9765d22a439efc45b5ac572c2d9d09b16" "229c5cf9c9bd4012be621d271320036c69a14758f70e60385e87880b46d60780" default)))
|
||||
'(ispell-highlight-face (quote flyspell-incorrect))
|
||||
'(package-selected-packages
|
||||
(quote
|
||||
(smex ox-epub quelpa emacsshot org-drill auctex highlight-doxygen format-all srefactor preproc-font-lock solarized-theme humanoid-themes nyan-mode neotree flycheck))))
|
||||
(elcord drag-stuff smex ox-epub quelpa emacsshot org-drill auctex highlight-doxygen format-all srefactor preproc-font-lock solarized-theme humanoid-themes nyan-mode neotree flycheck))))
|
||||
(custom-set-faces
|
||||
;; custom-set-faces was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(flyspell-incorrect ((t (:underline (:color "#f0615d" :style wave)))))
|
||||
'(preproc-font-lock-preprocessor-background ((t (:foreground "lawn green")))))
|
||||
(load-theme 'humanoid-dark t)
|
||||
|
|
519
plugins/elcord.el
Normal file
519
plugins/elcord.el
Normal file
|
@ -0,0 +1,519 @@
|
|||
;;; elcord.el --- Allows you to integrate Rich Presence from Discord
|
||||
|
||||
;; Copyright (C) 2017 heatingdevice
|
||||
|
||||
;; Author: heatingdevice
|
||||
;; Wilfredo Velázquez-Rodríguez <zulu.inuoe@gmail.com>
|
||||
;; Created: 21 Nov 2017
|
||||
;; Version: 1.1.0
|
||||
;; Keywords: games
|
||||
;; Homepage: https://github.com/Mstrodl/elcord
|
||||
;; Package-Requires: ((emacs "25.1"))
|
||||
;; License: MIT
|
||||
|
||||
;;; Commentary:
|
||||
;; elcord allows you to show off your buffer with all your Discord friends via the new rich presence feature
|
||||
;; To use, enable the global minor mode `elcord-mode'
|
||||
;; When enabled, elcord will communicate with the local Discord client in order to display information under
|
||||
;; the 'Playing a Game' status, updating this information at a regular interval.
|
||||
;;
|
||||
;; elcord will display an Emacs title, icon, as well as information about your current buffer:
|
||||
;; 1) The name and an icon (if available) for the current major mode
|
||||
;; 2) The name of the current buffer
|
||||
;; 3) The line number of the cursor, as well as total line count for the buffer
|
||||
;; `elcord-display-buffer-details' can be customized so that buffer name and line number are omitted.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'bindat)
|
||||
(require 'cl-lib)
|
||||
(require 'json)
|
||||
(require 'subr-x)
|
||||
|
||||
(defgroup elcord nil
|
||||
"Options for elcord."
|
||||
:prefix "elcord-"
|
||||
:group 'external)
|
||||
|
||||
(defcustom elcord-client-id '"388338871475240965"
|
||||
"ID of elcord client (Application ID).
|
||||
See <https://discordapp.com/developers/applications/me>."
|
||||
:type '(choice (const :tag "'Native' Application ID" "388338871475240965")
|
||||
(string :tag "Use the specified ID")
|
||||
(function :tag "Call the function with no args to get the ID."))
|
||||
:group 'elcord)
|
||||
|
||||
(defcustom elcord-refresh-rate 15
|
||||
"How often to send updates to Discord, in seconds."
|
||||
:type 'integer
|
||||
:group 'elcord)
|
||||
|
||||
(defcustom elcord-mode-icon-alist '((c-mode . "c-mode_icon")
|
||||
(c++-mode . "cpp-mode_icon")
|
||||
(clojure-mode . "clojure-mode_icon")
|
||||
(csharp-mode . "csharp-mode_icon")
|
||||
(comint-mode . "comint-mode_icon")
|
||||
(cperl-mode . "cperl-mode_icon")
|
||||
(emacs-lisp-mode . "emacs_icon")
|
||||
(enh-ruby-mode . "ruby-mode_icon")
|
||||
(erc-mode . "irc-mode_icon")
|
||||
(forth-mode . "forth-mode_icon")
|
||||
(fsharp-mode . "fsharp-mode_icon")
|
||||
(haskell-mode . "haskell-mode_icon")
|
||||
(java-mode . "java-mode_icon")
|
||||
(js-mode . "javascript-mode_icon")
|
||||
(kotlin-mode . "kotlin-mode_icon")
|
||||
(go-mode . "go-mode_icon")
|
||||
(latex-mode . "latex-mode_icon")
|
||||
(lisp-mode . "lisp-mode_icon")
|
||||
(magit-mode . "magit-mode_icon")
|
||||
(markdown-mode . "markdown-mode_icon")
|
||||
(nix-mode . "nix-mode_icon")
|
||||
(org-mode . "org-mode_icon")
|
||||
(racket-mode . "racket-mode_icon")
|
||||
(ruby-mode . "ruby-mode_icon")
|
||||
(rust-mode . "rust-mode_icon")
|
||||
(rustic-mode . "rust-mode_icon")
|
||||
("^slime-.*" . "lisp-mode_icon")
|
||||
("^sly-.*$" . "lisp-mode_icon")
|
||||
(php-mode . "php-mode_icon")
|
||||
(python-mode . "python-mode_icon"))
|
||||
"Mapping alist of major modes to icon names to have elcord use.
|
||||
Note, these icon names must be available as 'small_image' in Discord."
|
||||
:type '(alist :key-type (choice (symbol :tag "Mode name")
|
||||
(regexp :tag "Regex"))
|
||||
:value-type (choice (string :tag "Icon name")
|
||||
(function :tag "Mapping function")))
|
||||
:group 'elcord)
|
||||
|
||||
(defcustom elcord-mode-text-alist '((c-mode . "C ")
|
||||
(c++-mode . "C++")
|
||||
(csharp-mode . "C#")
|
||||
(cperl-mode . "Perl")
|
||||
(enh-ruby-mode . "Ruby")
|
||||
(fsharp-mode . "F#")
|
||||
(java-mode . "Java")
|
||||
(lisp-mode . "Common-Lisp")
|
||||
(markdown-mode . "Markdown")
|
||||
(magit-mode . "It's Magit!")
|
||||
("mhtml-mode" . "HTML")
|
||||
(slime-repl-mode . "SLIME-REPL")
|
||||
(sly-mrepl-mode . "Sly-REPL")
|
||||
(php-mode "PHP"))
|
||||
"Mapping alist of major modes to text labels to have elcord use."
|
||||
:type '(alist :key-type (choice (symbol :tag "Mode name")
|
||||
(regexp :tag "Regex"))
|
||||
:value-type (choice (string :tag "Text label")
|
||||
(function :tag "Mapping function")))
|
||||
:group 'elcord)
|
||||
|
||||
(defcustom elcord-display-elapsed 't
|
||||
"When enabled, Discord status will display the elapsed time since Emacs \
|
||||
has been started."
|
||||
:type 'boolean
|
||||
:group 'elcord)
|
||||
|
||||
(defvar elcord--startup-time (string-to-number (format-time-string "%s" (current-time))))
|
||||
|
||||
(defcustom elcord-display-buffer-details 't
|
||||
"When enabled, Discord status will display buffer name and line numbers:
|
||||
\"Editing <buffer-name>\"
|
||||
\"Line <line-number> (<line-number> of <line-count>)\"
|
||||
|
||||
Otherwise, it will display:
|
||||
\"Editing\"
|
||||
\"<elcord-mode-text>\"
|
||||
|
||||
The mode text is the same found by `elcord-mode-text-alist'"
|
||||
:type 'boolean
|
||||
:group 'elcord)
|
||||
|
||||
(defcustom elcord-use-major-mode-as-main-icon 'nil
|
||||
"When enabled, the major mode determines the main icon, rather than it being the editor."
|
||||
:type 'boolean
|
||||
:group 'elcord)
|
||||
|
||||
(defcustom elcord-show-small-icon 't
|
||||
"When enabled, show the small icon as well as the main icon."
|
||||
:type 'boolean
|
||||
:group 'elcord)
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode elcord-mode
|
||||
"Global minor mode for displaying Rich Presence in Discord."
|
||||
nil nil nil
|
||||
:require 'elcord
|
||||
:global t
|
||||
:group 'elcord
|
||||
:after-hook
|
||||
(progn
|
||||
(cond
|
||||
(elcord-mode
|
||||
(elcord--enable))
|
||||
(t
|
||||
(elcord--disable)))))
|
||||
|
||||
(defvar elcord--editor-name
|
||||
(cond
|
||||
((boundp 'spacemacs-version) "Spacemacs")
|
||||
((boundp 'doom-version) "DOOM Emacs")
|
||||
(t "Emacs"))
|
||||
"The name to use to represent the current editor.")
|
||||
|
||||
(defvar elcord--editor-icon
|
||||
(cond
|
||||
((boundp 'spacemacs-version) "spacemacs_icon")
|
||||
((boundp 'doom-version) "doom_icon")
|
||||
(t "emacs_icon"))
|
||||
"The icon to use to represent the current editor.")
|
||||
|
||||
(defvar elcord--discord-ipc-pipe "discord-ipc-0"
|
||||
"The name of the discord IPC pipe.")
|
||||
|
||||
(defvar elcord--update-presence-timer nil
|
||||
"Timer which periodically updates Discord Rich Presence.
|
||||
nil when elcord is not active.")
|
||||
|
||||
(defvar elcord--reconnect-timer nil
|
||||
"Timer used by elcord to attempt connection periodically, when active but disconnected.")
|
||||
|
||||
(defvar elcord--sock nil
|
||||
"The process used to communicate with Discord IPC.")
|
||||
|
||||
(defvar elcord--last-known-position (count-lines (point-min) (point))
|
||||
"Last known position (line number) recorded by elcord.")
|
||||
|
||||
(defvar elcord--last-known-buffer-name (buffer-name)
|
||||
"Last known buffer recorded by elcord.")
|
||||
|
||||
(defvar elcord--stdpipe-path (expand-file-name
|
||||
"stdpipe.ps1"
|
||||
(file-name-directory (file-truename load-file-name)))
|
||||
"Path to the 'stdpipe' script.
|
||||
On Windows, this script is used as a proxy for the Discord named pipe.
|
||||
Unused on other platforms.")
|
||||
|
||||
(defun elcord--make-process ()
|
||||
"Make the asynchronous process that communicates with Discord IPC."
|
||||
(let ((default-directory "~/"))
|
||||
(cl-case system-type
|
||||
(windows-nt
|
||||
(make-process
|
||||
:name "*elcord-sock*"
|
||||
:command (list
|
||||
"PowerShell"
|
||||
"-NoProfile"
|
||||
"-ExecutionPolicy" "Bypass"
|
||||
"-Command" elcord--stdpipe-path "." elcord--discord-ipc-pipe)
|
||||
:connection-type 'pipe
|
||||
:sentinel 'elcord--connection-sentinel
|
||||
:filter 'elcord--connection-filter
|
||||
:noquery t))
|
||||
(t
|
||||
(make-network-process
|
||||
:name "*elcord-sock*"
|
||||
:remote (expand-file-name
|
||||
elcord--discord-ipc-pipe
|
||||
(file-name-as-directory
|
||||
(or (getenv "XDG_RUNTIME_DIR")
|
||||
(getenv "TMPDIR")
|
||||
(getenv "TMP")
|
||||
(getenv "TEMP")
|
||||
"/tmp")))
|
||||
:sentinel 'elcord--connection-sentinel
|
||||
:filter 'elcord--connection-filter
|
||||
:noquery t)))))
|
||||
|
||||
(defun elcord--enable ()
|
||||
"Called when variable ‘elcord-mode’ is enabled."
|
||||
(setq elcord--startup-time (string-to-number (format-time-string "%s" (current-time))))
|
||||
(unless (elcord--resolve-client-id)
|
||||
(warn "elcord: no elcord-client-id available"))
|
||||
(when (eq system-type 'windows-nt)
|
||||
(unless (executable-find "powershell")
|
||||
(warn "elcord: powershell not available"))
|
||||
(unless (file-exists-p elcord--stdpipe-path)
|
||||
(warn "elcord: 'stdpipe' script does not exist (%s)" elcord--stdpipe-path)))
|
||||
|
||||
;;Start trying to connect
|
||||
(elcord--start-reconnect))
|
||||
|
||||
(defun elcord--disable ()
|
||||
"Called when variable ‘elcord-mode’ is disabled."
|
||||
;;Cancel updates
|
||||
(elcord--cancel-updates)
|
||||
;;Cancel any reconnect attempt
|
||||
(elcord--cancel-reconnect)
|
||||
|
||||
;;If we're currently connected
|
||||
(when elcord--sock
|
||||
;;Empty our presence
|
||||
(elcord--empty-presence))
|
||||
|
||||
(elcord--disconnect))
|
||||
|
||||
(defun elcord--empty-presence ()
|
||||
"Sends an empty presence for when elcord is disabled."
|
||||
(let* ((activity
|
||||
`(("details" . "Emacs"))) ;; For the time being we have to send a presence after we connect, we can't empty it :/
|
||||
(nonce (format-time-string "%s%N"))
|
||||
(presence
|
||||
`(("cmd" . "SET_ACTIVITY")
|
||||
("args" . (("activity" . ,activity)
|
||||
("pid" . ,(emacs-pid))))
|
||||
("nonce" . ,nonce))))
|
||||
(elcord--send-packet 1 presence)))
|
||||
|
||||
(defun elcord--resolve-client-id ()
|
||||
"Evaluate `elcord-client-id' and return the client ID to use."
|
||||
(cl-typecase elcord-client-id
|
||||
(null
|
||||
nil)
|
||||
(string
|
||||
elcord-client-id)
|
||||
(function
|
||||
(funcall elcord-client-id))))
|
||||
|
||||
(defun elcord--connection-sentinel (process evnt)
|
||||
"Track connection state change on Discord connection.
|
||||
Argument PROCESS The process this sentinel is attached to.
|
||||
Argument EVNT The event which triggered the sentinel to run."
|
||||
(cl-case (process-status process)
|
||||
((closed exit)
|
||||
(elcord--handle-disconnect))
|
||||
(t)))
|
||||
|
||||
(defun elcord--connection-filter (process evnt)
|
||||
"Track incoming data from Discord connection.
|
||||
Argument PROCESS The process this filter is attached to.
|
||||
Argument EVNT The available output from the process."
|
||||
(elcord--start-updates))
|
||||
|
||||
(defun elcord--connect ()
|
||||
"Connects to the Discord socket."
|
||||
(or elcord--sock
|
||||
(ignore-errors
|
||||
(message "elcord: attempting reconnect..")
|
||||
(setq elcord--sock (elcord--make-process))
|
||||
(condition-case nil
|
||||
(elcord--send-packet 0 `(("v" . 1) ("client_id" . ,(elcord--resolve-client-id))))
|
||||
(error
|
||||
(delete-process elcord--sock)
|
||||
(setq elcord--sock nil)))
|
||||
elcord--sock)))
|
||||
|
||||
(defun elcord--disconnect ()
|
||||
"Disconnect elcord."
|
||||
(when elcord--sock
|
||||
(delete-process elcord--sock)
|
||||
(setq elcord--sock nil)))
|
||||
|
||||
(defun elcord--reconnect ()
|
||||
"Attempt to reconnect elcord."
|
||||
(when (elcord--connect)
|
||||
;;Reconnected.
|
||||
;; Put a pending message unless we already got first handshake
|
||||
(unless elcord--update-presence-timer
|
||||
(message "elcord: connecting..."))
|
||||
(elcord--cancel-reconnect)))
|
||||
|
||||
(defun elcord--start-reconnect ()
|
||||
"Start attempting to reconnect."
|
||||
(unless (or elcord--sock elcord--reconnect-timer)
|
||||
(setq elcord--reconnect-timer (run-at-time 0 15 'elcord--reconnect))))
|
||||
|
||||
(defun elcord--cancel-reconnect ()
|
||||
"Cancels any ongoing reconnection attempt."
|
||||
(when elcord--reconnect-timer
|
||||
(cancel-timer elcord--reconnect-timer)
|
||||
(setq elcord--reconnect-timer nil)))
|
||||
|
||||
(defun elcord--handle-disconnect ()
|
||||
"Handles reconnecting when socket disconnects."
|
||||
(message "elcord: disconnected")
|
||||
;;Stop updating presence for now
|
||||
(elcord--cancel-updates)
|
||||
(setq elcord--sock nil)
|
||||
;;Start trying to reconnect
|
||||
(when elcord-mode
|
||||
(elcord--start-reconnect)))
|
||||
|
||||
(defun elcord--send-packet (opcode obj)
|
||||
"Packs and sends a packet to the IPC server.
|
||||
Argument OPCODE OP code to send.
|
||||
Argument OBJ The data to send to the IPC server."
|
||||
(let* ((jsonstr (json-encode obj))
|
||||
(datalen (length jsonstr))
|
||||
(message-spec
|
||||
`((:op u32r)
|
||||
(:len u32r)
|
||||
(:data str ,datalen)))
|
||||
(packet
|
||||
(bindat-pack
|
||||
message-spec
|
||||
`((:op . ,opcode)
|
||||
(:len . ,datalen)
|
||||
(:data . ,jsonstr)))))
|
||||
(process-send-string elcord--sock packet)))
|
||||
|
||||
(defun elcord--test-match-p (test mode)
|
||||
"Test `MODE' against `TEST'.
|
||||
if `test' is a symbol, it is compared directly to `mode'.
|
||||
if `test' is a string, it is a regex to compare against the name of `mode'."
|
||||
(cl-typecase test
|
||||
(symbol (eq test mode))
|
||||
(string (string-match-p test (symbol-name mode)))))
|
||||
|
||||
(defun elcord--entry-value (entry mode)
|
||||
"Test `ENTRY' against `MODE'. Return the value of `ENTRY'.
|
||||
`entry' is a cons who's `car' is `elcord--test-match-p' with `mode''
|
||||
When `mode' matches, if the `cdr' of `entry' is a string, return that,
|
||||
otherwise if it is a function, call it with `mode' and return that value."
|
||||
(when (elcord--test-match-p (car entry) mode)
|
||||
(let ((mapping (cdr entry)))
|
||||
(cl-typecase mapping
|
||||
(string mapping)
|
||||
(function (funcall mapping mode))))))
|
||||
|
||||
(defun elcord--find-mode-entry (alist mode)
|
||||
"Get the first entry in `ALIST' matching `MODE'.
|
||||
`alist' Should be an alist like `elcord-mode-icon-alist' where each value is
|
||||
either a string,or a function of one argument `mode'.
|
||||
If it is a function, it should return a string, or nil if no match."
|
||||
(let ((cell alist)
|
||||
(result nil))
|
||||
(while cell
|
||||
(setq result (elcord--entry-value (car cell) mode)
|
||||
cell (if result nil (cdr cell))))
|
||||
result))
|
||||
|
||||
(defun elcord--mode-icon ()
|
||||
"Figure out what icon to use for the current major mode.
|
||||
If an icon is mapped by `elcord-mode-icon-alist', then that is used.
|
||||
Otherwise, if the mode is a derived mode, try to find an icon for it.
|
||||
If no icon is available, use the default icon."
|
||||
(let ((mode major-mode)
|
||||
(ret elcord--editor-icon))
|
||||
(while mode
|
||||
(if-let ((icon (elcord--find-mode-entry elcord-mode-icon-alist mode)))
|
||||
(setq ret icon
|
||||
mode nil)
|
||||
(setq mode (get mode 'derived-mode-parent))))
|
||||
ret))
|
||||
|
||||
(defun elcord--mode-text ()
|
||||
"Figure out what text to use for the current major mode.
|
||||
If an icon is mapped by `elcord-mode-text-alist', then that is used.
|
||||
Otherwise, if the mode is a derived mode, try to find text for its parent,
|
||||
If no text is available, use the value of `mode-name'."
|
||||
(let ((mode major-mode)
|
||||
(ret mode-name))
|
||||
(while mode
|
||||
(if-let ((text (elcord--find-mode-entry elcord-mode-text-alist mode)))
|
||||
(setq ret text
|
||||
mode nil)
|
||||
(setq mode (get mode 'derived-mode-parent))))
|
||||
(unless (stringp ret)
|
||||
(setq ret (format "%s" ret)))
|
||||
ret))
|
||||
|
||||
(defun elcord--mode-icon-and-text ()
|
||||
"Obtain the icon & text to use for the current major mode.
|
||||
\((\"large_text\" . <text>)
|
||||
(\"large_image\" . <icon-name>)
|
||||
(\"small_text\" . <text>)
|
||||
(\"small_image\" . <icon-name>))"
|
||||
(let ((text (elcord--mode-text))
|
||||
(icon (elcord--mode-icon))
|
||||
large-text large-image
|
||||
small-text small-image)
|
||||
(cond
|
||||
(elcord-use-major-mode-as-main-icon
|
||||
(setq large-text text
|
||||
large-image icon
|
||||
small-text elcord--editor-name
|
||||
small-image elcord--editor-icon))
|
||||
(t
|
||||
(setq large-text elcord--editor-name
|
||||
large-image elcord--editor-icon
|
||||
small-text text
|
||||
small-image icon)))
|
||||
(cond
|
||||
(elcord-show-small-icon
|
||||
(list
|
||||
(cons "large_text" large-text)
|
||||
(cons "large_image" large-image)
|
||||
(cons "small_text" small-text)
|
||||
(cons "small_image" small-image)))
|
||||
(t
|
||||
(list
|
||||
(cons "large_text" large-text)
|
||||
(cons "large_image" large-image)
|
||||
(cons "small_text" small-text))))))
|
||||
|
||||
(defun elcord--details-and-state ()
|
||||
"Obtain the details and state to use for Discord's Rich Presence."
|
||||
(let ((activity (if elcord-display-buffer-details
|
||||
(list
|
||||
(cons "details" (format "Editing %s" (buffer-name)))
|
||||
(cons "state" (format "Line %s (%s of %S)"
|
||||
(format-mode-line "%l")
|
||||
(format-mode-line "%l")
|
||||
(+ 1 (count-lines (point-min) (point-max))))))
|
||||
(list
|
||||
(cons "details" "Editing")
|
||||
(cons "state" (elcord--mode-text))))))
|
||||
(when elcord-display-elapsed
|
||||
(push (list "timestamps" (cons "start" elcord--startup-time)) activity))
|
||||
activity))
|
||||
|
||||
(defun elcord--set-presence ()
|
||||
"Set presence."
|
||||
(let* ((activity
|
||||
`(("assets" . (,@(elcord--mode-icon-and-text)))
|
||||
,@(elcord--details-and-state)))
|
||||
(nonce (format-time-string "%s%N"))
|
||||
(presence
|
||||
`(("cmd" . "SET_ACTIVITY")
|
||||
("args" . (("activity" . ,activity)
|
||||
("pid" . ,(emacs-pid))))
|
||||
("nonce" . ,nonce))))
|
||||
(elcord--send-packet 1 presence)))
|
||||
|
||||
(defun elcord--update-presence ()
|
||||
"Check if we changed our current line..."
|
||||
(when (and
|
||||
(not (window-minibuffer-p))
|
||||
(or (not (= (count-lines (point-min) (point))
|
||||
elcord--last-known-position))
|
||||
(not (string= (buffer-name) elcord--last-known-buffer-name))))
|
||||
(setq elcord--last-known-buffer-name (buffer-name)
|
||||
elcord--last-known-position (count-lines (point-min) (point)))
|
||||
(condition-case nil
|
||||
;;Try and set the presence
|
||||
(elcord--set-presence)
|
||||
(error
|
||||
;;If we hit an error, cancel updates
|
||||
(elcord--cancel-updates)
|
||||
;; Disconnect
|
||||
(elcord--disconnect)
|
||||
;; and try reconnecting
|
||||
(elcord--start-reconnect)))))
|
||||
|
||||
(defun elcord--start-updates ()
|
||||
"Start sending periodic update to Discord Rich Presence."
|
||||
(unless elcord--update-presence-timer
|
||||
(message "elcord: connected. starting updates")
|
||||
;;Start sending updates now that we've heard from discord
|
||||
(setq elcord--last-known-position -1
|
||||
elcord--last-known-buffer-name ""
|
||||
elcord--update-presence-timer (run-at-time 0 elcord-refresh-rate 'elcord--update-presence))))
|
||||
|
||||
(defun elcord--cancel-updates ()
|
||||
"Stop sending periodic update to Discord Rich Presence."
|
||||
(when elcord--update-presence-timer
|
||||
(cancel-timer elcord--update-presence-timer)
|
||||
(setq elcord--update-presence-timer nil)))
|
||||
|
||||
(provide 'elcord)
|
||||
;;; elcord.el ends here
|
|
@ -0,0 +1,16 @@
|
|||
;; Object semanticdb-project-database-file
|
||||
;; SEMANTICDB Tags save file
|
||||
(semanticdb-project-database-file "semanticdb-project-database-file"
|
||||
:tables
|
||||
(list
|
||||
(semanticdb-table "semanticdb-table"
|
||||
:major-mode emacs-lisp-mode
|
||||
:tags nil
|
||||
:file "magit-popup-autoloads.el"
|
||||
:pointmax 361
|
||||
:fsize 651
|
||||
:lastmodtime '(24291 10481 236440 29000)
|
||||
:unmatched-syntax nil))
|
||||
:file "!home!balazs!.emacs.d!elpa!magit-popup-20200306.223!semantic.cache"
|
||||
:semantic-tag-version "2.0"
|
||||
:semanticdb-version "2.2")
|
66
semanticdb/!home!balazs!.emacs.d!plugins!semantic.cache
Normal file
66
semanticdb/!home!balazs!.emacs.d!plugins!semantic.cache
Normal file
|
@ -0,0 +1,66 @@
|
|||
;; Object semanticdb-project-database-file
|
||||
;; SEMANTICDB Tags save file
|
||||
(semanticdb-project-database-file "semanticdb-project-database-file"
|
||||
:tables
|
||||
(list
|
||||
(semanticdb-table "semanticdb-table"
|
||||
:major-mode emacs-lisp-mode
|
||||
:tags
|
||||
'( ("bindat" include nil nil [1123 1140])
|
||||
("cl-lib" include nil nil [1141 1158])
|
||||
("json" include nil nil [1159 1174])
|
||||
("subr-x" include nil nil [1175 1192])
|
||||
("elcord" customgroup (:user-visible-flag t) nil [1194 1278])
|
||||
("elcord-client-id" variable (:default-value (quote "388338871475240965")) nil [1280 1659])
|
||||
("elcord-refresh-rate" variable (:default-value 15) nil [1661 1783])
|
||||
("elcord-mode-icon-alist" variable (:default-value (quote ((c-mode . "c-mode_icon") (c++-mode . "cpp-mode_icon") (clojure-mode . "clojure-mode_icon") (csharp-mode . "csharp-mode_icon") (comint-mode . "comint-mode_icon") (cperl-mode . "cperl-mode_icon") (emacs-lisp-mode . "emacs_icon") (enh-ruby-mode . "ruby-mode_icon") (erc-mode . "irc-mode_icon") (forth-mode . "forth-mode_icon") (fsharp-mode . "fsharp-mode_icon") (haskell-mode . "haskell-mode_icon") (java-mode . "java-mode_icon") (js-mode . "javascript-mode_icon") (kotlin-mode . "kotlin-mode_icon") (go-mode . "go-mode_icon") (latex-mode . "latex-mode_icon") (lisp-mode . "lisp-mode_icon") (magit-mode . "magit-mode_icon") (markdown-mode . "markdown-mode_icon") (nix-mode . "nix-mode_icon") (org-mode . "org-mode_icon") (racket-mode . "racket-mode_icon") (ruby-mode . "ruby-mode_icon") (rust-mode . "rust-mode_icon") (rustic-mode . "rust-mode_icon") ("^slime-.*" . "lisp-mode_icon") ("^sly-.*$" . "lisp-mode_icon") (php-mode . "php-mode_icon") (python-mode . "python-mode_icon")))) nil [1785 4249])
|
||||
("elcord-mode-text-alist" variable (:default-value (quote ((c-mode . "C ") (c++-mode . "C++") (csharp-mode . "C#") (cperl-mode . "Perl") (enh-ruby-mode . "Ruby") (fsharp-mode . "F#") (java-mode . "Java") (lisp-mode . "Common-Lisp") (markdown-mode . "Markdown") (magit-mode . "It's Magit!") ("mhtml-mode" . "HTML") (slime-repl-mode . "SLIME-REPL") (sly-mrepl-mode . "Sly-REPL") (php-mode "PHP")))) nil [4251 5430])
|
||||
("elcord-display-elapsed" variable (:default-value (quote t)) nil [5432 5598])
|
||||
("elcord--startup-time" variable (:default-value (string-to-number (format-time-string "%s" (current-time)))) nil [5600 5689])
|
||||
("elcord-display-buffer-details" variable (:default-value (quote t)) nil [5691 6057])
|
||||
("elcord-use-major-mode-as-main-icon" variable (:default-value (quote nil)) nil [6059 6236])
|
||||
("elcord-show-small-icon" variable (:default-value (quote t)) nil [6238 6373])
|
||||
("define-minor-mode" code nil nil [6390 6656])
|
||||
("elcord--editor-name" variable (:default-value (cond ((boundp (quote spacemacs-version)) "Spacemacs") ((boundp (quote doom-version)) "DOOM Emacs") (t "Emacs"))) nil [6658 6849])
|
||||
("elcord--editor-icon" variable (:default-value (cond ((boundp (quote spacemacs-version)) "spacemacs_icon") ((boundp (quote doom-version)) "doom_icon") (t "emacs_icon"))) nil [6851 7051])
|
||||
("elcord--discord-ipc-pipe" variable (:default-value "discord-ipc-0") nil [7053 7140])
|
||||
("elcord--update-presence-timer" variable nil nil [7142 7275])
|
||||
("elcord--reconnect-timer" variable nil nil [7277 7404])
|
||||
("elcord--sock" variable nil nil [7406 7485])
|
||||
("elcord--last-known-position" variable (:default-value (count-lines (point-min) (point))) nil [7487 7615])
|
||||
("elcord--last-known-buffer-name" variable (:default-value (buffer-name)) nil [7617 7712])
|
||||
("elcord--stdpipe-path" variable (:default-value (expand-file-name "stdpipe.ps1" (file-name-directory (file-truename load-file-name)))) nil [7714 8021])
|
||||
("elcord--make-process" function nil nil [8023 9099])
|
||||
("elcord--enable" function nil nil [9101 9675])
|
||||
("elcord--disable" function nil nil [9677 9997])
|
||||
("elcord--empty-presence" function nil nil [9999 10501])
|
||||
("elcord--resolve-client-id" function nil nil [10503 10739])
|
||||
("elcord--connection-sentinel" function (:arguments ("process" "evnt")) nil [10741 11066])
|
||||
("elcord--connection-filter" function (:arguments ("process" "evnt")) nil [11068 11301])
|
||||
("elcord--connect" function nil nil [11303 11747])
|
||||
("elcord--disconnect" function nil nil [11749 11885])
|
||||
("elcord--reconnect" function nil nil [11887 12175])
|
||||
("elcord--start-reconnect" function nil nil [12177 12372])
|
||||
("elcord--cancel-reconnect" function nil nil [12374 12570])
|
||||
("elcord--handle-disconnect" function nil nil [12572 12862])
|
||||
("elcord--send-packet" function (:arguments ("opcode" "obj")) nil [12864 13419])
|
||||
("elcord--test-match-p" function (:arguments ("test" "mode")) nil [13421 13730])
|
||||
("elcord--entry-value" function (:arguments ("entry" "mode")) nil [13732 14227])
|
||||
("elcord--find-mode-entry" function (:arguments ("alist" "mode")) nil [14229 14700])
|
||||
("elcord--mode-icon" function nil nil [14702 15244])
|
||||
("elcord--mode-text" function nil nil [15246 15853])
|
||||
("elcord--mode-icon-and-text" function nil nil [15855 16913])
|
||||
("elcord--details-and-state" function nil nil [16915 17732])
|
||||
("elcord--set-presence" function nil nil [17734 18173])
|
||||
("elcord--update-presence" function nil nil [18175 18908])
|
||||
("elcord--start-updates" function nil nil [18910 19344])
|
||||
("elcord--cancel-updates" function nil nil [19346 19571])
|
||||
("elcord" package nil nil [19573 19590]))
|
||||
:file "elcord.el"
|
||||
:pointmax 19615
|
||||
:fsize 19624
|
||||
:lastmodtime '(24288 41267 475287 704000)
|
||||
:unmatched-syntax nil))
|
||||
:file "!home!balazs!.emacs.d!plugins!semantic.cache"
|
||||
:semantic-tag-version "2.0"
|
||||
:semanticdb-version "2.2")
|
|
@ -7,16 +7,14 @@
|
|||
:major-mode emacs-lisp-mode
|
||||
:tags
|
||||
'( ("org-babel-load-file" code nil nil [1 44])
|
||||
("custom-set-variables" code nil nil [45 942])
|
||||
("custom-set-faces" code nil nil [943 1259])
|
||||
("load-theme" code nil nil [1260 1289]))
|
||||
("custom-set-variables" code nil nil [45 1014])
|
||||
("custom-set-faces" code nil nil [1015 1404])
|
||||
("load-theme" code nil nil [1405 1434]))
|
||||
:file "init.el"
|
||||
:pointmax 1290
|
||||
:fsize 1289
|
||||
:lastmodtime '(24284 45396 390939 697000)
|
||||
:unmatched-syntax nil)
|
||||
|
||||
)
|
||||
:pointmax 1435
|
||||
:fsize 1434
|
||||
:lastmodtime '(24291 10479 445376 402000)
|
||||
:unmatched-syntax nil))
|
||||
:file "!home!balazs!.emacs.d!semantic.cache"
|
||||
:semantic-tag-version "2.0"
|
||||
:semanticdb-version "2.2")
|
||||
|
|
43
semanticdb/!home!balazs!Code!Akos_rand!semantic.cache
Normal file
43
semanticdb/!home!balazs!Code!Akos_rand!semantic.cache
Normal file
|
@ -0,0 +1,43 @@
|
|||
;; Object semanticdb-project-database-file
|
||||
;; SEMANTICDB Tags save file
|
||||
(semanticdb-project-database-file "semanticdb-project-database-file"
|
||||
:tables
|
||||
(list
|
||||
(semanticdb-table "semanticdb-table"
|
||||
:major-mode c-mode
|
||||
:tags
|
||||
'( ("stdio.h" include (:system-flag t) nil [1 19])
|
||||
("stdlib.h" include (:system-flag t) nil [20 39])
|
||||
("math.h" include (:system-flag t) nil [40 57])
|
||||
("time.h" include (:system-flag t) nil [58 75])
|
||||
("atlag" function
|
||||
(:arguments
|
||||
( ("tomb" variable
|
||||
(:pointer 1
|
||||
:type "int")
|
||||
(reparse-symbol arg-sub-list) [90 100])
|
||||
("db" variable (:type "int") (reparse-symbol arg-sub-list) [100 107]))
|
||||
:type "int")
|
||||
nil [80 186])
|
||||
("szoras" function
|
||||
(:arguments
|
||||
( ("tomb" variable
|
||||
(:pointer 1
|
||||
:type "int")
|
||||
(reparse-symbol arg-sub-list) [199 208])
|
||||
("db" variable (:type "int") (reparse-symbol arg-sub-list) [208 215]))
|
||||
:type "int")
|
||||
nil [188 348])
|
||||
("main" function
|
||||
(:arguments
|
||||
( ("" variable (:type "void") (reparse-symbol arg-sub-list) [359 364]))
|
||||
:type "int")
|
||||
nil [350 886]))
|
||||
:file "main.c"
|
||||
:pointmax 887
|
||||
:fsize 886
|
||||
:lastmodtime '(24251 43437 369109 729000)
|
||||
:unmatched-syntax nil))
|
||||
:file "!home!balazs!Code!Akos_rand!semantic.cache"
|
||||
:semantic-tag-version "2.0"
|
||||
:semanticdb-version "2.2")
|
30
smex-items
30
smex-items
|
@ -1,17 +1,31 @@
|
|||
|
||||
;; ----- smex-history -----
|
||||
(
|
||||
load-file
|
||||
customize
|
||||
cd
|
||||
5x5
|
||||
arp
|
||||
dbx
|
||||
dig
|
||||
flyspell-mode
|
||||
calc
|
||||
describe-key
|
||||
elcord-mode
|
||||
replace-string
|
||||
shell
|
||||
eval-buffer
|
||||
)
|
||||
|
||||
;; ----- smex-data -----
|
||||
(
|
||||
(customize . 1)
|
||||
(customize . 2)
|
||||
(load-file . 1)
|
||||
(replace-string . 23)
|
||||
(shell . 2)
|
||||
(cd . 1)
|
||||
(flyspell-mode . 14)
|
||||
(elcord-mode . 12)
|
||||
(customize-group . 2)
|
||||
(company-mode . 4)
|
||||
(flush-lines . 1)
|
||||
(org-latex-convert-region-to-latex . 2)
|
||||
(package-install . 1)
|
||||
(hexl-mode . 2)
|
||||
(eval-buffer . 1)
|
||||
(describe-key . 1)
|
||||
(calc . 1)
|
||||
)
|
||||
|
|
7
snippets/org-mode/align
Normal file
7
snippets/org-mode/align
Normal file
|
@ -0,0 +1,7 @@
|
|||
# -*- mode: snippet -*-
|
||||
# name: align
|
||||
# key: align
|
||||
# --
|
||||
\\begin{align}
|
||||
|
||||
\\end{align}
|
5
snippets/org-mode/text
Normal file
5
snippets/org-mode/text
Normal file
|
@ -0,0 +1,5 @@
|
|||
# -*- mode: snippet -*-
|
||||
# name: text
|
||||
# key: text
|
||||
# --
|
||||
\\text{}
|
5
tramp
5
tramp
|
@ -1,4 +1,4 @@
|
|||
;; -*- emacs-lisp -*- <20/06/06 12:00:21 /home/balazs/.emacs.d/tramp>
|
||||
;; -*- emacs-lisp -*- <20/06/15 18:40:38 /home/balazs/.emacs.d/tramp>
|
||||
;; Tramp connection history. Don't change this file.
|
||||
;; You can delete it, forcing Tramp to reapply the checks.
|
||||
|
||||
|
@ -49,4 +49,5 @@
|
|||
("git" "\\git")
|
||||
("tmpdir" "/sudo:root@GlaDOS:/tmp")
|
||||
("touch-t" t)
|
||||
("touch" "\\touch")))
|
||||
("touch" "\\touch")
|
||||
("~root" "/root")))
|
||||
|
|
|
@ -9,5 +9,7 @@
|
|||
(magit-pull nil
|
||||
("--rebase"))
|
||||
(magit-push nil)
|
||||
(magit-remote
|
||||
("-f"))
|
||||
(magit-reset nil)
|
||||
(magit-stash nil))
|
||||
|
|
Binary file not shown.
|
@ -1,90 +0,0 @@
|
|||
HTTP/1.1 200 OK
|
||||
Date: Sun, 07 Jun 2020 09:17:38 GMT
|
||||
Content-Type: image/svg+xml
|
||||
Transfer-Encoding: chunked
|
||||
Connection: keep-alive
|
||||
Set-Cookie: __cfduid=db9753a37ada4e95bc954afc7ffaf1fdf1591521458; expires=Tue, 07-Jul-20 09:17:38 GMT; path=/; domain=.srix.cf; HttpOnly; SameSite=Lax
|
||||
Last-Modified: Sun, 30 Jun 2019 11:04:09 GMT
|
||||
ETag: W/"205b-58c88788e224e"
|
||||
Cache-Control: max-age=14400
|
||||
CF-Cache-Status: MISS
|
||||
cf-request-id: 032fab52140000d42fe6171200000001
|
||||
Vary: Accept-Encoding
|
||||
Server: cloudflare
|
||||
CF-RAY: 59f947fcef28d42f-BUD
|
||||
Content-Encoding: gzip
|
||||
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="612px" height="792px" viewBox="0 0 612 792" enable-background="new 0 0 612 792" xml:space="preserve">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" stroke="#000000" stroke-width="2.9999" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="22.9256" d="
|
||||
M400.419,451.252c7.724,8.437,21.051,22.484,30.155,36.325c9.104,13.84,13.983,27.474,17.324,37.172
|
||||
c3.34,9.698,5.141,15.461,4.061,21.854c-1.081,6.394-5.043,13.418-12.337,19.991s-17.92,12.697-24.313,17.74
|
||||
s-8.555,9.005-7.924,18.821c0.63,9.815,4.051,25.483,10.009,34.081c5.957,8.596,14.45,10.121,22.195,10.481
|
||||
c7.744,0.36,14.739-0.444,23.82,2.216c9.081,2.659,20.247,8.783,22.049,15.267c1.801,6.483-5.764,13.328-8.284,14.408
|
||||
c-2.521,1.08-0.001-3.602-2.128-6.817c-2.127-3.215-8.902-4.962-16.388-6.286c-7.485-1.323-15.681-2.225-17.335-1.171
|
||||
c-1.655,1.055,3.229,4.063,6.032,7.188s3.522,6.366,2.082,10.509c-1.441,4.143-5.043,9.186-5.943,9.545
|
||||
c-0.9,0.36,0.9-3.961-4.143-9.904c-5.043-5.944-16.93-13.509-27.556-18.191s-19.991-6.483-27.071-6.682s-11.875,1.205-13.808,3.546
|
||||
c-1.932,2.341-1.001,5.617-2.138,6.116c-1.136,0.498-4.34-1.782-6.55-5.743c-2.211-3.961-3.427-9.604-1.874-14.406
|
||||
c1.552-4.804,5.875-8.766,10.737-10.386c4.862-1.621,10.266-0.901,9.905-8.465c-0.359-7.565-6.483-23.414-10.986-33.859
|
||||
c-4.502-10.446-7.384-15.49-4.411-19.81s11.8-7.917,19.445-12.572s14.111-10.369,16.375-15.71s0.327-10.31-3.717-15.739
|
||||
c-4.044-5.431-10.194-11.323-19.573-19.672c-4.526-4.029-9.804-8.631-14.985-13.549c-2.135,9.545-4.575,19.553-6.563,28.208
|
||||
c-2.801,12.185-4.706,21.687-17.499,28.839s-36.474,11.956-49.847,18.709c-13.374,6.754-16.439,15.456-17.321,26.089
|
||||
c-0.88,10.632,0.424,23.194,3.14,30.886c2.117,5.995,5.092,9.031,9.484,11.417c4.531,0.544,9.604,1.337,15.314,3.268
|
||||
c8.315,2.811,17.982,8.032,19.768,14.259c1.786,6.225-4.31,13.455-6.342,14.618c-2.032,1.162,0-3.742-3.437-7.642
|
||||
c-3.436-3.901-12.34-6.799-18.969-8.204c-6.629-1.406-10.984-1.319-10.549-0.393c0.436,0.927,5.662,2.693,8.517,6.045
|
||||
c2.855,3.351,3.341,8.286,2.132,13.401c-1.209,5.116-4.112,10.411-4.838,10.8c-0.726,0.389,0.725-4.13-3.339-10.222
|
||||
c-4.064-6.094-13.644-13.761-22.207-18.454c-8.564-4.693-16.111-6.414-22.166-8.279c-6.054-1.865-10.614-3.876-13.974-3.756
|
||||
c-3.361,0.12-5.522,2.372-6.243,4.804c-0.72,2.432,0,5.043-1.891,3.917s-6.394-5.988-6.753-11.076
|
||||
c-0.36-5.088,3.421-10.401,7.076-13.105c3.656-2.704,7.184-2.801,11.125-2.519c0.59,0.043,1.19,0.094,1.803,0.155
|
||||
c3.345-0.093,7.438,0.595,10.571,0.157c4.376-0.613,6.881-3.424,7.653-9.986c0.772-6.564-0.188-16.88-1.089-30.117
|
||||
s-1.741-29.396-0.504-37.97c1.237-8.573,4.55-9.561,8.783-10.821c4.232-1.261,9.383-2.795,18.704-4.345
|
||||
c9.32-1.55,22.812-3.115,29.926-9.148c7.114-6.034,7.851-16.535,2.444-30.359c-4.02-10.277-11.434-22.391-14.826-32.851
|
||||
c-8.195-17.208,8.496-48.972,10.643-68.426c0.975-8.839,0.364-8.657,0.002-12.681c-9.46,2.513-28.016,24.671-34.598,30.541
|
||||
c-6.583,5.87-7.384,12.787-7.744,23.594c-0.36,10.806-0.36,25.574-1.261,38.542c-0.9,12.967-2.702,24.133-5.223,33.498
|
||||
c-2.521,9.366-5.763,16.93-13.778,25.574c-8.015,8.646-20.802,18.371-33.949,20.893s-26.655-2.161-27.646-4.683
|
||||
s10.536-2.882,20.081-4.683c9.545-1.801,17.11-5.043,23.234-10.806c6.123-5.764,10.805-14.049,9.725-15.67
|
||||
c-1.08-1.62-7.925,3.422-16.57,7.564c-8.645,4.143-19.091,7.384-29.987,5.764c-10.896-1.621-22.243-8.104-28.906-17.11
|
||||
c-6.664-9.005-8.645-20.531-7.744-23.323c0.9-2.792,4.682,3.152,9.906,10.176c5.222,7.024,11.887,15.129,23.503,17.561
|
||||
c11.616,2.431,28.186-0.811,38.271-9.995c10.086-9.186,13.688-24.314,11.166-31.879c-2.521-7.563-11.167-7.563-19.451-4.862
|
||||
s-16.209,8.104-18.759,13.042c-2.55,4.938,0.274,9.409-1.527,9.949c-1.801,0.541-8.228-2.851-9.64-9.769
|
||||
c-1.412-6.919,2.189-17.365,8.674-23.038c6.483-5.674,15.849-6.574,23.773-7.385c7.924-0.811,14.408-1.53,18.01-5.043
|
||||
c3.603-3.512,4.322-9.815,3.782-17.109c-0.54-7.294-2.341-15.579-4.143-24.404c-1.801-8.824-3.602-18.19,3.962-26.834
|
||||
c7.564-8.645,24.495-16.57,34.76-27.196c10.266-10.626,13.868-23.954,19.631-32.238c12-17.25-0.566-20.284-22.515-25.573
|
||||
c-14.949-3.603-31.879-5.042-47.188-2.882c-15.309,2.161-28.997,7.925-40.883,17.11c-11.887,9.186-21.972,21.792-23.414,19.631
|
||||
c-1.441-2.161,5.764-19.091,17.291-35.3c11.526-16.209,27.375-31.698,33.138-40.704c5.763-9.005,1.441-11.525-8.825-12.606
|
||||
c-10.266-1.081-26.476-0.72-40.523,4.142c-14.048,4.863-25.935,14.229-32.418,26.475c-6.484,12.248-7.564,27.376-9.906,22.513
|
||||
c-2.342-4.862-5.943-29.717-3.242-48.268c2.701-18.55,11.706-30.797,3.602-30.617s-33.319,12.787-51.275,28.275
|
||||
c-17.957,15.489-28.656,33.86-26.495,23.954s17.183-48.087,38.021-77.624s47.494-50.429,72.708-61.235
|
||||
c25.214-10.806,48.988-11.527,57.453-13.688c8.465-2.161,1.621-5.763-7.745-7.924c-9.365-2.162-21.251-2.882-13.236-5.404
|
||||
c8.015-2.522,35.933-6.846,62.048,1.979c26.115,8.825,50.426,30.799,69.246,45.928c18.819,15.129,32.146,23.415,26.384,32.42
|
||||
c-5.763,9.005-30.617,18.73-43.944,34.759c-13.328,16.029-15.129,38.362-0.18,53.31c6.486,6.486,13.891,9.218,21.989,13.313
|
||||
c5.618,2.842,10.114,4.606,16.8,3.978s15.561-3.648,19.663-9.44c4.103-5.792,3.434-14.357,0.23-18.511
|
||||
c-1.266-1.643-2.928-2.595-4.716-3.355c-5.846,0.548-11.213,0.14-15.587-2.279c-10.762-5.953-15.507-24.076-7.441-39.969
|
||||
s28.94-29.557,52.521-35.67c23.58-6.113,49.867-4.676,67.674,1.977s27.135,18.52,31.543,30.157
|
||||
c4.407,11.637,3.896,23.042,4.031,32.16s0.915,15.948,8.567,22.182c7.651,6.234,22.175,11.874,34.665,15.64
|
||||
c12.489,3.768,22.944,5.664,30.496,12.31c7.551,6.646,12.198,18.044,15.242,31.376c3.043,13.332,4.481,28.6,2.095,39.461
|
||||
c-2.387,10.861-8.601,17.317-10.433,16.75s0.718-8.157,1.054-17.772s-1.542-21.254-4.352-30.15
|
||||
c-2.81-8.897-6.549-15.051-13.736-19.25c-7.188-4.2-17.822-6.444-28.398-9.286c-10.575-2.842-21.094-6.28-29.174-11.833
|
||||
s-13.724-13.219-14.791-12.781c-1.068,0.439,2.439,8.981,9.446,17.504c7.006,8.523,17.511,17.025,26.738,25.042
|
||||
c9.227,8.016,17.174,15.545,21.548,24.475c4.374,8.929,5.174,19.257,5.916,30.184c0.742,10.925,1.427,22.448,8.316,32.166
|
||||
c6.89,9.717,19.984,17.629,21.628,20.563c1.643,2.935-8.167,0.891-18.224-4.794c-10.058-5.685-20.362-15.012-26.438-26.278
|
||||
c-6.075-11.266-7.921-24.47-10.572-34.376c-2.649-9.906-6.104-16.515-12.746-22.59c-6.644-6.075-16.474-11.618-24.495-17.477
|
||||
c-8.022-5.859-14.236-12.034-18.23-19.298c-3.993-7.264-5.768-15.616-7.146-15.981c-1.38-0.366-2.365,7.256-0.852,16.448
|
||||
c1.515,9.192,5.529,19.956,11.215,27.807c5.685,7.851,13.041,12.791,18.658,19.489c5.615,6.699,9.493,15.158,9.376,16.352
|
||||
c-0.116,1.195-4.227-4.875-11.255-10.083c-7.029-5.208-16.975-9.557-25.182-15.664c-8.208-6.107-14.675-13.975-20.052-25.594
|
||||
c-1.51-3.263-4.974-16.376-7.897-16.683c-3.418-0.358-7.729,1.644-8.924,6.348c-1.194,4.704,0.728,12.108,2.182,17.397
|
||||
c1.51,5.498,3.341,10.898,4.683,16.443c3.805,15.726,1.95,21.958,1.791,31.82c-0.16,9.862,1.372,23.354,5.344,31.351
|
||||
c3.971,7.998,10.382,10.5,20.709,13.703c10.326,3.203,24.57,7.104,36.839,11.4c12.269,4.295,22.562,8.981,30.928,13.889
|
||||
c8.366,4.906,14.805,10.031,21.024,20.045c6.221,10.015,12.221,24.917,11.18,38.264c-1.042,13.347-9.128,25.137-11.821,25.426
|
||||
s0.005-10.924,0.79-20.605s-0.343-17.834-4.282-25.263c-3.941-7.429-10.695-14.134-12.543-13.52
|
||||
c-1.849,0.613,1.206,8.547,2.917,17.979c1.711,9.432,2.077,20.363-2.365,30.443c-4.441,10.081-13.693,19.311-24.14,23.358
|
||||
s-22.086,2.913-24.54,1.307s4.276-3.684,12.432-6.864c8.153-3.182,17.731-7.468,23.146-18.029
|
||||
c5.413-10.561,6.665-27.398,0.472-39.553c-6.194-12.154-19.834-19.625-27.795-19.192c-7.962,0.434-10.246,8.771-9.829,17.476
|
||||
c0.416,8.704,3.533,17.774,7.622,21.538c4.088,3.765,9.147,2.222,9.191,4.102c0.046,1.88-4.923,7.182-11.969,6.716
|
||||
c-7.046-0.467-16.169-6.7-19.927-14.453c-3.759-7.752-2.153-17.022-0.841-24.88c1.313-7.856,2.331-14.3-0.104-18.703
|
||||
c-2.436-4.4-8.324-6.761-15.502-8.168c-7.179-1.405-15.645-1.857-24.106-5.722c-8.461-3.864-16.918-11.141-22.731-23.99
|
||||
c-2.383-5.268-4.322-11.472-6.336-17.609l-0.01,0.023C380.281,416.313,385.828,435.317,400.419,451.252z"/>
|
||||
</svg>
|
Loading…
Reference in a new issue