Giter Site home page Giter Site logo

svls's Introduction

svls

SystemVerilog language server

Actions Status

Crates.io svlint AUR version

test

Feature

Installation

Download binary

Download from release page, and extract to the directory in PATH.

snapcraft

You can install from snapcraft

sudo snap install svls

Cargo

You can install by cargo.

cargo install svls

Configuration

Language server

svls uses .svls.toml at the root of repository. The example of .svls.toml is below:

[verilog]
include_paths = ["src/header"]
defines = ["DEBUG", "VAR=1"]
plugins = ["path/to/libfoo.so", "path/to/libbar.so"]

[option]
linter = true

[verilog] section

include_paths is include paths from the root of repository. defines is define strings. plugins is paths to svlint plugins from the working directory.

[option] section

linter shows whether linter feature is enabled.

Linter

Linter uses .svlint.toml at the root of repository. If .svlint.toml can't be used, all lint rules are enabled. Please see svlint#configuration for the detailed information.

Usage

Visual Studio Code

Please install svls-vscode extension from marketplace.

Vim/Neovim with LanguageClient-neovim

let g:LanguageClient_serverCommands = {
    \ 'systemverilog': ['svls'],
    \ }

Vim/Neovim with vim-lsp

if executable('svls')
    au User lsp_setup call lsp#register_server({
        \ 'name': 'svls',
        \ 'cmd': {server_info->['svls']},
        \ 'whitelist': ['systemverilog'],
        \ })
endif

Vim/Neovim with coc.nvim

In configuration file

"languageserver": {
    "svls": {
        "command": "svls",
        "filetypes": ["systemverilog"]
    }
}

Neovim with nvim-lspconfig

In configuration file

{
  "neovim/nvim-lspconfig",
  opts = {
    servers = {
      svls = {
        root_dir = function(fname)
          return require("lspconfig.util").find_git_ancestor(fname)
        end,
        cmd = { "svls" },
        filetypes = { "verilog", "systemverilog" },
      },
    },
  },
}

Emacs with lsp-mode

(use-package flycheck
  :ensure t
  :defer t
  :init (global-flycheck-mode t))

(use-package company
  :ensure t
  :defer t
  :init (global-company-mode t)
  :config
  ;; Company Flx adds fuzzy matching to company, powered by the sophisticated
  ;; sorting heuristics  in =flx=
  (use-package company-flx
    :ensure t
    :after company
    :init (company-flx-mode t))
  ;; Company Quickhelp
  ;; When idling on a completion candidate the documentation for the
  ;; candidate will pop up after `company-quickhelp-delay' seconds.
  (use-package company-quickhelp
    :after company
    :ensure t
    ;; :init (company-quickhelp-mode t)
    :hook (prog-mode . (lambda ()
                         (when (window-system)
                           (company-quickhelp-local-mode))))
    :config
    (setq company-quickhelp-delay 0.2
          company-quickhelp-max-lines nil)))

(use-package lsp-mode
  :defer t
  :ensure t
  :commands lsp
  :config
  (setq lsp-log-io nil
        lsp-auto-configure t
        lsp-auto-guess-root t
        lsp-enable-completion-at-point t
        lsp-enable-xref t
        lsp-prefer-flymake nil
        lsp-use-native-json t
        lsp-enable-indentation t
        lsp-response-timeout 10
        lsp-restart 'auto-restart
        lsp-keep-workspace-alive t
        lsp-eldoc-render-all nil
        lsp-enable-snippet nil
        lsp-enable-folding t)
   ;;; lsp-ui gives us the blue documentation boxes and the sidebar info
  (use-package lsp-ui
    :defer t
    :ensure t
    :after lsp
    :commands lsp-ui-mode
    :config
    (setq lsp-ui-sideline-ignore-duplicate t
          lsp-ui-sideline-delay 0.5
          lsp-ui-sideline-show-symbol t
          lsp-ui-sideline-show-hover t
          lsp-ui-sideline-show-diagnostics t
          lsp-ui-sideline-show-code-actions t
          lsp-ui-peek-always-show t
          lsp-ui-doc-use-childframe t)
    :bind
    (:map lsp-ui-mode-map
          ([remap xref-find-definitions] . lsp-ui-peek-find-definitions)
          ([remap xref-find-references] . lsp-ui-peek-find-references))
    :hook
    ((lsp-mode . lsp-ui-mode)
     (lsp-after-open . (lambda ()
                         (lsp-ui-flycheck-enable t)
                         (lsp-ui-sideline-enable t)
                         (lsp-ui-imenu-enable t)
                         (lsp-lens-mode t)
                         (lsp-ui-peek-enable t)
                         (lsp-ui-doc-enable t)))))
  ;;; company lsp
  ;; install LSP company backend for LSP-driven completion
  (use-package company-lsp
    :defer t
    :ensure t
    :after company
    :commands company-lsp
    :config
    (setq company-lsp-cache-candidates t
          company-lsp-enable-recompletion t
          company-lsp-enable-snippet t
          company-lsp-async t)
    ;; avoid, as this changes it globally do it in the major mode instead (push
    ;; 'company-lsp company-backends) better set it locally
    :hook (lsp-after-open . (lambda()
                              (add-to-list (make-local-variable 'company-backends)
                                           'company-lsp)))))

(use-package verilog-mode
  :defer t
  :config
  (require 'lsp)
  (lsp-register-client
   (make-lsp-client :new-connection (lsp-stdio-connection '("svls"))
   :major-modes '(verilog-mode)
   :priority -1
   ))
  :hook (verilog-mode . (lambda()
      (lsp)
      (flycheck-mode t)
      (add-to-list 'lsp-language-id-configuration '(verilog-mode . "verilog")))))

Emacs with verilog-ext

(require 'verilog-ext)
(verilog-ext-mode-setup)
(verilog-ext-eglot-set-server 've-svls) ;`eglot' config
(verilog-ext-lsp-set-server 've-svls)   ; `lsp' config

Helix

In languages.toml:

[language-server.svls]
command = "svls"

[[language]]
name = "verilog"
language-servers = ["svls"]

svls's People

Contributors

bastidood avatar beleap avatar dakshinatharindu avatar dalance avatar davemcewan avatar dependabot-preview[bot] avatar dependabot[bot] avatar ebkalderon avatar github-actions[bot] avatar gmlarumbe avatar hasheddan avatar otreblan avatar thomasdingemanse avatar zhaixiaojuan avatar zweisamkeiten avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

svls's Issues

Call svls.exe in VS Code with custom linting rules?

Is there a way to call the Windows binary release of svls.exe with a custom linter rules configuration?

I have tried putting a custom '.svlint.toml' in the same directory as svls.exe, but within VS Code it always seems to complain ".svlint.toml is not found. Enable all lint rules."

I have also tried downloading a binary release of svlint.exe, adding it to Windows PATH ahead of svls.exe, and adding a custom .svlint.toml in the same directory as svlint.exe. This does not seem to work either - the command line invocation of svlint.exe performs linting with the correct parameters, but when using the language server in VS Code it goes back to using all lint rules.

svls not show svlint message

hello,
i try to use this tool in neovim + coc.vim (by iterm2)

i installed svls and svlint

$ svls --version
svls 0.2.8
$ svlint --version
svlint 0.7.2

and i write coc-settings.json like this:

 "languageserver": {
   "svls": {
      "command": "svls",
      "filetypes": ["systemverilog"]
      }
     }

and i write ~/.svls.toml & ./svlint.toml like this :

$cat ~/.svls.toml
[verilog]
include_paths = ["./*"]
defines = ["DEBUG", "VAR=1"]

[option]
linter = true
$cat ~/.svlint.toml
[option]
exclude_paths = []

[rules]
case_default = true
enum_with_type = false
for_with_begin = true
function_same_as_system_function = true
function_with_automatic = true
generate_for_with_label = false
generate_if_with_label = false
generate_keyword_forbidden = true
generate_keyword_required = false
genvar_declaration_in_loop = false
genvar_declaration_out_loop = false
if_with_begin = true
inout_with_tri = false
input_with_var = false
interface_port_with_modport = false
legacy_always = false
level_sensitive_always = true
loop_variable_declaration = false
non_ansi_module = true
output_with_var = false
parameter_in_package = false
priority_keyword = false
tab_character = false
unique0_keyword = false
unique_keyword = false
wire_reg = false
generate_keyword = false
tab_charactor = false
genvar_declaration = false

when i edit a systemverilog file, it just show 'parse error (svls)'
i want to show svlint message

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-05-07 แ„‹แ…ฉแ„’แ…ฎ 6 37 01

is there something i'm missing?
or
syntax error show only 'parse error(svls)'?

Goto definition functionalities not working

I am using svls in emacs, I try to use the function lsp-ui-peek-find-definitions and I get the following error:
image
This is the output from lsp-describe-session
image
Could someone guide me on how to solve the issue

fs::read_to_string() error handling - non UTF 8 encoded files.

Firstly, thanks for a great tool. It gets me out of Vivado for my editing for which I'm very grateful!

I'd like to suggest that it would be good to provide more user feedback about the errors that prevent the svlint.toml file being read, I'm assuming that Rust can provide them.

It took me some hours to figure out that on Windows the command "svlint --example > svlint.toml" will produce a UTF16-BOM encoded file (from a powershell session) which cannot be read. That displays the message saying the file cannot be read (which is true) but much of my time was spent trying to figure out why the file path, which is correctly reported, couldn't be accessed which turned out to be a total red herring.

I subsequently tried several different encodings to see what happens, UTF16 files cannot be read, UTF8-BOM files can be read but not parsed.

I'm not game enough to dip my toes into Rust programming yet (although as a C programmer I've very much intending to do so).

Fails to install

Hello.

Trying to install this using cargo install svls but it get stuck at Building [=======================> ] 194/195: svls(bin).

Windows 11
rustc version 1.61.0
rustup version 1.24.3

Parse error with import

Hi,

I am seeing a "parse error" on the module that uses import in the module header.

Screen Shot 2020-10-19 at 2 01 59 PM

I've run svlint with the config I use and proper --incdir option but svlint doesn't show the same error.

Troubleshooting

When integrating with LanguageClient-neovim, is there a way to enable error logging to troubleshoot what is causing svls/svlint to fail? For example, a `include non_existent_file.sv makes everything stop working.

Failed to compile 0.28

with make that worked fine, I then tried

Job: make release_lnx
make release_lnx
cargo build --release --target=x86_64-unknown-linux-musl
Updating crates.io index
Downloading crates ...
Downloaded atty v0.2.14
: : :
Downloaded futures-macro v0.3.21
Downloaded anyhow v1.0.70
Compiling memchr v2.5.0
Compiling serde_derive v1.0.160
Compiling cfg-if v1.0.0
Compiling minimal-lexical v0.2.1
Compiling same-file v1.0.6
Compiling regex v1.5.5
error[E0463]: can't find crate for core
|
= note: the x86_64-unknown-linux-musl target may not be installed
= help: consider downloading the target with rustup target add x86_64-unknown-linux-musl

error[E0463]: can't find crate for compiler_builtins
: : :
Some errors have detailed explanations: E0405, E0412, E0425, E0432, E0433, E0463, E0531.
error: could not compile memchr due to 988 previous errors
make: *** [release_lnx] Error 101

I tried first with rust 1.6.5, then with rust 1.6.9, but that did not solve the matter.

VS Code Connection to server got closed. Server will not be restarted.

I am getting following prompt with vscode.

[Info  - 6:11:50 pm] Connection to server got closed. Server will restart.
[Error - 6:11:50 pm] Connection to server got closed. Server will not be restarted.

$ svls --version
svls 0.1.25

svls is in path, I tried launching vs code with the shell that could run svls without any issues.

Question about oneline IF

Hi,
I wonder if this warning is incorrect :
image

All if seem to be detect as multiline, I got this issue on every oneline if
Is this the expect behavior ?

Thank you :)

Update to newer tower-lsp

Author of tower-lsp here! I just wanted to let you know that tower-lsp has been rapidly improving over the past several months and has seen a great many improvements since 0.4.1. Among other things, it has gained:

  • Support for std::future::Future, the newest tokio, and async/await.
  • Support for a crap-ton more LSP requests, almost supporting all of LSP 3.15.
  • Support for all server-to-client requests, renaming Printer to Client.
  • LanguageServer trait methods are no longer required, except for initialize and shutdown.
  • Notification trait methods are now async fn.
  • You can now call .await on serve() directly, eliminating the need for ExitReceiver.
  • Backpressure is now handled properly.

If you would like to port your server to async/await and add some new features to your SystemVerilog server, such as goto declaration, goto definition, goto type definition, code formatting, document symbols, references, etc. 0.9.0 has just been published to Crates.io.

failed to compile `svls v0.2.0`

Hello, I tried to use cargo to install svls , but I encountered this issue.
ERROR INFORMATION
error: failed to compile svls v0.2.0, intermediate artifacts can be found at /tmp/cargo-installZoviMs

Caused by:
could not compile sv-parser-parser

Caused by:
process didn't exit successfully: rustc --crate-name sv_parser_parser --edition=2018 /home/shark/.cargo/registry/src/mirrors.ustc.edu.cn-61ef6e0cd06fb9b8/sv-parser-parser-0.11.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 'feature="default"' -C metadata=59a4925f72e49b25 -C extra-filename=-59a4925f72e49b25 --out-dir /tmp/cargo-installZoviMs/release/deps -L dependency=/tmp/cargo-installZoviMs/release/deps --extern nom=/tmp/cargo-installZoviMs/release/deps/libnom-96cc9d3fca65563f.rmeta --extern nom_greedyerror=/tmp/cargo-installZoviMs/release/deps/libnom_greedyerror-a43c24ef75aaf975.rmeta --extern nom_packrat=/tmp/cargo-installZoviMs/release/deps/libnom_packrat-53cf9756c30907e6.rmeta --extern nom_recursive=/tmp/cargo-installZoviMs/release/deps/libnom_recursive-092d30470400ccd3.rmeta --extern nom_tracable=/tmp/cargo-installZoviMs/release/deps/libnom_tracable-d03bbc9967fd7924.rmeta --extern nom_locate=/tmp/cargo-installZoviMs/release/deps/libnom_locate-6b3311e1a4987f0f.rmeta --extern str_concat=/tmp/cargo-installZoviMs/release/deps/libstr_concat-9356af5eb5aa645b.rmeta --extern sv_parser_macros=/tmp/cargo-installZoviMs/release/deps/libsv_parser_macros-f7393d134adfc645.so --extern sv_parser_syntaxtree=/tmp/cargo-installZoviMs/release/deps/libsv_parser_syntaxtree-cab3f6ff8ab3dafb.rmeta --cap-lints allow (signal: 9, SIGKILL: kill)

Support "Go to definition" and "Go to declaration"

I see that the goto_definition and goto_declaration methods for the LanguageServer trait are not implemented in the SVLS backend. So "go to definition" and "go to declaration" in the VSCode extension will not work.

Has there been any work on this? I can contribute to this if sv-parser provides enough info to support this feature. I'm reading up on this to see what work would need to be done to implement this. It's probably the one feature preventing me from switching from DVT to VSCode for SystemVerilog development full-time.

neovim does't show nothing

Hello,
In my configuration the svls doesn't work, it does not show the completion, errors in front of the lines, i have it cofigured.
image

[Suggestion] Any plans for auto completion?

First, I really thank you for your excellent work!!

I am using vim-lsp and asyncomplete(auto-complete) for my vim plugins
I hope the svls supports auto-complete.
Any plans for supporting auto-completion?

Use svls with Neovim lsp

Hi,

I'm very interesting to use your language server with the brand new LSP of Neovim. I made a pull request here:

neovim/nvim-lspconfig#477

However, even of the server sounds well configured from Neovim point of view, I don't see back information when opening a systemverilog file. I dropped into .svls.toml the following setup:

[verilog]
include_paths = ["src"]
defines = ["DEBUG"]

[option]
linter = true

How could I debug the server? Any log I can find and parse to understand the issue?

Best,
Damien

Release new version with svlint 0.6.0

Hello!

Can you please release a new version with svlint 0.6.0. We are using latest svlint (in our CI) at work but svls fails since it cannot read the new rules.

Question about VSCODE

Hi!

I'm using SVLS-vscode on VSCODE.
It seem to work but I realize that any error I have is only display as parse error at the top of the module declaration.
image
Is this the expected beahvior ? Is it supose to show me the line in error ?

Thank you for your help :)

Info about my setup:
image

Failed to compile svls v0.1.11

On a new Rust installation

cargo install svls

The cause seems to be because two different versions of sv_parser is referenced (v0.6.0 and v0.5.0), cargo compiles both.

On the other hand

cargo install svls --version 0.1.10

works fine.

how to configure to support "go to definition" on vscode?

In my env.sv , I want to jump by clicking the left mouse button.
For example, env.sv :

class my_env extends uvm_env;

   my_agent   i_agt;
   my_agent   o_agt;
   my_model   mdl;
   my_scoreboard scb;
endclass

I can go to my_agent.sv or uvm basic class uvm_env, by click the my_agent or uvm_env symbol.
But now it do not work.

Linter Support for VS Code

Hi, I am trying to do the linting with Svlint and Svlan on vscode.

  • All the toml files are created and added in the workspace folder.

Still I am not able to run the Linting checks, Please suggest.

Feature request: Assist to connect ports for a module instance

Hi! I love svls and it's been invaluable for working in sv for class. I have some dubious quality vim macros that I'd like to replace with something more robust and easier to use for the use case of instantiating a module and creating all the signals for its ports, and I feel that svls might be the right spot to do it.

I'd like to be able to take this situation:

a.sv

module a(input x);
endmodule

b.sv

module b();
  a my_a(); // invoke code action here: connect ports
endmodule

and automatically generate this result:

b.sv`

module b();
  logic x;
  a my_a(.x);
endmodule

Can't get svls to install

I want to install in Windows 11. I've used the terminal of my VSCode and Win Power Shell.
I tried the following:

  1. Clone: git clone https://github.com/dalance/svls.git
  2. cd .\svls\
  3. npm install -g .
    npm error code ENOENT
    npm error syscall open
    npm error path C:\Users\gkara\Downloads\svls\package.json
    npm error errno -4058
    npm error enoent Could not read package.json: Error: ENOENT: no such file or directory, open 'C:\Users\gkara\Downloads\svls\package.json'

Or if using install from GIT repo:
;; npm install -g https://github.com/dalance/svls.git
npm error code ENOENT
npm error syscall open
npm error path C:\Users\gkara\AppData\Local\npm-cache_cacache\tmp\git-cloneWW8czl\package.json

The issue always seems to be this json file.
I have the clone, any other way I can install it?

Question about the rule 'non_ansi_module'

Hi,
When writing a TestBench I always got the non_ansi_module since I have no port.
image

Do you think it would make sense to not apply this rule check when no port are declared ?

I could add a dummy input to remove the warning but that a bit weird :/
image

What do you think ?

Thank you

turn off creating new line after semicolon

I am using it in emacs.
How can I stop creating new line after semicolon (;) ?
Though the feature is nice, sometimes it is annoying.
Is there any way turn off the feature?

thank you.

svls not work

Hello, thanks for your interesting work first.

I try to use this tool in neovim + coc.vim

I installed svls and svlint,

$ svls --version
svls "0.1.17 ( rev: 1b8b96b, rustc: 1.45.2, build at: 2020/08/20 14:44:19 )"
$ svlint --version
svlint 0.4.7

and I configure coc.vim like this:

$ cat ~/.config/nvim/coc-settings.json
{
    "languageserver": {
        "svls": {
        "command": "svls",
        "filetypes": ["systemverilog"]
        }
    }
}

and I have .svls.toml file in my work path:

$ pwd
/home/liyewen/Codes/Test/svls_test
$ cat ./.svls.toml
[verilog]
include_paths = ["/home/liyewen/Codes/Test/svls_test/"]

[option]
linter = true

when I edit a SystemVerilog file, it has the following errors:

$ pwd
/home/liyewen/Codes/Test/svls_test
$ vim test.sv

[coc.nvim] .svlint.toml is not found. Enable all lint rules.

I don't know how to fix this problem, can you give some help?

Linter erroneously flags pure virtual functions

The following code is valid SystemVerilog (confirmed here):

package test_pkg;
  virtual class Class;
    pure virtual function automatic void func1();
    pure virtual function automatic void func2();
  endclass
endpackage

The linter erroneously flags the second function declaration as invalid syntax.
image

It appears that the linter is assuming that every function will have an endfunction, but this is not true for pure virtual functions.

LSP[svls][Warning] Failed to parse

Hi, everyone I'm trying to use svls with LSP, and I compiled and created the files ".svls.toml" and ".svlint.toml" in the path of my project but these errors appears:

LSP[svls][Warning] Failed to parse /home/vhbb/PR...IC/dsp-core/.svlint.toml. Enable all lint rules.

If I run svlint I can see the errors, but they do not appear inside nvim, I'm not sure if I forgot to do something before using it on nvim, I attached my .toml files maybe the error is on it.

  • .svls.toml
[systemverilog]
include_paths = ["rtl", "rtl/include"]
defines       = ["DEBUG", "VAR=1"]

[option]
linter = true
  • .svlint.toml here I don't know what I have to put in exclude_path
[option]
exclude_paths = [ ]
prefix_label  = ""

[rules]
blocking_assignment_in_always_ff       = true
case_default                           = true
default_nettype_none                   = false
enum_with_type                         = true
multiline_for_begin                    = true
function_same_as_system_function       = true
function_with_automatic                = true
generate_for_with_label                = true
generate_if_with_label                 = true
keyword_forbidden_generate             = true
generate_keyword_required              = false
genvar_declaration_in_loop             = true
genvar_declaration_out_loop            = false
multiline_if_begin                     = true
inout_with_tri                         = false
input_with_var                         = false
interface_port_with_modport            = false
legacy_always                          = false
level_sensitive_always                 = true
loop_variable_declaration              = true
non_ansi_module                        = true
non_blocking_assignment_in_always_comb = true
output_with_var                        = false
parameter_in_package                   = false
priority_keyword                       = false
tab_character                          = true
unique0_keyword                        = false
unique_keyword                         = false
keyword_forbidden_wire_reg             = true

Add support for completion and symbol lookup

Hi

First of all I must say I am very impressed with your SystemVerilog tooling projects! I am glad people are working on SV tooling.

As far I can see from the source code it is only linting that is currently implemented.
It would be awesome if it where extended to do completion and symbol lookup.

If you are not planning on working on it, I would perhaps be interested i having a crack at it, but I have little to no experince with Rust.

From what I gather the parse_sv function is able to handle included files. Is this accurate?

How does the parser handle partially complete SV files that would be expected if one is completing a symbol?

Thanks for the great work so far.

Server crashes

I'm on Windows 10, installed svls using Cargo and use it in VsCode with the extension.
But unfortunately it's not working, I just get an error message:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ()', backend.rs:71:66

From glancing at the code it looks like something to do with paths.
Maybe it's related to Windows? Windows is weird with paths.

I'd try to debug this myself but I'm not sure how to debug a language server.

Cant get the linter to work in neovim

i have installed svls via mason, and added the following config

["svls"] = function()
    lspconfig.svls.setup{
      name = 'svls',
      cmd = {"svls", "-d"},
      whitelist = {'systemverilog','verilog'},
      filetypes = {'verilog','systemverilog'}

    }
  end

added a .svls.toml to the root of my project containing

[verilog]
include_paths = ['modules/', 'tb/']

[option]
linter = true

but i cant get the linter to work..

LspInfo give

 Detected filetype:   verilog
 
 0 client(s) attached to this buffer: 
 
 Other clients that match the filetype: verilog
 
 Config: svls
 	filetypes:         verilog, systemverilog
 	root directory:    Not found.
 	cmd:               /home/n3m0/.local/share/nvim/mason/bin/svls -d
 	cmd is executable: true
 	autostart:         true
 	custom handlers:   

small section of LSPLog

[ERROR][2024-02-22 22:38:01] ...lsp/handlers.lua:535	'ERROR: Assumption made for token re-ranging broken for token "10"'
[ERROR][2024-02-22 22:38:01] ...lsp/handlers.lua:535	'ERROR: Assumption made for token re-ranging broken for token ";"'
[ERROR][2024-02-22 22:38:01] ...lsp/handlers.lua:535	'ERROR: Assumption made for token re-ranging broken for token "\n\n  "'
[ERROR][2024-02-22 22:38:01] ...lsp/handlers.lua:535	'ERROR: Assumption made for token re-ranging broken for token "select"'
[ERROR][2024-02-22 22:38:01] ...lsp/handlers.lua:535	'ERROR: Assumption made for token re-ranging broken for token " "'
[ERROR][2024-02-22 22:38:01] ...lsp/handlers.lua:535	'ERROR: Assumption made for token re-ranging broken for token "="'
[ERROR][2024-02-22 22:38:01] ...lsp/handlers.lua:535	'ERROR: Assumption made for token re-ranging broken for token " \n\n\n"'
[ERROR][2024-02-22 22:38:01] ...lsp/handlers.lua:535	'ERROR: Assumption made for token re-ranging broken for token "#"'
[ERROR][2024-02-22 22:38:01] ...lsp/handlers.lua:535	'ERROR: Assumption made for token re-ranging broken for token "1000"'
[ERROR][2024-02-22 22:46:36] ...lsp/handlers.lua:535	"ERROR: Tokenization might be incorrect as token search ran into infinite loop at 105 - 106"
[ERROR][2024-02-22 22:46:36] ...lsp/handlers.lua:535	"ERROR: TypeError: Cannot read properties of undefined (reading 'scopes')"
[ERROR][2024-02-22 22:46:48] ...lsp/handlers.lua:535	"ERROR: Formatting gave errors"
[START][2024-02-22 23:37:36] LSP logging initiated
[ERROR][2024-02-22 23:37:36] ...lsp/handlers.lua:535	"ERROR: Error: ENOENT: no such file or directory, lstat '/null'"

how would i fix this..?

kind regards

svls language server fails to start in VSCode

i successfully installed svls from cargo and adde ~/.cargo/bin to $PATH

svls --version does show the proper version both in the terminal, as well as terminal inside VSCode

also I tried rebooting, the PC as well as VSCode and running VSCode from terminal from where svls runs as well.

still it just says that it failed to start.. what is going on?

Using svls with QTCreator

After building svls I tried to use it as a language server for QTCreator with moderate success.
Most of my sources are Verilog instead of System Verilog and thus there is a lot of messages regarding that.
The language server thus works with QTCreator and that's a good start.
There obviously is no real support for verilog in QTCreator but I really like the editor. Also having embedded soft cores with both verilog and C/C++ makes it a real game changer.
If anyone has any experience to make this language server more useful in QTCreator then please add that to this issue.

Request: use more sensible defaults

I'm getting both of the following errors when I switch the style of my module name back and forth between ExampleModule and exampleModule:

Begin `module` name with lowerCamelCase.svls(lowercamelcase_module)
Begin `module` name with UpperCamelCase.svls(uppercamelcase_module)

I don't really care which one it is, but one should be selected and should be used as the default. I can't contend with it wanting both simultaneously.

I'm sure there are countless other examples of this sort of too-configurable-to-be-usable with the default setup.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.