How to override semantic highlighting in C++ Visual Studio Code - c++

I've been trying to create a vscode theme for a couple of weeks, and everything is working out pretty well, except that something called "Semantic Highlighting" keeps overriding my theme's configurations.
Now there are a lot of questions and solutions regarding this already, but none seem to make a difference. I like semantic highlighting, but there ARE some colors I would like to modify.
I couldn't find a way to "override" the semantic highlighting with my theme configurations, so I tried disabling it by:
theme.json: "semanticHighlighting": false"
and
settings.json: "editor.semanticHighlighting.enabled": false"
But none of them make a difference.
To keep it simple, I would like to keep semantic highlighting turned on (if possible) and just override some of its coloring with my theme's configurations. I don't want to mess with "semanticTokenColors": {} since my target scopes are really specific and semanticTokenColors only offer to modify a wide range of scopes such as type, string, class, etc...
Is there any way I can achieve this? Thanks in advance.
OS: Windows 11
Vscode Version: 1.73.1 Stable Build
Installed C++ Extensions:
C/C++
C/C++ Advanced Lint
Code Runner
Better C++ Syntax (I've tried disabling this too.)
clangd

Related

How to ignore django expression errors in VS Code js file?

Is there any way to ignore these kind of errors (django expressions)? The code works perfectly, but VS Code is triggering those errors, which I find visually distracting.
You just need to install an extension that provides language support for Django templates. Go search for one that works for you on the Visual Studio Marketplace or in the extensions view of VS Code.
I'd list some extensions on the marketplace, but in the interest of being non-biased and not having to come and maintain a list when new ones come out in the future, I won't. (There's also the fact that Stack Overflow is not a platform for software recommendations (see #3 of /help/on-topic)).
Now, if you really just want to disable problem highlighting, see How can I easily toggle display of problem underlining in VS Code editor panels?

VSIX Project - Properties tool window extension

There might be something wrong with the way I search for things but here is my problem. I'm looking for a way to implement a custom editing tool within the properties tool window in the Visual Studio editor. I've been looking through several documentation references, and they all lead to the use of different assemblies, but I can't get anything to work the way that I want.
First of all, I tried using the UITypeEditor class, with the step-by-step tuto I found here : https://learn.microsoft.com/fr-fr/dotnet/api/system.drawing.design.uitypeeditor?view=net-5.0
The problem I faced was that it only seemed to be working with Winforms projects, and I'm trying to use this with a WPF project.
Afterwards, I tried following this tutorial, in order to create a project template : https://learn.microsoft.com/en-us/visualstudio/extensibility/creating-a-basic-project-system-part-1?view=vs-2019
This has led me to think that the methods used in the tutorial might have been either deprecated or improved with the used of AsyncPackages instead of ProjectPackages, and the appearance of the Microsoft.VisualStudio.Shell.Flavor assembly that seem to render useless the ProjectNode class (it doesn't even show up anymore, the method has been replaced with a void).
The last bit I tried exploring was the use of the ProjectSystem, as documented here : https://github.com/microsoft/VSProjectSystem
It was actually worse because I couldn't get it to work like I wanted, the project type I was creating could not register C# files and I wasn't able to add new classes (I might need to dig a bit deeper here but I don't know where to look).
So basically, I'm looking for help to extend the properties tool window, through an editor within the window, or a modal window opened by clicking on an ellipsis button in the properties window.
Thank you for reading this, if you have any info, I'm very interested.
I've actually found a thread leading to what I was trying to do here. This tutorial leads to a way to implement a customized editor, either inline, extended or in another dialog window. This was the thing I needed, and with a few tweaks I managed doing what I wanted.

Refactoring C++ on Mac

I'm using the default Xcode these days to do all of my coding, but Im interested in finding something to help with code refactoring. I have a bunch of older projects I want to clean up. Besides variable renaming, Xcode is lacking here.
1) I'm interested in the general consensus for the best option for a Mac user.
2) Now that Xcode 8 has been released with editor extensions, does anyone expect to see anyone develop any refactoring tools? Or is that sort of functionality past what editor extensions are allowed to do? I'm having a hard time finding any editor extensions that may have been developed so far.
I'm really looking to find something with function extraction. I've seen a few other threads like this, but I'm interested in an updated version along with any comments on the capabilities of Xcode 8's editor extensions. Thanks for any suggestions.

Outlining in VS2008, C++, not working

I'm using VS2008 (version 9.0.30729.1 SP) and have found that outlining regularly stops working. I get outlining options for the start and end of functions, and for comment blocks, but not for other code blocks, such as ifs, while loops, for loops, etc... Using Reset all settings, as recommended in a similar previous question temporarily fixes the problem, but it comes back going in and out of visual studio. It also has the side effect of requiring me to reset all my C++ directories. Any ideas how to resolve this?
Edit: Using Right Click / Outlining / Collapse block works, but is a bit tedious. I'd really like to see the embedded pluss and minus symbols on the graphic outline. I've tried all the other outlining sub-menu options but to no avail.
My suggestion would be to write a script which every couple of hours adds a randomized post to the VS2008 support forums, requesting that this feature be made more robust, until someone at MS promises to improve it. ;-)
More seriously, you might make a copy of the VS configuration settings files, work until the bug reoccurs, then make another copy, and diff the two versions to see what might have changed. That might give a clue, since resetting the settings seems to fix it temporarily.

I want to make my own source code editor, what are the good choices to make? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I've had it of those dozens of editors which never provides simple things like:
distinguish type keywords and instruction keywords so I can put different colors on them.
being cross platform using a standard GUI lib like qt gtk etc (notepad++, yes, I almost hate you).
enough keyboard shortcut like duplicate line, comment selection, and a decent find-replace.
Decent task-easing features like single-click-on-the-number-line-margin to select the entire line.
Scintilla or another good-enough lexer that highlights enough different things, because brain-compiling code is one thing, quickly identify with the eyes what is what is something I find important.
I just want to support very basic languages like C, C++, maybe Python, not HTML or CSS.
Is Scintilla a good choice to just highlight those languages, and is a lexer really necessary ?
Isn't QT enough to program a text editor such as the one I want to do ? I know there is QScintilla, but is there a reason I shouldn't use a lib that integrates a lexer ? Why is Scintilla such a good lib ?
Is QT a good choice for such an editor ? (I also want to hard embed ProFont in the editor to kill any reluctant font problem between OSes).
EDIT:
In short, I want to make an editor, only with the same syntax highlight features of notepad++. That's my main goal, and the use of QScintilla might be a little harder than I thought...
EDIT2:
Well I found textadept, it's not so known but is quite awesome. I didn't manage to make my lexer, since I have other to do which I do under windows, unfortunately it's slow on the mac. Apparently there isn't any Scite official build for the mac.
C++ is not a "very basic language" by any stretch of the imagination.
Why do you really want to do this? There are SOOO many open source code editors out there.
If you must write your own editor, I suggest looking at the other open source editors and examine which pieces you port to your editor.
Porting pieces of existing working and tested code is usually much better than writing your own code and debugging it.
After perusing a couple serious open source editors: Emacs, Eclips, CodeBlocks, CodeLight, etc., I believe you will start changing your mind about writing an editor from scratch.
-- Thomas Matthews
My Info
If you really want to do this (and it sounds like a lot of work) I would look at ANTLR for parsing the code. You may get some ideas from their ANTLRWorks display.
To link the parse tree to a display could be a fair amount of work so I'd see what an IDE platform such as Eclipse has to offer
Are you OK with Java?
If so, go for Eclipse technologies: SWT and JFace. The latter provides you with org.eclipse.jface.text package with a lot of features. Then you can roll own editor easily basing on that. (I prefer Eclipse-based editors to Scintilla-based, I believe they tend to be more advanced and feature-rich, but that's my personal opinion.)
But then, you might want to go a step further and use the Eclipse RCP framework for you application... But then why not use the Eclipse IDE itself and just add whatever you want as plug-ins.
The Eclipse codebase is huge and it's up to you how much you want to reuse.
I would expend some effort experimenting with the emacs colour theme package and the various langauge modes; see if you can bend the lisp to do what you want. You almost certainly can. to my mind emacs and a bit of effort on your part will get you your ultimate editor (remember emacs is really just a DIY editor toolkit). If you cant bend emacs into the shape you want you will be well placed to expend the effort in writing your own.
I have tried to do something similar myself for a project I'm working on at the moment, I looked into the QScintilla and had to remove it from my project because when you embedded inside a QGraphicsView I can't control the resolution of the widgets image, it seems to paint the text as an image and that's what we see, I played with increasing the smoothness of the QFont and that improved it but still a no-go.
So I found a simple code editor inside QT's code base it comes with every installation of QT if you look
into:
C:\Qt\4.7.3\src\scripttools\debugging\qscriptedit.h
C:\Qt\4.7.3\src\scripttools\debugging\qscriptedit.cpp
If you go to the source code of OpenShapeFactory where I'm trying to embed a Code Editor: check how I got the syntax Highlighter and the autocomplete :
this widget uses the qscriptedit widget that ships with qt, you can add your own keywords to the syntax hightlighter from a file as well as for the auto-complete dropdownlist.
this is the header, scriptwidget.h and the implementation scriptwidget.cpp are available as part of the whole project code.
the next stage is to look into the QTCreator and see the code they already have all if not most of these features after you get to compile their version, just find where to add your little mods and you might be getting closer to the simple code editor.
I wish you the best of luck on this direction and if you find a solution please send it over, :)
heads-up keep a lookout for the repository link above, if I find a way of making it first, I might chase you to the answer.
Like everyone else is saying, it's probably more trouble than it's worth, but if you really want to do it, Qt's a good choice since it's cross platform. Use QSyntaxHighlighter to do your keyword/type highlighting, and take full advantage Qt's support for keyboard shortcuts.
use something like C, QT and Lua for the scripting engine.