小编Mii*_*ite的帖子

Roslyn - 如果添加尾随琐事,则SyntaxNode"消失"

我正在研究一小段roslyn代码,尝试在Visual Studio for MAC扩展项目中进行一些简单的重构.

我想重构这段代码:

public class Test
{
    private const object a = null; 


    public const int c = 0;

}
Run Code Online (Sandbox Code Playgroud)

进入这段代码

public class Test
{
    public const int c = 0;
    private const object a = null; 

}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我设法得到一个代表我的常量的ISymbol列表,正确地命令它们,然后将它们转换成一个SyntaxNode列表,就像这样

var orderedMembers = orderer.OrderAll(classMembers);
var nodes = orderedMembers.Select(o => o.DeclaringSyntaxReferences.FirstOrDefault().GetSyntax())
                                  .Where(node => node != null)
                                  .ToList();
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.输出是这样的

public class Test
{
    public const int c = 0;
    private const object a = null; 
}
Run Code Online (Sandbox Code Playgroud)

现在我的最后一步是在我的最后一个常量之后添加几行,以定义我的常量和可能的后续内容之间的分离.

我似乎可以通过在我的一个SyntaxNode中添加一个Trailing/Leading琐事来做到这一点.所以我尝试了这个(现在硬编码为简单):

nodes[1] = nodes[1].WithTrailingTrivia(SyntaxFactory.CarriageReturnLineFeed); …
Run Code Online (Sandbox Code Playgroud)

.net c# roslyn roslyn-code-analysis

6
推荐指数
0
解决办法
121
查看次数

当拉取请求更改时取消操作运行

对于我的项目,我有一个相当长的 github 操作,当创建新的拉取请求时会触发该操作。这些是我使用的触发器:

on:
  pull_request:
    types: [opened, ready_for_review, labeled]
Run Code Online (Sandbox Code Playgroud)

此操作被定义为我的拉取请求的“状态检查”要求,以确保该操作在允许某人合并其 PR 之前运行良好。

但是,我的 PR 也需要保持最新状态develop才能允许合并任何内容。

所以我经常遇到的场景是这样的:

  • 创建新的拉取请求
  • Github Action 启动,我的 PR 的检查状态变为“进行中”
  • 我意识到我的分支没有与开发保持同步,所以我更新了它。
  • PR 的检查状态变为“预期”,因为我当前的运行是在分支的先前版本上开始的。

我对这种情况的问题是,即使我的 github 操作运行现在完全无效/过时(因为分支的内容发生了变化),操作本身仍在运行。我需要手动转到操作选项卡并取消此运行。

如果分支或 PR 的内容发生更改,是否有办法自动取消此运行?

github github-actions

4
推荐指数
1
解决办法
3109
查看次数

绑定iOS框架导致临时文件损坏

我有一个非常庞大的 iOS 框架要绑定。这个框架依赖于另外两个。

我创建了绑定项目,成功生成了 ApiDefinitions.cs 文件和 StructsAndEnums.cs。到现在为止还挺好。

现在,当我尝试在调试模式下构建它时,我会收到大约 30 多个关于临时文件中的语法问题的错误。

这些错误仅发生在 Trampolines.g.cs 和 SupportDelegates.g.cs 文件中。两者中最糟糕的是 SupportDelegates.g.cs 文件,它看起来像这样:

   //
// Auto-generated from generator.cs, do not edit
//
// We keep references to objects, so warning 414 is expected

#pragma warning disable 414

using System;
using System.Drawing;
using System.Diagnostics;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using UIKit;
using GLKit;
using Metal;
using MapKit;
using Photos;
using ModelIO;
using SceneKit;
using Contacts;
using Security;
using Messages;
using AudioUnit;
using CoreVideo;
using …
Run Code Online (Sandbox Code Playgroud)

xamarin.ios xamarin xamarin.ios-binding

3
推荐指数
1
解决办法
288
查看次数