profile
viewpoint
Niklas Mollenhauer nikeee Germany holz.nu Polyglot software engineer. Likes language, API and UX design.

nikeee/edotor.net 47

Your favourite Graphviz editor

nikeee/dot-language-support 9

Library for parsing and analyzing DOT scripts

nikeee/Brainfuck.NET 5

Compiles Brainfuck code to a .NET CIL executable.

nikeee/dot-language-server 2

A language server for the DOT language

flipdot/0xA.flipdot.org 1

Hackumenta 2019 Website

nikeee/docker.alpine.scipy 1

A docker image for data science based in alpine base image

startedvercel/swr

started time in a day

startedgaearon/whatthefuck.is

started time in a day

issue commentgaearon/whatthefuck.is

WTF is this?

I think this is not a troll. Instead, this may be a request for explaining the semantics of this in JS (just wanted to open the same issue).

qlur

comment created time in a day

startedKirillOsenkov/blurhash.net

started time in a day

pull request commentnikeee/docfx-action

Update docfx from v2.45.1 --> 2.56.1

We're back at 2.45.1 as long as dotnet/docfx#5785 isn't fixed.

SeanKilleen

comment created time in 3 days

push eventnikeee/docfx-action

Niklas Mollenhauer

commit sha 67cf5e844ce224764aa9d51a0dd0d6bb76e10863

Revert back to v2.45.1 See #7, #1 and dotnet/docfx#5785

view details

push time in 3 days

startedlhoursquentin/sed-bin

started time in 3 days

startedtc39/proposal-temporal

started time in 3 days

pull request commentnikeee/docfx-action

Update docfx from v2.45.1 --> 2.56.1

A reference if something pops up: we hat some issues with newer versions of DocFX in #1. The solution then was downgrading.

SeanKilleen

comment created time in 3 days

pull request commentnikeee/docfx-action

Update docfx from v2.45.1 --> 2.56.1

Thank you!

SeanKilleen

comment created time in 3 days

push eventnikeee/docfx-action

Sean Killeen

commit sha f8cf297a39f88bd4b4dca79600e0bd211dce6fa8

Update docfx from v2.45.1 to 2.56.1 (#7)

view details

push time in 3 days

PR merged nikeee/docfx-action

Update docfx from v2.45.1 --> 2.56.1

Updates docfx to the lastest release.

I believe this version includes several bugfixes, one of which is related to https://github.com/nunit/docs/issues/448.

+1 -1

0 comment

1 changed file

SeanKilleen

pr closed time in 3 days

startedtiangolo/fastapi

started time in 3 days

startedtc39/proposal-temporal

started time in 6 days

issue closednikeee/docfx-action

Suggestion: Publish on DockerHub

I've noticed that every time our GitHub Action fires, it pulls from this repo, which builds the container image.

If this image was published to DockerHub, we could reference the container directly in our Action rather than building it each time, dramatically speeding up the process.

Would you be open to publishing this on DockerHub? If not, would you mind if I did so?

Thanks!

closed time in 8 days

SeanKilleen

issue commentnikeee/docfx-action

Suggestion: Publish on DockerHub

I changed the action to use an image that is automatically built from this repository. It should "just work" without any further configuration.

SeanKilleen

comment created time in 8 days

push eventnikeee/docs

Niklas Mollenhauer

commit sha cee20d6d14b9ac5c8108fc5e720f0cad2048e39e

Update README.md

view details

push time in 8 days

push eventnikeee/docs

Niklas Mollenhauer

commit sha bf463510d391e7cddba94c01f6abff4cd4871a75

Update README.md

view details

push time in 8 days

push eventnikeee/docs

Niklas Mollenhauer

commit sha 734f16b60bd6249bc4bec10d592f59c36191d5b9

Test image build

view details

push time in 8 days

fork nikeee/docs

Documentation for all active NUnit projects

fork in 8 days

release nikeee/docfx-action

v1.0.0

released time in 8 days

push eventnikeee/docfx-action

Niklas Mollenhauer

commit sha 45f48172e1c9cfa5f561281bb4aec367108cc418

Use v1.0.0 in sample

view details

push time in 8 days

created tagnikeee/docfx-action

tagv1.0.0

created time in 8 days

push eventnikeee/docfx-action

Niklas Mollenhauer

commit sha b9c2cf92e3b4aa06878a1410833a8828b4bdcd26

Use image on dockerhub

view details

push time in 8 days

issue commentnikeee/docfx-action

Suggestion: Publish on DockerHub

I recently thought of the same. It seems to be necessary since we now install git and dotnet.

SeanKilleen

comment created time in 8 days

issue commentnikeee/docfx-action

Thank you!

:)

SeanKilleen

comment created time in 10 days

startedmilkey-mouse/edit

started time in 10 days

startedtc39/proposal-weakrefs

started time in 12 days

issue commentnikeee/edotor.net

Ctrl+Z after 'Rename symbol'

Note to myself: Check if this is still an issue.

jbriales

comment created time in 13 days

issue commentmicrosoft/TypeScript

Suggestion: Regex-validated string type

Even quadratic time is generally too slow at this scale.

This is why I also asked if it is computationally feasible.

So I guess it isn't. If the same applies to equality, doesn't that mean that almost every property of this feature ist infeasible? Correct me, if I'm wrong, but it seems the only thing that is left is membership. I don't think that this alone would be useful.

tenry92

comment created time in 13 days

issue commentmicrosoft/TypeScript

Suggestion: Regex-validated string type

I'm curious: Is it possible to decide inclusion/containment of regular expressions? According do wikipedia, it is decidable. However, does this also account for regular expressions in JS? I think they have more features than standard REs (e.g. backreferences). If it's decidable, is it computationally feasible? This would affect this feature:

    if (Gmail.test(candidate)) {
        // candidate is also an Email
    }
tenry92

comment created time in 13 days

issue openedwinneymj/ESP8266_SSD1322

Setting contrast

The function to dim the display does not seem to work: https://github.com/winneymj/ESP8266_SSD1322/blob/b1dd5602071f7d3d15c947ce6832a0782c773d3a/ESP8266_SSD1322.cpp#L328-L345

contrast is not initialized. Also, it only works if I change ssd1322_command(contrast); to ssd1322_data(contrast);. It is also used in a similar way here: https://github.com/winneymj/ESP8266_SSD1322/blob/b1dd5602071f7d3d15c947ce6832a0782c773d3a/ESP8266_SSD1322.cpp#L213-L214

Or am I missing something here?

created time in 14 days

Pull request review commentwinneymj/ESP8266_SSD1322

Small fix to typecast as int

  The [Adafruit GFX](https://github.com/adafruit/Adafruit-GFX-Library) introduces graphics primitives (points, lines, circles, etc.). This library add support for the [Newhaven NHD-3.12-25664UCY2](http://www.newhavendisplay.com/nhd31225664ucy2-p-3537.html) 256x64x16 Yellow OLED Display.  The driver supports 4-wire SPI mode. +!! Do not use a version of the Adadfruit GFX library newer then v1.5.3 !!

Now I know why. >1.5.3 doesn't compile due to renamed variables in the GFX library.

CuriousTimo

comment created time in 14 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

 public Task DeleteChannel(int channelId, bool force)         #endregion         #region EditChannel -        public Task EditChannel(int channelId, EditChannelInfo channel)+        public async Task<IReadOnlyCollection<EditChannelInfo>> EditChannel(int channel_id, ChannelEdit EditChannel, string value)         {-            var updateParameters = new List<Parameter>-            {-                new Parameter("cid", channelId),-            };--            if (channel.Name != null) { updateParameters.Add(new Parameter("channel_name", channel.Name)); }-            if (channel.Topic != null) { updateParameters.Add(new Parameter("channel_topic", channel.Topic)); }-            if (channel.Description != null) { updateParameters.Add(new Parameter("channel_description", channel.Description)); }-            if (channel.Password != null) { updateParameters.Add(new Parameter("channel_password", channel.Password)); }-            if (channel.Codec != null) { updateParameters.Add(new Parameter("channel_codec", (int)channel.Codec)); }-            if (channel.CodecQuality != null) { updateParameters.Add(new Parameter("channel_codec_quality", channel.CodecQuality)); }-            if (channel.MaxClients != null) { updateParameters.Add(new Parameter("channel_maxclients", channel.MaxClients)); }-            if (channel.MaxFamilyClients != null) { updateParameters.Add(new Parameter("channel_maxfamilyclients", channel.MaxFamilyClients)); }-            if (channel.Order != null) { updateParameters.Add(new Parameter("channel_order", channel.Order)); }-            if (channel.IsPermanent != null) { updateParameters.Add(new Parameter("channel_flag_permanent", channel.IsPermanent)); }-            if (channel.IsSemiPermanent != null) { updateParameters.Add(new Parameter("channel_flag_semi_permanent", channel.IsSemiPermanent)); }-            if (channel.IsTemporary != null) { updateParameters.Add(new Parameter("channel_flag_temporary", channel.IsTemporary)); }-            if (channel.IsDefaultChannel != null) { updateParameters.Add(new Parameter("channel_flag_default", channel.IsDefaultChannel)); }-            if (channel.IsMaxClientsUnlimited != null) { updateParameters.Add(new Parameter("channel_flag_maxclients_unlimited", channel.IsMaxClientsUnlimited)); }-            if (channel.IsMaxFamilyClientsUnlimited != null) { updateParameters.Add(new Parameter("channel_flag_maxfamilyclients_unlimited", channel.IsMaxFamilyClientsUnlimited)); }-            if (channel.IsMaxFamilyClientsInherited != null) { updateParameters.Add(new Parameter("channel_flag_maxfamilyclients_inherited", channel.IsMaxFamilyClientsInherited)); }-            if (channel.NeededTalkPower != null) { updateParameters.Add(new Parameter("channel_needed_talk_power", channel.NeededTalkPower)); }-            if (channel.PhoneticName != null) { updateParameters.Add(new Parameter("channel_name_phonetic", channel.PhoneticName)); }-            if (channel.IconId != null) { updateParameters.Add(new Parameter("channel_icon_id", (int)channel.IconId)); }-            if (channel.IsCodecUnencrypted != null) { updateParameters.Add(new Parameter("channel_codec_is_unencrypted", channel.IsCodecUnencrypted)); }-            if (channel.ParentChannelId != null) { updateParameters.Add(new Parameter("channel_cpid", channel.ParentChannelId)); }--            return Client.Send("channeledit", updateParameters.ToArray());+            var res = await Client.Send("channeledit",+                new Parameter("cid", channel_id),+                new Parameter(EditChannel.ToString(), value))+                .ConfigureAwait(false);

I think we can find a better solution that doesn't break API compatibility. I'll see if I can come up with something.

aleksanderpsuj

comment created time in 14 days

startedbluebill1049/react-smooth-range-input

started time in 14 days

startediipc/awesome-web-archiving

started time in 15 days

push eventnikeee/advent-of-code-2019

Niklas Mollenhauer

commit sha 33c5834b95f9b995ceb08b214a245bb50eb6c786

Update README.md

view details

push time in 15 days

push eventnikeee/advent-of-code-2019

Niklas Mollenhauer

commit sha 05278f266aac576a913ad831c1316363afa50096

Update README.md

view details

push time in 15 days

push eventnikeee/advent-of-code-2019

Niklas Mollenhauer

commit sha 7de680db686c54838ef276715db121b734bd51d7

Update README.md

view details

push time in 15 days

push eventnikeee/advent-of-code-2019

Niklas Mollenhauer

commit sha a34266abcd97177e269b10655d4651e249f143b9

Update README.md

view details

push time in 15 days

startedCRYTEK/CRYENGINE

started time in 18 days

push eventnikeee/TeamSpeak3QueryAPI

Niklas Mollenhauer

commit sha 2aaa56383231c362086e993986bad34ddc660607

Fix version

view details

push time in 20 days

created tagnikeee/TeamSpeak3QueryAPI

tagv1.12.2

.NET wrapper for the TeamSpeak 3 Query API

created time in 20 days

push eventnikeee/TeamSpeak3QueryAPI

Niklas Mollenhauer

commit sha 736c7bccbe7aeecf31380a30219cc28d5e135ba1

Fix version

view details

Niklas Mollenhauer

commit sha 7014cfddd0919390298f9b0c9f1abb8975c14812

v1.12.2

view details

push time in 20 days

created tagnikeee/TeamSpeak3QueryAPI

tagv1.12.1

.NET wrapper for the TeamSpeak 3 Query API

created time in 20 days

push eventnikeee/TeamSpeak3QueryAPI

Niklas Mollenhauer

commit sha bdc3d8f5e88abaff45536dd745c2e2c03f2662a5

Use .NET Core 3.1.300

view details

Niklas Mollenhauer

commit sha 2d472e6b3ffd2fc07d3fefa83241b674436d43d6

Fix version

view details

push time in 20 days

issue closednikeee/TeamSpeak3QueryAPI

TeamSpeak3QueryApi.pdb not loaded

I ve installed this API with NuGet, and tried to use the code example to connect to TS3Query plugin

TeamSpeakClient rc = new TeamSpeakClient("localhost", 25639);
await rc.Connect();
await rc.UseServer(1);
var me = await rc.WhoAmI();

After executing this code i get a screen saying that TeamSpeak3QueryApi is not loaded image Im a beginner so i dont know much about C# but from what i ve searched the .pdb files are used in debugging - am I supossed to apply some special debbuging settings? I ve tried few and none of them worked. I dont know if Im doing something wrong or this .pdb file really should be there?

closed time in 20 days

Judasz121

issue commentnikeee/TeamSpeak3QueryAPI

TeamSpeak3QueryApi.pdb not loaded

I tried to fix this in version 1.12.0. Please comment if the issue persists.

Judasz121

comment created time in 20 days

push eventnikeee/TeamSpeak3QueryAPI

Niklas Mollenhauer

commit sha e0f7e2c390855601a39a4a5b0e9702eceb297c46

Bump for next version

view details

push time in 20 days

created tagnikeee/TeamSpeak3QueryAPI

tagv1.12.0

.NET wrapper for the TeamSpeak 3 Query API

created time in 20 days

push eventnikeee/TeamSpeak3QueryAPI

Niklas Mollenhauer

commit sha d2f64e8ca9e03a7ed6042c6200dedc2ae6001543

Include pdb in nuget package

view details

push time in 20 days

issue commentnikeee/TeamSpeak3QueryAPI

TeamSpeak3QueryApi.pdb not loaded

I think the nuget package is currently shipped without the pdb. We can change that.

Judasz121

comment created time in 20 days

starteddotnet/diagnostics

started time in 21 days

issue openedwinneymj/ESP8266_SSD1322

How to re-use initialization?

I'd like to put the ESP into deep sleep.

While this is possible without turning off the ESP, refreshing the screen data turns the entire screen off.

I think it happens in begin().

Is it possbible to skip party of the initialization to re-use a screen "session"? Or differently put, can we skip turning the screen on/off in begin?

created time in 22 days

fork nikeee/Adafruit-GFX-Library

Multilingual fork of the Adafruit GFX graphics core library, this is the 'core' class that all our other graphics libraries derive from

https://learn.adafruit.com/adafruit-gfx-graphics-library

fork in 22 days

startedstatechannels/monorepo

started time in 23 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

 public Task DeleteChannel(int channelId, bool force)         #endregion         #region EditChannel -        public Task EditChannel(int channelId, EditChannelInfo channel)+        public async Task<IReadOnlyCollection<EditChannelInfo>> EditChannel(int channel_id, ChannelEdit EditChannel, string value)         {-            var updateParameters = new List<Parameter>-            {-                new Parameter("cid", channelId),-            };--            if (channel.Name != null) { updateParameters.Add(new Parameter("channel_name", channel.Name)); }-            if (channel.Topic != null) { updateParameters.Add(new Parameter("channel_topic", channel.Topic)); }-            if (channel.Description != null) { updateParameters.Add(new Parameter("channel_description", channel.Description)); }-            if (channel.Password != null) { updateParameters.Add(new Parameter("channel_password", channel.Password)); }-            if (channel.Codec != null) { updateParameters.Add(new Parameter("channel_codec", (int)channel.Codec)); }-            if (channel.CodecQuality != null) { updateParameters.Add(new Parameter("channel_codec_quality", channel.CodecQuality)); }-            if (channel.MaxClients != null) { updateParameters.Add(new Parameter("channel_maxclients", channel.MaxClients)); }-            if (channel.MaxFamilyClients != null) { updateParameters.Add(new Parameter("channel_maxfamilyclients", channel.MaxFamilyClients)); }-            if (channel.Order != null) { updateParameters.Add(new Parameter("channel_order", channel.Order)); }-            if (channel.IsPermanent != null) { updateParameters.Add(new Parameter("channel_flag_permanent", channel.IsPermanent)); }-            if (channel.IsSemiPermanent != null) { updateParameters.Add(new Parameter("channel_flag_semi_permanent", channel.IsSemiPermanent)); }-            if (channel.IsTemporary != null) { updateParameters.Add(new Parameter("channel_flag_temporary", channel.IsTemporary)); }-            if (channel.IsDefaultChannel != null) { updateParameters.Add(new Parameter("channel_flag_default", channel.IsDefaultChannel)); }-            if (channel.IsMaxClientsUnlimited != null) { updateParameters.Add(new Parameter("channel_flag_maxclients_unlimited", channel.IsMaxClientsUnlimited)); }-            if (channel.IsMaxFamilyClientsUnlimited != null) { updateParameters.Add(new Parameter("channel_flag_maxfamilyclients_unlimited", channel.IsMaxFamilyClientsUnlimited)); }-            if (channel.IsMaxFamilyClientsInherited != null) { updateParameters.Add(new Parameter("channel_flag_maxfamilyclients_inherited", channel.IsMaxFamilyClientsInherited)); }-            if (channel.NeededTalkPower != null) { updateParameters.Add(new Parameter("channel_needed_talk_power", channel.NeededTalkPower)); }-            if (channel.PhoneticName != null) { updateParameters.Add(new Parameter("channel_name_phonetic", channel.PhoneticName)); }-            if (channel.IconId != null) { updateParameters.Add(new Parameter("channel_icon_id", (int)channel.IconId)); }-            if (channel.IsCodecUnencrypted != null) { updateParameters.Add(new Parameter("channel_codec_is_unencrypted", channel.IsCodecUnencrypted)); }-            if (channel.ParentChannelId != null) { updateParameters.Add(new Parameter("channel_cpid", channel.ParentChannelId)); }--            return Client.Send("channeledit", updateParameters.ToArray());+            var res = await Client.Send("channeledit",+                new Parameter("cid", channel_id),+                new Parameter(EditChannel.ToString(), value))+                .ConfigureAwait(false);

What is the reason to do it like this?

aleksanderpsuj

comment created time in 23 days

issue commentwinneymj/ESP8266_SSD1322

Error compiling

Make usre you use Adafruit GFX Library@1.5.3.

alidaf

comment created time in 23 days

pull request commentwinneymj/ESP8266_SSD1322

Small fix to typecast as int

@winneymj can we help in merging and publishing this? My current project depends on it.

CuriousTimo

comment created time in 23 days

Pull request review commentwinneymj/ESP8266_SSD1322

Small fix to typecast as int

  The [Adafruit GFX](https://github.com/adafruit/Adafruit-GFX-Library) introduces graphics primitives (points, lines, circles, etc.). This library add support for the [Newhaven NHD-3.12-25664UCY2](http://www.newhavendisplay.com/nhd31225664ucy2-p-3537.html) 256x64x16 Yellow OLED Display.  The driver supports 4-wire SPI mode. +!! Do not use a version of the Adadfruit GFX library newer then v1.5.3 !!

Why?

CuriousTimo

comment created time in 23 days

startedttalvitie/browservice

started time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

 public Task DeleteChannel(int channelId, bool force)         #endregion         #region EditChannel -        public Task EditChannel(int channelId, EditChannelInfo channel)+        public async Task<IReadOnlyCollection<EditChannelInfo>> EditChannel(int channel_id, ChannelEdit EditChannel, string value)         {-            var updateParameters = new List<Parameter>-            {-                new Parameter("cid", channelId),-            };--            if (channel.Name != null) { updateParameters.Add(new Parameter("channel_name", channel.Name)); }-            if (channel.Topic != null) { updateParameters.Add(new Parameter("channel_topic", channel.Topic)); }-            if (channel.Description != null) { updateParameters.Add(new Parameter("channel_description", channel.Description)); }-            if (channel.Password != null) { updateParameters.Add(new Parameter("channel_password", channel.Password)); }-            if (channel.Codec != null) { updateParameters.Add(new Parameter("channel_codec", (int)channel.Codec)); }-            if (channel.CodecQuality != null) { updateParameters.Add(new Parameter("channel_codec_quality", channel.CodecQuality)); }-            if (channel.MaxClients != null) { updateParameters.Add(new Parameter("channel_maxclients", channel.MaxClients)); }-            if (channel.MaxFamilyClients != null) { updateParameters.Add(new Parameter("channel_maxfamilyclients", channel.MaxFamilyClients)); }-            if (channel.Order != null) { updateParameters.Add(new Parameter("channel_order", channel.Order)); }-            if (channel.IsPermanent != null) { updateParameters.Add(new Parameter("channel_flag_permanent", channel.IsPermanent)); }-            if (channel.IsSemiPermanent != null) { updateParameters.Add(new Parameter("channel_flag_semi_permanent", channel.IsSemiPermanent)); }-            if (channel.IsTemporary != null) { updateParameters.Add(new Parameter("channel_flag_temporary", channel.IsTemporary)); }-            if (channel.IsDefaultChannel != null) { updateParameters.Add(new Parameter("channel_flag_default", channel.IsDefaultChannel)); }-            if (channel.IsMaxClientsUnlimited != null) { updateParameters.Add(new Parameter("channel_flag_maxclients_unlimited", channel.IsMaxClientsUnlimited)); }-            if (channel.IsMaxFamilyClientsUnlimited != null) { updateParameters.Add(new Parameter("channel_flag_maxfamilyclients_unlimited", channel.IsMaxFamilyClientsUnlimited)); }-            if (channel.IsMaxFamilyClientsInherited != null) { updateParameters.Add(new Parameter("channel_flag_maxfamilyclients_inherited", channel.IsMaxFamilyClientsInherited)); }-            if (channel.NeededTalkPower != null) { updateParameters.Add(new Parameter("channel_needed_talk_power", channel.NeededTalkPower)); }-            if (channel.PhoneticName != null) { updateParameters.Add(new Parameter("channel_name_phonetic", channel.PhoneticName)); }-            if (channel.IconId != null) { updateParameters.Add(new Parameter("channel_icon_id", (int)channel.IconId)); }-            if (channel.IsCodecUnencrypted != null) { updateParameters.Add(new Parameter("channel_codec_is_unencrypted", channel.IsCodecUnencrypted)); }-            if (channel.ParentChannelId != null) { updateParameters.Add(new Parameter("channel_cpid", channel.ParentChannelId)); }--            return Client.Send("channeledit", updateParameters.ToArray());+            var res = await Client.Send("channeledit",+                new Parameter("cid", channel_id),+                new Parameter(EditChannel.ToString(), value))+                .ConfigureAwait(false);

How do you set the Name and the Topic using one command?

aleksanderpsuj

comment created time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

 public Task DeleteChannel(int channelId, bool force)         #endregion         #region EditChannel -        public Task EditChannel(int channelId, EditChannelInfo channel)+        public async Task<IReadOnlyCollection<EditChannelInfo>> EditChannel(int channel_id, ChannelEdit EditChannel, string value)         {-            var updateParameters = new List<Parameter>-            {-                new Parameter("cid", channelId),-            };--            if (channel.Name != null) { updateParameters.Add(new Parameter("channel_name", channel.Name)); }-            if (channel.Topic != null) { updateParameters.Add(new Parameter("channel_topic", channel.Topic)); }-            if (channel.Description != null) { updateParameters.Add(new Parameter("channel_description", channel.Description)); }-            if (channel.Password != null) { updateParameters.Add(new Parameter("channel_password", channel.Password)); }-            if (channel.Codec != null) { updateParameters.Add(new Parameter("channel_codec", (int)channel.Codec)); }-            if (channel.CodecQuality != null) { updateParameters.Add(new Parameter("channel_codec_quality", channel.CodecQuality)); }-            if (channel.MaxClients != null) { updateParameters.Add(new Parameter("channel_maxclients", channel.MaxClients)); }-            if (channel.MaxFamilyClients != null) { updateParameters.Add(new Parameter("channel_maxfamilyclients", channel.MaxFamilyClients)); }-            if (channel.Order != null) { updateParameters.Add(new Parameter("channel_order", channel.Order)); }-            if (channel.IsPermanent != null) { updateParameters.Add(new Parameter("channel_flag_permanent", channel.IsPermanent)); }-            if (channel.IsSemiPermanent != null) { updateParameters.Add(new Parameter("channel_flag_semi_permanent", channel.IsSemiPermanent)); }-            if (channel.IsTemporary != null) { updateParameters.Add(new Parameter("channel_flag_temporary", channel.IsTemporary)); }-            if (channel.IsDefaultChannel != null) { updateParameters.Add(new Parameter("channel_flag_default", channel.IsDefaultChannel)); }-            if (channel.IsMaxClientsUnlimited != null) { updateParameters.Add(new Parameter("channel_flag_maxclients_unlimited", channel.IsMaxClientsUnlimited)); }-            if (channel.IsMaxFamilyClientsUnlimited != null) { updateParameters.Add(new Parameter("channel_flag_maxfamilyclients_unlimited", channel.IsMaxFamilyClientsUnlimited)); }-            if (channel.IsMaxFamilyClientsInherited != null) { updateParameters.Add(new Parameter("channel_flag_maxfamilyclients_inherited", channel.IsMaxFamilyClientsInherited)); }-            if (channel.NeededTalkPower != null) { updateParameters.Add(new Parameter("channel_needed_talk_power", channel.NeededTalkPower)); }-            if (channel.PhoneticName != null) { updateParameters.Add(new Parameter("channel_name_phonetic", channel.PhoneticName)); }-            if (channel.IconId != null) { updateParameters.Add(new Parameter("channel_icon_id", (int)channel.IconId)); }-            if (channel.IsCodecUnencrypted != null) { updateParameters.Add(new Parameter("channel_codec_is_unencrypted", channel.IsCodecUnencrypted)); }-            if (channel.ParentChannelId != null) { updateParameters.Add(new Parameter("channel_cpid", channel.ParentChannelId)); }--            return Client.Send("channeledit", updateParameters.ToArray());+            var res = await Client.Send("channeledit",+                new Parameter("cid", channel_id),+                new Parameter(EditChannel.ToString(), value))+                .ConfigureAwait(false);

Is this safe to remove?

aleksanderpsuj

comment created time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

 public async Task<GetClientDetailedInfo> GetClientInfo(int clientId)             return DataProxy.SerializeGeneric<GetClientDetailedInfo>(res).FirstOrDefault();         } +        public async Task<GetClientIds> GetClientIds(string cluid)+        {+            var res = await Client.Send("clientgetids",+                new Parameter("cluid", cluid))+                .ConfigureAwait(false);+            return DataProxy.SerializeGeneric<GetClientIds>(res).FirstOrDefault();+        }++        public async Task<DBIDFromUID> DBIDFromUID(string cluid)+        {+            var res = await Client.Send("clientgetdbidfromuid",+                new Parameter("cluid", cluid))+                .ConfigureAwait(false);+            return DataProxy.SerializeGeneric<DBIDFromUID>(res).FirstOrDefault();+        }++        public async Task<NAMEFromDBID> NAMEFromDBID(int cldbid)+        {+            var res = await Client.Send("clientgetnamefromdbid",+                new Parameter("cldbid", cldbid))+                .ConfigureAwait(false);+            return DataProxy.SerializeGeneric<NAMEFromDBID>(res).FirstOrDefault();+        }++        public async Task<NAMEFromUID> NAMEFromUID(string cluid)+        {+            var res = await Client.Send("clientgetnamefromuid",+                new Parameter("cluid", cluid))+                .ConfigureAwait(false);+            return DataProxy.SerializeGeneric<NAMEFromUID>(res).FirstOrDefault();+        }++        public async Task<UIDFromCLID> UIDFromCLID(int clid)+        {

These method names should also renamed accordingly

aleksanderpsuj

comment created time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

+namespace TeamSpeak3QueryApi.Net.Specialized.Responses+{+    public class UIDFromCLID : Response+    {+        [QuerySerialize("clid")]+        public int clid;++        [QuerySerialize("cluid")]+        public string cluid;++        [QuerySerialize("nickname")]+        public string Nickname;+    }

See above

aleksanderpsuj

comment created time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

+namespace TeamSpeak3QueryApi.Net.Specialized.Responses+{+    public class ServerEditResponse : Response+    {+        [QuerySerialize("msg")]+        public string msg;

Message would be better.

aleksanderpsuj

comment created time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

+namespace TeamSpeak3QueryApi.Net.Specialized.Responses+{+    public class NAMEFromUID : Response

The name seems strange, too.

aleksanderpsuj

comment created time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

+namespace TeamSpeak3QueryApi.Net.Specialized.Responses+{+    public class ServerEditResponse : Response+    {+        [QuerySerialize("msg")]+        public string msg;++        [QuerySerialize("error id")]+        public int error_id;

We should keep the casing consistent. ErrorId would be better.

aleksanderpsuj

comment created time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

+namespace TeamSpeak3QueryApi.Net.Specialized.Responses+{+    public class DBIDFromUID : Response+    {+        [QuerySerialize("cluid")]+        public string cluid;

We should be consistent with the existing wording and casing: https://github.com/nikeee/TeamSpeak3QueryAPI/blob/c9127c526aeccbeff28bf115ce6ad56e74df359a/src/TeamSpeak3QueryApi/Specialized/Notifications/TokenUsed.cs#L5-L12

aleksanderpsuj

comment created time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

+namespace TeamSpeak3QueryApi.Net.Specialized.Responses+{+    public class NAMEFromDBID : Response

I'd suggest NameFromDatabaseId

aleksanderpsuj

comment created time in 24 days

Pull request review commentnikeee/TeamSpeak3QueryAPI

Added ServerEdit, GetClientIds and ID conversion | Changed EditChannel, .NET to 3.1

 dist: bionic sudo: false  mono: none-dotnet: 2.2.203+dotnet: 3.1.300

Do we use APIs of .NET Core 3.1? If not, I'd like to keep the version as low as possible. This way, more people can use this library. If we're using .NET Core 3.1 features, it would be more than valid (since it is LTS).

aleksanderpsuj

comment created time in 24 days

startedcovid-lens/covid-lens.github.io

started time in 25 days

startedgoogle/flatbuffers

started time in 25 days

startedteam-video/tragopan

started time in 25 days

startedjohang/btfs

started time in a month

startedHirrolot/poica

started time in a month

startedqiniu/goplus

started time in a month

issue commenthighlightjs/highlight.js

typescript build problem: node_modules/highlight.js/types/index.d.ts is not a module

The case: https://github.com/P4sca1/hljs-ts

So if you put it in lib you can't load core without issues but the languages still do not work?

Yes. It doesn't seem to work likely because core.d.ts is a module in my implementation (export = hljs).

If the language ambient module is in a separate file, it could work. But then we cannot use the types of hljs in them because they are not exported (only the hljs constant). Importing them also does not work.

limbowang

comment created time in a month

issue commenthighlightjs/highlight.js

typescript build problem: node_modules/highlight.js/types/index.d.ts is not a module

I've implemented my proposal based on the current master branch here: https://github.com/highlightjs/highlight.js/compare/master...nikeee:master

limbowang

comment created time in a month

push eventnikeee/highlight.js

Niklas Mollenhauer

commit sha fcb983e25dd3c34648c9b45bef5b11c518609a29

Add separate files for core and index

view details

push time in a month

push eventnikeee/highlight.js

Niklas Mollenhauer

commit sha 12e08cfa61937632633522484518e6a0af00fa00

Add separate files for core and index

view details

push time in a month

issue commenthighlightjs/highlight.js

typescript build problem: node_modules/highlight.js/types/index.d.ts is not a module

And adding 180 + .d.ts files is ridiculous.

Just to bea clear: This is not what I am proposing (and I never did that).

limbowang

comment created time in a month

issue commenthighlightjs/highlight.js

typescript build problem: node_modules/highlight.js/types/index.d.ts is not a module

I don't know the answer here someone from TS is goign to have to weigh in. It works if you start by loading the whole library:

import hljs from 'highlight.js';
import core from 'highlight.js/lib/core';
import hljs3 from 'highlight.js/lib/languages/basic';

This could break tree-shaking on some builds.

One way to do it without a /// ref would be to add a d.ts file for core and basic, which just re-export the original hljs type. The PoC can be seen in this comment. Hte language definition don't have to get their own d.ts file. It's just that the ambient modules for the language files have to be loaded. They don't get discovered automatically when highlight.js is not included.

I think if we'd use the solution mentioned in my comment, we can fix this. It's basically this:

mv index.d.ts core.d.ts
echo "import hljs from './core.js';\nexport = hljs;" > index.d.ts

If core is included, it has all types. If the highlight.js is included, it includes core (and the ambient module definitions in core).

limbowang

comment created time in a month

startedgithub/super-linter

started time in a month

issue commenthighlightjs/highlight.js

typescript build problem: node_modules/highlight.js/types/index.d.ts is not a module

Note that VSCode has a feature that pulls @types definitions for js libraries automatically in the background. This could lead to different behavior in VSCode and tsc respectively. See: https://ticehurst.com/jsdocs/articles/types/ata.html

But I don't know whether this also affects pure TS projects. I just wanted to mention this because it may lead to issues.

limbowang

comment created time in a month

startedspieglt/whatfiles

started time in a month

startedmicrosoft/playwright

started time in a month

issue closedcspotcode/outdent

Unexpected dedentation

Using this input:

				/*
				 * This is a demo
				 */
				:root {
					--test: var(--test);
				}

I get this output:

\t\t\t\ta*\n* This is a demo\n*/\nroot {\n--test: var(--test);\n

It removes the } as well as : and the whitespace below the first /.

I was expecting this:

/*
 * This is a demo
 */
:root {
	--test: var(--test);
}

What am I getting wrong here? I feel like i have to specify the tab-size or something.

Edit: Seems like the clasical case of RTFM (see "Gotchas" in the Readme). The following input works as expected:


				/*
				 * This is a demo
				 */
				:root {
					--test: var(--test);
				}

closed time in a month

nikeee

issue openedcspotcode/outdent

Unexpected dedentation

Using this input:

				/*
				 * This is a demo
				 */
				:root {
					--test: var(--test);
				}

I get this output:

\t\t\t\ta*\n* This is a demo\n*/\nroot {\n--test: var(--test);\n

It removes the } as well as :.

I was expecting this:

/*
 * This is a demo
 */
:root {
	--test: var(--test);
}

What am I getting wrong here? I feel like i have to specify the tab-size or something.

created time in a month

fork nikeee/outdent

Remove indentation from ES6 template strings

fork in a month

startedhneemann/Digital

started time in a month

startedmikeslattery/tunic

started time in a month

pull request commenthighlightjs/highlight.js

fix "is not a module" #2603

You could try something like this (omitting the extension):

declare module 'lib/language/basic' {
    export = fn;
}

(When importing, the .ja extension is optional in TS). fn being a const of the languageFn.

Not tested.

rodrigojcmello

comment created time in a month

pull request commenthighlightjs/highlight.js

fix "is not a module" #2603

You can introduce support for highlight.js/lib/core.js like this: https://github.com/highlightjs/highlight.js/compare/master...nikeee:ts?expand=1

Basically, you could do it for highlight.js/lib/highlight.js the same way.

However, I think it is not possible to do something for highlight.js/lib/languages/basic.js via ./languages/*.js.

Also, the types are not exported and available in TS (only the hljs object). It would require something different to also export the types.

IMHO, the easiest solution would be to migrate to TS and generate the declaration files via tsc. However, this would require some extra work to get the CJS version right.

rodrigojcmello

comment created time in a month

create barnchnikeee/highlight.js

branch : ts

created branch time in a month

more