Posts

Showing posts from May, 2021

Hindi Spell-check and Auto-suggest in Emacs

Image
  Spellcheck Install aspell sudo apt install aspell Install Hindi dictionary for aspell from https://ftp.gnu.org/gnu/aspell/dict/0index.html . Use the latest filenames instead of aspell6-hi-0.02-0.tar.bz2 in following commands. bunzip2 aspell6-hi-0.02-0.tar.bz2 tar xvf aspell6-hi-0.02-0.tar cd aspell6-hi-0.02-0/ ./configure make sudo make install Dictionary values are hard-coded in Emacs code. We need to query aspell for the newly installed dictionary. Add this in ~/.emacs (setq ispell-aspell-dictionary-alist nil) In Emacs, select Hindi dictionary via M-x ispell-change-dictionary. Then you can use spell check shortcut M-$ for Hindi. Side note: For some reason Indian fonts are not rendered correctly in the browsers in Linux. Changing the default fonts used by the browsers to Noto Sans Devanagari or Lohit-Devanagari solves it. Auto-suggest You can have auto-suggest for transliterated string by setting the following variable to the location of a word list (see Managing word list )

Transliteration in Emacs

Image
This is a combination of company (completion framework UI) and quail (Unicode input method) in Emacs. indian-dev-itrans-v5-hash defines a mapping between ASCII symbols (indian-itrans-v5-table) and target language Unicode symbols (indian-dev-base-table). It is defined as  (defvar indian-dev-itrans-v5-hash   (indian-make-hash indian-dev-base-table               indian-itrans-v5-table)) Quick Test (require 'ind-util) (setq company-i18n-input-hash indian-dev-itrans-v5-hash) (setq company-backends '(company-i18n)) (company-i18n 'trans "aa")   ;; Gives "आ"   Code: company-i18n Config: (add-to-list 'company-backends 'company-i18n) ;; Use appropriate hash for other languages. See files in emacs/lisp/language directory  (require 'ind-util) ;; Hindi (setq company-i18n-input-hash indian-dev-itrans-v5-hash) ;; Tamil (setq company-i18n-input-hash indian-tml-itrans-v5-hash) ;; Kannada (setq company-i18n-input-hash indian-knd-itrans-v5-hash) ;; Bengali

Semantic lexer based indent region function in Emacs

Image
  Here is a Semantic lexer based indent region function for formatting code in Emacs. It should work for Java and javascript. Feel free to use it if you like the output or customize it to suit your needs. Code: semantic-indent-region  Features Removes redundant whitespace. Multiple new lines are replaced by two new lines to mark paragraph separation. Adds spaces around punctuation characters. Uses tab for indent and fill-column width to wrap lines. Set values for tab-width and fill-column as per your preference. Uses first token as the anchor point and aligns the code to match the nearest tab-stop. e.g. if tab-width is 4 character, and first token is on 1-3 column, code will be aligned to first column. However, if first token is on 4th column, then alignment is not changed. Adds one indent for each level of nested code. Splits line on semi-colon.