Skip to content

Commit

Permalink
Development (StefanMaron#291)
Browse files Browse the repository at this point in the history
* Update project files

* Fix Rule 0011 for table fields
StefanMaron#253

* Fix  LC0010 does not work in code-workspaces
StefanMaron#225

* Analyzer LC0010 should include thresholds in the problems view
 StefanMaron#261
  • Loading branch information
StefanMaron authored May 15, 2023
1 parent adc0846 commit dec4cf8
Show file tree
Hide file tree
Showing 12 changed files with 555 additions and 554 deletions.
7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/.vs
/bin
/ms-dynamics-smb.al-latest*
/ALLanguage*
/obj
/packages/System.Composition.AttributedModel.5.0.1/lib
/Resources/Microsoft.Dynamics.Nav.CodeAnalysis.Workspaces.dll
Expand All @@ -10,4 +10,7 @@
/packages/System.Composition.AttributedModel.5.0.1
.vscode/**
!.vscode/extensions.json
!.vscode/settings.json
!.vscode/settings.json
!.vscode/launch.json
!.vscode/tasks.json
!.vscode/LoadALLanguage.ps1
6 changes: 6 additions & 0 deletions .vscode/LoadALLanguage.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Remove-Item -Path ALLanguage/ -Recurse -Force -ErrorAction SilentlyContinue;
$listing = Invoke-WebRequest -Method POST -UseBasicParsing -Uri https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery?api-version=3.0-preview.1 -Body '{"filters":[{"criteria":[{"filterType":8,"value":"Microsoft.VisualStudio.Code"},{"filterType":12,"value":"4096"},{"filterType":7,"value":"ms-dynamics-smb.al"}],"pageNumber":1,"pageSize":50,"sortBy":0,"sortOrder":0}],"assetTypes":[],"flags":147}' -ContentType application/json | ConvertFrom-Json;
$vsixUrl_Current = $listing.results.extensions.versions | where properties -ne $null | Where-Object { $_.properties.key -notcontains 'Microsoft.VisualStudio.Code.PreRelease'} | Select-Object -First 1 -ExpandProperty files | Where-Object { $_.assetType -eq 'Microsoft.VisualStudio.Services.VSIXPackage'} | Select-Object -ExpandProperty source;
Invoke-WebRequest $vsixUrl_Current -OutFile ALLanguage_current.zip;
Expand-Archive -Path ALLanguage_current.zip -DestinationPath ALLanguage/extension/bin/Analyzers;
Remove-Item -Path ALLanguage_current.zip -Force -ErrorAction SilentlyContinue;
15 changes: 15 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Debug CustomCodeCop",
"type": "coreclr",
"request": "attach",
"preLaunchTask": "build",
"processName": "Microsoft.Dynamics.Nav.EditorServices.Host.exe"
}
]
}
52 changes: 52 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build_dotnet",
"command": "dotnet",
"type": "shell",
"args": [
"build",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"group": "build",
"problemMatcher": "$msCompile",
"presentation": {
"reveal": "silent",
"revealProblems": "onProblem",
"close": true
}
},
{
"label": "run_code",
"type": "shell",
"command": "code",
"args": [
"C:/Users/Stefan/Documents/AL/ALProject1/"
],
"problemMatcher": [],
"presentation": {
"reveal": "silent",
"revealProblems": "onProblem",
"close": true
}
},
{
"label": "build",
"dependsOn": [
"build_dotnet",
"run_code"
],
"dependsOrder": "sequence"
},
{
"label": "LoadALLanguageDependency",
"type": "shell",
"command": "Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process; ./.vscode/LoadALLanguage.ps1",
"problemMatcher": []
}
]
}
4 changes: 0 additions & 4 deletions AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,4 @@
using System.Runtime.CompilerServices;

//[assembly: Extension]
[assembly: NeutralResourcesLanguage("en-US")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("0.21")]
[assembly: AssemblyInformationalVersion("0.21")]
[assembly: AssemblyVersion("0.21")]
209 changes: 77 additions & 132 deletions BusinessCentral.LinterCop.csproj
Original file line number Diff line number Diff line change
@@ -1,132 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{1EDDEDCF-E158-4AE6-863D-DEA31B895044}</ProjectGuid>
<OutputType>Library</OutputType>
<AssemblyName>BusinessCentral.LinterCop</AssemblyName>
<ApplicationVersion>7.4.7.37768</ApplicationVersion>
<RootNamespace>BusinessCentral.LinterCop</RootNamespace>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>2.0</OldToolsVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DebugType>portable</DebugType>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="netstandard" />
<Reference Include="Microsoft.CodeAnalysis">
<SpecificVersion>False</SpecificVersion>
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/Microsoft.CodeAnalysis.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Dynamics.Nav.Analyzers.Common">
<SpecificVersion>False</SpecificVersion>
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/Microsoft.Dynamics.Nav.Analyzers.Common.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Dynamics.Nav.CodeAnalysis">
<SpecificVersion>False</SpecificVersion>
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/Microsoft.Dynamics.Nav.CodeAnalysis.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Dynamics.Nav.CodeAnalysis.Workspaces">
<SpecificVersion>False</SpecificVersion>
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/Microsoft.Dynamics.Nav.CodeAnalysis.Workspaces.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Buffers, Version=4.6.28619.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/System.Collections.Immutable.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Memory, Version=4.700.19.56404, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.6.255193.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.700.20.12001, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>ms-dynamics-smb.al-latest/extension/bin/Analyzers/System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="Design\Rule0001FlowFieldsShouldNotBeEditable.cs" />
<Compile Include="Design\Rule0002CommitMustBeExplainedByComment.cs" />
<Compile Include="Design\Rule0003DoNotUseObjectIDsInVariablesOrProperties.cs" />
<Compile Include="Design\Rule0004LookupPageIdAndDrillDownPageId.cs" />
<Compile Include="Design\Rule0005VariableCasingShouldNotDIfferFromDeclaration.cs" />
<Compile Include="Design\Rule0006FieldNotAutoIncrementInTemporaryTable.cs" />
<Compile Include="Design\Rule0007DataPerCompanyShouldAlwaysBeSet.cs" />
<Compile Include="Design\Rule0008NoFilterOperatorsInSetRange.cs" />
<Compile Include="Design\Rule0009CodeMetrics.cs" />
<Compile Include="Design\Rule0011AccessPropertyShouldAlwaysBeSet.cs" />
<Compile Include="Design\Rule0012DoNotUseObjectIdInSystemFunctions.cs" />
<Compile Include="Design\Rule0013CheckForNotBlankOnSingleFieldPrimaryKeys.cs" />
<Compile Include="Design\Rule0014PermissionSetCaptionLength.cs" />
<Compile Include="Design\Rule0015PermissionSetCoverage.cs" />
<Compile Include="Design\Rule0016CheckForMissingCaptions.cs" />
<Compile Include="Design\Rule0017WriteToFlowField.cs" />
<Compile Include="Design\Rule0018NoEventsInInternalCodeunits.cs" />
<Compile Include="Design\Rule0019DataClassificationFieldEqualsTable.cs" />
<Compile Include="Design\Rule0020ApplicationAreaEqualsToPage.cs" />
<Compile Include="Design\Rule0021BuiltInMethodImplementThroughCodeunit.cs" />
<Compile Include="Design\Rule0023AlwaysSpecifyFieldgroups.cs" />
<Compile Include="Helpers\LinterSettings.cs" />
<Compile Include="LinterCopAnalyzers.Designer.cs" />
<Compile Include="LinterCopAnalyzers.Generated.cs" />
<Compile Include="Extensions.cs" />
<Compile Include="AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="LinterCopAnalyzers.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>Latest</LangVersion>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<ItemGroup>

<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/System.Collections.Immutable.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Dynamics.Nav.CodeAnalysis">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/Microsoft.Dynamics.Nav.CodeAnalysis.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Dynamics.Nav.Analyzers.Common">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/Microsoft.Dynamics.Nav.Analyzers.Common.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
<!-- <Reference Include="Microsoft.CodeAnalysis">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/Microsoft.CodeAnalysis.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Dynamics.Nav.Analyzers.Common">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/Microsoft.Dynamics.Nav.Analyzers.Common.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Dynamics.Nav.CodeAnalysis">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/Microsoft.Dynamics.Nav.CodeAnalysis.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Microsoft.Dynamics.Nav.CodeAnalysis.Workspaces">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/Microsoft.Dynamics.Nav.CodeAnalysis.Workspaces.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Buffers, Version=4.6.28619.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>ALLanguage/extension/bin/Analyzers/System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>ALLanguage/extension/bin/Analyzers/System.Collections.Immutable.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.ComponentModel.Composition"/>
<Reference Include="System.Memory, Version=4.700.19.56404, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>ALLanguage/extension/bin/Analyzers/System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics"/>
<Reference Include="System.Numerics.Vectors, Version=4.6.255193.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>ALLanguage/extension/bin/Analyzers/System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.700.20.12001, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>ALLanguage/extension/bin/Analyzers/System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq"/> -->
</ItemGroup>
</Project>
Loading

0 comments on commit dec4cf8

Please sign in to comment.