This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit b81919867d2fb492d7083f73f7f263cd0a37c8a0
Author: Navyashree0923 <navyashree0...@gmail.com>
AuthorDate: Wed Jun 8 12:48:24 2022 +0530

    Camel Blog
---
 content/blog/2022/06/images/Errordetection.gif | Bin 0 -> 88518 bytes
 content/blog/2022/06/images/Spellchecker.gif   | Bin 0 -> 146047 bytes
 content/blog/2022/06/images/camell.gif         | Bin 0 -> 577886 bytes
 content/blog/2022/06/index.md                  | 138 +++++++++++++++++++++++++
 4 files changed, 138 insertions(+)

diff --git a/content/blog/2022/06/images/Errordetection.gif 
b/content/blog/2022/06/images/Errordetection.gif
new file mode 100644
index 00000000..ff9a4c99
Binary files /dev/null and b/content/blog/2022/06/images/Errordetection.gif 
differ
diff --git a/content/blog/2022/06/images/Spellchecker.gif 
b/content/blog/2022/06/images/Spellchecker.gif
new file mode 100644
index 00000000..c80aa21e
Binary files /dev/null and b/content/blog/2022/06/images/Spellchecker.gif differ
diff --git a/content/blog/2022/06/images/camell.gif 
b/content/blog/2022/06/images/camell.gif
new file mode 100644
index 00000000..ce9a0d44
Binary files /dev/null and b/content/blog/2022/06/images/camell.gif differ
diff --git a/content/blog/2022/06/index.md b/content/blog/2022/06/index.md
new file mode 100644
index 00000000..01f56560
--- /dev/null
+++ b/content/blog/2022/06/index.md
@@ -0,0 +1,138 @@
+---
+title: "Client implementation of the Apache Camel Language Server Protocol for 
Emacs"
+date: 2022-06-08
+authors: [Navyashree0923]
+categories: ["Tooling"]
+preview: "Client implementation of the Apache Camel Language Server Protocol 
for Emacs"
+---
+
+# Text Editing capabilities of Camel URI with Camel XML DSL
+
+For instance, code completion for Camel XML Dsl. The capabilities are based on 
the Camel Language Server.
+
+![Demo](images/camell.gif)
+
+Error detection for Camel XML Dsl
+
+![errordetection](images/Errordetection.gif)
+
+Spell correction for Camel XML Dsl
+
+![spellcorrection](images/Spellchecker.gif)
+
+
+# How to configure Emacs?
+
+* For the convenience to have all the Emacs configuration in one directory, 
should use `~/.emacs.d/init.el`
+
+In a `~/.emacs.d/init.el` file:
+
+```lisp
+(require 'package)
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/";) t)
+;; Comment/uncomment this line to enable MELPA Stable if desired.  See 
`package-archive-priorities`
+;; and `package-pinned-packages`. Most users will not need or want to do this.
+;;(add-to-list 'package-archives '("melpa-stable" . 
"https://stable.melpa.org/packages/";) t)
+(package-initialize)
+(custom-set-variables
+ ;; custom-set-variables 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.
+ '(package-selected-packages '(lsp-mode)))
+(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.
+ )
+ 
+(require 'lsp-mode)
+(add-hook 'nxml-mode-hook #'lsp)
+```
+
+* Create `~/.emacs.d/lsp-camel.el` 
+
+In a `~/.emacs.d/lsp-camel.el` file:
+
+```lisp
+;;; lsp-camel.el --- LSP Camel server integration        -*- lexical-binding: 
t; -*-
+
+
+;;; Code:
+
+(require 'lsp-mode)
+
+(defgroup lsp-camel nil
+ "LSP support for Camel, using camel-language-server"
+ :group 'lsp-mode
+ :tag "Language Server"
+ :package-version '(lsp-mode . "8.0.0"))
+
+;; Define a variable to store camel language server jar version
+(defconst lsp-camel-jar-version "1.5.0")
+
+;; Define a variable to store camel language server jar name
+(defconst lsp-camel-jar-name (format "camel-lsp-server-%s.jar" 
lsp-camel-jar-version))
+
+;; Directory in which the servers will be installed. Lsp Server Install Dir: 
~/.emacs.d/.cache/camells
+(defcustom lsp-camel-jar-file (f-join lsp-server-install-dir "camells" 
lsp-camel-jar-name)
+ "Camel Language server jar command."
+ :type 'string
+ :group 'lsp-camel
+ :type 'file
+ :package-version '(lsp-mode . "8.0.0"))
+
+(defcustom lsp-camel-jar-download-url
+ (format 
"https://repo1.maven.org/maven2/com/github/camel-tooling/camel-lsp-server/%s/%s";
 lsp-camel-jar-version lsp-camel-jar-name)
+ "Automatic download url for lsp-camel."
+ :type 'string
+ :group 'lsp-camel
+ :package-version '(lsp-mode . "8.0.0"))
+
+(lsp-dependency
+'camells
+'(:system lsp-camel-jar-file)
+`(:download :url lsp-camel-jar-download-url
+                       :store-path lsp-camel-jar-file))
+
+(defcustom lsp-camel-server-command `("java" "-jar" , lsp-camel-jar-file)
+ "Camel server command."
+ :type '(repeat string)
+ :group 'lsp-camel
+ :package-version '(lsp-mode . "8.0.0"))
+
+(defun lsp-camel--create-connection ()
+ (lsp-stdio-connection
+  (lambda () lsp-camel-server-command)
+  (lambda () (f-exists? lsp-camel-jar-file))))
+
+(lsp-register-client
+(make-lsp-client :new-connection (lsp-camel--create-connection)
+                                :activation-fn (lsp-activate-on "xml")
+                                :priority 0
+                                :server-id 'camells
+                                :add-on? t
+                                :multi-root t
+                                :initialized-fn (lambda (workspace)
+                                                                  
(with-lsp-workspace workspace
+                                                                        
(lsp--set-configuration (lsp-configuration-section "camel"))))
+                                :download-server-fn (lambda (_client callback 
error-callback _update?)
+                                                                          
(lsp-package-ensure 'camells callback error-callback))))
+
+(lsp-consistency-check lsp-camel)
+
+(provide 'lsp-camel)
+;;; lsp-camel.el ends here
+```
+
+* Evaluating it by calling `M-x eval-buffer`
+
+* Loading Camel LS by calling: `M-x lsp-install-server` and choosing `camells`
+
+
+Follow this link to know more about configuring Emacs - 
(https://github.com/camel-tooling/camel-lsp-client-emacs)
+
+Then you can enjoy editing capabilities of Camel URI.
+
+NOTE - The configuration will be simplified with next release of lsp-mode

Reply via email to