Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Duplicate information in inlay hints, e.g. label hint repeats entire figure caption #858

Closed
meliache opened this issue Mar 1, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@meliache
Copy link

meliache commented Mar 1, 2023

I use TeXLab in Emacs via Eglot, one of the two major LSP clients in Emacs and which has been merged into the Emacs development branch. Recently Eglot added optional support for inlay hints and I was glad to see that TeXLab supports them. As far as I understand this LSP feature is supposed to enhance readability. I find it very useful that they add the final section/equation/figure numbers next to the labels.

But e.g. for figures, I found that the hints for figure labels print the entire figure caption text, see the screenshot below (the inlay hint is the grey text, added by the LSP client, it's not part of the source):
image
Since the label is usually put near the caption in the LaTeX source code, this is duplicate information, in that I see the caption twice. I wouldn't mind if this were visible when hovering the mouse/point over the label, but it's not necessary to have this as an always visible hint. This is not the only case of duplicate information in inlay hints, e.g. section labels print the section name and I think this is not necessary because we can see the section name just above anyway:
image
This is something I would find useful only in section references, to see the section name of the references section. Luckily section names are usually short so I don't mind this too much.

I'm not sure if this is an issue with the Eglot implementation of inlay hints, which is new on the development branch and not part of the release yet, or an issue for TeXLab. Maybe this information isn't supposed to be shown inside the text and only on hover?

One good solution would be to add configuration options for inlay hints in the TeXLab server configuration. In the meantime, I turned this feature of in Emacs for LaTeX.

I compile TeXLab via the Archlinux AUR, in the screenshots above the latest revision 2bc4d63 was used.

@pfoerster
Copy link
Member

@meliache Thanks for the very detailed report.

Since the label is usually put near the caption in the LaTeX source code, this is duplicate information, in that I see the caption twice.

Yeah, I agree with you that adding the section right next to the label definition is redundant. I think we can remove that and only show the number instead (if any).

I'm not sure if this is an issue with the Eglot implementation of inlay hints, which is new on the development branch and not part of the release yet, or an issue for TeXLab. Maybe this information isn't supposed to be shown inside the text and only on hover?

No, inlay hints and hover are separate requests so this is not an issue with Emacs/Eglot.

One good solution would be to add configuration options for inlay hints in the TeXLab server configuration.

I think it is best to let the client handle the general configuration or feature toggles of a specific request.

@pfoerster pfoerster added the enhancement New feature or request label Mar 9, 2023
pfoerster added a commit that referenced this issue Mar 9, 2023
@pfoerster
Copy link
Member

@meliache With dd85dce, texlab will not show the caption or section name in the inlay hint. Your example will now produce Section 4.9 instead of Section 4.9 (Analysis software).

@meliache
Copy link
Author

meliache commented Mar 10, 2023

Thanks for addressing this, awesome! Just compiled the latest version and it works like a charm 👍

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Apr 27, 2023
## [5.5.0] - 2023-04-16

### Added

- Allow optionally passing cursor position to `textDocument/build` request for use in forward search after building.
  Previously, the server had to guess the cursor position ([#475](latex-lsp/texlab#475))
- Add experimental `texlab.experimental.citationCommands` setting to allow extending the list of citation commands
  ([#832](latex-lsp/texlab#832))
- Add support for escaping placeholders in build arguments similar to forward search
- Allow configuring completion matching algorithm ([#872](latex-lsp/texlab#872))

### Fixed

- Fix regression introduced in `v5.4.2` involving `texlab.cleanArtifacts` command.

## [5.4.2] - 2023-04-11

### Fixed

- Fix memory leak when editing documents over a long time ([#856](latex-lsp/texlab#856))
- Fix parsing parentheses in file paths ([#874](latex-lsp/texlab#874))

## [5.4.1] - 2023-03-26

### Fixed

- Do not return symbols with empty names (e. g. sections without name) ([#870](latex-lsp/texlab#870))
- Repair `textDocument/formatting` request ([#871](latex-lsp/texlab#871))

## [5.4.0] - 2023-03-12

### Added

- Add experimental settings to allow extending the list of special environments:
  - `texlab.experimental.mathEnvironments`
  - `texlab.experimental.enumEnvironments`
  - `texlab.experimental.verbatimEnvironments`
- Add `texlab.changeEnvironment` workspace command ([#849](latex-lsp/texlab#849))
- Add `texlab.showDependencyGraph` workspace command

### Changed

- Do not show caption or section names in label inlay hints ([#858](latex-lsp/texlab#858))
- Include more user-defined commands in command completion

### Fixed

- Parse nested `\iffalse` blocks correctly ([#853](latex-lsp/texlab#853))
- Parse commands with multi-byte characters correctly ([#857](latex-lsp/texlab#857))
- Fix checking whether a document can be a root file

## [5.3.0] - 2023-02-25

### Added

- Allow filtering `textDocument/documentSymbols` using regular expressions specified via
  `texlab.symbols.allowedPatterns` and `texlab.symbols.ignoredPatterns`
  ([#851](latex-lsp/texlab#851))

### Fixed

- Do not use percent-encoded path when searching for PDF files during forward search
  ([#848](latex-lsp/texlab#848))
- Always return an empty list of code actions instead of returning "method not found" ([#850](latex-lsp/texlab#850))

## [5.2.0] - 2023-01-29

### Added

- Include line numbers in build warnings when available ([#840](latex-lsp/texlab#840))
- Add `none` formatter to `texlab.latexFormatter` and `texlab.bibtexFormatter` options
  to allow disabling formatting ([#846](latex-lsp/texlab#846))

### Fixed

- Concatenate more than two lines of maximum length in build diagnostics ([#842](latex-lsp/texlab#842))
- Apply the correct range of references to labels when renaming ([#841](latex-lsp/texlab#841))
- Use `document` environment to detect root file instead of `\documentclass` ([#845](latex-lsp/texlab#845))

## [5.1.0] - 2023-01-21

### Added

- Allow manually overriding the root directory using a `texlabroot`/`.texlabroot` marker file.
  See the wiki for more information.
  ([#826](latex-lsp/texlab#826), [#838](latex-lsp/texlab#838))

### Deprecated

- Deprecate `texlab.rootDirectory` setting in favor of `.texlabroot` files

### Fixed

- Do not use `.git`, `.chktexrc`, `.latexmkrc` files/directories to determine the root directory
  ([#826](latex-lsp/texlab#826))
- Fix building documents without an explicit root directory ([#837](latex-lsp/texlab#837))

## [5.0.0] - 2022-12-29

### Changed

- _BREAKING_: `texlab.rootDirectory` is now used as the folder path from which the compiler is executed
  relative to the main document. By default it is equal to `"."`. For more information, please visit the wiki.
- Improve performance of completion by a huge margin due to a faster filtering method used internally
- Do not discover project files beyond the provided workspace folders
- Try to guess the root directory by checking for files such as `.latexmkrc` or `Tectonic.toml` if `texlab.rootDirectory` is not set

### Fixed

- Update positions of reported build diagnostics when editing the affected line
- Do not treat links to files as bidirectional by default. This prevents issues where `texlab` ends up compiling the wrong file
  in projects with shared files ([#806](latex-lsp/texlab#806), [#757](latex-lsp/texlab#757), [#679](latex-lsp/texlab#679))
- Fix coverage of directories which need to be watched for changes ([#502](latex-lsp/texlab#502), [#491](latex-lsp/texlab#491))
- Resolve links of the `import` package correctly
- Use `filterText` of completion items when filtering internally ([#829](latex-lsp/texlab#829))

## [4.3.2] - 2022-11-20

### Fixed

- Do not try to run the TeX engine on package files and fail the build instead ([#801](latex-lsp/texlab#801))
- Handle URIs with URL-encoded drive letters on Windows ([#802](latex-lsp/texlab#802))
- Parse BibTeX entries with unbalanced quotes correctly ([#809](latex-lsp/texlab#809))
- Provide completion for more acronym commands ([#813](latex-lsp/texlab#813))
- Fix parsing acronym definitions ([#813](latex-lsp/texlab#813))

## [4.3.1] - 2022-10-22

### Fixed

- Do not crash with a stack overflow when trying to load packages with many internal dependencies ([#793](latex-lsp/texlab#793))
- Normalize drive letters of all document URIs
- Fix parsing commands that take file paths as arguments ([#789](latex-lsp/texlab#789))
- Use the correct working directory and command line arguments when calling `latexindent` ([#645](latex-lsp/texlab#645))
- Fix publishing to CTAN

## [4.3.0] - 2022-09-25

### Added

- Add inlay hints for `\label{...}` ([#753](latex-lsp/texlab#753))

### Fixed

- Improve accuracy of the error locations reported by the TeX engine ([#738](latex-lsp/texlab#738))
- Reduce number of false positive errors reported by `texlab` ([#745](latex-lsp/texlab#745))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants