소개
RoslynPad은 Roslyn과 AvalonEdit을 기반으로 한 크로스플랫폼 C# 편집기입니다. Windows, macOS, Linux에서 실행되며, 코드 완성, 실시간 진단, NuGet 패키지 관리, 문서 관리 등을 제공합니다. 오픈소스 소프트웨어로 MIT 라이선스 하에 배포됩니다.
상세정보
코드 완성
Roslyn을 활용한 스마트한 코드 제안 기능을 제공합니다. 타이핑 중에 컨텍스트에 맞는 완성 목록을 표시하여 생산성을 높입니다.
퀵 정보
코드 내의 어떤 심볼이든 마우스로 가리키면 해당 심볼의 문서, 시그니처, 타입 정보를 실시간으로 확인할 수 있습니다.
시그니처 헬프
메서드를 작성할 때 매개변수 정보와 시그니처를 실시간으로 표시하여 올바른 인수 입력을 돕습니다.
진단
코드를 작성하는 동안 실시간으로 오류와 경고를 감지하여 문제를 즉시 인지하고 수정할 수 있도록 도와줍니다.
코드 픽스
진단된 문제에 대한 빠른 조치와 리팩터링 옵션을 제공하여 한 번의 클릭으로 코드 품질을 개선할 수 있습니다.
실시간 실행
C# 파일 기반 애플리케이션을 직접 실행하고 결과를 즉시 확인할 수 있어 스크립트 테스트와 디버깅에 유용합니다.
NuGet 패키지 관리
통합된 검색 및 설치 기능을 통해 NuGet 패키지를 쉽게 찾아 프로젝트에 추가할 수 있습니다.
문서 관리
왼쪽 패널에서 여러 스크립트를 조직화, 검색, 전환하여 작업 효율을 높일 수 있습니다.
다운로드·설치 방법
공식 웹사이트에서 ZIP 파일을 다운로드받아 압축을 해제한 후 실행할 수 있습니다. 또한 winget을 통해 winget install --id RoslynPad.RoslynPad 명령으로 설치할 수 있으며, Homebrew에서는 brew install --cask roslynpad 명령으로 설치 가능합니다. Microsoft Store에서도 제공됩니다.
기본 사용법
프로그램을 실행하면 왼쪽 문서 패널에서 파일을 선택하거나 새로 만들 수 있습니다. 중앙 코드 편집기에서 C# 코드를 작성하면 실시간으로 완성 제안, 퀵 정보, 진단 등이 표시됩니다. 하단 결과 패널에서 실행 결과를 확인할 수 있으며, 오른쪽 상단의 NuGet 검색창을 통해 패키지를 추가할 수 있습니다.
이런 경우에 유용합니다
C# 언어를 배우고 테스트하는 개발자, 스크립트 기반 프로토타입을 빠르게 만들고 싶은 사람, NuGet 패키지를 실험해보고 싶은 사용자에게 유용합니다. 특히 실시간 코드 실행과 결과를 즉시 확인해야 하는 학습 및 실험 환경에서 가치가 있습니다.
지원 환경·시스템 요구사항
Windows, macOS, Linux에서 실행됩니다. 프로그램을 컴파일하고 실행하기 위해서는 해당 플랫폼에 맞는 .NET SDK가 사전에 설치되어 있어야 합니다.
최신 버전·업데이트
현재 버전은 22.1입니다. 최신 업데이트 정보와 변경사항은 공식 GitHub 저장소의 릴리스 페이지에서 확인할 수 있습니다.
제한 사항·확인 사항
.NET SDK가 설치되어 있지 않으면 코드 컴파일과 실행이 불가능하므로, 사용 전 필수 조건을 확인해야 합니다.
화면으로 보는 주요 기능
로슬린패드 22의 메인 인터페이스

로슬린패드 22 애플리케이션의 메인 화면으로, 왼쪽에는 'Documents' 패널이 있으며 'MinimalApi.cs' 파일이 선택되어 있다. 오른쪽에는 C# 코드 편집기 창이 있고, 코드는 .NET 10.0.301 SDK를 사용하며 Microsoft.AspNetCore.Builder를 사용하는 'MinimalApi.cs' 파일의 내용을 보여준다. 코드는 'MapGet' 메서드를 사용하여 '/weather' 경로에 대한 GET 요청을 처리하고, 날씨 요약을 반환하는 API를 정의한다. 하단에는 'Results' 패널이 있으며, 'info: Microsoft.Hosting.Lifetime[14]'와 'info: Microsoft.Hosting.Lifetime[0]' 메시지가 표시되어 있다. 오른쪽 상단에는 'Search NuGet' 검색창과 'Prerelease' 체크박스가 있다.
변수 자동 완성 및 코드 편집기

코드 편집기에서 'var planets = new List' 선언 후 'new' 키워드를 입력한 상태에서 자동 완성 팝업이 나타나고 있다. 팝업에는 'planets', 'Planet', 'Plan', 'PlatformNotSupportedException' 등의 항목이 포함되어 있다. 코드는 행 11에서 'var withMoons = planets'를 선언하고, 행 14에서 'ToList()' 메서드를 호출하고 있다. 행 19에서는 'record Planet(string Name, double DistanceAu, int Moons);'를 정의하고 있다.
코드 자동 완성 및 메서드 설명

코드 편집기에서 'var withMoons = planets.Where(p => p.Moons > 0).OrderByDescending(p => p.Moons).Select(p => new { p.Name, p.Moons, Distance = $"{p.DistanceAu} AU" }).ToList();' 코드를 작성 중이다. 'OrderByDescending' 메서드를 입력한 상태에서 자동 완성 팝업이 나타나고 있으며, 'OrderByDescending' 메서드의 설명이 표시되어 있다. 설명에는 'Creates a List from an IEnumerable.'와 'Returns: A List that contains elements from the input sequence.' 등의 내용이 포함되어 있다. 'Types' 섹션에는 'a is new { string Name, int Moons, string Distance }'가 표시되어 있다.
메서드 자동 완성 및 설명

코드 편집기에서 'var withMoons = planets.Where(p => p.Moons > 0).OrderByDescending(p => p.Moons).Select(p => new { p.Name, p.Moons, Distance = $"{p.DistanceAu} AU" }).ToList();' 코드를 작성 중이다. 'OrderByDescending' 메서드를 입력한 상태에서 자동 완성 팝업이 나타나고 있으며, 'OrderByDescending' 메서드의 설명이 표시되어 있다. 설명에는 'Sorts the elements of a sequence in descending order according to a key.'와 'keySelector: A function to extract a key from an element.' 등의 내용이 포함되어 있다. 'withMoons.Dump();' 코드와 'record Planet(string Name, double DistanceAu, int Moons);' 코드도 보인다.
시스템 요구사항
.NET SDK가 설치되어 있어야 프로그램을 컴파일할 수 있습니다.


