diff --git a/README.md b/README.md index 11b0489..4c8c98a 100644 --- a/README.md +++ b/README.md @@ -85,4 +85,48 @@ name = "jinja" language-servers = ["jinja-lsp"] ``` +Neovim configuration + +```lua +vim.filetype.add { + extension = { + jinja = 'jinja', + jinja2 = 'jinja', + j2 = 'jinja', + }, +} + +-- if you want to debug +vim.lsp.set_log_level("debug") + +local nvim_lsp = require('lspconfig') +local configs = require('lspconfig.configs') + +if not configs.jinja_lsp then +configs.jinja_lsp = { + default_config = { + name = "jinja-lsp", + cmd = { 'path_to_lsp_or_command' }, + filetypes = { 'jinja', 'rust' }, + root_dir = function(fname) + return "." + --return nvim_lsp.util.find_git_ancestor(fname) + end, + init_options = { + templates = './templates', + backend = { './src' }, + lang = "rust" + }, +}, +} +end +local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()) +nvim_lsp.jinja_lsp.setup { + capabilities = capabilities +} +nvim_lsp.jinja_lsp.setup { +} +``` + + Supported languages: Python, Rust diff --git a/example/.gitignore b/example/.gitignore new file mode 100644 index 0000000..132eb29 --- /dev/null +++ b/example/.gitignore @@ -0,0 +1,11 @@ +# python generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info + +# venv +.venv +venv diff --git a/example/.python-version b/example/.python-version new file mode 100644 index 0000000..9919bf8 --- /dev/null +++ b/example/.python-version @@ -0,0 +1 @@ +3.10.13 diff --git a/example/README.md b/example/README.md new file mode 100644 index 0000000..9d8604d --- /dev/null +++ b/example/README.md @@ -0,0 +1,5 @@ +```bash +# from base directory(jinja-lsp) +cd example +git init . +``` diff --git a/example/pyproject.toml b/example/pyproject.toml new file mode 100644 index 0000000..851b7cf --- /dev/null +++ b/example/pyproject.toml @@ -0,0 +1,29 @@ +[project] +name = "example" +version = "0.1.0" +description = "Simple jinja-lsp example for Python" +authors = [ + { name = "uros-5"} +] +dependencies = [ + "jinja2>=3.1.4", +] +readme = "README.md" +requires-python = ">= 3.10" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.rye] +managed = true +dev-dependencies = [] + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["src"] + +[tool.pyright] +extraPaths = ["example/.venv/lib/python3.10/site-packages"] diff --git a/example/requirements-dev.lock b/example/requirements-dev.lock new file mode 100644 index 0000000..739f205 --- /dev/null +++ b/example/requirements-dev.lock @@ -0,0 +1,14 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false + +-e file:. +jinja2==3.1.4 + # via example +markupsafe==2.1.5 + # via jinja2 diff --git a/example/requirements.lock b/example/requirements.lock new file mode 100644 index 0000000..739f205 --- /dev/null +++ b/example/requirements.lock @@ -0,0 +1,14 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false + +-e file:. +jinja2==3.1.4 + # via example +markupsafe==2.1.5 + # via jinja2 diff --git a/example/src/main.py b/example/src/main.py new file mode 100644 index 0000000..90d5a89 --- /dev/null +++ b/example/src/main.py @@ -0,0 +1,18 @@ +from jinja2 import Environment + + +def main(): + jinja_env = Environment() + + template = jinja_env.get_template("account.jinja") + template.render( + first_name="John", + last_name="Doe", + email="johndoe@example.com", + phone_number="(123) 456-7890", + street="123 Main St", + city="Dallas", + header_info="This is some information about the user.", + ) + + jinja_env.globals["PROJECT_NAME"] = "example"